aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--OpenPGP-Keychain-API-Demo/res/xml/base_preference.xml3
-rw-r--r--OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/IOpenPgpService.aidl28
-rw-r--r--OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpConstants.java10
-rw-r--r--OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpHelper.java2
-rw-r--r--OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpListPreference.java34
-rw-r--r--OpenPGP-Keychain-API-Demo/src/org/openintents/openpgp/OpenPgpServiceConnection.java32
-rw-r--r--OpenPGP-Keychain/res/drawable-xhdpi/icon.pngbin8165 -> 8165 bytes
-rw-r--r--OpenPGP-Keychain/res/drawable-xxhdpi/icon.pngbin0 -> 14633 bytes
-rw-r--r--OpenPGP-Keychain/res/drawable-xxxhdpi/icon.pngbin0 -> 21592 bytes
-rw-r--r--Resources/Graphics/icon_googlecode.pngbin3643 -> 0 bytes
-rw-r--r--Resources/graphics/dashboard_decrypt_default.svg (renamed from Resources/Graphics/dashboard_decrypt_default.svg)0
-rw-r--r--Resources/graphics/dashboard_decrypt_pressed.svg (renamed from Resources/Graphics/dashboard_decrypt_pressed.svg)0
-rw-r--r--Resources/graphics/dashboard_encrypt_default.svg (renamed from Resources/Graphics/dashboard_encrypt_default.svg)0
-rw-r--r--Resources/graphics/dashboard_encrypt_pressed.svg (renamed from Resources/Graphics/dashboard_encrypt_pressed.svg)0
-rwxr-xr-xResources/graphics/dashboard_help_default.svg (renamed from Resources/Graphics/dashboard_help_default.svg)0
-rw-r--r--Resources/graphics/dashboard_help_pressed.svg (renamed from Resources/Graphics/dashboard_help_pressed.svg)0
-rw-r--r--Resources/graphics/dashboard_import_default.svg (renamed from Resources/Graphics/dashboard_import_default.svg)0
-rw-r--r--Resources/graphics/dashboard_import_pressed.svg (renamed from Resources/Graphics/dashboard_import_pressed.svg)0
-rw-r--r--Resources/graphics/dashboard_manage_keys_default.svg (renamed from Resources/Graphics/dashboard_manage_keys_default.svg)0
-rw-r--r--Resources/graphics/dashboard_manage_keys_pressed.svg (renamed from Resources/Graphics/dashboard_manage_keys_pressed.svg)0
-rw-r--r--Resources/graphics/dashboard_my_keys_default.svg (renamed from Resources/Graphics/dashboard_my_keys_default.svg)0
-rw-r--r--Resources/graphics/dashboard_my_keys_pressed.svg (renamed from Resources/Graphics/dashboard_my_keys_pressed.svg)0
-rw-r--r--Resources/graphics/dashboard_scan_qrcode_default.svg (renamed from Resources/Graphics/dashboard_scan_qrcode_default.svg)0
-rw-r--r--Resources/graphics/dashboard_scan_qrcode_pressed.svg (renamed from Resources/Graphics/dashboard_scan_qrcode_pressed.svg)0
-rw-r--r--Resources/graphics/icon.png (renamed from Resources/Graphics/icon_google_play.png)bin81207 -> 81207 bytes
-rw-r--r--Resources/graphics/icon.svg (renamed from Resources/Graphics/icon.svg)0
-rw-r--r--Resources/graphics/icon_sizes.txt (renamed from Resources/Graphics/icon_sizes.txt)0
-rw-r--r--Resources/graphics/key.svg (renamed from Resources/Graphics/key.svg)0
-rw-r--r--Resources/graphics/kgpg_key2_kopete.svgz (renamed from Resources/Graphics/kgpg_key2_kopete.svgz)bin36830 -> 36830 bytes
-rwxr-xr-xResources/graphics/update-icon.sh32
-rw-r--r--Resources/screenshots/screenshot1.png (renamed from Resources/Screenshots/screenshot1.png)bin35361 -> 35361 bytes
-rw-r--r--Resources/screenshots/screenshot2.png (renamed from Resources/Screenshots/screenshot2.png)bin27660 -> 27660 bytes
-rw-r--r--Resources/screenshots/screenshot3.png (renamed from Resources/Screenshots/screenshot3.png)bin26405 -> 26405 bytes
-rw-r--r--Resources/screenshots/screenshot4.png (renamed from Resources/Screenshots/screenshot4.png)bin30530 -> 30530 bytes
-rw-r--r--Resources/screenshots/screenshot5.png (renamed from Resources/Screenshots/screenshot5.png)bin22315 -> 22315 bytes
35 files changed, 89 insertions, 52 deletions
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 @@
<!-- android:title="AIDL Demo (ACCESS_KEYS permission)" /> -->
<!-- </PreferenceCategory> -->
<PreferenceCategory android:title="OpenPGP Provider" >
+ <org.openintents.openpgp.OpenPgpListPreference
+ android:key="openpgp_provider_list"
+ android:title="Select OpenPGP Provider!" />
<Preference
android:key="openpgp_provider_demo"
android:title="OpenPGP Provider" />
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,12 +25,12 @@ import org.openintents.openpgp.IOpenPgpKeyIdsCallback;
* Results are returned to the callback, which has to be implemented on client side.
*/
interface IOpenPgpService {
-
+
/**
- * Encrypt
- *
- * After successful encryption, callback's onSuccess will contain the resulting output bytes.
+ * Sign
*
+ * After successful signing, callback's onSuccess will contain the resulting output.
+ *
* @param input
* OpenPgpData object containing String, byte[], ParcelFileDescriptor, or Uri
* @param output
@@ -45,18 +45,16 @@ interface IOpenPgpService {
* Writes output to given Uri
* new OpenPgpData(fileDescriptor)
* Writes output to given ParcelFileDescriptor
- * @param keyIds
- * Key Ids of recipients. Can be retrieved with getKeyIds()
* @param callback
* Callback where to return results
*/
- oneway void encrypt(in OpenPgpData input, in OpenPgpData output, in long[] keyIds, in IOpenPgpCallback callback);
+ oneway void sign(in OpenPgpData input, in OpenPgpData output, in IOpenPgpCallback callback);
/**
- * Sign
+ * Encrypt
+ *
+ * After successful encryption, callback's onSuccess will contain the resulting output.
*
- * After successful signing, callback's onSuccess will contain the resulting output bytes.
- *
* @param input
* OpenPgpData object containing String, byte[], ParcelFileDescriptor, or Uri
* @param output
@@ -71,15 +69,17 @@ interface IOpenPgpService {
* Writes output to given Uri
* new OpenPgpData(fileDescriptor)
* Writes output to given ParcelFileDescriptor
+ * @param keyIds
+ * Key Ids of recipients. Can be retrieved with getKeyIds()
* @param callback
* Callback where to return results
*/
- oneway void sign(in OpenPgpData input, in OpenPgpData output, in IOpenPgpCallback callback);
+ oneway void encrypt(in OpenPgpData input, in OpenPgpData output, in long[] keyIds, 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<ResolveInfo> 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<OpenPgpProviderEntry> mProviderList = new ArrayList<OpenPgpProviderEntry>();
private String mSelectedPackage;
- public static final int REQUIRED_API_VERSION = 1;
-
public OpenPgpListPreference(Context context, AttributeSet attrs) {
super(context, attrs);
- List<ResolveInfo> resInfo =
- context.getPackageManager().queryIntentServices(
- new Intent(IOpenPgpService.class.getName()), PackageManager.GET_META_DATA);
+ List<ResolveInfo> 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
--- a/OpenPGP-Keychain/res/drawable-xhdpi/icon.png
+++ b/OpenPGP-Keychain/res/drawable-xhdpi/icon.png
Binary files 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
--- /dev/null
+++ b/OpenPGP-Keychain/res/drawable-xxhdpi/icon.png
Binary files 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
--- /dev/null
+++ b/OpenPGP-Keychain/res/drawable-xxxhdpi/icon.png
Binary files differ
diff --git a/Resources/Graphics/icon_googlecode.png b/Resources/Graphics/icon_googlecode.png
deleted file mode 100644
index 33acccfd3..000000000
--- a/Resources/Graphics/icon_googlecode.png
+++ /dev/null
Binary files differ
diff --git a/Resources/Graphics/dashboard_decrypt_default.svg b/Resources/graphics/dashboard_decrypt_default.svg
index 1b934251f..1b934251f 100644
--- a/Resources/Graphics/dashboard_decrypt_default.svg
+++ b/Resources/graphics/dashboard_decrypt_default.svg
diff --git a/Resources/Graphics/dashboard_decrypt_pressed.svg b/Resources/graphics/dashboard_decrypt_pressed.svg
index 1795a58ed..1795a58ed 100644
--- a/Resources/Graphics/dashboard_decrypt_pressed.svg
+++ b/Resources/graphics/dashboard_decrypt_pressed.svg
diff --git a/Resources/Graphics/dashboard_encrypt_default.svg b/Resources/graphics/dashboard_encrypt_default.svg
index 13ba746d3..13ba746d3 100644
--- a/Resources/Graphics/dashboard_encrypt_default.svg
+++ b/Resources/graphics/dashboard_encrypt_default.svg
diff --git a/Resources/Graphics/dashboard_encrypt_pressed.svg b/Resources/graphics/dashboard_encrypt_pressed.svg
index c0e58d848..c0e58d848 100644
--- a/Resources/Graphics/dashboard_encrypt_pressed.svg
+++ b/Resources/graphics/dashboard_encrypt_pressed.svg
diff --git a/Resources/Graphics/dashboard_help_default.svg b/Resources/graphics/dashboard_help_default.svg
index 9031729a3..9031729a3 100755
--- a/Resources/Graphics/dashboard_help_default.svg
+++ b/Resources/graphics/dashboard_help_default.svg
diff --git a/Resources/Graphics/dashboard_help_pressed.svg b/Resources/graphics/dashboard_help_pressed.svg
index 1e22f4679..1e22f4679 100644
--- a/Resources/Graphics/dashboard_help_pressed.svg
+++ b/Resources/graphics/dashboard_help_pressed.svg
diff --git a/Resources/Graphics/dashboard_import_default.svg b/Resources/graphics/dashboard_import_default.svg
index f59856e13..f59856e13 100644
--- a/Resources/Graphics/dashboard_import_default.svg
+++ b/Resources/graphics/dashboard_import_default.svg
diff --git a/Resources/Graphics/dashboard_import_pressed.svg b/Resources/graphics/dashboard_import_pressed.svg
index 34cba7aab..34cba7aab 100644
--- a/Resources/Graphics/dashboard_import_pressed.svg
+++ b/Resources/graphics/dashboard_import_pressed.svg
diff --git a/Resources/Graphics/dashboard_manage_keys_default.svg b/Resources/graphics/dashboard_manage_keys_default.svg
index b292673da..b292673da 100644
--- a/Resources/Graphics/dashboard_manage_keys_default.svg
+++ b/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
index a8eeb8cff..a8eeb8cff 100644
--- a/Resources/Graphics/dashboard_manage_keys_pressed.svg
+++ b/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
index 3f509c6f8..3f509c6f8 100644
--- a/Resources/Graphics/dashboard_my_keys_default.svg
+++ b/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
index 5d84e1131..5d84e1131 100644
--- a/Resources/Graphics/dashboard_my_keys_pressed.svg
+++ b/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
index bc49aa6a6..bc49aa6a6 100644
--- a/Resources/Graphics/dashboard_scan_qrcode_default.svg
+++ b/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
index c1bd869ac..c1bd869ac 100644
--- a/Resources/Graphics/dashboard_scan_qrcode_pressed.svg
+++ b/Resources/graphics/dashboard_scan_qrcode_pressed.svg
diff --git a/Resources/Graphics/icon_google_play.png b/Resources/graphics/icon.png
index d5d86ebbc..d5d86ebbc 100644
--- a/Resources/Graphics/icon_google_play.png
+++ b/Resources/graphics/icon.png
Binary files differ
diff --git a/Resources/Graphics/icon.svg b/Resources/graphics/icon.svg
index f07999465..f07999465 100644
--- a/Resources/Graphics/icon.svg
+++ b/Resources/graphics/icon.svg
diff --git a/Resources/Graphics/icon_sizes.txt b/Resources/graphics/icon_sizes.txt
index 2e960f6fd..2e960f6fd 100644
--- a/Resources/Graphics/icon_sizes.txt
+++ b/Resources/graphics/icon_sizes.txt
diff --git a/Resources/Graphics/key.svg b/Resources/graphics/key.svg
index 0fc167869..0fc167869 100644
--- a/Resources/Graphics/key.svg
+++ b/Resources/graphics/key.svg
diff --git a/Resources/Graphics/kgpg_key2_kopete.svgz b/Resources/graphics/kgpg_key2_kopete.svgz
index 2d43afb83..2d43afb83 100644
--- a/Resources/Graphics/kgpg_key2_kopete.svgz
+++ b/Resources/graphics/kgpg_key2_kopete.svgz
Binary files differ
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
index 9a546d45b..9a546d45b 100644
--- a/Resources/Screenshots/screenshot1.png
+++ b/Resources/screenshots/screenshot1.png
Binary files differ
diff --git a/Resources/Screenshots/screenshot2.png b/Resources/screenshots/screenshot2.png
index e9fa49d45..e9fa49d45 100644
--- a/Resources/Screenshots/screenshot2.png
+++ b/Resources/screenshots/screenshot2.png
Binary files differ
diff --git a/Resources/Screenshots/screenshot3.png b/Resources/screenshots/screenshot3.png
index aaec9cdb7..aaec9cdb7 100644
--- a/Resources/Screenshots/screenshot3.png
+++ b/Resources/screenshots/screenshot3.png
Binary files differ
diff --git a/Resources/Screenshots/screenshot4.png b/Resources/screenshots/screenshot4.png
index efe44a396..efe44a396 100644
--- a/Resources/Screenshots/screenshot4.png
+++ b/Resources/screenshots/screenshot4.png
Binary files differ
diff --git a/Resources/Screenshots/screenshot5.png b/Resources/screenshots/screenshot5.png
index 9356ca106..9356ca106 100644
--- a/Resources/Screenshots/screenshot5.png
+++ b/Resources/screenshots/screenshot5.png
Binary files differ