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) {