X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/10c04c6d77de35025f697a2ad9bb8f18874a4acb..abf48afde301e30ff341fc154c9b678315783a9e:/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java diff --git a/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java b/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java index cac6fea5..294dbfa6 100644 --- a/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java +++ b/src/eu/alefzero/owncloud/ui/activity/FileDisplayActivity.java @@ -23,12 +23,16 @@ import android.accounts.AccountManager; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.app.Dialog; +import android.content.BroadcastReceiver; +import android.content.ContentResolver; +import android.content.Context; import android.content.DialogInterface; -import android.content.DialogInterface.OnCancelListener; import android.content.DialogInterface.OnClickListener; import android.content.Intent; +import android.content.IntentFilter; import android.net.Uri; import android.os.Bundle; +import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; @@ -41,6 +45,7 @@ import com.actionbarsherlock.app.SherlockFragmentActivity; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuInflater; import com.actionbarsherlock.view.MenuItem; +import com.actionbarsherlock.view.Window; import eu.alefzero.owncloud.AccountUtils; import eu.alefzero.owncloud.R; @@ -48,6 +53,7 @@ import eu.alefzero.owncloud.authenticator.AccountAuthenticator; import eu.alefzero.owncloud.datamodel.DataStorageManager; import eu.alefzero.owncloud.datamodel.FileDataStorageManager; import eu.alefzero.owncloud.datamodel.OCFile; +import eu.alefzero.owncloud.syncadapter.FileSyncService; import eu.alefzero.owncloud.ui.fragment.FileListFragment; import eu.alefzero.webdav.WebdavClient; @@ -63,6 +69,8 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements private ArrayAdapter mDirectories; private DataStorageManager mStorageManager; + private SyncBroadcastReceiver syncBroadcastRevceiver; + 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("/"); @@ -169,6 +179,14 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements showDialog(DIALOG_CREATE_DIR); break; } + case R.id.startSync: { + Bundle bundle = new Bundle(); + bundle.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true); + ContentResolver.requestSync(AccountUtils.getCurrentOwnCloudAccount(this), + "org.owncloud", + bundle); + break; + } case android.R.id.home: { onBackPressed(); break; @@ -219,9 +237,22 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements super.onResume(); if(!accountsAreSetup()){ showDialog(DIALOG_SETUP_ACCOUNT); + return; } + IntentFilter syncMessageIntentFilter = new IntentFilter(FileSyncService.SYNC_MESSAGE); + syncBroadcastRevceiver = new SyncBroadcastReceiver(); + registerReceiver(syncBroadcastRevceiver, syncMessageIntentFilter); + setProgressBarIndeterminateVisibility(false); } + @Override + protected void onPause() { + super.onPause(); + if(syncBroadcastRevceiver != null){ + unregisterReceiver(syncBroadcastRevceiver); + } + } + @Override public boolean onNavigationItemSelected(int itemPosition, long itemId) { int i = itemPosition; @@ -320,5 +351,23 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements return accounts.length > 0; } + private class SyncBroadcastReceiver extends BroadcastReceiver { + /** + * {@link BroadcastReceiver} to enable syncing feedback in UI + */ + @Override + public void onReceive(Context context, Intent intent) { + boolean inProgress = intent.getBooleanExtra(FileSyncService.IN_PROGRESS, false); + String account_name = intent.getStringExtra(FileSyncService.ACCOUNT_NAME); + Log.d("FileDisplay", "sync of account " + account_name + " is in_progress: " + inProgress); + setProgressBarIndeterminateVisibility(inProgress); + if (!inProgress) { + FileListFragment fileListFramgent = (FileListFragment) getSupportFragmentManager().findFragmentById(R.id.fileList); + if (fileListFramgent != null) + fileListFramgent.populateFileList(); + } + } + + } }