X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/856038af0d2b8c5e19bee706a53f5010467a55a5..5b792b044056bc0a547803ff52f30b9da457870e:/src/com/owncloud/android/ui/activity/FileActivity.java diff --git a/src/com/owncloud/android/ui/activity/FileActivity.java b/src/com/owncloud/android/ui/activity/FileActivity.java index cfada45c..2cd28dd9 100644 --- a/src/com/owncloud/android/ui/activity/FileActivity.java +++ b/src/com/owncloud/android/ui/activity/FileActivity.java @@ -60,6 +60,12 @@ public abstract class FileActivity extends SherlockFragmentActivity { /** Flag to signal that the activity will is finishing to enforce the creation of an ownCloud {@link Account} */ private boolean mRedirectingToSetupAccount = false; + /** Flag to signal when the value of mAccount was set */ + private boolean mAccountWasSet; + + /** Flag to signal when the value of mAccount was restored from a saved state */ + private boolean mAccountWasRestored; + /** * Loads the cownCloud {@link Account} and main {@link OCFile} to be handled by the instance of @@ -80,9 +86,14 @@ public abstract class FileActivity extends SherlockFragmentActivity { mFile = getIntent().getParcelableExtra(FileActivity.EXTRA_FILE); } + Account oldAccount = mAccount; grantValidAccount(); if (mAccount != null) { - onAccountSet(savedInstanceState != null); + mAccountWasSet = true; + mAccountWasRestored = (savedInstanceState != null && mAccount.equals(oldAccount)); + } else { + mAccountWasSet = false; + mAccountWasRestored = false; } } @@ -99,11 +110,15 @@ public abstract class FileActivity extends SherlockFragmentActivity { Account oldAccount = mAccount; grantValidAccount(); if (mAccount != null && !mAccount.equals(oldAccount)) { - onAccountSet(false); + mAccountWasSet = true; + mAccountWasRestored = false; + } else { + mAccountWasSet = false; + mAccountWasRestored = false; } } + - /** * Validates the ownCloud {@link Account} associated to the Activity any time it is restarted. * @@ -126,6 +141,16 @@ public abstract class FileActivity extends SherlockFragmentActivity { } + @Override + protected void onStart() { + // maybe better in onPostCreate() ? + super.onStart(); + if (mAccountWasSet) { + onAccountSet(mAccountWasRestored); + } + } + + /** * Launches the account creation activity. To use when no ownCloud account is available */ @@ -214,7 +239,7 @@ public abstract class FileActivity extends SherlockFragmentActivity { FileActivity.this.onAccountSet(false); } } catch (OperationCanceledException e) { - Log_OC.e(TAG, "Account creation canceled"); + Log_OC.d(TAG, "Account creation canceled"); } catch (Exception e) { Log_OC.e(TAG, "Account creation finished in exception: ", e); @@ -224,7 +249,7 @@ public abstract class FileActivity extends SherlockFragmentActivity { Log_OC.e(TAG, "Account creation callback with null bundle"); } if (mAccount == null) { - finish(); + moveTaskToBack(true); } }