From f143fc0eb9371d06be9824251962d8dbea249942 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Mon, 30 Dec 2013 22:20:20 +0100 Subject: [PATCH] rename resources folders, new high def icons --- .../res/xml/base_preference.xml | 3 + .../openintents/openpgp/IOpenPgpService.aidl | 56 +++++++++--------- .../openintents/openpgp/OpenPgpConstants.java | 10 ++++ .../openintents/openpgp/OpenPgpHelper.java | 2 +- .../openpgp/OpenPgpListPreference.java | 34 +++++------ .../openpgp/OpenPgpServiceConnection.java | 32 +++++----- OpenPGP-Keychain/res/drawable-xhdpi/icon.png | Bin 8165 -> 8165 bytes OpenPGP-Keychain/res/drawable-xxhdpi/icon.png | Bin 0 -> 14633 bytes .../res/drawable-xxxhdpi/icon.png | Bin 0 -> 21592 bytes Resources/Graphics/icon_googlecode.png | Bin 3643 -> 0 bytes .../dashboard_decrypt_default.svg | 0 .../dashboard_decrypt_pressed.svg | 0 .../dashboard_encrypt_default.svg | 0 .../dashboard_encrypt_pressed.svg | 0 .../dashboard_help_default.svg | 0 .../dashboard_help_pressed.svg | 0 .../dashboard_import_default.svg | 0 .../dashboard_import_pressed.svg | 0 .../dashboard_manage_keys_default.svg | 0 .../dashboard_manage_keys_pressed.svg | 0 .../dashboard_my_keys_default.svg | 0 .../dashboard_my_keys_pressed.svg | 0 .../dashboard_scan_qrcode_default.svg | 0 .../dashboard_scan_qrcode_pressed.svg | 0 .../icon.png} | Bin Resources/{Graphics => graphics}/icon.svg | 0 .../{Graphics => graphics}/icon_sizes.txt | 0 Resources/{Graphics => graphics}/key.svg | 0 .../kgpg_key2_kopete.svgz | Bin Resources/graphics/update-icon.sh | 32 ++++++++++ .../screenshot1.png | Bin .../screenshot2.png | Bin .../screenshot3.png | Bin .../screenshot4.png | Bin .../screenshot5.png | Bin 35 files changed, 103 insertions(+), 66 deletions(-) create mode 100644 OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpConstants.java create mode 100644 OpenPGP-Keychain/res/drawable-xxhdpi/icon.png create mode 100644 OpenPGP-Keychain/res/drawable-xxxhdpi/icon.png delete mode 100644 Resources/Graphics/icon_googlecode.png rename Resources/{Graphics => graphics}/dashboard_decrypt_default.svg (100%) rename Resources/{Graphics => graphics}/dashboard_decrypt_pressed.svg (100%) rename Resources/{Graphics => graphics}/dashboard_encrypt_default.svg (100%) rename Resources/{Graphics => graphics}/dashboard_encrypt_pressed.svg (100%) rename Resources/{Graphics => graphics}/dashboard_help_default.svg (100%) rename Resources/{Graphics => graphics}/dashboard_help_pressed.svg (100%) rename Resources/{Graphics => graphics}/dashboard_import_default.svg (100%) rename Resources/{Graphics => graphics}/dashboard_import_pressed.svg (100%) rename Resources/{Graphics => graphics}/dashboard_manage_keys_default.svg (100%) rename Resources/{Graphics => graphics}/dashboard_manage_keys_pressed.svg (100%) rename Resources/{Graphics => graphics}/dashboard_my_keys_default.svg (100%) rename Resources/{Graphics => graphics}/dashboard_my_keys_pressed.svg (100%) rename Resources/{Graphics => graphics}/dashboard_scan_qrcode_default.svg (100%) rename Resources/{Graphics => graphics}/dashboard_scan_qrcode_pressed.svg (100%) rename Resources/{Graphics/icon_google_play.png => graphics/icon.png} (100%) rename Resources/{Graphics => graphics}/icon.svg (100%) rename Resources/{Graphics => graphics}/icon_sizes.txt (100%) rename Resources/{Graphics => graphics}/key.svg (100%) rename Resources/{Graphics => graphics}/kgpg_key2_kopete.svgz (100%) create mode 100755 Resources/graphics/update-icon.sh rename Resources/{Screenshots => screenshots}/screenshot1.png (100%) rename Resources/{Screenshots => screenshots}/screenshot2.png (100%) rename Resources/{Screenshots => screenshots}/screenshot3.png (100%) rename Resources/{Screenshots => screenshots}/screenshot4.png (100%) rename Resources/{Screenshots => screenshots}/screenshot5.png (100%) 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 03ee31bbd0ea994366dea0bcd6714009b0b0c837..ec8e9fc6d66d2596393f738b20fad1da4cee74ea 100644 GIT binary patch delta 21 dcmaEA|I~hh4c80?2BsN|W|!UXZ*-e44**-~2sQu! delta 21 dcmaEA|I~hh4cANt2Bw*ePo^xj-sm=89spjr2w?yK diff --git a/OpenPGP-Keychain/res/drawable-xxhdpi/icon.png b/OpenPGP-Keychain/res/drawable-xxhdpi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a55413501445068aa282fd4074f60c5e1d3d010d GIT binary patch literal 14633 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 literal 0 HcmV?d00001 diff --git a/OpenPGP-Keychain/res/drawable-xxxhdpi/icon.png b/OpenPGP-Keychain/res/drawable-xxxhdpi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d4c77573ee91881a79ca16dde19274a83207ecd2 GIT binary patch literal 21592 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 literal 0 HcmV?d00001 diff --git a/Resources/Graphics/icon_googlecode.png b/Resources/Graphics/icon_googlecode.png deleted file mode 100644 index 33acccfd39318cbdf82da104e4e98337910128c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3643 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