X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/5ca823ac925b5e063307112aa78a2816c2f5f3bc..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 3522ea00..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,13 +45,15 @@ 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; import eu.alefzero.owncloud.authenticator.AccountAuthenticator; -import eu.alefzero.owncloud.authenticator.AuthUtils; 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; @@ -93,7 +101,7 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements { builder = new Builder(this); final EditText dirName = new EditText(getBaseContext()); - final Account a = AuthUtils.getCurrentOwnCloudAccount(this); + final Account a = AccountUtils.getCurrentOwnCloudAccount(this); builder.setView(dirName); builder.setTitle(R.string.uploader_info_dirname); dirName.setTextColor(R.color.setup_text_typed); @@ -145,11 +153,13 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements return; } + requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); + mDirectories = new CustomArrayAdapter(this, R.layout.sherlock_spinner_dropdown_item); mDirectories.add("/"); setContentView(R.layout.files); - mStorageManager = new FileDataStorageManager(AuthUtils.getCurrentOwnCloudAccount(this), getContentResolver()); + mStorageManager = new FileDataStorageManager(AccountUtils.getCurrentOwnCloudAccount(this), getContentResolver()); ActionBar action_bar = getSupportActionBar(); action_bar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); action_bar.setDisplayShowTitleEnabled(false); @@ -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(); + } + } + + } }