From 9a16c9609610bd9dd7969cdc9048724ccfbdffdc Mon Sep 17 00:00:00 2001 From: steckbrief Date: Mon, 26 Nov 2018 23:56:45 +0100 Subject: first version of NextcloudShareBookmark --- .../share/async/NextcloudCheckCredentialsTask.java | 76 ++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 app/src/main/java/de/thedevstack/android/nextcloud/bookmark/share/async/NextcloudCheckCredentialsTask.java (limited to 'app/src/main/java/de/thedevstack/android/nextcloud/bookmark/share/async/NextcloudCheckCredentialsTask.java') diff --git a/app/src/main/java/de/thedevstack/android/nextcloud/bookmark/share/async/NextcloudCheckCredentialsTask.java b/app/src/main/java/de/thedevstack/android/nextcloud/bookmark/share/async/NextcloudCheckCredentialsTask.java new file mode 100644 index 0000000..b701197 --- /dev/null +++ b/app/src/main/java/de/thedevstack/android/nextcloud/bookmark/share/async/NextcloudCheckCredentialsTask.java @@ -0,0 +1,76 @@ +package de.thedevstack.android.nextcloud.bookmark.share.async; + +import android.content.Intent; +import android.preference.PreferenceManager; +import android.util.Log; +import android.widget.Toast; + +import de.thedevstack.android.nextcloud.bookmark.share.Constants; +import de.thedevstack.android.nextcloud.bookmark.share.NextcloudBookmark; +import de.thedevstack.android.nextcloud.bookmark.share.NextcloudBookmarkService; +import de.thedevstack.android.nextcloud.bookmark.share.R; +import de.thedevstack.android.nextcloud.bookmark.share.activities.NextcloudPreferencesActivity; + +/** + * Represents an asynchronous login/registration task used to authenticate + * the user. + */ +public class NextcloudCheckCredentialsTask extends NextcloudBookmarkRestAsyncTask { + private NextcloudPreferencesActivity preferencesActivity; + private NextcloudSettings ncSettings; + private NextcloudBookmark bookmark; + + public NextcloudCheckCredentialsTask(NextcloudPreferencesActivity preferencesActivity, NextcloudBookmark bookmark, String serverUrl, String username, String password) { + this(preferencesActivity, serverUrl, username, password); + this.bookmark = bookmark; + } + + public NextcloudCheckCredentialsTask(NextcloudPreferencesActivity preferencesActivity, String serverUrl, String username, String password) { + super(serverUrl, username, password); + this.preferencesActivity = preferencesActivity; + this.ncSettings = new NextcloudSettings(); + this.ncSettings.serverUrl = serverUrl; + this.ncSettings.username = username; + this.ncSettings.password = password; + } + + @Override + protected Boolean doInBackground(Intent... params) { + return this.client.checkCredentials(); + } + + @Override + protected void onPostExecute(final Boolean success) { + this.preferencesActivity.stopProgress(); + + Log.d("NCCheckCredentials", "result is " + success); + if (success) { + Log.d("NCCheckCredentials", "applying preferences"); + PreferenceManager.getDefaultSharedPreferences(this.preferencesActivity.getApplicationContext()) + .edit() + .putString(Constants.SERVER_URL_PREFERENCE_KEY, this.ncSettings.serverUrl) + .putString(Constants.USERNAME_PREFERENCE_KEY, this.ncSettings.username) + .putString(Constants.PASSWORD_PREFERENCE_KEY, this.ncSettings.password) + .commit(); + if (null != this.bookmark) { + NextcloudBookmarkService.addBookmark(this.preferencesActivity, this.bookmark); + this.preferencesActivity.finish(); + } else { + Toast.makeText(this.preferencesActivity, R.string.toast_settings_update_success, Toast.LENGTH_LONG).show(); + } + } else { + this.preferencesActivity.showIncorrectPassword(); + } + } + + @Override + protected void onCancelled() { + this.preferencesActivity.stopProgress(); + } + + private class NextcloudSettings { + String serverUrl; + String username; + String password; + } +} \ No newline at end of file -- cgit v1.2.3