From: David A. Velasco Date: Thu, 23 Aug 2012 09:28:40 +0000 (+0200) Subject: Granted update of file list view after removing the currently selected account from... X-Git-Tag: oc-android-1.4.3~192 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/11117ace1530d2cfd21b85f9dcd6804938b5f341 Granted update of file list view after removing the currently selected account from 'manage accounts' activity --- diff --git a/src/com/owncloud/android/ui/activity/AccountSelectActivity.java b/src/com/owncloud/android/ui/activity/AccountSelectActivity.java index 78ec8c0f..50f76258 100644 --- a/src/com/owncloud/android/ui/activity/AccountSelectActivity.java +++ b/src/com/owncloud/android/ui/activity/AccountSelectActivity.java @@ -40,12 +40,21 @@ import com.owncloud.android.R; public class AccountSelectActivity extends SherlockListActivity implements AccountManagerCallback { + private static final String PREVIOUS_ACCOUNT_KEY = "ACCOUNT"; + private final Handler mHandler = new Handler(); + private Account mPreviousAccount = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + if (savedInstanceState != null) { + mPreviousAccount = savedInstanceState.getParcelable(PREVIOUS_ACCOUNT_KEY); + } else { + mPreviousAccount = AccountUtils.getCurrentOwnCloudAccount(this); + } + ActionBar action_bar = getSupportActionBar(); action_bar.setDisplayShowTitleEnabled(true); action_bar.setDisplayHomeAsUpEnabled(false); @@ -56,6 +65,29 @@ public class AccountSelectActivity extends SherlockListActivity implements super.onResume(); populateAccountList(); } + + @Override + protected void onPause() { + super.onPause(); + if (this.isFinishing()) { + Account current = AccountUtils.getCurrentOwnCloudAccount(this); + if ((mPreviousAccount == null && current != null) || + (mPreviousAccount != null && !mPreviousAccount.equals(current))) { + /// the account set as default changed since this activity was created + + // trigger synchronization + ContentResolver.cancelSync(null, AccountAuthenticator.AUTH_TOKEN_TYPE); + Bundle bundle = new Bundle(); + bundle.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true); + ContentResolver.requestSync(AccountUtils.getCurrentOwnCloudAccount(this), AccountAuthenticator.AUTH_TOKEN_TYPE, bundle); + + // restart the main activity + Intent i = new Intent(this, FileDisplayActivity.class); + i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(i); + } + } + } @Override public boolean onCreateOptionsMenu(Menu menu) { @@ -76,17 +108,7 @@ public class AccountSelectActivity extends SherlockListActivity implements String accountName = ((TextView) v.findViewById(android.R.id.text1)) .getText().toString(); AccountUtils.setCurrentOwnCloudAccount(this, accountName); - - // trigger synchronization when current account is changed - ContentResolver.cancelSync(null, "org.owncloud"); - Bundle bundle = new Bundle(); - bundle.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true); - ContentResolver.requestSync(AccountUtils.getCurrentOwnCloudAccount(this), "org.owncloud", bundle); - - Intent i = new Intent(this, FileDisplayActivity.class); - i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); - startActivity(i); - finish(); + finish(); // immediate exit } @Override