diff options
author | Adithya Abraham Philip <adithyaphilip@gmail.com> | 2015-03-22 03:31:13 +0530 |
---|---|---|
committer | Adithya Abraham Philip <adithyaphilip@gmail.com> | 2015-03-23 15:37:05 +0530 |
commit | 9f5581463f1b2d07217f59fa32346c786069dbf5 (patch) | |
tree | 3f3e8688dce87ba5253a9efe600f39456dbecc77 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentServiceHandler.java | |
parent | 19775c399b106149e8906a7482a4b5a4af2ac8fa (diff) | |
download | open-keychain-9f5581463f1b2d07217f59fa32346c786069dbf5.tar.gz open-keychain-9f5581463f1b2d07217f59fa32346c786069dbf5.tar.bz2 open-keychain-9f5581463f1b2d07217f59fa32346c786069dbf5.zip |
shifted multi-threading to own service
added multi-threaded cloud import, restored KeychainIntentService
eliminated code duplication in multi-threaded import
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentServiceHandler.java')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentServiceHandler.java | 166 |
1 files changed, 0 insertions, 166 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentServiceHandler.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentServiceHandler.java deleted file mode 100644 index 91a079a5d..000000000 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentServiceHandler.java +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Copyright (C) 2012-2013 Dominik Schürmann <dominik@dominikschuermann.de> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -package org.sufficientlysecure.keychain.service; - -import android.app.Activity; -import android.os.Bundle; -import android.os.Handler; -import android.os.Message; -import android.support.v4.app.FragmentActivity; -import android.support.v4.app.FragmentManager; - -import org.sufficientlysecure.keychain.Constants; -import org.sufficientlysecure.keychain.R; -import org.sufficientlysecure.keychain.ui.dialog.ProgressDialogFragment; -import org.sufficientlysecure.keychain.ui.util.Notify; -import org.sufficientlysecure.keychain.util.Log; - -public class KeychainIntentServiceHandler extends Handler { - - // possible messages sent from this service to handler on ui - public static enum MessageStatus{ - UNKNOWN, - OKAY, - EXCEPTION, - UPDATE_PROGRESS, - PREVENT_CANCEL; - - private static final MessageStatus[] values = values(); - - public static MessageStatus fromInt(int n) - { - if(n < 0 || n >= values.length) { - return UNKNOWN; - } else { - return values[n]; - } - } - } - - // possible data keys for messages - public static final String DATA_ERROR = "error"; - public static final String DATA_PROGRESS = "progress"; - public static final String DATA_PROGRESS_MAX = "max"; - public static final String DATA_MESSAGE = "message"; - public static final String DATA_MESSAGE_ID = "message_id"; - - // keybase proof specific - public static final String KEYBASE_PROOF_URL = "keybase_proof_url"; - public static final String KEYBASE_PRESENCE_URL = "keybase_presence_url"; - public static final String KEYBASE_PRESENCE_LABEL = "keybase_presence_label"; - - Activity mActivity; - ProgressDialogFragment mProgressDialogFragment; - - public KeychainIntentServiceHandler(Activity activity) { - this.mActivity = activity; - } - - public KeychainIntentServiceHandler(Activity activity, - ProgressDialogFragment progressDialogFragment) { - this.mActivity = activity; - this.mProgressDialogFragment = progressDialogFragment; - } - - public KeychainIntentServiceHandler(Activity activity, String progressDialogMessage, - int progressDialogStyle) { - this(activity, progressDialogMessage, progressDialogStyle, false); - } - - public KeychainIntentServiceHandler(Activity activity, String progressDialogMessage, - int progressDialogStyle, boolean cancelable) { - this.mActivity = activity; - this.mProgressDialogFragment = ProgressDialogFragment.newInstance( - progressDialogMessage, - progressDialogStyle, - cancelable); - } - - public void showProgressDialog(FragmentActivity activity) { - if (mProgressDialogFragment == null) { - return; - } - - // TODO: This is a hack!, see - // http://stackoverflow.com/questions/10114324/show-dialogfragment-from-onactivityresult - final FragmentManager manager = activity.getSupportFragmentManager(); - Handler handler = new Handler(); - handler.post(new Runnable() { - public void run() { - mProgressDialogFragment.show(manager, "progressDialog"); - } - }); - } - - @Override - public void handleMessage(Message message) { - Bundle data = message.getData(); - - if (mProgressDialogFragment == null) { - // Log.e(Constants.TAG, - // "Progress has not been updated because mProgressDialogFragment was null!"); - return; - } - - MessageStatus status = MessageStatus.fromInt(message.arg1); - switch (status) { - case OKAY: - mProgressDialogFragment.dismissAllowingStateLoss(); - - break; - - case EXCEPTION: - mProgressDialogFragment.dismissAllowingStateLoss(); - - // show error from service - if (data.containsKey(DATA_ERROR)) { - Notify.create(mActivity, - mActivity.getString(R.string.error_message, data.getString(DATA_ERROR)), - Notify.Style.ERROR).show(); - } - - break; - - case UPDATE_PROGRESS: - if (data.containsKey(DATA_PROGRESS) && data.containsKey(DATA_PROGRESS_MAX)) { - - // update progress from service - if (data.containsKey(DATA_MESSAGE)) { - mProgressDialogFragment.setProgress(data.getString(DATA_MESSAGE), - data.getInt(DATA_PROGRESS), data.getInt(DATA_PROGRESS_MAX)); - } else if (data.containsKey(DATA_MESSAGE_ID)) { - mProgressDialogFragment.setProgress(data.getInt(DATA_MESSAGE_ID), - data.getInt(DATA_PROGRESS), data.getInt(DATA_PROGRESS_MAX)); - } else { - mProgressDialogFragment.setProgress(data.getInt(DATA_PROGRESS), - data.getInt(DATA_PROGRESS_MAX)); - } - } - - break; - - case PREVENT_CANCEL: - mProgressDialogFragment.setPreventCancel(true); - break; - - default: - Log.e(Constants.TAG, "unknown handler message!"); - break; - } - } -} |