From 276867120681399b86057fbbff9ba02c8d1c57fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Sun, 5 Oct 2014 10:59:52 +0200 Subject: [PATCH] UI stuff --- OpenKeychain/src/main/AndroidManifest.xml | 2 +- .../keychain/ui/AddKeysActivity.java | 16 -- .../keychain/ui/ImportKeysActivity.java | 42 ++--- .../keychain/ui/ImportKeysFileFragment.java | 8 +- .../keychain/ui/ImportKeysQrCodeFragment.java | 2 +- .../keychain/ui/KeyListActivity.java | 10 ++ .../keychain/ui/KeyListFragment.java | 10 ++ .../drawable-hdpi/ic_action_search_cloud.png | Bin 0 -> 1338 bytes .../drawable-mdpi/ic_action_search_cloud.png | Bin 0 -> 913 bytes .../drawable-xhdpi/ic_action_search_cloud.png | Bin 0 -> 1750 bytes .../ic_action_search_cloud.png | Bin 0 -> 2560 bytes .../src/main/res/layout/add_keys_activity.xml | 28 ---- OpenKeychain/src/main/res/menu/key_list.xml | 13 +- OpenKeychain/src/main/res/values/strings.xml | 3 - Resources/graphics/ic_action_search_cloud.svg | 148 ++++++++++++++++++ Resources/graphics/update-drawables.sh | 2 +- 16 files changed, 205 insertions(+), 79 deletions(-) create mode 100644 OpenKeychain/src/main/res/drawable-hdpi/ic_action_search_cloud.png create mode 100644 OpenKeychain/src/main/res/drawable-mdpi/ic_action_search_cloud.png create mode 100644 OpenKeychain/src/main/res/drawable-xhdpi/ic_action_search_cloud.png create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/ic_action_search_cloud.png create mode 100644 Resources/graphics/ic_action_search_cloud.svg 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 @@ 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); +// if (mViewPager.getAdapter() != null) +// mViewPager.setAdapter(null); +// mViewPager.setAdapter(mTabsAdapter); +// mViewPager.setCurrentItem(TAB_CLOUD); - ImportKeysCloudFragment f = (ImportKeysCloudFragment) - getActiveFragment(mViewPager, 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()); + Intent searchIntent = new Intent(this, ImportKeysActivity.class); + searchIntent.putExtra(ImportKeysActivity.EXTRA_FINGERPRINT, fingerprint); + startActivity(searchIntent); - // search directly - loadCallback(new ImportKeysListFragment.CloudLoaderState(query, cloudPrefs)); +// // 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 0000000000000000000000000000000000000000..ba7236da383e03cd1f020e047a332f4c2eb19294 GIT binary patch literal 1338 zcmV-A1;zS_P)`^!G1~m> z&&)l(Y^1+Cv$GSILeAUHJ>Q&j_-5|hj|EA&m!Vp1pjj*hXf>7sv>N7O-aM5`B`nM8 zCD~1KHOY$r&MBo%Pfku=ibDg7v5h8^$rWvFZ97C{bM4Z!*7}-=JfM_XLDD06xTmM* z@S#J8{ARRb50FeI*I1VI4uB5d_m9ra&5ad{#p?^}xm<3o=Xt{b`b6a1{QUgBGiT0J zqUyyO000IC2HqBtjQ~C>6be7xjho42o)M9qB674)C>)Hc8S6`&$z+}c@G!}*>zNl3 zDHIAvwboN2@^mVdN<`I+HGtOoagvvZhK9Zk!=Ig^MWnltIsh9;UW=+5>r1SZ`c*_8>F@7f7luDDFpv|G2R`rfI&O&*$qNQ*7J5Pbsy7La2LOO{I{hqwA(8}85Ru<&&v_SsjR2Bb>nZ>Rz$AH0M853k z=rE2PIZ|qAfCbpL-6bL~ibw*$vW4rlgWUI)WgRY+N*hem+*1qTlk|Px|Mb+UQ$L2) zS+oEPa2!XCkB@h2t=mea(zIn+f4Qz(U0Anm`w0NAEc_)i(;{OeP(9n!&^H+a^7*Ax*j8UAeBlbOw-&eBB;kBS+*?e zgNccW--7OWV<)uMvr4H0L32f<4kQwZWlE`6CBVFh2!LhPYW3wCul4oywdM2q_FK8N z(Q}_tYQN`s?*^F{iP(W`Hk%>2yOA0IpZUJO9>8V*t3*UdUIp+o$*)}3{kvf!5;1^n z+uH$bjUsp#%=y0m#mSQ=-9`%|JwgE1N2#lWvRu|?G%H?vMzVGi6k;kGM3=5^y`zKDEI2)QDL~tBO`M&?A{14_uM6}kM z8sP_aAe+r@CAqyRR}F&XWdPr~u6rzKP6+IP);jP!5;p*>6_K5pOlB~M8|H=SYTi;b zXsw^OZF_k=PM82!WAf8502qd0)ZMbf1SrPjClbo#@@&2JFaf?HdD~$Ae}LqrZQHh8 ztj7uU9oVvE%l+kYdACxkCpLG%mKd;VX_r2wtQQh-+DUu;_(WJpfug8%>k07*qoM6N<$fi_@% literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e1067f73cd89f84e4faee78d7796734b41c48e81 GIT binary patch literal 913 zcmV;C18)3@P)rT>7q5liVVgf66uQYfWMm%8XKn_>|LjR@mB!Ym>rWMOF0K+_<@n~A0~ zx!*1_BQm^6CS%5I{I1@+=iYNZ?{Ln&_X$ZHru0ywe*gerx4Te8#P|J6B+mml3E*E< zUEbW>ytlZx_+QI@+9|@3k&z=?TU*yfq=)2vl548kCn6&xPXPEW2!gea0SpZdeM7Qm ze0==&%*>2wuw5bP#pCf?*=)ADm#=--fbaXq0elAFPGfKY2!h}b04x@ZgRS`6H-Isw zpX9S32sWea+|g42pLPU5M2?Vrwc8w$uPw`xjsTGS3qZe!G!3At{UWm75rE0b$-h;# z?0Md3l-+gRB*~;P=5Z_j+UkOVfq_rDySr}!$U2VmXEvLCoylbEFbppMm?Bv!m&-pc zEiHu|0RY}~!$w;J#E#WS5{WG3WdV+x7)H@F0Yde0YF6hwzs!$rqk)Z zC|@mSAeBnRW3kwjh@2CVILUuh^?p8|pJ#-V!NI{(wr$@Kk$7z=m(S;KH_mG*1Fq|S zDyZ*j!fLeR~A|h6^IV3ko_Nr>EJ_O)_ z<2b+Xbs+6|9|*%Rv0HFpr_dTUMgcHdDwP1>?yhT_Wng%C_+w+tS0vAg=z nJPLwfY2N_vLx=un^a0?1buVGc$#N8a00000NkvXXu0mjfquHZC literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b81772f208c77e8ae8dfd28f0984590936fd727e GIT binary patch literal 1750 zcmV;{1}XW8P);{n`g7xMYe6PQq`5J+6-VmfFl3~0SuPQ`X` zjQP>F?YDY*dVZfSE{O|}%jH&*d_qK)0f4F=CHXUeL6Re$=dA$HOtO{a9Aiv{WLLRd z{%|^0L!tsWj&l`&tt3TNhXB0ox^DkuW82%?7mtmNJx1~d08rI^uIs)PH>bn|a2&@5 zu#Myr0AG)fkH0xEFfei)>Gl0hckmReqy}e(?$t%gHzyto||FLcRjUbZ;fWE%I z&jEY{0LGX{*Q{C76ep=f1jyxb%She<0IIrc-@bigVeD1)eN{b1vZ<-5>8?1rB_e=j zS=ZonxE*v|_v^6suIpArq|5*F+Bmr-6#~rwK=P-k4vaB1+h)gc=EuSc2?^jQIUqS0 z)raf4e*hQ-z-qPH5*N3mR=^?vs8lNd)amCq0FWH7n~{%11R!}704&Q|9@U5AIJT-T z0f2e)=KUELw?qUm#vJy)Hb?bg+xC@y0%bOC+*t2QI)kM4fLiQdw|4E?#wb22mC8;2 z*B`cT-)`bzmXH7<@*RNVBp1(_Gv|S@_L)p(Ie@zWz_P6FSh>aNY$~{}J8F#C1pp#) zyMHDKgkrHMjg5_uleARzK&e#vK2C0lrNZTM`72{g4*&vqCY#M}xR6aIlewa+t7|KO zl>i_jU&YNU>C@nRlF!253{~|TV@%h=g$s}F-MhD18`s|6zWC(Hla4Xwei5;2|5w$j zWm!8)rP4rLoD#1G6pKaKvu96-G3K6HF+^280KWnlRn;p+WWiY`gR1%q$qoM4D#^D2 z%omYk^@@>7MF==u7!i>URb4${!T()IeB6m+5M{;*>Z*Sy{F*O0s z5FnY!WS050!7y`F#En0JlxzBeDpo7DWNTpX5>hb6yx@PKlhm zZ>#F2wzf7z5#gdLi(8g;VybJt2=|8dnV0~XOlAQ|*5jk2qvK;^%%n9$Aeso%wg+Uh z*+mTv4Y&G7;bxMT`W4>aNFE*^AOB!rVBlC-zr|uvy1TodCYhaTjOTeT_V@Q6p6dG9 zm=*!@`FtCIM{v5)F)38lBl($a+wX-fk!{|***bLS(3Yu0P}SF_sy0tVtRX;>`F#FK z08ipPllRA30B$>V>eMrS#W*lJJ3GDB*4CY>dQOE{Rex)0Y6_e&#wtKAmn#5h3u7Z9 zR{_`(c7O0i*rBRt5+P&EAGU43d3IKLA;cB}>({SeQmIt7ot?Udf#-QU`}_Oduy%z) zp$;UN_Oayw)oS&jsFMc(5xEn9>o|_>d0yVKtW^M(s;a2!5mg;* zY-~JGDwY0I4f22OK=D2qVp{=@0}rEbHJXKmX;4XJ3GBP?*$+x z0sPb3OEK^XieE+Km5Hk%3S!v=M@L6j#Nj6dmU^D|RIymBn}1wSf!G=qK|!*$ySw|o zy8T2A0mpIHsA@aO7Lu3OOC$M`$Xj6rcImNuswrN z0yvKIJjtYY{J>DvgP!NTzJLGzz@4MOAy6n38UQSd#4I6@yjny;oht$hFfuZ-)IY(^ zXo$#a$8qw3$A@ryJQ}4`5V-RcSb(0Mo)fA%Wle5|;j*9uLp=s3D?rRdsOkkP%r%4( zfaJUI-_n@DPym5n#0n*VpK`uoj0yCPUm8%=PhHpjG3fZvnP6XE-vMLH3#$4pPOCj5 zpsI%C?$*}Ucf#1!RS(EyG7IL;ox9reyyY@k%O(NT8mrZ6^`|fiPz|Z~2Ghnx)f$@) s%nFb;fwVCzK-vV-#;gEo6G$8X0^{GYjk$g1y#N3J07*qoM6N<$f)?~TaR2}S literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7c8b36bc0e9eeea53944b386e5b06a7d66660e9b GIT binary patch literal 2560 zcmaJ>i#yYc8~<)75jMBvNK6_YS6I2sWi*#gVn_&WW5wK$!u;kE zMe58EhM2n$GUayau!@#`JO99WpXYr)&-*^l`@Em`c|Ol4)6LahMoLu*000?B2b6~h z{r^qL1ERV_i#HR2I1%aSDJcrFWH3e4ABuFiOauTh?cW5M@az{v!=o{_-Z2*=@G*2(pfXI+D5z$vlwk%aei%E{CUpz^SO@hw8ZwX)GnRH zLi!QCZN#?b6l9e@OIREG<1)Oz%~#b9K%vmQII->m7Dr*2I|=w_QL3|hmYh%nmh;2yZaTyoJHAS(ZB)eLZ_yXFwziUMCjK&3lU*Y zAc3;b=Z))oA(=f5M{&7g=g_m=TnzOkmt57^`8`AMhK#UU??`6Qak@Rw5hq{@&U_NP z7!IN($iePu3)em^_eRXLl=KD1XrihW?Ks2su>6dTnfikZQh5$1OrY*#@`7ZG2m5aK zzqhxyPo_bLRgpT1iOBn#D{p;3G;zJT7?($dnY$=iSTF8D4b`C8`MOjptk;`CwJ z#Va6nT|cezGZkx>?=-AeaLK$KW^-$6T;FGR8JrZ0xH>cpTS{~uD^y4(F{RD?q_mcl z;X==sRIo~V(}XIX{~fWCH=2@v#c%2^>k(+B&AD7W0^aYHo-b5bHe z%-Rp{M=I7&SGDzRhGkH|AeYDEV2$#iST-cEV8sFg02(EOLxya@ja)78Td-W=%dB$W zsFxURvaW~?EZM)^HSN#EqN35sTXl6fmdjM6v-7}0$hX?`QVBB|fbd(Jsi~>eX|h$QCskJ%hK7dHgeKA>O>q@9waUfC#U$XPZMY=@clL0Qw|ikq74L&{w$C>Fo7T&LgJHS;wK?EPVL^IAlB_<8_e9VX&}wRLX*cNZa#|p6y?7s}}M8FIBjE#~Gf<+48hq=K0(yUV@ z<^%BV&d6!l*H#&kIn?ixlgGJSZcblcU-3h?^PJ^R;s~otp)9Y6W4%t&Q_jvXMn9VU%Y!yBnc{BqrzK&P zFGf0%S{>Snq}*!pGB467Zvj4{k17~@)n#g=Jz?GWvSl?RSWZ-`44wHEB~%9-Is=fD zT*xQ;j)o(_GgvIvmeXi3qhkaD8V9B(-u1Zdc53YM#Q=zV8>IX=u&>9vZt=iXt_licw^d;3xH=y*L&Gu`G`fCpbsO!|cD?fnBa_fXsk%(YerF5y} z_WqETz9CjkZ1 zY;tndDPc~rd!z$*k}~D4qbOTmaN&T$CGp7R+*j$8R@;h^-UpwT9kd7!Hx)ps*YU{^ zz+!+gyBtoNz8Vo>wZTzekss{^^#w=gREHh}%8meKpyT_q8s$dk&p(v_ey%Nk;#w(H zRu^Uk+qzb{*L5I~2^D{RPTvmo?NJTEtkpc!*GY>IH*I;I*y~8STCq{3<5hX?WpVX| z=U*+`&L37r`g$s^R0KAWko0m_eSN{tD|zk`bK_u1%?T_9`|zy{>kw>z*fn_;OuHqIiKBlL z_mL|rd?Ai_ekzSd4S1CA&lhfNJgyg$sFD;3IKK_xw^a^k_>N}h?9iG{@; zT$AHge;%!R4FB*Io}I!Dw=V{`+z&B{G)l5Y+Q)Y~q&5grxUwf$x1t6Ni%o*K6> zHKjt3gtMj|&VD~{K}`Ywe#1KpSB&T>uZ-6EUq0^Y>WbyQ$%Ao+hY_%$VD@GEAp-$9 pdvwl~g&q$AgDg)%y8jdQ - - - - - - \ 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" /> + + "Secure Exchange" "Secure Add" - "Import (untrusted)" "My key:" "Start exchange" "Scan QR Code" "Receive via NFC" - "Search cloud" - "Done." 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 @@ + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + 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