X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/a3a5cd4eb7e020d7a197dc266cc9d18f738266ad..d95d2ac85680c0dcb8a2d863d809c40b64a5808d:/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 02025226..1b42ff06 100644 --- a/src/com/owncloud/android/ui/activity/FileActivity.java +++ b/src/com/owncloud/android/ui/activity/FileActivity.java @@ -18,6 +18,8 @@ package com.owncloud.android.ui.activity; +import java.io.IOException; + import android.accounts.Account; import android.accounts.AccountManager; import android.accounts.AccountManagerCallback; @@ -48,6 +50,7 @@ import com.owncloud.android.files.services.FileDownloader; import com.owncloud.android.files.services.FileUploader; import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder; import com.owncloud.android.files.services.FileUploader.FileUploaderBinder; +import com.owncloud.android.lib.common.accounts.AccountUtils.AccountNotFoundException; import com.owncloud.android.lib.common.operations.OnRemoteOperationListener; import com.owncloud.android.lib.common.operations.RemoteOperation; import com.owncloud.android.lib.common.operations.RemoteOperationResult; @@ -195,6 +198,25 @@ implements OnRemoteOperationListener, ComponentsGetter { @Override protected void onPause() { + // Save cookies here + Log_OC.wtf(TAG, "Saving Cookies" ); + if (mAccount != null) { + try { + ((MainApp)getApplicationContext()).getOwnCloudClientManager(). + saveClient(mAccount, this); + + // TODO get rid of the exceptions + } catch (AccountNotFoundException e) { + e.printStackTrace(); + } catch (AuthenticatorException e) { + e.printStackTrace(); + } catch (OperationCanceledException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (mOperationsServiceBinder != null) { mOperationsServiceBinder.removeOperationListener(this); } @@ -447,6 +469,13 @@ implements OnRemoteOperationListener, ComponentsGetter { )) { requestCredentialsUpdate(); + + if (result.getCode() == ResultCode.UNAUTHORIZED) { + dismissLoadingDialog(); + Toast t = Toast.makeText(this, ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()), + Toast.LENGTH_LONG); + t.show(); + } } else if (operation instanceof CreateShareOperation) { onCreateShareOperationFinish((CreateShareOperation) operation, result); @@ -457,7 +486,7 @@ implements OnRemoteOperationListener, ComponentsGetter { } } - private void requestCredentialsUpdate() { + protected void requestCredentialsUpdate() { Intent updateAccountCredentials = new Intent(this, AuthenticatorActivity.class); updateAccountCredentials.putExtra(AuthenticatorActivity.EXTRA_ACCOUNT, getAccount()); updateAccountCredentials.putExtra(