seperating intent action constants into activities as it is best practice, restructering...

This commit is contained in:
Dominik 2012-06-20 15:27:45 +03:00
parent e9c01957f4
commit c5ed6ce6f7
28 changed files with 391 additions and 340 deletions

View File

@ -169,7 +169,7 @@
</intent-filter>
</activity>
<activity
android:name=".ui.GeneralActivity"
android:name=".deprecated.GeneralActivity"
android:configChanges="keyboardHidden|orientation|keyboard"
android:label="@string/app_name"
android:theme="@android:style/Theme.Dialog" >

View File

@ -21,6 +21,20 @@ import android.os.Environment;
public final class Constants {
public static final String TAG = "APG";
public static final String PACKAGE_NAME = "org.thialfihar.android.apg";
/*
* TODO:
*
* better naming scheme would be:
*
* - x.action.DECRYPT (with action as preferred in Android)
*
* - even better and shorter (without .android.): org.apg.action.DECRYPT
*/
public static final String INTENT_PREFIX = "org.thialfihar.android.apg.intent.";
public static final class path {
public static final String APP_DIR = Environment.getExternalStorageDirectory() + "/APG";

View File

@ -27,12 +27,12 @@ import java.util.Iterator;
import org.thialfihar.android.apg.deprecated.IApgService2;
import org.thialfihar.android.apg.Id;
import org.thialfihar.android.apg.Preferences;
import org.thialfihar.android.apg.R;
import org.thialfihar.android.apg.deprecated.IApgService2.Stub;
import org.thialfihar.android.apg.Id.database;
import org.thialfihar.android.apg.R.string;
import org.thialfihar.android.apg.helper.PGPHelper;
import org.thialfihar.android.apg.helper.Preferences;
import org.thialfihar.android.apg.passphrase.PassphraseCacheService;
import org.thialfihar.android.apg.provider.KeyRings;
import org.thialfihar.android.apg.provider.Keys;

View File

@ -0,0 +1,196 @@
///*
// * Licensed under the Apache License, Version 2.0 (the "License");
// * you may not use this file except in compliance with the License.
// * You may obtain a copy of the License at
// *
// * http://www.apache.org/licenses/LICENSE-2.0
// *
// * Unless required by applicable law or agreed to in writing, software
// * distributed under the License is distributed on an "AS IS" BASIS,
// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// * See the License for the specific language governing permissions and
// * limitations under the License.
// */
//
//package org.thialfihar.android.apg.deprecated;
//
//import java.io.ByteArrayInputStream;
//import java.io.FileNotFoundException;
//import java.io.IOException;
//import java.io.InputStream;
//import java.util.Vector;
//
//import org.thialfihar.android.apg.R;
//import org.thialfihar.android.apg.Id;
//import org.thialfihar.android.apg.helper.PGPHelper;
//import org.thialfihar.android.apg.ui.BaseActivity;
//import org.thialfihar.android.apg.ui.DecryptActivity;
//import org.thialfihar.android.apg.ui.EncryptActivity;
//import org.thialfihar.android.apg.ui.PublicKeyListActivity;
//import org.thialfihar.android.apg.ui.SecretKeyListActivity;
//import org.thialfihar.android.apg.util.Choice;
//
//import android.content.Intent;
//import android.net.Uri;
//import android.os.Bundle;
//import android.view.View;
//import android.view.View.OnClickListener;
//import android.widget.AdapterView;
//import android.widget.AdapterView.OnItemClickListener;
//import android.widget.ArrayAdapter;
//import android.widget.Button;
//import android.widget.ListView;
//import android.widget.Toast;
//
//public class GeneralActivity extends BaseActivity {
// private Intent mIntent;
// private ArrayAdapter<Choice> mAdapter;
// private ListView mList;
// private Button mCancelButton;
// private String mDataString;
// private Uri mDataUri;
//
// @Override
// protected void onCreate(Bundle savedInstanceState) {
// super.onCreate(savedInstanceState);
//
// setContentView(R.layout.general);
//
// mIntent = getIntent();
//
// InputStream inStream = null;
// {
// String data = mIntent.getStringExtra(Intent.EXTRA_TEXT);
// if (data != null) {
// mDataString = data;
// inStream = new ByteArrayInputStream(data.getBytes());
// }
// }
//
// if (inStream == null) {
// Uri data = mIntent.getData();
// if (data != null) {
// mDataUri = data;
// try {
// inStream = getContentResolver().openInputStream(data);
// } catch (FileNotFoundException e) {
// // didn't work
// Toast.makeText(this, "failed to open stream", Toast.LENGTH_SHORT).show();
// }
// }
// }
//
// if (inStream == null) {
// Toast.makeText(this, "no data found", Toast.LENGTH_SHORT).show();
// finish();
// return;
// }
//
// int contentType = Id.content.unknown;
// try {
// contentType = PGPHelper.getStreamContent(this, inStream);
// inStream.close();
// } catch (IOException e) {
// // just means that there's no PGP data in there
// }
//
// mList = (ListView) findViewById(R.id.options);
// Vector<Choice> choices = new Vector<Choice>();
//
// if (contentType == Id.content.keys) {
// choices.add(new Choice(Id.choice.action.import_public,
// getString(R.string.action_importPublic)));
// choices.add(new Choice(Id.choice.action.import_secret,
// getString(R.string.action_importSecret)));
// }
//
// if (contentType == Id.content.encrypted_data) {
// choices.add(new Choice(Id.choice.action.decrypt, getString(R.string.action_decrypt)));
// }
//
// if (contentType == Id.content.unknown) {
// choices.add(new Choice(Id.choice.action.encrypt, getString(R.string.action_encrypt)));
// }
//
// mAdapter = new ArrayAdapter<Choice>(this, android.R.layout.simple_list_item_1, choices);
// mList.setAdapter(mAdapter);
//
// mList.setOnItemClickListener(new OnItemClickListener() {
// public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
// clicked(mAdapter.getItem(arg2).getId());
// }
// });
//
// mCancelButton = (Button) findViewById(R.id.btn_cancel);
// mCancelButton.setOnClickListener(new OnClickListener() {
// public void onClick(View v) {
// GeneralActivity.this.finish();
// }
// });
//
// if (choices.size() == 1) {
// clicked(choices.get(0).getId());
// }
// }
//
// private void clicked(int id) {
// Intent intent = new Intent();
// switch (id) {
// case Id.choice.action.encrypt: {
// intent.setClass(this, EncryptActivity.class);
// if (mDataString != null) {
// intent.setAction(EncryptActivity.ENCRYPT);
// intent.putExtra(PGPHelper.EXTRA_TEXT, mDataString);
// } else if (mDataUri != null) {
// intent.setAction(EncryptActivity.ENCRYPT_FILE);
// intent.setDataAndType(mDataUri, mIntent.getType());
// }
//
// break;
// }
//
// case Id.choice.action.decrypt: {
// intent.setClass(this, DecryptActivity.class);
// if (mDataString != null) {
// intent.setAction(DecryptActivity.DECRYPT);
// intent.putExtra(PGPHelper.EXTRA_TEXT, mDataString);
// } else if (mDataUri != null) {
// intent.setAction(DecryptActivity.DECRYPT_FILE);
// intent.setDataAndType(mDataUri, mIntent.getType());
// }
//
// break;
// }
//
// case Id.choice.action.import_public: {
// intent.setClass(this, PublicKeyListActivity.class);
// intent.setAction(PublicKeyListActivity.IMPORT);
// if (mDataString != null) {
// intent.putExtra(PGPHelper.EXTRA_TEXT, mDataString);
// } else if (mDataUri != null) {
// intent.setDataAndType(mDataUri, mIntent.getType());
// }
// break;
// }
//
// case Id.choice.action.import_secret: {
// intent.setClass(this, SecretKeyListActivity.class);
// intent.setAction(SecretKeyListActivity.IMPORT);
// if (mDataString != null) {
// intent.putExtra(PGPHelper.EXTRA_TEXT, mDataString);
// } else if (mDataUri != null) {
// intent.setDataAndType(mDataUri, mIntent.getType());
// }
// break;
// }
//
// default: {
// // shouldn't happen
// return;
// }
// }
//
// startActivity(intent);
// finish();
// }
//}

View File

@ -12,7 +12,7 @@
* limitations under the License.
*/
package org.thialfihar.android.apg;
package org.thialfihar.android.apg.deprecated;
public class PausableThread extends Thread {
private boolean mPaused = false;

View File

@ -72,7 +72,6 @@ import org.thialfihar.android.apg.Id.type;
import org.thialfihar.android.apg.Id.choice.algorithm;
import org.thialfihar.android.apg.Id.choice.compression;
import org.thialfihar.android.apg.Id.choice.usage;
import org.thialfihar.android.apg.KeyServer.AddKeyException;
import org.thialfihar.android.apg.R.string;
import org.thialfihar.android.apg.passphrase.CachedPassPhrase;
import org.thialfihar.android.apg.provider.DataProvider;
@ -85,14 +84,15 @@ import org.thialfihar.android.apg.ui.BaseActivity;
import org.thialfihar.android.apg.ui.widget.KeyEditor;
import org.thialfihar.android.apg.ui.widget.SectionView;
import org.thialfihar.android.apg.ui.widget.UserIdEditor;
import org.thialfihar.android.apg.util.HkpKeyServer;
import org.thialfihar.android.apg.util.InputData;
import org.thialfihar.android.apg.util.IterableIterator;
import org.thialfihar.android.apg.util.KeyServer;
import org.thialfihar.android.apg.util.PositionAwareInputStream;
import org.thialfihar.android.apg.util.Primes;
import org.thialfihar.android.apg.util.KeyServer.AddKeyException;
import org.thialfihar.android.apg.Constants;
import org.thialfihar.android.apg.HkpKeyServer;
import org.thialfihar.android.apg.Id;
import org.thialfihar.android.apg.KeyServer;
import org.thialfihar.android.apg.ProgressDialogUpdater;
import org.thialfihar.android.apg.R;
@ -155,30 +155,6 @@ public class PGPHelper {
Security.addProvider(new BouncyCastleProvider());
}
public static final String PACKAGE_NAME = "org.thialfihar.android.apg";
private static final String INTENT_PREFIX = "org.thialfihar.android.apg.intent.";
public static class Intent {
public static final String DECRYPT = INTENT_PREFIX + "DECRYPT";
public static final String ENCRYPT = INTENT_PREFIX + "ENCRYPT";
public static final String DECRYPT_FILE = INTENT_PREFIX + "DECRYPT_FILE";
public static final String ENCRYPT_FILE = INTENT_PREFIX + "ENCRYPT_FILE";
public static final String DECRYPT_AND_RETURN = INTENT_PREFIX + "DECRYPT_AND_RETURN";
public static final String ENCRYPT_AND_RETURN = INTENT_PREFIX + "ENCRYPT_AND_RETURN";
public static final String SELECT_PUBLIC_KEYS = INTENT_PREFIX + "SELECT_PUBLIC_KEYS";
public static final String SELECT_SECRET_KEY = INTENT_PREFIX + "SELECT_SECRET_KEY";
public static final String IMPORT = INTENT_PREFIX + "IMPORT";
public static final String LOOK_UP_KEY_ID = INTENT_PREFIX + "LOOK_UP_KEY_ID";
public static final String LOOK_UP_KEY_ID_AND_RETURN = INTENT_PREFIX
+ "LOOK_UP_KEY_ID_AND_RETURN";
public static final String GENERATE_SIGNATURE = INTENT_PREFIX + "GENERATE_SIGNATURE";
public static final String EXPORT_KEY_TO_SERVER = INTENT_PREFIX + "EXPORT_KEY_TO_SERVER";
public static final String IMPORT_FROM_QR_CODE = INTENT_PREFIX + "IMPORT_FROM_QR_CODE";
public static final String CREATE_KEY = INTENT_PREFIX + "CREATE_KEY";
public static final String EDIT_KEY = INTENT_PREFIX + "EDIT_KEY";
}
public static final String EXTRA_TEXT = "text";
public static final String EXTRA_DATA = "data";
public static final String EXTRA_ERROR = "error";
@ -2267,7 +2243,7 @@ public class PGPHelper {
public static boolean isReleaseVersion(Context context) {
try {
PackageInfo pi = context.getPackageManager().getPackageInfo(PACKAGE_NAME, 0);
PackageInfo pi = context.getPackageManager().getPackageInfo(Constants.PACKAGE_NAME, 0);
if (pi.versionCode % 100 == 99) {
return true;
} else {
@ -2284,7 +2260,7 @@ public class PGPHelper {
return VERSION;
}
try {
PackageInfo pi = context.getPackageManager().getPackageInfo(PACKAGE_NAME, 0);
PackageInfo pi = context.getPackageManager().getPackageInfo(Constants.PACKAGE_NAME, 0);
VERSION = pi.versionName;
return VERSION;
} catch (NameNotFoundException e) {

View File

@ -15,10 +15,16 @@
* limitations under the License.
*/
package org.thialfihar.android.apg;
package org.thialfihar.android.apg.helper;
import org.spongycastle.bcpg.HashAlgorithmTags;
import org.spongycastle.openpgp.PGPEncryptedData;
import org.thialfihar.android.apg.Constants;
import org.thialfihar.android.apg.Id;
import org.thialfihar.android.apg.Constants.defaults;
import org.thialfihar.android.apg.Constants.pref;
import org.thialfihar.android.apg.Id.choice;
import org.thialfihar.android.apg.Id.choice.compression;
import android.content.Context;
import android.content.SharedPreferences;

View File

@ -14,8 +14,8 @@
package org.thialfihar.android.apg.passphrase;
import org.thialfihar.android.apg.Preferences;
import org.thialfihar.android.apg.helper.PGPHelper;
import org.thialfihar.android.apg.helper.Preferences;
import android.app.Service;
import android.content.Context;

View File

@ -30,11 +30,11 @@ import org.spongycastle.openpgp.PGPSecretKey;
import org.spongycastle.openpgp.PGPSecretKeyRing;
import org.thialfihar.android.apg.Constants;
import org.thialfihar.android.apg.Id;
import org.thialfihar.android.apg.Preferences;
import org.thialfihar.android.apg.ProgressDialogUpdater;
import org.thialfihar.android.apg.R;
import org.thialfihar.android.apg.helper.FileHelper;
import org.thialfihar.android.apg.helper.PGPHelper;
import org.thialfihar.android.apg.helper.Preferences;
import org.thialfihar.android.apg.helper.PGPHelper.GeneralException;
import org.thialfihar.android.apg.helper.PGPConversionHelper;
import org.thialfihar.android.apg.provider.DataProvider;

View File

@ -23,10 +23,10 @@ import java.io.IOException;
import org.thialfihar.android.apg.R;
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.deprecated.PausableThread;
import org.thialfihar.android.apg.helper.PGPHelper;
import org.thialfihar.android.apg.helper.Preferences;
import org.thialfihar.android.apg.passphrase.AskForPassphrase;
import org.thialfihar.android.apg.passphrase.PassphraseCacheService;

View File

@ -16,17 +16,11 @@
package org.thialfihar.android.apg.ui;
import org.spongycastle.jce.provider.BouncyCastleProvider;
import org.spongycastle.openpgp.PGPException;
import org.spongycastle.openpgp.PGPPublicKeyRing;
import org.thialfihar.android.apg.Constants;
import org.thialfihar.android.apg.Id;
import org.thialfihar.android.apg.PausableThread;
import org.thialfihar.android.apg.helper.FileHelper;
import org.thialfihar.android.apg.helper.PGPHelper;
import org.thialfihar.android.apg.helper.OtherHelper;
import org.thialfihar.android.apg.helper.PGPHelper.GeneralException;
import org.thialfihar.android.apg.provider.DataProvider;
import org.thialfihar.android.apg.service.ApgHandler;
import org.thialfihar.android.apg.service.ApgService;
import org.thialfihar.android.apg.ui.dialog.DeleteFileDialogFragment;
@ -34,7 +28,6 @@ import org.thialfihar.android.apg.ui.dialog.FileDialogFragment;
import org.thialfihar.android.apg.ui.dialog.PassphraseDialogFragment;
import org.thialfihar.android.apg.ui.dialog.ProgressDialogFragment;
import org.thialfihar.android.apg.util.Compatibility;
import org.thialfihar.android.apg.util.InputData;
import org.thialfihar.android.apg.R;
import com.actionbarsherlock.app.ActionBar;
@ -45,7 +38,6 @@ import com.actionbarsherlock.view.MenuItem;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.ActivityNotFoundException;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
@ -73,12 +65,16 @@ import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.security.Security;
import java.security.SignatureException;
import java.util.regex.Matcher;
public class DecryptActivity extends SherlockFragmentActivity {
// possible intent actions for this activity
public static final String ACTION_DECRYPT = Constants.INTENT_PREFIX + "DECRYPT";
public static final String ACTION_DECRYPT_FILE = Constants.INTENT_PREFIX + "DECRYPT_FILE";
public static final String ACTION_DECRYPT_AND_RETURN = Constants.INTENT_PREFIX
+ "DECRYPT_AND_RETURN";
private long mSignatureKeyId = 0;
private Intent mIntent;
@ -191,7 +187,7 @@ public class DecryptActivity extends SherlockFragmentActivity {
final ActionBar actionBar = getSupportActionBar();
Log.d(Constants.TAG, "calling package (only set when using startActivityForResult)="
+ getCallingPackage());
if (getCallingPackage() != null && getCallingPackage().equals(PGPHelper.PACKAGE_NAME)) {
if (getCallingPackage() != null && getCallingPackage().equals(Constants.PACKAGE_NAME)) {
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeButtonEnabled(true);
} else {
@ -282,7 +278,7 @@ public class DecryptActivity extends SherlockFragmentActivity {
} catch (IOException e) {
// ignore, then
}
} else if (PGPHelper.Intent.DECRYPT.equals(mIntent.getAction())) {
} else if (ACTION_DECRYPT.equals(mIntent.getAction())) {
Log.d(Constants.TAG, "Apg Intent DECRYPT startet");
Bundle extras = mIntent.getExtras();
if (extras == null) {
@ -328,7 +324,7 @@ public class DecryptActivity extends SherlockFragmentActivity {
}
mReplyTo = extras.getString(PGPHelper.EXTRA_REPLY_TO);
mSubject = extras.getString(PGPHelper.EXTRA_SUBJECT);
} else if (PGPHelper.Intent.DECRYPT_FILE.equals(mIntent.getAction())) {
} else if (ACTION_DECRYPT_FILE.equals(mIntent.getAction())) {
mInputFilename = mIntent.getDataString();
if ("file".equals(mIntent.getScheme())) {
mInputFilename = Uri.decode(mInputFilename.substring(7));
@ -340,7 +336,7 @@ public class DecryptActivity extends SherlockFragmentActivity {
while (mSource.getCurrentView().getId() != R.id.sourceFile) {
mSource.showNext();
}
} else if (PGPHelper.Intent.DECRYPT_AND_RETURN.equals(mIntent.getAction())) {
} else if (ACTION_DECRYPT_AND_RETURN.equals(mIntent.getAction())) {
mContentUri = mIntent.getData();
Bundle extras = mIntent.getExtras();
if (extras == null) {
@ -405,7 +401,7 @@ public class DecryptActivity extends SherlockFragmentActivity {
PGPPublicKeyRing key = PGPHelper.getPublicKeyRing(mSignatureKeyId);
if (key != null) {
Intent intent = new Intent(DecryptActivity.this, KeyServerQueryActivity.class);
intent.setAction(PGPHelper.Intent.LOOK_UP_KEY_ID);
intent.setAction(KeyServerQueryActivity.ACTION_LOOK_UP_KEY_ID);
intent.putExtra(PGPHelper.EXTRA_KEY_ID, mSignatureKeyId);
startActivity(intent);
}
@ -521,7 +517,7 @@ public class DecryptActivity extends SherlockFragmentActivity {
mSignedOnly = false;
getDecryptionKeyFromInputStream();
Log.d(Constants.TAG, "secretKeyId: " + getSecretKeyId());
// if we need a symmetric passphrase or a passphrase to use a sekret key ask for it
@ -633,7 +629,7 @@ public class DecryptActivity extends SherlockFragmentActivity {
private void replyClicked() {
Intent intent = new Intent(this, EncryptActivity.class);
intent.setAction(PGPHelper.Intent.ENCRYPT);
intent.setAction(EncryptActivity.ACTION_ENCRYPT);
String data = mMessage.getText().toString();
data = data.replaceAll("(?m)^", "> ");
data = "\n\n" + data;
@ -1047,7 +1043,7 @@ public class DecryptActivity extends SherlockFragmentActivity {
public void onClick(DialogInterface dialog, int id) {
removeDialog(Id.dialog.lookup_unknown_key);
Intent intent = new Intent(DecryptActivity.this, KeyServerQueryActivity.class);
intent.setAction(PGPHelper.Intent.LOOK_UP_KEY_ID);
intent.setAction(KeyServerQueryActivity.ACTION_LOOK_UP_KEY_ID);
intent.putExtra(PGPHelper.EXTRA_KEY_ID, mUnknownSignatureKeyId);
startActivityForResult(intent, Id.request.look_up_key_id);
}

View File

@ -64,6 +64,11 @@ import java.util.Iterator;
import java.util.Vector;
public class EditKeyActivity extends SherlockFragmentActivity {
// possible intent actions for this activity
public static final String ACTION_CREATE_KEY = Constants.INTENT_PREFIX + "CREATE_KEY";
public static final String ACTION_EDIT_KEY = Constants.INTENT_PREFIX + "EDIT_KEY";
private Intent mIntent = null;
private ActionBar mActionBar;
@ -133,7 +138,7 @@ public class EditKeyActivity extends SherlockFragmentActivity {
mActionBar.setDisplayShowTitleEnabled(true);
// set actionbar without home button if called from another app
if (getCallingPackage() != null && getCallingPackage().equals(PGPHelper.PACKAGE_NAME)) {
if (getCallingPackage() != null && getCallingPackage().equals(Constants.PACKAGE_NAME)) {
mActionBar.setDisplayHomeAsUpEnabled(true);
mActionBar.setHomeButtonEnabled(true);
} else {
@ -154,8 +159,7 @@ public class EditKeyActivity extends SherlockFragmentActivity {
// Handle intents
Bundle extras = mIntent.getExtras();
if (PGPHelper.Intent.CREATE_KEY.equals(mIntent.getAction())) {
if (ACTION_CREATE_KEY.equals(mIntent.getAction())) {
mActionBar.setTitle(R.string.title_createKey);
mCurrentPassPhrase = "";
@ -244,8 +248,7 @@ public class EditKeyActivity extends SherlockFragmentActivity {
}
}
}
} else if (PGPHelper.Intent.EDIT_KEY.equals(mIntent.getAction())) {
} else if (ACTION_EDIT_KEY.equals(mIntent.getAction())) {
mActionBar.setTitle(R.string.title_editKey);
mCurrentPassPhrase = PGPHelper.getEditPassPhrase();
@ -468,8 +471,7 @@ public class EditKeyActivity extends SherlockFragmentActivity {
* @param userIdsView
* @return
*/
private Vector<String> getUserIds(SectionView userIdsView)
throws PGPHelper.GeneralException {
private Vector<String> getUserIds(SectionView userIdsView) throws PGPHelper.GeneralException {
Vector<String> userIds = new Vector<String>();
ViewGroup userIdEditors = userIdsView.getEditors();
@ -507,8 +509,7 @@ public class EditKeyActivity extends SherlockFragmentActivity {
}
if (!gotMainUserId) {
throw new PGPHelper.GeneralException(
getString(R.string.error_mainUserIdMustNotBeEmpty));
throw new PGPHelper.GeneralException(getString(R.string.error_mainUserIdMustNotBeEmpty));
}
return userIds;
@ -520,8 +521,7 @@ public class EditKeyActivity extends SherlockFragmentActivity {
* @param keysView
* @return
*/
private Vector<PGPSecretKey> getKeys(SectionView keysView)
throws PGPHelper.GeneralException {
private Vector<PGPSecretKey> getKeys(SectionView keysView) throws PGPHelper.GeneralException {
Vector<PGPSecretKey> keys = new Vector<PGPSecretKey>();
ViewGroup keyEditors = keysView.getEditors();
@ -544,8 +544,7 @@ public class EditKeyActivity extends SherlockFragmentActivity {
* @param keysView
* @return
*/
private Vector<Integer> getKeysUsages(SectionView keysView)
throws PGPHelper.GeneralException {
private Vector<Integer> getKeysUsages(SectionView keysView) throws PGPHelper.GeneralException {
Vector<Integer> getKeysUsages = new Vector<Integer>();
ViewGroup keyEditors = keysView.getEditors();

View File

@ -23,9 +23,9 @@ import org.spongycastle.openpgp.PGPSecretKey;
import org.spongycastle.openpgp.PGPSecretKeyRing;
import org.thialfihar.android.apg.Constants;
import org.thialfihar.android.apg.Id;
import org.thialfihar.android.apg.Preferences;
import org.thialfihar.android.apg.helper.FileHelper;
import org.thialfihar.android.apg.helper.PGPHelper;
import org.thialfihar.android.apg.helper.Preferences;
import org.thialfihar.android.apg.service.ApgHandler;
import org.thialfihar.android.apg.service.ApgService;
import org.thialfihar.android.apg.ui.dialog.DeleteFileDialogFragment;
@ -67,6 +67,15 @@ import java.io.File;
import java.util.Vector;
public class EncryptActivity extends SherlockFragmentActivity {
// possible intent actions for this activity
public static final String ACTION_ENCRYPT = Constants.INTENT_PREFIX + "ENCRYPT";
public static final String ACTION_ENCRYPT_FILE = Constants.INTENT_PREFIX + "ENCRYPT_FILE";
public static final String ACTION_ENCRYPT_AND_RETURN = Constants.INTENT_PREFIX
+ "ENCRYPT_AND_RETURN";
public static final String ACTION_GENERATE_SIGNATURE = Constants.INTENT_PREFIX
+ "GENERATE_SIGNATURE";
private Intent mIntent = null;
private String mSubject = null;
private String mSendTo = null;
@ -185,7 +194,7 @@ public class EncryptActivity extends SherlockFragmentActivity {
final ActionBar actionBar = getSupportActionBar();
Log.d(Constants.TAG, "calling package (only set when using startActivityForResult)="
+ getCallingPackage());
if (getCallingPackage() != null && getCallingPackage().equals(PGPHelper.PACKAGE_NAME)) {
if (getCallingPackage() != null && getCallingPackage().equals(Constants.PACKAGE_NAME)) {
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeButtonEnabled(true);
} else {
@ -335,22 +344,22 @@ public class EncryptActivity extends SherlockFragmentActivity {
});
mIntent = getIntent();
if (PGPHelper.Intent.ENCRYPT.equals(mIntent.getAction())
|| PGPHelper.Intent.ENCRYPT_FILE.equals(mIntent.getAction())
|| PGPHelper.Intent.ENCRYPT_AND_RETURN.equals(mIntent.getAction())
|| PGPHelper.Intent.GENERATE_SIGNATURE.equals(mIntent.getAction())) {
if (ACTION_ENCRYPT.equals(mIntent.getAction())
|| ACTION_ENCRYPT_FILE.equals(mIntent.getAction())
|| ACTION_ENCRYPT_AND_RETURN.equals(mIntent.getAction())
|| ACTION_GENERATE_SIGNATURE.equals(mIntent.getAction())) {
mContentUri = mIntent.getData();
Bundle extras = mIntent.getExtras();
if (extras == null) {
extras = new Bundle();
}
if (PGPHelper.Intent.ENCRYPT_AND_RETURN.equals(mIntent.getAction())
|| PGPHelper.Intent.GENERATE_SIGNATURE.equals(mIntent.getAction())) {
if (ACTION_ENCRYPT_AND_RETURN.equals(mIntent.getAction())
|| ACTION_GENERATE_SIGNATURE.equals(mIntent.getAction())) {
mReturnResult = true;
}
if (PGPHelper.Intent.GENERATE_SIGNATURE.equals(mIntent.getAction())) {
if (ACTION_GENERATE_SIGNATURE.equals(mIntent.getAction())) {
mGenerateSignature = true;
mOverrideAsciiArmour = true;
mAsciiArmourDemand = false;
@ -411,9 +420,9 @@ public class EncryptActivity extends SherlockFragmentActivity {
}
}
if (PGPHelper.Intent.ENCRYPT.equals(mIntent.getAction())
|| PGPHelper.Intent.ENCRYPT_AND_RETURN.equals(mIntent.getAction())
|| PGPHelper.Intent.GENERATE_SIGNATURE.equals(mIntent.getAction())) {
if (ACTION_ENCRYPT.equals(mIntent.getAction())
|| ACTION_ENCRYPT_AND_RETURN.equals(mIntent.getAction())
|| ACTION_GENERATE_SIGNATURE.equals(mIntent.getAction())) {
if (textData != null) {
mMessage.setText(textData);
}
@ -422,7 +431,7 @@ public class EncryptActivity extends SherlockFragmentActivity {
while (mSource.getCurrentView().getId() != R.id.sourceMessage) {
mSource.showNext();
}
} else if (PGPHelper.Intent.ENCRYPT_FILE.equals(mIntent.getAction())) {
} else if (ACTION_ENCRYPT_FILE.equals(mIntent.getAction())) {
if ("file".equals(mIntent.getScheme())) {
mInputFilename = Uri.decode(mIntent.getDataString().replace("file://", ""));
mFilename.setText(mInputFilename);

View File

@ -1,191 +0,0 @@
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.thialfihar.android.apg.ui;
import java.io.ByteArrayInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Vector;
import org.thialfihar.android.apg.R;
import org.thialfihar.android.apg.Id;
import org.thialfihar.android.apg.helper.PGPHelper;
import org.thialfihar.android.apg.util.Choice;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
public class GeneralActivity extends BaseActivity {
private Intent mIntent;
private ArrayAdapter<Choice> mAdapter;
private ListView mList;
private Button mCancelButton;
private String mDataString;
private Uri mDataUri;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.general);
mIntent = getIntent();
InputStream inStream = null;
{
String data = mIntent.getStringExtra(Intent.EXTRA_TEXT);
if (data != null) {
mDataString = data;
inStream = new ByteArrayInputStream(data.getBytes());
}
}
if (inStream == null) {
Uri data = mIntent.getData();
if (data != null) {
mDataUri = data;
try {
inStream = getContentResolver().openInputStream(data);
} catch (FileNotFoundException e) {
// didn't work
Toast.makeText(this, "failed to open stream", Toast.LENGTH_SHORT).show();
}
}
}
if (inStream == null) {
Toast.makeText(this, "no data found", Toast.LENGTH_SHORT).show();
finish();
return;
}
int contentType = Id.content.unknown;
try {
contentType = PGPHelper.getStreamContent(this, inStream);
inStream.close();
} catch (IOException e) {
// just means that there's no PGP data in there
}
mList = (ListView) findViewById(R.id.options);
Vector<Choice> choices = new Vector<Choice>();
if (contentType == Id.content.keys) {
choices.add(new Choice(Id.choice.action.import_public,
getString(R.string.action_importPublic)));
choices.add(new Choice(Id.choice.action.import_secret,
getString(R.string.action_importSecret)));
}
if (contentType == Id.content.encrypted_data) {
choices.add(new Choice(Id.choice.action.decrypt, getString(R.string.action_decrypt)));
}
if (contentType == Id.content.unknown) {
choices.add(new Choice(Id.choice.action.encrypt, getString(R.string.action_encrypt)));
}
mAdapter = new ArrayAdapter<Choice>(this, android.R.layout.simple_list_item_1, choices);
mList.setAdapter(mAdapter);
mList.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
clicked(mAdapter.getItem(arg2).getId());
}
});
mCancelButton = (Button) findViewById(R.id.btn_cancel);
mCancelButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
GeneralActivity.this.finish();
}
});
if (choices.size() == 1) {
clicked(choices.get(0).getId());
}
}
private void clicked(int id) {
Intent intent = new Intent();
switch (id) {
case Id.choice.action.encrypt: {
intent.setClass(this, EncryptActivity.class);
if (mDataString != null) {
intent.setAction(PGPHelper.Intent.ENCRYPT);
intent.putExtra(PGPHelper.EXTRA_TEXT, mDataString);
} else if (mDataUri != null) {
intent.setAction(PGPHelper.Intent.ENCRYPT_FILE);
intent.setDataAndType(mDataUri, mIntent.getType());
}
break;
}
case Id.choice.action.decrypt: {
intent.setClass(this, DecryptActivity.class);
if (mDataString != null) {
intent.setAction(PGPHelper.Intent.DECRYPT);
intent.putExtra(PGPHelper.EXTRA_TEXT, mDataString);
} else if (mDataUri != null) {
intent.setAction(PGPHelper.Intent.DECRYPT_FILE);
intent.setDataAndType(mDataUri, mIntent.getType());
}
break;
}
case Id.choice.action.import_public: {
intent.setClass(this, PublicKeyListActivity.class);
intent.setAction(PGPHelper.Intent.IMPORT);
if (mDataString != null) {
intent.putExtra(PGPHelper.EXTRA_TEXT, mDataString);
} else if (mDataUri != null) {
intent.setDataAndType(mDataUri, mIntent.getType());
}
break;
}
case Id.choice.action.import_secret: {
intent.setClass(this, SecretKeyListActivity.class);
intent.setAction(PGPHelper.Intent.IMPORT);
if (mDataString != null) {
intent.putExtra(PGPHelper.EXTRA_TEXT, mDataString);
} else if (mDataUri != null) {
intent.setDataAndType(mDataUri, mIntent.getType());
}
break;
}
default: {
// shouldn't happen
return;
}
}
startActivity(intent);
finish();
}
}

View File

@ -22,10 +22,10 @@ import java.io.IOException;
import org.spongycastle.openpgp.PGPKeyRing;
import org.spongycastle.openpgp.PGPPublicKeyRing;
import org.thialfihar.android.apg.Constants;
import org.thialfihar.android.apg.HkpKeyServer;
import org.thialfihar.android.apg.Id;
import org.thialfihar.android.apg.KeyServer.QueryException;
import org.thialfihar.android.apg.helper.PGPHelper;
import org.thialfihar.android.apg.util.HkpKeyServer;
import org.thialfihar.android.apg.util.KeyServer.QueryException;
import org.thialfihar.android.apg.R;
import android.content.Intent;
@ -38,6 +38,11 @@ import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;
public class ImportFromQRCodeActivity extends BaseActivity {
// Not used in sourcode, but listed in AndroidManifest!
public static final String IMPORT_FROM_QR_CODE = Constants.INTENT_PREFIX
+ "IMPORT_FROM_QR_CODE";
private static final String TAG = "ImportFromQRCodeActivity";
private final Bundle status = new Bundle();
@ -52,34 +57,46 @@ public class ImportFromQRCodeActivity extends BaseActivity {
private void importAndSign(final long keyId, final String expectedFingerprint) {
if (expectedFingerprint != null && expectedFingerprint.length() > 0) {
Thread t = new Thread() {
@Override
public void run() {
try {
// TODO: display some sort of spinner here while the user waits
HkpKeyServer server = new HkpKeyServer(mPreferences.getKeyServers()[0]); // TODO: there should be only 1
HkpKeyServer server = new HkpKeyServer(mPreferences.getKeyServers()[0]); // TODO:
// there
// should
// be
// only
// 1
String encodedKey = server.get(keyId);
PGPKeyRing keyring = PGPHelper.decodeKeyRing(new ByteArrayInputStream(encodedKey.getBytes()));
PGPKeyRing keyring = PGPHelper.decodeKeyRing(new ByteArrayInputStream(
encodedKey.getBytes()));
if (keyring != null && keyring instanceof PGPPublicKeyRing) {
PGPPublicKeyRing publicKeyRing = (PGPPublicKeyRing) keyring;
// make sure the fingerprints match before we cache this thing
String actualFingerprint = PGPHelper.convertToHex(publicKeyRing.getPublicKey().getFingerprint());
String actualFingerprint = PGPHelper.convertToHex(publicKeyRing
.getPublicKey().getFingerprint());
if (expectedFingerprint.equals(actualFingerprint)) {
// store the signed key in our local cache
int retval = PGPHelper.storeKeyRingInCache(publicKeyRing);
if (retval != Id.return_value.ok && retval != Id.return_value.updated) {
status.putString(PGPHelper.EXTRA_ERROR, "Failed to store signed key in local cache");
if (retval != Id.return_value.ok
&& retval != Id.return_value.updated) {
status.putString(PGPHelper.EXTRA_ERROR,
"Failed to store signed key in local cache");
} else {
Intent intent = new Intent(ImportFromQRCodeActivity.this, SignKeyActivity.class);
Intent intent = new Intent(ImportFromQRCodeActivity.this,
SignKeyActivity.class);
intent.putExtra(PGPHelper.EXTRA_KEY_ID, keyId);
startActivityForResult(intent, Id.request.sign_key);
}
} else {
status.putString(PGPHelper.EXTRA_ERROR, "Scanned fingerprint does NOT match the fingerprint of the received key. You shouldnt trust this key.");
status.putString(
PGPHelper.EXTRA_ERROR,
"Scanned fingerprint does NOT match the fingerprint of the received key. You shouldnt trust this key.");
}
}
} catch (QueryException e) {
@ -103,48 +120,52 @@ public class ImportFromQRCodeActivity extends BaseActivity {
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case IntentIntegrator.REQUEST_CODE: {
boolean debug = true; // TODO: remove this!!!
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if (debug || (scanResult != null && scanResult.getFormatName() != null)) {
String[] bits = debug ? new String[] { "5993515643896327656", "0816 F68A 6816 68FB 01BF 2CA5 532D 3EB9 1E2F EDE8" } : scanResult.getContents().split(",");
if (bits.length != 2) {
return; // dont know how to handle this. Not a valid code
}
long keyId = Long.parseLong(bits[0]);
String expectedFingerprint = bits[1];
importAndSign(keyId, expectedFingerprint);
break;
case IntentIntegrator.REQUEST_CODE: {
boolean debug = true; // TODO: remove this!!!
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode,
data);
if (debug || (scanResult != null && scanResult.getFormatName() != null)) {
String[] bits = debug ? new String[] { "5993515643896327656",
"0816 F68A 6816 68FB 01BF 2CA5 532D 3EB9 1E2F EDE8" } : scanResult
.getContents().split(",");
if (bits.length != 2) {
return; // dont know how to handle this. Not a valid code
}
}
case Id.request.sign_key: {
// signals the end of processing. Signature was either applied, or it wasnt
status.putInt(Constants.extras.STATUS, Id.message.done);
msg.setData(status);
sendMessage(msg);
long keyId = Long.parseLong(bits[0]);
String expectedFingerprint = bits[1];
importAndSign(keyId, expectedFingerprint);
break;
}
}
default: {
super.onActivityResult(requestCode, resultCode, data);
}
case Id.request.sign_key: {
// signals the end of processing. Signature was either applied, or it wasnt
status.putInt(Constants.extras.STATUS, Id.message.done);
msg.setData(status);
sendMessage(msg);
break;
}
default: {
super.onActivityResult(requestCode, resultCode, data);
}
}
}
@Override
public void doneCallback(Message msg) {
super.doneCallback(msg);
Bundle data = msg.getData();
String error = data.getString(PGPHelper.EXTRA_ERROR);
if (error != null) {
Toast.makeText(this, getString(R.string.errorMessage, error), Toast.LENGTH_SHORT).show();
Toast.makeText(this, getString(R.string.errorMessage, error), Toast.LENGTH_SHORT)
.show();
return;
}

View File

@ -69,6 +69,9 @@ import java.io.OutputStream;
import java.util.Vector;
public class KeyListActivity extends BaseActivity {
public static final String ACTION_IMPORT = Constants.INTENT_PREFIX + "IMPORT";
protected ExpandableListView mList;
protected KeyListAdapter mListAdapter;
protected View mFilterLayout;
@ -139,7 +142,7 @@ public class KeyListActivity extends BaseActivity {
mListAdapter = new KeyListAdapter(this, searchString);
mList.setAdapter(mListAdapter);
if (PGPHelper.Intent.IMPORT.equals(intent.getAction())) {
if (ACTION_IMPORT.equals(intent.getAction())) {
if ("file".equals(intent.getScheme()) && intent.getDataString() != null) {
mImportFilename = Uri.decode(intent.getDataString().replace("file://", ""));
} else {

View File

@ -19,10 +19,10 @@ package org.thialfihar.android.apg.ui;
import org.spongycastle.openpgp.PGPKeyRing;
import org.spongycastle.openpgp.PGPPublicKeyRing;
import org.thialfihar.android.apg.Constants;
import org.thialfihar.android.apg.HkpKeyServer;
import org.thialfihar.android.apg.Id;
import org.thialfihar.android.apg.R;
import org.thialfihar.android.apg.helper.PGPHelper;
import org.thialfihar.android.apg.util.HkpKeyServer;
import com.actionbarsherlock.view.MenuItem;
@ -43,6 +43,10 @@ import android.widget.Toast;
*/
public class KeyServerExportActivity extends BaseActivity {
// Not used in sourcode, but listed in AndroidManifest!
public static final String ACTION_EXPORT_KEY_TO_SERVER = Constants.INTENT_PREFIX
+ "EXPORT_KEY_TO_SERVER";
private Button export;
private Spinner keyServer;

View File

@ -19,13 +19,13 @@ import java.util.Vector;
import org.thialfihar.android.apg.R;
import org.thialfihar.android.apg.Constants;
import org.thialfihar.android.apg.HkpKeyServer;
import org.thialfihar.android.apg.Id;
import org.thialfihar.android.apg.KeyServer.InsufficientQuery;
import org.thialfihar.android.apg.KeyServer.KeyInfo;
import org.thialfihar.android.apg.KeyServer.QueryException;
import org.thialfihar.android.apg.KeyServer.TooManyResponses;
import org.thialfihar.android.apg.helper.PGPHelper;
import org.thialfihar.android.apg.util.HkpKeyServer;
import org.thialfihar.android.apg.util.KeyServer.InsufficientQuery;
import org.thialfihar.android.apg.util.KeyServer.KeyInfo;
import org.thialfihar.android.apg.util.KeyServer.QueryException;
import org.thialfihar.android.apg.util.KeyServer.TooManyResponses;
import com.actionbarsherlock.view.MenuItem;
@ -54,6 +54,12 @@ import android.widget.TextView;
import android.widget.Toast;
public class KeyServerQueryActivity extends BaseActivity {
// possible intent actions for this activity
public static final String ACTION_LOOK_UP_KEY_ID = Constants.INTENT_PREFIX + "LOOK_UP_KEY_ID";
public static final String ACTION_LOOK_UP_KEY_ID_AND_RETURN = Constants.INTENT_PREFIX
+ "LOOK_UP_KEY_ID_AND_RETURN";
private ListView mList;
private EditText mQuery;
private Button mSearch;
@ -121,8 +127,8 @@ public class KeyServerQueryActivity extends BaseActivity {
});
Intent intent = getIntent();
if (PGPHelper.Intent.LOOK_UP_KEY_ID.equals(intent.getAction())
|| PGPHelper.Intent.LOOK_UP_KEY_ID_AND_RETURN.equals(intent.getAction())) {
if (ACTION_LOOK_UP_KEY_ID.equals(intent.getAction())
|| ACTION_LOOK_UP_KEY_ID_AND_RETURN.equals(intent.getAction())) {
long keyId = intent.getLongExtra(PGPHelper.EXTRA_KEY_ID, 0);
if (keyId != 0) {
String query = "0x" + PGPHelper.keyToHex(keyId);
@ -208,7 +214,7 @@ public class KeyServerQueryActivity extends BaseActivity {
}
} else if (mQueryType == Id.keyserver.get) {
Intent orgIntent = getIntent();
if (PGPHelper.Intent.LOOK_UP_KEY_ID_AND_RETURN.equals(orgIntent.getAction())) {
if (ACTION_LOOK_UP_KEY_ID_AND_RETURN.equals(orgIntent.getAction())) {
if (mKeyData != null) {
Intent intent = new Intent();
intent.putExtra(PGPHelper.EXTRA_TEXT, mKeyData);
@ -220,7 +226,7 @@ public class KeyServerQueryActivity extends BaseActivity {
} else {
if (mKeyData != null) {
Intent intent = new Intent(this, PublicKeyListActivity.class);
intent.setAction(PGPHelper.Intent.IMPORT);
intent.setAction(KeyListActivity.ACTION_IMPORT);
intent.putExtra(PGPHelper.EXTRA_TEXT, mKeyData);
startActivity(intent);
}

View File

@ -20,8 +20,8 @@ import java.util.Vector;
import java.util.regex.Matcher;
import org.thialfihar.android.apg.R;
import org.thialfihar.android.apg.Preferences;
import org.thialfihar.android.apg.helper.PGPHelper;
import org.thialfihar.android.apg.helper.Preferences;
import android.app.ListActivity;
import android.content.Context;
@ -149,7 +149,7 @@ public class MailListActivity extends ListActivity {
getListView().setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View v, int position, long id) {
Intent intent = new Intent(MailListActivity.this, DecryptActivity.class);
intent.setAction(PGPHelper.Intent.DECRYPT);
intent.setAction(DecryptActivity.ACTION_DECRYPT);
Message message = (Message) ((MailboxAdapter) getListAdapter()).getItem(position);
intent.putExtra(PGPHelper.EXTRA_TEXT, message.data);
intent.putExtra(PGPHelper.EXTRA_SUBJECT, message.subject);

View File

@ -48,19 +48,19 @@ public class MainActivity extends SherlockActivity {
public void encryptOnClick(View view) {
Intent intent = new Intent(MainActivity.this, EncryptActivity.class);
intent.setAction(PGPHelper.Intent.ENCRYPT);
intent.setAction(EncryptActivity.ACTION_ENCRYPT);
startActivityForResult(intent, 0); // used instead of startActivity to get callingPackage
}
public void decryptOnClick(View view) {
Intent intent = new Intent(MainActivity.this, DecryptActivity.class);
intent.setAction(PGPHelper.Intent.DECRYPT);
intent.setAction(DecryptActivity.ACTION_DECRYPT);
startActivityForResult(intent, 0); // used instead of startActivity to get callingPackage
}
public void scanQrcodeOnClick(View view) {
Intent intent = new Intent(this, ImportFromQRCodeActivity.class);
intent.setAction(PGPHelper.Intent.IMPORT_FROM_QR_CODE);
intent.setAction(ImportFromQRCodeActivity.IMPORT_FROM_QR_CODE);
startActivityForResult(intent, Id.request.import_from_qr_code);
}

View File

@ -20,8 +20,8 @@ import org.spongycastle.bcpg.HashAlgorithmTags;
import org.spongycastle.openpgp.PGPEncryptedData;
import org.thialfihar.android.apg.Constants;
import org.thialfihar.android.apg.Id;
import org.thialfihar.android.apg.Preferences;
import org.thialfihar.android.apg.helper.PGPHelper;
import org.thialfihar.android.apg.helper.Preferences;
import org.thialfihar.android.apg.passphrase.PassphraseCacheService;
import org.thialfihar.android.apg.ui.widget.IntegerListPreference;
import org.thialfihar.android.apg.R;

View File

@ -71,7 +71,7 @@ public class PublicKeyListActivity extends KeyListActivity {
}
case Id.menu.option.scanQRCode: {
Intent intent = new Intent(this, ImportFromQRCodeActivity.class);
intent.setAction(PGPHelper.Intent.IMPORT_FROM_QR_CODE);
intent.setAction(ImportFromQRCodeActivity.IMPORT_FROM_QR_CODE);
startActivityForResult(intent, Id.request.import_from_qr_code);
return true;
@ -124,7 +124,7 @@ public class PublicKeyListActivity extends KeyListActivity {
}
Intent intent = new Intent(this, KeyServerQueryActivity.class);
intent.setAction(PGPHelper.Intent.LOOK_UP_KEY_ID_AND_RETURN);
intent.setAction(KeyServerQueryActivity.ACTION_LOOK_UP_KEY_ID_AND_RETURN);
intent.putExtra(PGPHelper.EXTRA_KEY_ID, keyId);
startActivityForResult(intent, Id.request.look_up_key_id);
@ -136,7 +136,7 @@ public class PublicKeyListActivity extends KeyListActivity {
final int keyRingId = mListAdapter.getKeyRingId(groupPosition);
Intent intent = new Intent(this, KeyServerExportActivity.class);
intent.setAction(PGPHelper.Intent.EXPORT_KEY_TO_SERVER);
intent.setAction(KeyServerExportActivity.ACTION_EXPORT_KEY_TO_SERVER);
intent.putExtra(PGPHelper.EXTRA_KEY_ID, keyRingId);
startActivityForResult(intent, Id.request.export_to_server);
@ -180,7 +180,7 @@ public class PublicKeyListActivity extends KeyListActivity {
}
Intent intent = new Intent(this, PublicKeyListActivity.class);
intent.setAction(PGPHelper.Intent.IMPORT);
intent.setAction(PublicKeyListActivity.ACTION_IMPORT);
intent.putExtra(PGPHelper.EXTRA_TEXT, data.getStringExtra(PGPHelper.EXTRA_TEXT));
handleIntent(intent);
break;

View File

@ -164,13 +164,13 @@ public class SecretKeyListActivity extends KeyListActivity implements OnChildCli
private void createKey() {
PGPHelper.setEditPassPhrase("");
Intent intent = new Intent(PGPHelper.Intent.CREATE_KEY);
Intent intent = new Intent(EditKeyActivity.ACTION_CREATE_KEY);
startActivityForResult(intent, Id.message.create_key);
}
private void editKey() {
long keyId = ((KeyListAdapter) mList.getExpandableListAdapter()).getGroupId(mSelectedItem);
Intent intent = new Intent(PGPHelper.Intent.EDIT_KEY);
Intent intent = new Intent(EditKeyActivity.ACTION_EDIT_KEY);
intent.putExtra(PGPHelper.EXTRA_KEY_ID, keyId);
startActivityForResult(intent, Id.message.edit_key);
}

View File

@ -18,6 +18,7 @@ package org.thialfihar.android.apg.ui;
import java.util.Vector;
import org.thialfihar.android.apg.Constants;
import org.thialfihar.android.apg.R;
import org.thialfihar.android.apg.Id;
import org.thialfihar.android.apg.helper.PGPHelper;
@ -37,6 +38,11 @@ import android.widget.ListView;
import android.widget.TextView;
public class SelectPublicKeyListActivity extends BaseActivity {
// Not used in sourcode, but listed in AndroidManifest!
public static final String ACTION_SELECT_PUBLIC_KEYS = Constants.INTENT_PREFIX
+ "SELECT_PUBLIC_KEYS";
protected ListView mList;
protected SelectPublicKeyListAdapter mListAdapter;
protected View mFilterLayout;

View File

@ -16,6 +16,7 @@
package org.thialfihar.android.apg.ui;
import org.thialfihar.android.apg.Constants;
import org.thialfihar.android.apg.R;
import org.thialfihar.android.apg.Id;
import org.thialfihar.android.apg.helper.PGPHelper;
@ -36,6 +37,11 @@ import android.widget.ListView;
import android.widget.TextView;
public class SelectSecretKeyListActivity extends BaseActivity {
// Not used in sourcode, but listed in AndroidManifest!
public static final String ACTION_SELECT_SECRET_KEY = Constants.INTENT_PREFIX
+ "SELECT_SECRET_KEY";
protected ListView mList;
protected SelectSecretKeyListAdapter mListAdapter;
protected View mFilterLayout;

View File

@ -33,10 +33,10 @@ import org.spongycastle.openpgp.PGPSignatureSubpacketGenerator;
import org.spongycastle.openpgp.PGPSignatureSubpacketVector;
import org.spongycastle.openpgp.PGPUtil;
import org.thialfihar.android.apg.Constants;
import org.thialfihar.android.apg.HkpKeyServer;
import org.thialfihar.android.apg.Id;
import org.thialfihar.android.apg.R;
import org.thialfihar.android.apg.helper.PGPHelper;
import org.thialfihar.android.apg.util.HkpKeyServer;
import com.actionbarsherlock.view.MenuItem;

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.thialfihar.android.apg;
package org.thialfihar.android.apg.util;
import java.io.ByteArrayOutputStream;
import java.io.IOException;

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.thialfihar.android.apg;
package org.thialfihar.android.apg.util;
import java.io.Serializable;
import java.util.Date;