diff --git a/WarpDrinkApp/app/src/main/java/ms/warpzone/warppay/manager/MainManager.java b/WarpDrinkApp/app/src/main/java/ms/warpzone/warppay/manager/MainManager.java index 59e27013a1161755f1e4ce47db62e81076ce0cac..f812cf18f0c2d00283159b229ad07c925f391e1c 100644 --- a/WarpDrinkApp/app/src/main/java/ms/warpzone/warppay/manager/MainManager.java +++ b/WarpDrinkApp/app/src/main/java/ms/warpzone/warppay/manager/MainManager.java @@ -65,6 +65,7 @@ public class MainManager { public AlertDialog alertAmount; private ProgressDialog pdRefresh = null; private NotificationDialog ndRefreshError = null; + private Timer tmrRefresh; public static MainManager getInstance() { return instance; @@ -134,11 +135,16 @@ public class MainManager { } public void refreshData() { + this.refreshData(false); + } + + public void refreshData(boolean disableDialog) { if(this.ndRefreshError != null) this.ndRefreshError.dismiss(); this.ndRefreshError = null; - this.pdRefresh = ProgressDialog.show(this.mainActivity, "Refreshing...", "Loading..."); + if(!disableDialog) + this.pdRefresh = ProgressDialog.show(this.mainActivity, "Refreshing...", "Loading..."); this.restService.getAllUser().enqueue(new Callback<List<RestUser>>() { @@ -148,7 +154,6 @@ public class MainManager { if (userList != null) { MainManager.getInstance().uiManager.refreshUserData(userList); } - Toast.makeText(MainManager.getInstance().mainActivity, "Refresh successful", Toast.LENGTH_LONG).show(); } @Override @@ -182,6 +187,7 @@ public class MainManager { MainManager.getInstance().uiManager.refreshProductData(productList); } MainManager.this.pdRefresh.dismiss(); + MainManager.this.startRefreshTimer(); } @Override @@ -194,8 +200,8 @@ public class MainManager { } private void showRefreshError() { - if(ndRefreshError == null) { + this.stopRefreshTimer(); if(pdRefresh != null) pdRefresh.dismiss(); ndRefreshError = new NotificationDialog(this.mainActivity,"WARNING","Refresh failed. Please retry!"); @@ -249,6 +255,7 @@ public class MainManager { this.dataManager.setCurrentUser(user); this.uiManager.setCurrentUser(user); this.startTimer(); + this.stopRefreshTimer(); } } @@ -279,6 +286,31 @@ public class MainManager { this.timer.schedule(t, 60000); } + public void startRefreshTimer() { + this.tmrRefresh = new Timer(); + TimerTask t = new TimerTask() { + @Override + public void run() { + Handler mainHandler = new Handler(MainManager.getInstance().getMainActivity().getApplicationContext().getMainLooper()); + Runnable myRunnable = new Runnable() { + @Override + public void run() { + if(MainManager.getInstance().getCurrentUser() == null) + MainManager.getInstance().refreshData(true); + } + }; + mainHandler.post(myRunnable); + } + }; + + this.tmrRefresh.schedule(t, 60000,60000); + } + public void stopRefreshTimer() { + if (this.tmrRefresh != null) { + this.tmrRefresh.cancel(); + this.tmrRefresh.purge(); + } + } public void resetScreenSaverTimer() { this.stopScreenSaverTimer(); this.screenSaverTimer = new Timer(); @@ -314,6 +346,8 @@ public class MainManager { this.dataManager.clearCurrentUser(); this.uiManager.clearCurrentUser(); this.stopTimer(); + MainManager.getInstance().refreshData(); + this.startRefreshTimer(); } public void addOrder(Order order) {