aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Breitmoser <valodim@mugenguild.com>2014-10-05 11:11:20 +0200
committerVincent Breitmoser <valodim@mugenguild.com>2014-10-05 11:11:20 +0200
commit12e44e7eeb278da697bbecd350634758a5d86fdd (patch)
tree4f2e8664f91dfbb244f0d37f180ae0419660f270
parent34345cf2373dbe948a0c39311a7b70d0cee205cf (diff)
parent276867120681399b86057fbbff9ba02c8d1c57fe (diff)
downloadopen-keychain-12e44e7eeb278da697bbecd350634758a5d86fdd.tar.gz
open-keychain-12e44e7eeb278da697bbecd350634758a5d86fdd.tar.bz2
open-keychain-12e44e7eeb278da697bbecd350634758a5d86fdd.zip
Merge branch 'jacobshack-certify' of github.com:open-keychain/open-keychain into jacobshack-certify
-rw-r--r--OpenKeychain/src/main/AndroidManifest.xml2
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/AddKeysActivity.java16
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java48
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysFileFragment.java8
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysQrCodeFragment.java2
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListActivity.java10
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java10
-rw-r--r--OpenKeychain/src/main/res/drawable-hdpi/ic_action_search_cloud.pngbin0 -> 1338 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-mdpi/ic_action_search_cloud.pngbin0 -> 913 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xhdpi/ic_action_search_cloud.pngbin0 -> 1750 bytes
-rw-r--r--OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_search_cloud.pngbin0 -> 2560 bytes
-rw-r--r--OpenKeychain/src/main/res/layout/add_keys_activity.xml28
-rw-r--r--OpenKeychain/src/main/res/menu/key_list.xml13
-rw-r--r--OpenKeychain/src/main/res/values/strings.xml3
-rw-r--r--Resources/graphics/ic_action_search_cloud.svg148
-rwxr-xr-xResources/graphics/update-drawables.sh2
16 files changed, 208 insertions, 82 deletions
diff --git a/OpenKeychain/src/main/AndroidManifest.xml b/OpenKeychain/src/main/AndroidManifest.xml
index 959e1cf08..058b0a447 100644
--- a/OpenKeychain/src/main/AndroidManifest.xml
+++ b/OpenKeychain/src/main/AndroidManifest.xml
@@ -80,7 +80,7 @@
<activity
android:name=".ui.KeyListActivity"
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
- android:label="@string/app_name"
+ android:label="@string/nav_keys"
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/AddKeysActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/AddKeysActivity.java
index fd013739e..427fc9315 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/AddKeysActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/AddKeysActivity.java
@@ -73,7 +73,6 @@ public class AddKeysActivity extends ActionBarActivity implements
ImageView mActionSafeSlingerIcon;
View mActionQrCode;
View mActionNfc;
- View mActionSearchCloud;
ProviderHelper mProviderHelper;
@@ -103,7 +102,6 @@ public class AddKeysActivity extends ActionBarActivity implements
PorterDuff.Mode.SRC_IN);
mActionQrCode = findViewById(R.id.add_keys_qr_code);
mActionNfc = findViewById(R.id.add_keys_nfc);
- mActionSearchCloud = findViewById(R.id.add_keys_search_cloud);
mSafeSlingerKeySpinner.setOnKeyChangedListener(new KeySpinner.OnKeyChangedListener() {
@Override
@@ -135,14 +133,6 @@ public class AddKeysActivity extends ActionBarActivity implements
startActivityForResult(intent, REQUEST_CODE_RESULT);
}
});
-
- mActionSearchCloud.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- searchCloud();
- }
- });
-
}
private void startExchange() {
@@ -171,12 +161,6 @@ public class AddKeysActivity extends ActionBarActivity implements
new IntentIntegrator(this).initiateScan();
}
- private void searchCloud() {
- finish();
- Intent importIntent = new Intent(this, ImportKeysActivity.class);
- startActivity(importIntent);
- }
-
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java
index 002f85e5d..f0bd2c76c 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java
@@ -150,12 +150,13 @@ public class ImportKeysActivity extends ActionBarActivity {
}
Bundle serverBundle = null;
- int showTabOnly = ALL_TABS;
+ int showTabOnly = TAB_CLOUD;
if (ACTION_IMPORT_KEY.equals(action)) {
/* Keychain's own Actions */
// display file fragment
- mViewPager.setCurrentItem(TAB_FILE);
+ showTabOnly = TAB_FILE;
+ mSwitchToTab = TAB_FILE;
if (dataUri != null) {
// action: directly load data
@@ -229,6 +230,7 @@ public class ImportKeysActivity extends ActionBarActivity {
}
} else if (ACTION_IMPORT_KEY_FROM_FILE.equals(action)) {
// NOTE: this only displays the appropriate fragment, no actions are taken
+ showTabOnly = TAB_FILE;
mSwitchToTab = TAB_FILE;
// no immediate actions!
@@ -243,14 +245,14 @@ public class ImportKeysActivity extends ActionBarActivity {
startListFragment(savedInstanceState, null, null, null);
} else if (ACTION_IMPORT_KEY_FROM_QR_CODE.equals(action)) {
// also exposed in AndroidManifest
-
+ showTabOnly = ALL_TABS;
// NOTE: this only displays the appropriate fragment, no actions are taken
mSwitchToTab = TAB_QR_CODE;
// no immediate actions!
startListFragment(savedInstanceState, null, null, null);
} else if (ACTION_IMPORT_KEY_FROM_NFC.equals(action)) {
-
+ showTabOnly = ALL_TABS;
// NOTE: this only displays the appropriate fragment, no actions are taken
mSwitchToTab = TAB_QR_CODE;
@@ -334,32 +336,36 @@ public class ImportKeysActivity extends ActionBarActivity {
getSupportFragmentManager().executePendingTransactions();
}
- private String getFingerprintFromUri(Uri dataUri) {
+ public static String getFingerprintFromUri(Uri dataUri) {
String fingerprint = dataUri.toString().split(":")[1].toLowerCase(Locale.ENGLISH);
Log.d(Constants.TAG, "fingerprint: " + fingerprint);
return fingerprint;
}
- public void loadFromFingerprintUri(Uri dataUri) {
- String query = "0x" + getFingerprintFromUri(dataUri);
+ public void loadFromFingerprint(String fingerprint) {
+// String fingerprint = "0x" + getFingerprintFromUri(dataUri);
// setCurrentItem does not work directly after onResume (from qr code scanner)
// see http://stackoverflow.com/q/19316729
// so, reset adapter completely!
- if (mViewPager.getAdapter() != null)
- mViewPager.setAdapter(null);
- mViewPager.setAdapter(mTabsAdapter);
- mViewPager.setCurrentItem(TAB_CLOUD);
-
- ImportKeysCloudFragment f = (ImportKeysCloudFragment)
- getActiveFragment(mViewPager, TAB_CLOUD);
-
- // search config
- Preferences prefs = Preferences.getPreferences(ImportKeysActivity.this);
- Preferences.CloudSearchPrefs cloudPrefs = new Preferences.CloudSearchPrefs(true, true, prefs.getPreferredKeyserver());
-
- // search directly
- loadCallback(new ImportKeysListFragment.CloudLoaderState(query, cloudPrefs));
+// if (mViewPager.getAdapter() != null)
+// mViewPager.setAdapter(null);
+// mViewPager.setAdapter(mTabsAdapter);
+// mViewPager.setCurrentItem(TAB_CLOUD);
+
+// ImportKeysCloudFragment f = (ImportKeysCloudFragment)
+// getActiveFragment(mViewPager, TAB_CLOUD);
+
+ Intent searchIntent = new Intent(this, ImportKeysActivity.class);
+ searchIntent.putExtra(ImportKeysActivity.EXTRA_FINGERPRINT, fingerprint);
+ startActivity(searchIntent);
+
+// // search config
+// Preferences prefs = Preferences.getPreferences(ImportKeysActivity.this);
+// Preferences.CloudSearchPrefs cloudPrefs = new Preferences.CloudSearchPrefs(true, true, prefs.getPreferredKeyserver());
+//
+// // search directly
+// loadCallback(new ImportKeysListFragment.CloudLoaderState(query, cloudPrefs));
}
// http://stackoverflow.com/a/9293207
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysFileFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysFileFragment.java
index e5bad16ce..538fa16c7 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysFileFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysFileFragment.java
@@ -31,8 +31,6 @@ import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.compatibility.ClipboardReflection;
import org.sufficientlysecure.keychain.util.FileHelper;
-import java.util.Locale;
-
public class ImportKeysFileFragment extends Fragment {
private ImportKeysActivity mImportActivity;
private View mBrowse;
@@ -80,12 +78,8 @@ public class ImportKeysFileFragment extends Fragment {
String sendText = "";
if (clipboardText != null) {
sendText = clipboardText.toString();
- if (sendText.toLowerCase(Locale.ENGLISH).startsWith(Constants.FINGERPRINT_SCHEME)) {
- mImportActivity.loadFromFingerprintUri(Uri.parse(sendText));
- return;
- }
+ mImportActivity.loadCallback(new ImportKeysListFragment.BytesLoaderState(sendText.getBytes(), null));
}
- mImportActivity.loadCallback(new ImportKeysListFragment.BytesLoaderState(sendText.getBytes(), null));
}
});
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysQrCodeFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysQrCodeFragment.java
index a52737979..fb4bbfac4 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysQrCodeFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysQrCodeFragment.java
@@ -132,7 +132,7 @@ public class ImportKeysQrCodeFragment extends Fragment {
}
public void importFingerprint(Uri dataUri) {
- mImportActivity.loadFromFingerprintUri(dataUri);
+ mImportActivity.loadFromFingerprint(ImportKeysActivity.getFingerprintFromUri(dataUri));
}
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListActivity.java
index ce2aa8368..4419a8a64 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListActivity.java
@@ -87,6 +87,10 @@ public class KeyListActivity extends DrawerActivity {
addKeys();
return true;
+ case R.id.menu_key_list_search_cloud:
+ searchCloud();
+ return true;
+
case R.id.menu_key_list_create:
createKey();
return true;
@@ -144,6 +148,12 @@ public class KeyListActivity extends DrawerActivity {
startActivityForResult(intent, 0);
}
+ private void searchCloud() {
+ Intent importIntent = new Intent(this, ImportKeysActivity.class);
+ importIntent.putExtra(ImportKeysActivity.EXTRA_QUERY, (String) null); // hack to show only cloud tab
+ startActivity(importIntent);
+ }
+
private void createKey() {
Intent intent = new Intent(this, CreateKeyActivity.class);
startActivityForResult(intent, 0);
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java
index 9c261cc49..8c4278835 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java
@@ -470,6 +470,11 @@ public class KeyListFragment extends LoaderFragment
MenuItemCompat.setOnActionExpandListener(searchItem, new MenuItemCompat.OnActionExpandListener() {
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
+ hideMenu = true;
+ getActivity().invalidateOptionsMenu();
+ }
+
// disable swipe-to-refresh
// mSwipeRefreshLayout.setIsLocked(true);
return true;
@@ -479,6 +484,11 @@ public class KeyListFragment extends LoaderFragment
public boolean onMenuItemActionCollapse(MenuItem item) {
mQuery = null;
getLoaderManager().restartLoader(0, null, KeyListFragment.this);
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
+ hideMenu = false;
+ getActivity().invalidateOptionsMenu();
+ }
// enable swipe-to-refresh
// mSwipeRefreshLayout.setIsLocked(false);
return true;
diff --git a/OpenKeychain/src/main/res/drawable-hdpi/ic_action_search_cloud.png b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_search_cloud.png
new file mode 100644
index 000000000..ba7236da3
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-hdpi/ic_action_search_cloud.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-mdpi/ic_action_search_cloud.png b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_search_cloud.png
new file mode 100644
index 000000000..e1067f73c
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-mdpi/ic_action_search_cloud.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_search_cloud.png b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_search_cloud.png
new file mode 100644
index 000000000..b81772f20
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xhdpi/ic_action_search_cloud.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_search_cloud.png b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_search_cloud.png
new file mode 100644
index 000000000..7c8b36bc0
--- /dev/null
+++ b/OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_search_cloud.png
Binary files differ
diff --git a/OpenKeychain/src/main/res/layout/add_keys_activity.xml b/OpenKeychain/src/main/res/layout/add_keys_activity.xml
index eee561390..a5f5dd71a 100644
--- a/OpenKeychain/src/main/res/layout/add_keys_activity.xml
+++ b/OpenKeychain/src/main/res/layout/add_keys_activity.xml
@@ -135,34 +135,6 @@
android:background="?android:attr/listDivider"
android:layout_marginBottom="8dp" />
- <TextView
- style="@style/SectionHeader"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="32dp"
- android:text="@string/add_keys_section_import" />
-
- <TextView
- android:id="@+id/add_keys_search_cloud"
- android:paddingLeft="8dp"
- android:paddingRight="8dp"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:minHeight="?android:attr/listPreferredItemHeight"
- android:clickable="true"
- style="@style/SelectableItem"
- android:text="@string/add_keys_cloud"
- android:drawableRight="@drawable/ic_action_search"
- android:drawablePadding="8dp"
- android:gravity="center_vertical" />
-
- <View
- android:layout_width="match_parent"
- android:layout_height="1dip"
- android:background="?android:attr/listDivider"
- android:layout_marginBottom="8dp" />
-
</LinearLayout>
</LinearLayout>
</ScrollView> \ No newline at end of file
diff --git a/OpenKeychain/src/main/res/menu/key_list.xml b/OpenKeychain/src/main/res/menu/key_list.xml
index 27d96d7d7..3e7d6fc9f 100644
--- a/OpenKeychain/src/main/res/menu/key_list.xml
+++ b/OpenKeychain/src/main/res/menu/key_list.xml
@@ -7,18 +7,23 @@
android:title="@string/menu_search"
android:icon="@drawable/ic_action_search"
app:actionViewClass="android.support.v7.widget.SearchView"
- app:showAsAction="collapseActionView|ifRoom" />
+ app:showAsAction="collapseActionView|always" />
+
+ <item
+ android:id="@+id/menu_key_list_search_cloud"
+ app:showAsAction="always|withText"
+ android:icon="@drawable/ic_action_search_cloud"
+ android:title="@string/menu_add_keys" />
<item
android:id="@+id/menu_key_list_add"
- app:showAsAction="ifRoom|withText"
+ app:showAsAction="always|withText"
android:icon="@drawable/ic_action_new_account"
android:title="@string/menu_add_keys" />
<item
android:id="@+id/menu_key_list_export"
- app:showAsAction="ifRoom|withText"
- android:icon="@drawable/ic_action_import_export"
+ app:showAsAction="never"
android:title="@string/menu_export_all_keys" />
<item
diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml
index eaac43f7e..3454988c0 100644
--- a/OpenKeychain/src/main/res/values/strings.xml
+++ b/OpenKeychain/src/main/res/values/strings.xml
@@ -277,13 +277,10 @@
<!-- Add keys -->
<string name="add_keys_section_secure_exchange">"Secure Exchange"</string>
<string name="add_keys_section_secure_add">"Secure Add"</string>
- <string name="add_keys_section_import">"Import (untrusted)"</string>
<string name="add_keys_my_key">"My key:"</string>
<string name="add_keys_start_exchange">"Start exchange"</string>
<string name="add_keys_qr_code">"Scan QR Code"</string>
<string name="add_keys_nfc">"Receive via NFC"</string>
- <string name="add_keys_cloud">"Search cloud"</string>
-
<!-- progress dialogs, usually ending in '…' -->
<string name="progress_done">"Done."</string>
diff --git a/Resources/graphics/ic_action_search_cloud.svg b/Resources/graphics/ic_action_search_cloud.svg
new file mode 100644
index 000000000..0eef58ee3
--- /dev/null
+++ b/Resources/graphics/ic_action_search_cloud.svg
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="512"
+ height="512"
+ id="svg4241"
+ version="1.1"
+ inkscape:version="0.48.3.1 r9886"
+ sodipodi:docname="ic_action_search_cloud.svg">
+ <defs
+ id="defs4243">
+ <clipPath
+ id="SVGID_173_">
+ <use
+ xlink:href="#SVGID_172_"
+ overflow="visible"
+ id="use1170"
+ style="overflow:visible"
+ x="0"
+ y="0"
+ width="595.28003"
+ height="841.89001" />
+ </clipPath>
+ <clipPath
+ id="SVGID_153_">
+ <use
+ xlink:href="#SVGID_152_"
+ overflow="visible"
+ id="use1012"
+ style="overflow:visible"
+ x="0"
+ y="0"
+ width="595.28003"
+ height="841.89001" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.49497476"
+ inkscape:cx="-17.897931"
+ inkscape:cy="203.11843"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1364"
+ inkscape:window-height="747"
+ inkscape:window-x="0"
+ inkscape:window-y="19"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata4246">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-540.36218)">
+ <g
+ id="g1006"
+ transform="matrix(5.1617797,0,0,5.1617797,-3144.7765,-2159.0339)"
+ style="opacity:0.6;fill:#333333;fill-opacity:1">
+ <defs
+ id="defs1008">
+ <rect
+ id="SVGID_152_"
+ x="488.004"
+ y="603"
+ width="96"
+ height="96" />
+ </defs>
+ <clipPath
+ id="clipPath4228">
+ <use
+ xlink:href="#SVGID_152_"
+ overflow="visible"
+ id="use4230"
+ style="overflow:visible"
+ x="0"
+ y="0"
+ width="595.28003"
+ height="841.89001" />
+ </clipPath>
+ <path
+ clip-path="url(#SVGID_153_)"
+ clip-rule="evenodd"
+ d="m 561.652,653.42 c -0.518,-6.998 -6.348,-12.521 -13.477,-12.521 -2.758,0 -5.318,0.829 -7.463,2.248 -1.537,-6.011 -6.977,-10.462 -13.469,-10.462 -7.688,0 -13.922,6.234 -13.922,13.921 0,0.567 0.045,1.122 0.109,1.674 -0.078,-0.004 -0.158,-0.013 -0.238,-0.013 -5.812,0 -10.523,4.713 -10.523,10.525 0,5.633 4.436,10.223 10.001,10.496 v 0.025 h 48.388 v -0.033 c 0.107,0.004 0.209,0.033 0.316,0.033 4.4,0 7.963,-3.566 7.963,-7.963 10e-4,-4.303 -3.415,-7.786 -7.685,-7.93"
+ id="path1014"
+ inkscape:connector-curvature="0"
+ style="fill:#333333;fill-opacity:1;fill-rule:evenodd"
+ transform="translate(123.22638,-60.338615)" />
+ </g>
+ <g
+ id="g1164"
+ transform="matrix(3.5253364,0,0,3.5253364,99.049835,89.306818)"
+ style="opacity:0.6;fill:#333333;fill-opacity:1">
+ <defs
+ id="defs1166">
+ <rect
+ id="SVGID_172_"
+ x="13.005"
+ y="130.713"
+ width="96"
+ height="96" />
+ </defs>
+ <clipPath
+ id="clipPath4236">
+ <use
+ xlink:href="#SVGID_172_"
+ overflow="visible"
+ id="use4238"
+ style="overflow:visible"
+ x="0"
+ y="0"
+ width="595.28003"
+ height="841.89001" />
+ </clipPath>
+ <path
+ clip-path="url(#SVGID_173_)"
+ d="M 92.499,200.893 80.335,188.725 c -1.07,-1.068 -3.008,-0.967 -4.951,0.045 l -5.307,-5.305 c 6.914,-9.034 6.262,-22.002 -2.004,-30.269 -8.998,-8.995 -23.586,-8.995 -32.586,0 -8.995,9 -8.995,23.588 0,32.588 8.268,8.265 21.236,8.917 30.27,2.001 l 5.307,5.304 c -1.012,1.946 -1.115,3.882 -0.047,4.952 l 12.166,12.168 c 1.537,1.535 4.873,0.691 7.441,-1.883 2.57,-2.567 3.414,-5.898 1.875,-7.433 M 38.914,182.359 c -7.104,-7.11 -7.104,-18.632 0,-25.736 7.108,-7.109 18.622,-7.103 25.735,0 7.104,7.104 7.104,18.622 0,25.736 -7.113,7.105 -18.63,7.105 -25.735,0"
+ id="path1172"
+ inkscape:connector-curvature="0"
+ style="fill:#333333;fill-opacity:1" />
+ </g>
+ </g>
+</svg>
diff --git a/Resources/graphics/update-drawables.sh b/Resources/graphics/update-drawables.sh
index b121ef23e..b8d2ffc88 100755
--- a/Resources/graphics/update-drawables.sh
+++ b/Resources/graphics/update-drawables.sh
@@ -37,7 +37,7 @@ inkscape -w 512 -h 512 -e "$PLAY_DIR/$NAME.png" $NAME.svg
# xhdpi: 64x64
# xxhdpi: 96x96
-for NAME in "ic_action_nfc" "ic_action_qr_code" "ic_action_safeslinger"
+for NAME in "ic_action_nfc" "ic_action_qr_code" "ic_action_safeslinger" "ic_action_search_cloud"
do
echo $NAME
inkscape -w 32 -h 32 -e "$MDPI_DIR/$NAME.png" $NAME.svg