From: Bartek Przybylski Date: Thu, 3 May 2012 21:56:48 +0000 (+0200) Subject: sync progress indicator X-Git-Tag: oc-android-1.4.3~429 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/a2a8dc1ee6681d641a4316dccaacca6751c32a6a?ds=inline;hp=--cc sync progress indicator --- a2a8dc1ee6681d641a4316dccaacca6751c32a6a diff --git a/AndroidManifest.xml b/AndroidManifest.xml index ae35b643..ce111795 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -14,6 +14,7 @@ + mDirectories; private DataStorageManager mStorageManager; + private BR b; + private static final int DIALOG_SETUP_ACCOUNT = 0; private static final int DIALOG_CREATE_DIR = 1; @@ -145,6 +153,8 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements return; } + requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); + mDirectories = new CustomArrayAdapter(this, R.layout.sherlock_spinner_dropdown_item); mDirectories.add("/"); @@ -219,9 +229,20 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements super.onResume(); if(!accountsAreSetup()){ showDialog(DIALOG_SETUP_ACCOUNT); + return; } + IntentFilter f = new IntentFilter(FileSyncAdapter.SYNC_MESSAGE); + b = new BR(); + registerReceiver(b, f); + setProgressBarIndeterminateVisibility(false); } + @Override + protected void onPause() { + super.onPause(); + unregisterReceiver(b); + } + @Override public boolean onNavigationItemSelected(int itemPosition, long itemId) { int i = itemPosition; @@ -320,5 +341,20 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements return accounts.length > 0; } + private class BR extends BroadcastReceiver { + @Override + public void onReceive(Context context, Intent intent) { + boolean in_progress = intent.getBooleanExtra(FileSyncAdapter.IN_PROGRESS, false); + String account_name = intent.getStringExtra(FileSyncAdapter.ACCOUNT_NAME); + Log.d("FileDisplay", "sync of account " + account_name + " is in_progress: " + in_progress); + setProgressBarIndeterminateVisibility(in_progress); + if (!in_progress) { + FileListFragment f = (FileListFragment) getSupportFragmentManager().findFragmentById(R.id.fileList); + if (f != null) + f.populateFileList(); + } + } + + } } diff --git a/src/eu/alefzero/owncloud/ui/fragment/FileListFragment.java b/src/eu/alefzero/owncloud/ui/fragment/FileListFragment.java index 7541329b..3639ac62 100644 --- a/src/eu/alefzero/owncloud/ui/fragment/FileListFragment.java +++ b/src/eu/alefzero/owncloud/ui/fragment/FileListFragment.java @@ -101,7 +101,7 @@ public class FileListFragment extends FragmentListView { /** * Lists the directory */ - private void populateFileList() { + public void populateFileList() { String s = "/"; for (String a : mDirNames) s+= a + "/";