diff options
author | Dominik <dominik@dominikschuermann.de> | 2012-06-09 03:46:30 +0300 |
---|---|---|
committer | Dominik <dominik@dominikschuermann.de> | 2012-06-13 19:28:23 +0300 |
commit | 5a51f7912694db0f24588b07cd21ca4f94fe9101 (patch) | |
tree | 4f45e02f5aef854b22e92ca7a5de878278121157 /org_apg/src/org/thialfihar/android/apg/ui | |
parent | 7b61ad24d7b9b4d633d924dd7db38758012e4a8e (diff) | |
download | open-keychain-5a51f7912694db0f24588b07cd21ca4f94fe9101.tar.gz open-keychain-5a51f7912694db0f24588b07cd21ca4f94fe9101.tar.bz2 open-keychain-5a51f7912694db0f24588b07cd21ca4f94fe9101.zip |
working on externalizing encrypt methods into the service
Diffstat (limited to 'org_apg/src/org/thialfihar/android/apg/ui')
6 files changed, 166 insertions, 195 deletions
diff --git a/org_apg/src/org/thialfihar/android/apg/ui/BaseActivity.java b/org_apg/src/org/thialfihar/android/apg/ui/BaseActivity.java index bd883f76d..86e3bdfc8 100644 --- a/org_apg/src/org/thialfihar/android/apg/ui/BaseActivity.java +++ b/org_apg/src/org/thialfihar/android/apg/ui/BaseActivity.java @@ -22,13 +22,13 @@ import java.io.IOException; import org.thialfihar.android.apg.R; import org.thialfihar.android.apg.Apg; -import org.thialfihar.android.apg.AskForSecretKeyPassPhrase; import org.thialfihar.android.apg.Constants; import org.thialfihar.android.apg.Id; import org.thialfihar.android.apg.PausableThread; import org.thialfihar.android.apg.Preferences; import org.thialfihar.android.apg.ProgressDialogUpdater; -import org.thialfihar.android.apg.service.PassphraseCacheService; +import org.thialfihar.android.apg.passphrase.AskForPassphrase; +import org.thialfihar.android.apg.passphrase.PassphraseCacheService; import com.actionbarsherlock.app.ActionBar; import com.actionbarsherlock.app.SherlockActivity; @@ -50,7 +50,7 @@ import android.support.v4.app.Fragment; import android.widget.Toast; public class BaseActivity extends SherlockFragmentActivity implements Runnable, - ProgressDialogUpdater, AskForSecretKeyPassPhrase.PassPhraseCallbackInterface { + ProgressDialogUpdater, AskForPassphrase.PassPhraseCallbackInterface { private ProgressDialog mProgressDialog = null; private PausableThread mRunningThread = null; @@ -76,6 +76,7 @@ public class BaseActivity extends SherlockFragmentActivity implements Runnable, actionBar.setDisplayShowTitleEnabled(true); actionBar.setDisplayHomeAsUpEnabled(true); + // not needed later: mPreferences = Preferences.getPreferences(this); Apg.initialize(this); @@ -88,14 +89,14 @@ public class BaseActivity extends SherlockFragmentActivity implements Runnable, } } - startCacheService(this, mPreferences); +// startCacheService(this, mPreferences); } - public static void startCacheService(Activity activity, Preferences preferences) { - Intent intent = new Intent(activity, PassphraseCacheService.class); - intent.putExtra(PassphraseCacheService.EXTRA_TTL, preferences.getPassPhraseCacheTtl()); - activity.startService(intent); - } +// public static void startCacheService(Activity activity, Preferences preferences) { +// Intent intent = new Intent(activity, PassphraseCacheService.class); +// intent.putExtra(PassphraseCacheService.EXTRA_TTL, preferences.getPassPhraseCacheTtl()); +// activity.startService(intent); +// } @Override public boolean onOptionsItemSelected(MenuItem item) { @@ -177,7 +178,7 @@ public class BaseActivity extends SherlockFragmentActivity implements Runnable, switch (id) { case Id.dialog.pass_phrase: { - return AskForSecretKeyPassPhrase.createDialog(this, getSecretKeyId(), this); + return AskForPassphrase.createDialog(this, getSecretKeyId(), this); } case Id.dialog.pass_phrases_do_not_match: { @@ -373,6 +374,7 @@ public class BaseActivity extends SherlockFragmentActivity implements Runnable, } public void passPhraseCallback(long keyId, String passPhrase) { + // TODO: Not needed anymore, now implemented in AskForSecretKeyPass Apg.setCachedPassPhrase(keyId, passPhrase); } diff --git a/org_apg/src/org/thialfihar/android/apg/ui/EditKeyActivity.java b/org_apg/src/org/thialfihar/android/apg/ui/EditKeyActivity.java index aebc958a0..310fcd915 100644 --- a/org_apg/src/org/thialfihar/android/apg/ui/EditKeyActivity.java +++ b/org_apg/src/org/thialfihar/android/apg/ui/EditKeyActivity.java @@ -207,10 +207,10 @@ public class EditKeyActivity extends SherlockFragmentActivity { Bundle data = message.getData(); PGPSecretKeyRing masterKeyRing = Utils .BytesToPGPSecretKeyRing(data - .getByteArray(ApgHandler.RESULT_NEW_KEY)); + .getByteArray(ApgService.RESULT_NEW_KEY)); PGPSecretKeyRing subKeyRing = Utils .BytesToPGPSecretKeyRing(data - .getByteArray(ApgHandler.RESULT_NEW_KEY2)); + .getByteArray(ApgService.RESULT_NEW_KEY2)); // add master key Iterator<PGPSecretKey> masterIt = masterKeyRing.getSecretKeys(); @@ -419,14 +419,10 @@ public class EditKeyActivity extends SherlockFragmentActivity { Bundle data = new Bundle(); data.putString(ApgService.CURRENT_PASSPHRASE, mCurrentPassPhrase); data.putString(ApgService.NEW_PASSPHRASE, mNewPassPhrase); - data.putSerializable(ApgService.USER_IDS, getUserIds(mUserIdsView)); - Vector<PGPSecretKey> keys = getKeys(mKeysView); data.putByteArray(ApgService.KEYS, Utils.PGPSecretKeyListToBytes(keys)); - data.putSerializable(ApgService.KEYS_USAGES, getKeysUsages(mKeysView)); - data.putLong(ApgService.MASTER_KEY_ID, getMasterKeyId()); intent.putExtra(ApgService.EXTRA_DATA, data); diff --git a/org_apg/src/org/thialfihar/android/apg/ui/EncryptActivity.java b/org_apg/src/org/thialfihar/android/apg/ui/EncryptActivity.java index a6a4efb18..af8755d12 100644 --- a/org_apg/src/org/thialfihar/android/apg/ui/EncryptActivity.java +++ b/org_apg/src/org/thialfihar/android/apg/ui/EncryptActivity.java @@ -16,7 +16,6 @@ package org.thialfihar.android.apg.ui; -import org.spongycastle.openpgp.PGPException; import org.spongycastle.openpgp.PGPPublicKey; import org.spongycastle.openpgp.PGPPublicKeyRing; import org.spongycastle.openpgp.PGPSecretKey; @@ -27,22 +26,28 @@ import org.thialfihar.android.apg.DataDestination; import org.thialfihar.android.apg.DataSource; import org.thialfihar.android.apg.FileDialog; import org.thialfihar.android.apg.Id; -import org.thialfihar.android.apg.InputData; -import org.thialfihar.android.apg.provider.DataProvider; +import org.thialfihar.android.apg.Preferences; +import org.thialfihar.android.apg.passphrase.AskForPassphrase; +import org.thialfihar.android.apg.service.ApgHandler; +import org.thialfihar.android.apg.service.ApgService; import org.thialfihar.android.apg.util.Choice; import org.thialfihar.android.apg.util.Compatibility; import org.thialfihar.android.apg.R; import com.actionbarsherlock.app.ActionBar; +import com.actionbarsherlock.app.SherlockFragmentActivity; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuItem; import android.app.Dialog; +import android.app.ProgressDialog; import android.content.ActivityNotFoundException; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.os.Message; +import android.os.Messenger; +import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.view.animation.AnimationUtils; @@ -57,17 +62,11 @@ import android.widget.TextView; import android.widget.Toast; import android.widget.ViewFlipper; -import java.io.ByteArrayOutputStream; import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.security.NoSuchAlgorithmException; -import java.security.NoSuchProviderException; -import java.security.SignatureException; import java.util.Vector; -public class EncryptActivity extends BaseActivity { +public class EncryptActivity extends SherlockFragmentActivity implements + AskForPassphrase.PassPhraseCallbackInterface { private Intent mIntent = null; private String mSubject = null; private String mSendTo = null; @@ -121,6 +120,10 @@ public class EncryptActivity extends BaseActivity { private boolean mGenerateSignature = false; + private long mSecretKeyId = 0; + + private ProgressDialogFragment mEncryptingDialog; + @Override public boolean onCreateOptionsMenu(Menu menu) { @@ -266,7 +269,7 @@ public class EncryptActivity extends BaseActivity { adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); mFileCompression.setAdapter(adapter); - int defaultFileCompression = mPreferences.getDefaultFileCompression(); + int defaultFileCompression = Preferences.getPreferences(this).getDefaultFileCompression(); for (int i = 0; i < choices.length; ++i) { if (choices[i].getId() == defaultFileCompression) { mFileCompression.setSelection(i); @@ -277,7 +280,7 @@ public class EncryptActivity extends BaseActivity { mDeleteAfter = (CheckBox) findViewById(R.id.deleteAfterEncryption); mAsciiArmour = (CheckBox) findViewById(R.id.asciiArmour); - mAsciiArmour.setChecked(mPreferences.getDefaultAsciiArmour()); + mAsciiArmour.setChecked(Preferences.getPreferences(this).getDefaultAsciiArmour()); mAsciiArmour.setOnClickListener(new OnClickListener() { public void onClick(View view) { guessOutputFilename(); @@ -657,7 +660,7 @@ public class EncryptActivity extends BaseActivity { @Override public void passPhraseCallback(long keyId, String passPhrase) { - super.passPhraseCallback(keyId, passPhrase); + // super.passPhraseCallback(keyId, passPhrase); if (mEncryptTarget == Id.target.file) { askForOutputFilename(); } else { @@ -667,122 +670,151 @@ public class EncryptActivity extends BaseActivity { private void encryptStart() { showDialog(Id.dialog.encrypting); - startThread(); - } + // startThread(); - @Override - public void run() { - String error = null; - Bundle data = new Bundle(); - Message msg = new Message(); + boolean useAsciiArmour = true; + long encryptionKeyIds[] = null; + long signatureKeyId = 0; + int compressionId = 0; + boolean signOnly = false; - try { - InputData in; - OutputStream out; - boolean useAsciiArmour = true; - long encryptionKeyIds[] = null; - long signatureKeyId = 0; - int compressionId = 0; - boolean signOnly = false; - - String passPhrase = null; - if (mMode.getCurrentView().getId() == R.id.modeSymmetric) { - passPhrase = mPassPhrase.getText().toString(); - if (passPhrase.length() == 0) { - passPhrase = null; - } - } else { - encryptionKeyIds = mEncryptionKeyIds; - signatureKeyId = getSecretKeyId(); - signOnly = (mEncryptionKeyIds == null || mEncryptionKeyIds.length == 0); + String passPhrase = null; + if (mMode.getCurrentView().getId() == R.id.modeSymmetric) { + passPhrase = mPassPhrase.getText().toString(); + if (passPhrase.length() == 0) { + passPhrase = null; } + } else { + encryptionKeyIds = mEncryptionKeyIds; + signatureKeyId = getSecretKeyId(); + signOnly = (mEncryptionKeyIds == null || mEncryptionKeyIds.length == 0); + } - fillDataSource(signOnly && !mReturnResult); - fillDataDestination(); + fillDataSource(signOnly && !mReturnResult); + fillDataDestination(); - // streams - in = mDataSource.getInputData(this, true); - out = mDataDestination.getOutputStream(this); + // Send all information needed to service to edit key in other thread + Intent intent = new Intent(this, ApgService.class); - if (mEncryptTarget == Id.target.file) { - useAsciiArmour = mAsciiArmour.isChecked(); - compressionId = ((Choice) mFileCompression.getSelectedItem()).getId(); - } else { - useAsciiArmour = true; - compressionId = mPreferences.getDefaultMessageCompression(); - } + // fill values for this action + Bundle data = new Bundle(); - if (mOverrideAsciiArmour) { - useAsciiArmour = mAsciiArmourDemand; - } + // choose default settings, action and data bundle by target + if (mEncryptTarget == Id.target.file) { + useAsciiArmour = mAsciiArmour.isChecked(); + compressionId = ((Choice) mFileCompression.getSelectedItem()).getId(); - if (mGenerateSignature) { - Apg.generateSignature(this, in, out, useAsciiArmour, mDataSource.isBinary(), - getSecretKeyId(), Apg.getCachedPassPhrase(getSecretKeyId()), - mPreferences.getDefaultHashAlgorithm(), - mPreferences.getForceV3Signatures(), this); - } else if (signOnly) { - Apg.signText(this, in, out, getSecretKeyId(), - Apg.getCachedPassPhrase(getSecretKeyId()), - mPreferences.getDefaultHashAlgorithm(), - mPreferences.getForceV3Signatures(), this); - } else { - Apg.encrypt(this, in, out, useAsciiArmour, encryptionKeyIds, signatureKeyId, - Apg.getCachedPassPhrase(signatureKeyId), this, - mPreferences.getDefaultEncryptionAlgorithm(), - mPreferences.getDefaultHashAlgorithm(), compressionId, - mPreferences.getForceV3Signatures(), passPhrase); - } + intent.putExtra(ApgService.EXTRA_ACTION, ApgService.ACTION_ENCRYPT_SIGN_FILE); - out.close(); - if (mEncryptTarget != Id.target.file) { + data.putString(ApgService.FILE_URI, mDataSource.getUri().toString()); - if (out instanceof ByteArrayOutputStream) { - if (useAsciiArmour) { - String extraData = new String(((ByteArrayOutputStream) out).toByteArray()); - if (mGenerateSignature) { - data.putString(Apg.EXTRA_SIGNATURE_TEXT, extraData); - } else { - data.putString(Apg.EXTRA_ENCRYPTED_MESSAGE, extraData); + } else { + useAsciiArmour = true; + compressionId = Preferences.getPreferences(this).getDefaultMessageCompression(); + + intent.putExtra(ApgService.EXTRA_ACTION, ApgService.ACTION_ENCRYPT_SIGN_BYTES); + + data.putByteArray(ApgService.BYTES, mDataSource.getBytes()); + } + + if (mOverrideAsciiArmour) { + useAsciiArmour = mAsciiArmourDemand; + } + + data.putLong(ApgService.SECRET_KEY_ID, getSecretKeyId()); + data.putBoolean(ApgService.USE_ASCII_AMOR, useAsciiArmour); + data.putLongArray(ApgService.ENCRYPTION_KEYS_IDS, encryptionKeyIds); + data.putLong(ApgService.SIGNATURE_KEY_ID, signatureKeyId); + data.putInt(ApgService.COMPRESSION_ID, compressionId); + data.putBoolean(ApgService.GENERATE_SIGNATURE, mGenerateSignature); + data.putBoolean(ApgService.SIGN_ONLY, signOnly); + + intent.putExtra(ApgService.EXTRA_DATA, data); + + // show progress dialog + mEncryptingDialog = ProgressDialogFragment.newInstance(R.string.progress_encrypting, + ProgressDialog.STYLE_HORIZONTAL); + + // Message is received after saving is done in ApgService + ApgHandler saveHandler = new ApgHandler(this, mEncryptingDialog) { + public void handleMessage(Message message) { + // handle messages by standard ApgHandler first + super.handleMessage(message); + + if (message.arg1 == ApgHandler.MESSAGE_OKAY) { + // get returned data bundle + Bundle data = message.getData(); + + String output; + switch (mEncryptTarget) { + case Id.target.clipboard: + output = data.getString(ApgService.RESULT_ENCRYPTED_MESSAGE); + Log.d(Constants.TAG, "output: " + output); + Compatibility.copyToClipboard(EncryptActivity.this, output); + Toast.makeText(EncryptActivity.this, + R.string.encryptionToClipboardSuccessful, Toast.LENGTH_SHORT) + .show(); + break; + + case Id.target.email: + if (mReturnResult) { + Intent intent = new Intent(); + intent.putExtras(data); + setResult(RESULT_OK, intent); + finish(); + return; } - } else { - byte extraData[] = ((ByteArrayOutputStream) out).toByteArray(); - if (mGenerateSignature) { - data.putByteArray(Apg.EXTRA_SIGNATURE_DATA, extraData); - } else { - data.putByteArray(Apg.EXTRA_ENCRYPTED_DATA, extraData); + + output = data.getString(ApgService.RESULT_ENCRYPTED_MESSAGE); + Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); + emailIntent.setType("text/plain; charset=utf-8"); + emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, message); + if (mSubject != null) { + emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, mSubject); + } + if (mSendTo != null) { + emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, + new String[] { mSendTo }); + } + EncryptActivity.this.startActivity(Intent.createChooser(emailIntent, + getString(R.string.title_sendEmail))); + break; + + case Id.target.file: + Toast.makeText(EncryptActivity.this, R.string.encryptionSuccessful, + Toast.LENGTH_SHORT).show(); + if (mDeleteAfter.isChecked()) { + // TODO: Reimplement that! + // setDeleteFile(mInputFilename); + // showDialog(Id.dialog.delete_file); } + break; + + default: + // shouldn't happen + break; + } - } else if (out instanceof FileOutputStream) { - String fileName = mDataDestination.getStreamFilename(); - String uri = "content://" + DataProvider.AUTHORITY + "/data/" + fileName; - data.putString(Apg.EXTRA_RESULT_URI, uri); - } else { - throw new Apg.GeneralException("No output-data found."); } - } - } catch (IOException e) { - error = "" + e; - } catch (PGPException e) { - error = "" + e; - } catch (NoSuchProviderException e) { - error = "" + e; - } catch (NoSuchAlgorithmException e) { - error = "" + e; - } catch (SignatureException e) { - error = "" + e; - } catch (Apg.GeneralException e) { - error = "" + e; - } + }; + }; - data.putInt(Constants.extras.STATUS, Id.message.done); + // Create a new Messenger for the communication back + Messenger messenger = new Messenger(saveHandler); + intent.putExtra(ApgService.EXTRA_MESSENGER, messenger); - if (error != null) { - data.putString(Apg.EXTRA_ERROR, error); - } + mEncryptingDialog.show(getSupportFragmentManager(), "dialog"); - msg.setData(data); - sendMessage(msg); + // start service with intent + startService(intent); + } + + public void setSecretKeyId(long id) { + mSecretKeyId = id; + } + + public long getSecretKeyId() { + return mSecretKeyId; } private void updateView() { @@ -912,68 +944,6 @@ public class EncryptActivity extends BaseActivity { } @Override - public void doneCallback(Message msg) { - super.doneCallback(msg); - - removeDialog(Id.dialog.encrypting); - - Bundle data = msg.getData(); - String error = data.getString(Apg.EXTRA_ERROR); - if (error != null) { - Toast.makeText(this, getString(R.string.errorMessage, error), Toast.LENGTH_SHORT) - .show(); - return; - } - switch (mEncryptTarget) { - case Id.target.clipboard: { - String message = data.getString(Apg.EXTRA_ENCRYPTED_MESSAGE); - Compatibility.copyToClipboard(this, message); - Toast.makeText(this, R.string.encryptionToClipboardSuccessful, Toast.LENGTH_SHORT) - .show(); - break; - } - - case Id.target.email: { - if (mReturnResult) { - Intent intent = new Intent(); - intent.putExtras(data); - setResult(RESULT_OK, intent); - finish(); - return; - } - - String message = data.getString(Apg.EXTRA_ENCRYPTED_MESSAGE); - Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); - emailIntent.setType("text/plain; charset=utf-8"); - emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, message); - if (mSubject != null) { - emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, mSubject); - } - if (mSendTo != null) { - emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] { mSendTo }); - } - EncryptActivity.this.startActivity(Intent.createChooser(emailIntent, - getString(R.string.title_sendEmail))); - break; - } - - case Id.target.file: { - Toast.makeText(this, R.string.encryptionSuccessful, Toast.LENGTH_SHORT).show(); - if (mDeleteAfter.isChecked()) { - setDeleteFile(mInputFilename); - showDialog(Id.dialog.delete_file); - } - break; - } - - default: { - // shouldn't happen - break; - } - } - } - - @Override protected Dialog onCreateDialog(int id) { switch (id) { case Id.dialog.output_filename: { diff --git a/org_apg/src/org/thialfihar/android/apg/ui/PreferencesActivity.java b/org_apg/src/org/thialfihar/android/apg/ui/PreferencesActivity.java index 8b7ed59a7..b602e92b8 100644 --- a/org_apg/src/org/thialfihar/android/apg/ui/PreferencesActivity.java +++ b/org_apg/src/org/thialfihar/android/apg/ui/PreferencesActivity.java @@ -22,6 +22,7 @@ import org.thialfihar.android.apg.Apg; import org.thialfihar.android.apg.Constants; import org.thialfihar.android.apg.Id; import org.thialfihar.android.apg.Preferences; +import org.thialfihar.android.apg.passphrase.PassphraseCacheService; import org.thialfihar.android.apg.ui.widget.IntegerListPreference; import org.thialfihar.android.apg.R; @@ -67,7 +68,9 @@ public class PreferencesActivity extends SherlockPreferenceActivity { mPassPhraseCacheTtl.setValue(newValue.toString()); mPassPhraseCacheTtl.setSummary(mPassPhraseCacheTtl.getEntry()); mPreferences.setPassPhraseCacheTtl(Integer.parseInt(newValue.toString())); - BaseActivity.startCacheService(PreferencesActivity.this, mPreferences); + + // restart cache service with new ttl + PassphraseCacheService.startCacheService(PreferencesActivity.this); return false; } }); diff --git a/org_apg/src/org/thialfihar/android/apg/ui/SecretKeyListActivity.java b/org_apg/src/org/thialfihar/android/apg/ui/SecretKeyListActivity.java index a1b5e753d..b0475c147 100644 --- a/org_apg/src/org/thialfihar/android/apg/ui/SecretKeyListActivity.java +++ b/org_apg/src/org/thialfihar/android/apg/ui/SecretKeyListActivity.java @@ -18,9 +18,9 @@ package org.thialfihar.android.apg.ui; import org.thialfihar.android.apg.R; import org.thialfihar.android.apg.Apg; -import org.thialfihar.android.apg.AskForSecretKeyPassPhrase; import org.thialfihar.android.apg.Constants; import org.thialfihar.android.apg.Id; +import org.thialfihar.android.apg.passphrase.AskForPassphrase; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuItem; @@ -135,7 +135,7 @@ public class SecretKeyListActivity extends KeyListActivity implements OnChildCli case Id.dialog.pass_phrase: { long keyId = ((KeyListAdapter) mList.getExpandableListAdapter()) .getGroupId(mSelectedItem); - return AskForSecretKeyPassPhrase.createDialog(this, keyId, this); + return AskForPassphrase.createDialog(this, keyId, this); } default: { diff --git a/org_apg/src/org/thialfihar/android/apg/ui/widget/SectionView.java b/org_apg/src/org/thialfihar/android/apg/ui/widget/SectionView.java index 7c19317bd..5f2c76a7a 100644 --- a/org_apg/src/org/thialfihar/android/apg/ui/widget/SectionView.java +++ b/org_apg/src/org/thialfihar/android/apg/ui/widget/SectionView.java @@ -285,7 +285,7 @@ public class SectionView extends LinearLayout implements OnClickListener, Editor // get new key from data bundle returned from service Bundle data = message.getData(); PGPSecretKeyRing newKeyRing = Utils.BytesToPGPSecretKeyRing(data - .getByteArray(ApgHandler.RESULT_NEW_KEY)); + .getByteArray(ApgService.RESULT_NEW_KEY)); boolean isMasterKey = (mEditors.getChildCount() == 0); |