diff --git a/OpenPGP-Keychain-API-Demo/res/xml/base_preference.xml b/OpenPGP-Keychain-API-Demo/res/xml/base_preference.xml index f36c5f5a9..5febfad44 100644 --- a/OpenPGP-Keychain-API-Demo/res/xml/base_preference.xml +++ b/OpenPGP-Keychain-API-Demo/res/xml/base_preference.xml @@ -12,6 +12,9 @@ + diff --git a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/IOpenPgpService.aidl b/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/IOpenPgpService.aidl index 69a608dc6..8f9e8a0fd 100644 --- a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/IOpenPgpService.aidl +++ b/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/IOpenPgpService.aidl @@ -25,11 +25,35 @@ import org.openintents.openpgp.IOpenPgpKeyIdsCallback; * Results are returned to the callback, which has to be implemented on client side. */ interface IOpenPgpService { + + /** + * Sign + * + * After successful signing, callback's onSuccess will contain the resulting output. + * + * @param input + * OpenPgpData object containing String, byte[], ParcelFileDescriptor, or Uri + * @param output + * Request output format by defining OpenPgpData object + * + * new OpenPgpData(OpenPgpData.TYPE_STRING) + * Returns as String + * (OpenPGP Radix-64, 33 percent overhead compared to binary, see http://tools.ietf.org/html/rfc4880#page-53) + * new OpenPgpData(OpenPgpData.TYPE_BYTE_ARRAY) + * Returns as byte[] + * new OpenPgpData(uri) + * Writes output to given Uri + * new OpenPgpData(fileDescriptor) + * Writes output to given ParcelFileDescriptor + * @param callback + * Callback where to return results + */ + oneway void sign(in OpenPgpData input, in OpenPgpData output, in IOpenPgpCallback callback); /** * Encrypt * - * After successful encryption, callback's onSuccess will contain the resulting output bytes. + * After successful encryption, callback's onSuccess will contain the resulting output. * * @param input * OpenPgpData object containing String, byte[], ParcelFileDescriptor, or Uri @@ -52,34 +76,10 @@ interface IOpenPgpService { */ oneway void encrypt(in OpenPgpData input, in OpenPgpData output, in long[] keyIds, in IOpenPgpCallback callback); - /** - * Sign - * - * After successful signing, callback's onSuccess will contain the resulting output bytes. - * - * @param input - * OpenPgpData object containing String, byte[], ParcelFileDescriptor, or Uri - * @param output - * Request output format by defining OpenPgpData object - * - * new OpenPgpData(OpenPgpData.TYPE_STRING) - * Returns as String - * (OpenPGP Radix-64, 33 percent overhead compared to binary, see http://tools.ietf.org/html/rfc4880#page-53) - * new OpenPgpData(OpenPgpData.TYPE_BYTE_ARRAY) - * Returns as byte[] - * new OpenPgpData(uri) - * Writes output to given Uri - * new OpenPgpData(fileDescriptor) - * Writes output to given ParcelFileDescriptor - * @param callback - * Callback where to return results - */ - oneway void sign(in OpenPgpData input, in OpenPgpData output, in IOpenPgpCallback callback); - /** * Sign then encrypt * - * After successful signing and encryption, callback's onSuccess will contain the resulting output bytes. + * After successful signing and encryption, callback's onSuccess will contain the resulting output. * * @param input * OpenPgpData object containing String, byte[], ParcelFileDescriptor, or Uri @@ -104,9 +104,9 @@ interface IOpenPgpService { /** * Decrypts and verifies given input bytes. This methods handles encrypted-only, signed-and-encrypted, - * and also signed-only inputBytes. + * and also signed-only input. * - * After successful decryption/verification, callback's onSuccess will contain the resulting output bytes. + * After successful decryption/verification, callback's onSuccess will contain the resulting output. * The signatureResult in onSuccess is only non-null if signed-and-encrypted or signed-only inputBytes were given. * * @param input diff --git a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpConstants.java b/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpConstants.java new file mode 100644 index 000000000..b1ca1bfe6 --- /dev/null +++ b/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpConstants.java @@ -0,0 +1,10 @@ +package org.openintents.openpgp; + +public class OpenPgpConstants { + + public static final String TAG = "OpenPgp API"; + + public static final int REQUIRED_API_VERSION = 1; + public static final String SERVICE_INTENT = "org.openintents.openpgp.IOpenPgpService"; + +} diff --git a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpHelper.java b/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpHelper.java index 56c4a4dca..7305c47ce 100644 --- a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpHelper.java +++ b/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpHelper.java @@ -40,7 +40,7 @@ public class OpenPgpHelper { } public boolean isAvailable() { - Intent intent = new Intent(IOpenPgpService.class.getName()); + Intent intent = new Intent(OpenPgpConstants.SERVICE_INTENT); List resInfo = context.getPackageManager().queryIntentServices(intent, 0); if (!resInfo.isEmpty()) { return true; diff --git a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpListPreference.java b/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpListPreference.java index 551401b18..c2dda2613 100644 --- a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpListPreference.java +++ b/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpListPreference.java @@ -39,22 +39,19 @@ public class OpenPgpListPreference extends DialogPreference { ArrayList mProviderList = new ArrayList(); private String mSelectedPackage; - public static final int REQUIRED_API_VERSION = 1; - public OpenPgpListPreference(Context context, AttributeSet attrs) { super(context, attrs); - List resInfo = - context.getPackageManager().queryIntentServices( - new Intent(IOpenPgpService.class.getName()), PackageManager.GET_META_DATA); + List resInfo = context.getPackageManager().queryIntentServices( + new Intent(OpenPgpConstants.SERVICE_INTENT), PackageManager.GET_META_DATA); if (!resInfo.isEmpty()) { for (ResolveInfo resolveInfo : resInfo) { if (resolveInfo.serviceInfo == null) continue; String packageName = resolveInfo.serviceInfo.packageName; - String simpleName = String.valueOf(resolveInfo.serviceInfo - .loadLabel(context.getPackageManager())); + String simpleName = String.valueOf(resolveInfo.serviceInfo.loadLabel(context + .getPackageManager())); Drawable icon = resolveInfo.serviceInfo.loadIcon(context.getPackageManager()); // get api version @@ -95,22 +92,20 @@ public class OpenPgpListPreference extends DialogPreference { TextView tv = (TextView) v.findViewById(android.R.id.text1); // Put the image on the TextView - tv.setCompoundDrawablesWithIntrinsicBounds(mProviderList.get(position).icon, - null, null, null); + tv.setCompoundDrawablesWithIntrinsicBounds(mProviderList.get(position).icon, null, + null, null); - // Add margin between image and text (support various screen - // densities) + // Add margin between image and text (support various screen densities) int dp5 = (int) (5 * getContext().getResources().getDisplayMetrics().density + 0.5f); tv.setCompoundDrawablePadding(dp5); // disable if it has the wrong api_version - if (mProviderList.get(position).apiVersion == REQUIRED_API_VERSION) { + if (mProviderList.get(position).apiVersion == OpenPgpConstants.REQUIRED_API_VERSION) { tv.setEnabled(true); } else { tv.setEnabled(false); - tv.setText(tv.getText() + " (API v" - + mProviderList.get(position).apiVersion + ", needs v" - + REQUIRED_API_VERSION + ")"); + tv.setText(tv.getText() + " (API v" + mProviderList.get(position).apiVersion + + ", needs v" + OpenPgpConstants.REQUIRED_API_VERSION + ")"); } return v; @@ -125,8 +120,8 @@ public class OpenPgpListPreference extends DialogPreference { mSelectedPackage = mProviderList.get(which).packageName; /* - * Clicking on an item simulates the positive button - * click, and dismisses the dialog. + * Clicking on an item simulates the positive button click, and dismisses + * the dialog. */ OpenPgpListPreference.this.onClick(dialog, DialogInterface.BUTTON_POSITIVE); dialog.dismiss(); @@ -134,9 +129,8 @@ public class OpenPgpListPreference extends DialogPreference { }); /* - * The typical interaction for list-based dialogs is to have - * click-on-an-item dismiss the dialog instead of the user having to - * press 'Ok'. + * The typical interaction for list-based dialogs is to have click-on-an-item dismiss the + * dialog instead of the user having to press 'Ok'. */ builder.setPositiveButton(null, null); } diff --git a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpServiceConnection.java b/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpServiceConnection.java index 56a922d73..f7ba06aaf 100644 --- a/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpServiceConnection.java +++ b/OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpServiceConnection.java @@ -29,14 +29,12 @@ public class OpenPgpServiceConnection { private Context mApplicationContext; private IOpenPgpService mService; - private boolean bound; - private String cryptoProviderPackageName; - - private static final String TAG = "OpenPgpServiceConnection"; + private boolean mBound; + private String mCryptoProviderPackageName; public OpenPgpServiceConnection(Context context, String cryptoProviderPackageName) { - mApplicationContext = context.getApplicationContext(); - this.cryptoProviderPackageName = cryptoProviderPackageName; + this.mApplicationContext = context.getApplicationContext(); + this.mCryptoProviderPackageName = cryptoProviderPackageName; } public IOpenPgpService getService() { @@ -44,20 +42,20 @@ public class OpenPgpServiceConnection { } public boolean isBound() { - return bound; + return mBound; } private ServiceConnection mCryptoServiceConnection = new ServiceConnection() { public void onServiceConnected(ComponentName name, IBinder service) { mService = IOpenPgpService.Stub.asInterface(service); - Log.d(TAG, "connected to service"); - bound = true; + Log.d(OpenPgpConstants.TAG, "connected to service"); + mBound = true; } public void onServiceDisconnected(ComponentName name) { mService = null; - Log.d(TAG, "disconnected from service"); - bound = false; + Log.d(OpenPgpConstants.TAG, "disconnected from service"); + mBound = false; } }; @@ -67,23 +65,23 @@ public class OpenPgpServiceConnection { * @return */ public boolean bindToService() { - if (mService == null && !bound) { // if not already connected + if (mService == null && !mBound) { // if not already connected try { - Log.d(TAG, "not bound yet"); + Log.d(OpenPgpConstants.TAG, "not bound yet"); Intent serviceIntent = new Intent(); serviceIntent.setAction(IOpenPgpService.class.getName()); - serviceIntent.setPackage(cryptoProviderPackageName); + serviceIntent.setPackage(mCryptoProviderPackageName); mApplicationContext.bindService(serviceIntent, mCryptoServiceConnection, Context.BIND_AUTO_CREATE); return true; } catch (Exception e) { - Log.d(TAG, "Exception", e); + Log.d(OpenPgpConstants.TAG, "Exception on binding", e); return false; } - } else { // already connected - Log.d(TAG, "already bound... "); + } else { + Log.d(OpenPgpConstants.TAG, "already bound"); return true; } } diff --git a/OpenPGP-Keychain/res/drawable-xhdpi/icon.png b/OpenPGP-Keychain/res/drawable-xhdpi/icon.png index 03ee31bbd..ec8e9fc6d 100644 Binary files a/OpenPGP-Keychain/res/drawable-xhdpi/icon.png and b/OpenPGP-Keychain/res/drawable-xhdpi/icon.png differ diff --git a/OpenPGP-Keychain/res/drawable-xxhdpi/icon.png b/OpenPGP-Keychain/res/drawable-xxhdpi/icon.png new file mode 100644 index 000000000..a55413501 Binary files /dev/null and b/OpenPGP-Keychain/res/drawable-xxhdpi/icon.png differ diff --git a/OpenPGP-Keychain/res/drawable-xxxhdpi/icon.png b/OpenPGP-Keychain/res/drawable-xxxhdpi/icon.png new file mode 100644 index 000000000..d4c77573e Binary files /dev/null and b/OpenPGP-Keychain/res/drawable-xxxhdpi/icon.png differ diff --git a/Resources/Graphics/icon_googlecode.png b/Resources/Graphics/icon_googlecode.png deleted file mode 100644 index 33acccfd3..000000000 Binary files a/Resources/Graphics/icon_googlecode.png and /dev/null differ diff --git a/Resources/Graphics/dashboard_decrypt_default.svg b/Resources/graphics/dashboard_decrypt_default.svg similarity index 100% rename from Resources/Graphics/dashboard_decrypt_default.svg rename to Resources/graphics/dashboard_decrypt_default.svg diff --git a/Resources/Graphics/dashboard_decrypt_pressed.svg b/Resources/graphics/dashboard_decrypt_pressed.svg similarity index 100% rename from Resources/Graphics/dashboard_decrypt_pressed.svg rename to Resources/graphics/dashboard_decrypt_pressed.svg diff --git a/Resources/Graphics/dashboard_encrypt_default.svg b/Resources/graphics/dashboard_encrypt_default.svg similarity index 100% rename from Resources/Graphics/dashboard_encrypt_default.svg rename to Resources/graphics/dashboard_encrypt_default.svg diff --git a/Resources/Graphics/dashboard_encrypt_pressed.svg b/Resources/graphics/dashboard_encrypt_pressed.svg similarity index 100% rename from Resources/Graphics/dashboard_encrypt_pressed.svg rename to Resources/graphics/dashboard_encrypt_pressed.svg diff --git a/Resources/Graphics/dashboard_help_default.svg b/Resources/graphics/dashboard_help_default.svg similarity index 100% rename from Resources/Graphics/dashboard_help_default.svg rename to Resources/graphics/dashboard_help_default.svg diff --git a/Resources/Graphics/dashboard_help_pressed.svg b/Resources/graphics/dashboard_help_pressed.svg similarity index 100% rename from Resources/Graphics/dashboard_help_pressed.svg rename to Resources/graphics/dashboard_help_pressed.svg diff --git a/Resources/Graphics/dashboard_import_default.svg b/Resources/graphics/dashboard_import_default.svg similarity index 100% rename from Resources/Graphics/dashboard_import_default.svg rename to Resources/graphics/dashboard_import_default.svg diff --git a/Resources/Graphics/dashboard_import_pressed.svg b/Resources/graphics/dashboard_import_pressed.svg similarity index 100% rename from Resources/Graphics/dashboard_import_pressed.svg rename to Resources/graphics/dashboard_import_pressed.svg diff --git a/Resources/Graphics/dashboard_manage_keys_default.svg b/Resources/graphics/dashboard_manage_keys_default.svg similarity index 100% rename from Resources/Graphics/dashboard_manage_keys_default.svg rename to Resources/graphics/dashboard_manage_keys_default.svg diff --git a/Resources/Graphics/dashboard_manage_keys_pressed.svg b/Resources/graphics/dashboard_manage_keys_pressed.svg similarity index 100% rename from Resources/Graphics/dashboard_manage_keys_pressed.svg rename to Resources/graphics/dashboard_manage_keys_pressed.svg diff --git a/Resources/Graphics/dashboard_my_keys_default.svg b/Resources/graphics/dashboard_my_keys_default.svg similarity index 100% rename from Resources/Graphics/dashboard_my_keys_default.svg rename to Resources/graphics/dashboard_my_keys_default.svg diff --git a/Resources/Graphics/dashboard_my_keys_pressed.svg b/Resources/graphics/dashboard_my_keys_pressed.svg similarity index 100% rename from Resources/Graphics/dashboard_my_keys_pressed.svg rename to Resources/graphics/dashboard_my_keys_pressed.svg diff --git a/Resources/Graphics/dashboard_scan_qrcode_default.svg b/Resources/graphics/dashboard_scan_qrcode_default.svg similarity index 100% rename from Resources/Graphics/dashboard_scan_qrcode_default.svg rename to Resources/graphics/dashboard_scan_qrcode_default.svg diff --git a/Resources/Graphics/dashboard_scan_qrcode_pressed.svg b/Resources/graphics/dashboard_scan_qrcode_pressed.svg similarity index 100% rename from Resources/Graphics/dashboard_scan_qrcode_pressed.svg rename to Resources/graphics/dashboard_scan_qrcode_pressed.svg diff --git a/Resources/Graphics/icon_google_play.png b/Resources/graphics/icon.png similarity index 100% rename from Resources/Graphics/icon_google_play.png rename to Resources/graphics/icon.png diff --git a/Resources/Graphics/icon.svg b/Resources/graphics/icon.svg similarity index 100% rename from Resources/Graphics/icon.svg rename to Resources/graphics/icon.svg diff --git a/Resources/Graphics/icon_sizes.txt b/Resources/graphics/icon_sizes.txt similarity index 100% rename from Resources/Graphics/icon_sizes.txt rename to Resources/graphics/icon_sizes.txt diff --git a/Resources/Graphics/key.svg b/Resources/graphics/key.svg similarity index 100% rename from Resources/Graphics/key.svg rename to Resources/graphics/key.svg diff --git a/Resources/Graphics/kgpg_key2_kopete.svgz b/Resources/graphics/kgpg_key2_kopete.svgz similarity index 100% rename from Resources/Graphics/kgpg_key2_kopete.svgz rename to Resources/graphics/kgpg_key2_kopete.svgz diff --git a/Resources/graphics/update-icon.sh b/Resources/graphics/update-icon.sh new file mode 100755 index 000000000..307541f2c --- /dev/null +++ b/Resources/graphics/update-icon.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +APP_DIR=../../OpenPGP-Keychain +LDPI_DIR=$APP_DIR/res/drawable-ldpi +MDPI_DIR=$APP_DIR/res/drawable-mdpi +HDPI_DIR=$APP_DIR/res/drawable-hdpi +XDPI_DIR=$APP_DIR/res/drawable-xhdpi +XXDPI_DIR=$APP_DIR/res/drawable-xxhdpi +XXXDPI_DIR=$APP_DIR/res/drawable-xxxhdpi +PLAY_DIR=./ + + +# Launcher Icon: +# ----------------------- +# ldpi: 36x36 +# mdpi: 48x48 +# hdpi: 72x72 +# xhdpi: 96x96 +# xxhdpi: 144x144. +# xxxhdpi 192x192. +# google play: 512x512 + +NAME="icon" + +inkscape -w 36 -h 36 -e "$LDPI_DIR/$NAME.png" $NAME.svg +inkscape -w 48 -h 48 -e "$MDPI_DIR/$NAME.png" $NAME.svg +inkscape -w 72 -h 72 -e "$HDPI_DIR/$NAME.png" $NAME.svg +inkscape -w 96 -h 96 -e "$XDPI_DIR/$NAME.png" $NAME.svg +inkscape -w 144 -h 144 -e "$XXDPI_DIR/$NAME.png" $NAME.svg +inkscape -w 192 -h 192 -e "$XXXDPI_DIR/$NAME.png" $NAME.svg +inkscape -w 512 -h 512 -e "$PLAY_DIR/$NAME.png" $NAME.svg + diff --git a/Resources/Screenshots/screenshot1.png b/Resources/screenshots/screenshot1.png similarity index 100% rename from Resources/Screenshots/screenshot1.png rename to Resources/screenshots/screenshot1.png diff --git a/Resources/Screenshots/screenshot2.png b/Resources/screenshots/screenshot2.png similarity index 100% rename from Resources/Screenshots/screenshot2.png rename to Resources/screenshots/screenshot2.png diff --git a/Resources/Screenshots/screenshot3.png b/Resources/screenshots/screenshot3.png similarity index 100% rename from Resources/Screenshots/screenshot3.png rename to Resources/screenshots/screenshot3.png diff --git a/Resources/Screenshots/screenshot4.png b/Resources/screenshots/screenshot4.png similarity index 100% rename from Resources/Screenshots/screenshot4.png rename to Resources/screenshots/screenshot4.png diff --git a/Resources/Screenshots/screenshot5.png b/Resources/screenshots/screenshot5.png similarity index 100% rename from Resources/Screenshots/screenshot5.png rename to Resources/screenshots/screenshot5.png