diff options
Diffstat (limited to 'app/src/main/java/de/thedevstack/android/nextcloud/bookmark/share/async')
3 files changed, 146 insertions, 0 deletions
diff --git a/app/src/main/java/de/thedevstack/android/nextcloud/bookmark/share/async/NextcloudAddBookmarkAsyncTask.java b/app/src/main/java/de/thedevstack/android/nextcloud/bookmark/share/async/NextcloudAddBookmarkAsyncTask.java new file mode 100644 index 0000000..14ddcfd --- /dev/null +++ b/app/src/main/java/de/thedevstack/android/nextcloud/bookmark/share/async/NextcloudAddBookmarkAsyncTask.java @@ -0,0 +1,40 @@ +package de.thedevstack.android.nextcloud.bookmark.share.async; + +import android.app.Activity; +import android.util.Log; +import android.widget.Toast; + +import de.thedevstack.android.nextcloud.bookmark.share.R; + +/** + */ +public class NextcloudAddBookmarkAsyncTask extends NextcloudBookmarkRestAsyncTask<String, Integer> { + + public NextcloudAddBookmarkAsyncTask(Activity context) { + super(context.getApplicationContext()); + } + + @Override + protected void onPreExecute() { + super.onPreExecute(); + } + + @Override + protected Integer doInBackground(String... params) { + String bookmarkUrl = params[0]; + //String bookmarkTitle = params[1]; + + return this.client.addBookmark(bookmarkUrl); + } + + @Override + protected void onPostExecute(Integer resultCode) { + if (200 == resultCode) { + Log.i("NCAddBookmarkAsync", "Bookmark successfully set"); + Toast.makeText(context, R.string.toast_bookmark_add_success, Toast.LENGTH_LONG).show(); + } else { + Log.e("NCAddBookmarkAsync", "Failed to set Bookmark"); + Toast.makeText(context, R.string.toast_bookmark_add_failed, Toast.LENGTH_LONG).show(); + } + } +} diff --git a/app/src/main/java/de/thedevstack/android/nextcloud/bookmark/share/async/NextcloudBookmarkRestAsyncTask.java b/app/src/main/java/de/thedevstack/android/nextcloud/bookmark/share/async/NextcloudBookmarkRestAsyncTask.java new file mode 100644 index 0000000..c1100e0 --- /dev/null +++ b/app/src/main/java/de/thedevstack/android/nextcloud/bookmark/share/async/NextcloudBookmarkRestAsyncTask.java @@ -0,0 +1,30 @@ +package de.thedevstack.android.nextcloud.bookmark.share.async; + +import android.content.Context; +import android.content.SharedPreferences; +import android.os.AsyncTask; +import android.preference.PreferenceManager; + +import de.thedevstack.android.nextcloud.bookmark.share.Constants; +import de.thedevstack.android.nextcloud.bookmark.share.rest.NextcloudBookmarkRestClient; + +/** + */ +public abstract class NextcloudBookmarkRestAsyncTask<Params, Result> extends AsyncTask<Params, Void, Result> { + protected NextcloudBookmarkRestClient client; + protected Context context; + + public NextcloudBookmarkRestAsyncTask(Context context){ + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + String serverUrl = prefs.getString(Constants.SERVER_URL_PREFERENCE_KEY, null); + String username = prefs.getString(Constants.USERNAME_PREFERENCE_KEY, null); + String password = prefs.getString(Constants.PASSWORD_PREFERENCE_KEY, null); + + this.client = new NextcloudBookmarkRestClient(serverUrl, username, password); + this.context = context; + } + + public NextcloudBookmarkRestAsyncTask(String serverUrl, String username, String password) { + this.client = new NextcloudBookmarkRestClient(serverUrl, username, password); + } +} 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<Intent, Boolean> { + 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 |