Variable nameing / imports improved, fixed nullpointer on account
[pub/Android/ownCloud.git] / src / eu / alefzero / owncloud / ui / activity / FileDisplayActivity.java
index cac6fea..294dbfa 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.content.BroadcastReceiver;\r
+import android.content.ContentResolver;\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.Intent;\r
+import android.content.IntentFilter;\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
@@ -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.Window;\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.syncadapter.FileSyncService;\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 SyncBroadcastReceiver  syncBroadcastRevceiver;\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
+               requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);  \r
+\r
                mDirectories = new CustomArrayAdapter<String>(this,\r
                                R.layout.sherlock_spinner_dropdown_item);\r
                mDirectories.add("/");\r
@@ -169,6 +179,14 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
                        showDialog(DIALOG_CREATE_DIR);\r
                        break;\r
                }\r
+               case R.id.startSync: {\r
+                 Bundle bundle = new Bundle();\r
+      bundle.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);\r
+      ContentResolver.requestSync(AccountUtils.getCurrentOwnCloudAccount(this),\r
+                     "org.owncloud",\r
+                     bundle);\r
+      break;\r
+               }\r
                case android.R.id.home: {\r
                        onBackPressed();\r
                        break;\r
@@ -219,9 +237,22 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
          super.onResume();\r
          if(!accountsAreSetup()){\r
       showDialog(DIALOG_SETUP_ACCOUNT);\r
+      return;\r
     }\r
+          IntentFilter syncMessageIntentFilter = new IntentFilter(FileSyncService.SYNC_MESSAGE);\r
+          syncBroadcastRevceiver = new  SyncBroadcastReceiver();\r
+          registerReceiver(syncBroadcastRevceiver, syncMessageIntentFilter);\r
+          setProgressBarIndeterminateVisibility(false);\r
        }\r
            \r
+        @Override\r
+       protected void onPause() {\r
+         super.onPause();\r
+         if(syncBroadcastRevceiver != null){\r
+                 unregisterReceiver(syncBroadcastRevceiver);  \r
+         }\r
+       }\r
+        \r
        @Override\r
        public boolean onNavigationItemSelected(int itemPosition, long itemId) {\r
                int i = itemPosition;\r
@@ -320,5 +351,23 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
     return accounts.length > 0;\r
   }\r
   \r
+  private class SyncBroadcastReceiver extends BroadcastReceiver {\r
+         /**\r
+          * {@link BroadcastReceiver} to enable syncing feedback in UI\r
+          */\r
+    @Override\r
+    public void onReceive(Context context, Intent intent) {\r
+      boolean inProgress = intent.getBooleanExtra(FileSyncService.IN_PROGRESS, false);\r
+      String account_name = intent.getStringExtra(FileSyncService.ACCOUNT_NAME);\r
+      Log.d("FileDisplay", "sync of account " + account_name + " is in_progress: " + inProgress);\r
+      setProgressBarIndeterminateVisibility(inProgress);\r
+      if (!inProgress) {\r
+        FileListFragment fileListFramgent = (FileListFragment) getSupportFragmentManager().findFragmentById(R.id.fileList);\r
+        if (fileListFramgent != null)\r
+          fileListFramgent.populateFileList();\r
+      }\r
+    }\r
+    \r
+  }\r
   \r
 }