sync progress indicator
[pub/Android/ownCloud.git] / src / eu / alefzero / owncloud / ui / activity / FileDisplayActivity.java
index cac6fea..1b909a4 100644 (file)
@@ -23,12 +23,16 @@ import android.accounts.AccountManager;
 import android.app.AlertDialog;\r
 import android.app.AlertDialog.Builder;\r
 import android.app.Dialog;\r
 import android.app.AlertDialog;\r
 import android.app.AlertDialog.Builder;\r
 import android.app.Dialog;\r
+import android.content.Context;\r
 import android.content.DialogInterface;\r
 import android.content.DialogInterface.OnCancelListener;\r
 import android.content.DialogInterface.OnClickListener;\r
 import android.content.DialogInterface;\r
 import android.content.DialogInterface.OnCancelListener;\r
 import android.content.DialogInterface.OnClickListener;\r
+import android.content.BroadcastReceiver;\r
 import android.content.Intent;\r
 import android.content.Intent;\r
+import android.content.IntentFilter;\r
 import android.net.Uri;\r
 import android.os.Bundle;\r
 import android.net.Uri;\r
 import android.os.Bundle;\r
+import android.util.Log;\r
 import android.view.View;\r
 import android.view.ViewGroup;\r
 import android.widget.ArrayAdapter;\r
 import android.view.View;\r
 import android.view.ViewGroup;\r
 import android.widget.ArrayAdapter;\r
@@ -41,6 +45,7 @@ import com.actionbarsherlock.app.SherlockFragmentActivity;
 import com.actionbarsherlock.view.Menu;\r
 import com.actionbarsherlock.view.MenuInflater;\r
 import com.actionbarsherlock.view.MenuItem;\r
 import com.actionbarsherlock.view.Menu;\r
 import com.actionbarsherlock.view.MenuInflater;\r
 import com.actionbarsherlock.view.MenuItem;\r
+import com.actionbarsherlock.view.Window;\r
 \r
 import eu.alefzero.owncloud.AccountUtils;\r
 import eu.alefzero.owncloud.R;\r
 \r
 import eu.alefzero.owncloud.AccountUtils;\r
 import eu.alefzero.owncloud.R;\r
@@ -48,6 +53,7 @@ import eu.alefzero.owncloud.authenticator.AccountAuthenticator;
 import eu.alefzero.owncloud.datamodel.DataStorageManager;\r
 import eu.alefzero.owncloud.datamodel.FileDataStorageManager;\r
 import eu.alefzero.owncloud.datamodel.OCFile;\r
 import eu.alefzero.owncloud.datamodel.DataStorageManager;\r
 import eu.alefzero.owncloud.datamodel.FileDataStorageManager;\r
 import eu.alefzero.owncloud.datamodel.OCFile;\r
+import eu.alefzero.owncloud.syncadapter.FileSyncAdapter;\r
 import eu.alefzero.owncloud.ui.fragment.FileListFragment;\r
 import eu.alefzero.webdav.WebdavClient;\r
 \r
 import eu.alefzero.owncloud.ui.fragment.FileListFragment;\r
 import eu.alefzero.webdav.WebdavClient;\r
 \r
@@ -63,6 +69,8 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
        private ArrayAdapter<String> mDirectories;\r
        private DataStorageManager mStorageManager;\r
 \r
        private ArrayAdapter<String> mDirectories;\r
        private DataStorageManager mStorageManager;\r
 \r
+       private BR  b;\r
+       \r
        private static final int DIALOG_SETUP_ACCOUNT = 0;\r
        private static final int DIALOG_CREATE_DIR = 1;\r
 \r
        private static final int DIALOG_SETUP_ACCOUNT = 0;\r
        private static final int DIALOG_CREATE_DIR = 1;\r
 \r
@@ -145,6 +153,8 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
       return;\r
     }\r
 \r
       return;\r
     }\r
 \r
+               requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);  \r
+\r
                mDirectories = new CustomArrayAdapter<String>(this,\r
                                R.layout.sherlock_spinner_dropdown_item);\r
                mDirectories.add("/");\r
                mDirectories = new CustomArrayAdapter<String>(this,\r
                                R.layout.sherlock_spinner_dropdown_item);\r
                mDirectories.add("/");\r
@@ -219,9 +229,20 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
          super.onResume();\r
          if(!accountsAreSetup()){\r
       showDialog(DIALOG_SETUP_ACCOUNT);\r
          super.onResume();\r
          if(!accountsAreSetup()){\r
       showDialog(DIALOG_SETUP_ACCOUNT);\r
+      return;\r
     }\r
     }\r
+          IntentFilter f = new IntentFilter(FileSyncAdapter.SYNC_MESSAGE);\r
+          b = new  BR();\r
+          registerReceiver(b, f);\r
+          setProgressBarIndeterminateVisibility(false);\r
        }\r
            \r
        }\r
            \r
+        @Override\r
+       protected void onPause() {\r
+         super.onPause();\r
+         unregisterReceiver(b);\r
+       }\r
+        \r
        @Override\r
        public boolean onNavigationItemSelected(int itemPosition, long itemId) {\r
                int i = itemPosition;\r
        @Override\r
        public boolean onNavigationItemSelected(int itemPosition, long itemId) {\r
                int i = itemPosition;\r
@@ -320,5 +341,20 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
     return accounts.length > 0;\r
   }\r
   \r
     return accounts.length > 0;\r
   }\r
   \r
+  private class BR extends BroadcastReceiver {\r
+    @Override\r
+    public void onReceive(Context context, Intent intent) {\r
+      boolean in_progress = intent.getBooleanExtra(FileSyncAdapter.IN_PROGRESS, false);\r
+      String account_name = intent.getStringExtra(FileSyncAdapter.ACCOUNT_NAME);\r
+      Log.d("FileDisplay", "sync of account " + account_name + " is in_progress: " + in_progress);\r
+      setProgressBarIndeterminateVisibility(in_progress);\r
+      if (!in_progress) {\r
+        FileListFragment f = (FileListFragment) getSupportFragmentManager().findFragmentById(R.id.fileList);\r
+        if (f != null)\r
+          f.populateFileList();\r
+      }\r
+    }\r
+    \r
+  }\r
   \r
 }
   \r
 }