From 0abfff0b0e72011bfdee99481598882306570177 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Sat, 25 Oct 2014 21:15:05 +0200 Subject: [PATCH] Fixes and icons for apps list, also add Password Store --- .../keychain/remote/ui/AppsListFragment.java | 37 ++++++++++++------ .../drawable-xxhdpi/apps_conversations.png | Bin 3272 -> 11054 bytes .../drawable-xxhdpi/apps_password_store.png | Bin 0 -> 2246 bytes .../main/res/drawable-xxhdpi/apps_pgpauth.png | Bin 16342 -> 0 bytes 4 files changed, 25 insertions(+), 12 deletions(-) create mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/apps_password_store.png delete mode 100644 OpenKeychain/src/main/res/drawable-xxhdpi/apps_pgpauth.png diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AppsListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AppsListFragment.java index d3bbf5cac..26c56c69a 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AppsListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/ui/AppsListFragment.java @@ -120,6 +120,7 @@ public class AppsListFragment extends ListFragment implements private static final String TEMP_COLUMN_NAME = "NAME"; private static final String TEMP_COLUMN_INSTALLED = "INSTALLED"; private static final String TEMP_COLUMN_REGISTERED = "REGISTERED"; + private static final String TEMP_COLUMN_ICON_RES_ID = "ICON_RES_ID"; // These are the Contacts rows that we will retrieve. static final String[] PROJECTION = new String[]{ @@ -127,7 +128,8 @@ public class AppsListFragment extends ListFragment implements ApiApps.PACKAGE_NAME, // 1 "null as " + TEMP_COLUMN_NAME, // installed apps can retrieve app name from Android OS "0 as " + TEMP_COLUMN_INSTALLED, // changed later in cursor joiner - "1 as " + TEMP_COLUMN_REGISTERED // if it is in db it is registered + "1 as " + TEMP_COLUMN_REGISTERED, // if it is in db it is registered + "0 as " + TEMP_COLUMN_ICON_RES_ID // not used }; private static final int INDEX_ID = 0; @@ -135,6 +137,7 @@ public class AppsListFragment extends ListFragment implements private static final int INDEX_NAME = 2; private static final int INDEX_INSTALLED = 3; private static final int INDEX_REGISTERED = 4; + private static final int INDEX_ICON_RES_ID = 5; public Loader onCreateLoader(int id, Bundle args) { // This is called when a new Loader needs to be created. This @@ -155,18 +158,22 @@ public class AppsListFragment extends ListFragment implements ApiApps.PACKAGE_NAME, TEMP_COLUMN_NAME, TEMP_COLUMN_INSTALLED, - TEMP_COLUMN_REGISTERED + TEMP_COLUMN_REGISTERED, + TEMP_COLUMN_ICON_RES_ID }); - availableAppsCursor.addRow(new Object[]{1, "com.fsck.k9", "K-9 Mail", 0, 0}); - availableAppsCursor.addRow(new Object[]{1, "eu.siacs.conversations", "Conversations (Instant Messaging)", 0, 0}); -// availableAppsCursor.addRow(new Object[]{1, "org.sufficientlysecure.keychain.demo", "API Example", 0, 0}); + // NOTE: SORT ascending by package name, this is REQUIRED for CursorJoiner! + // Drawables taken from projects res/drawables-xxhdpi/ic_launcher.png + availableAppsCursor.addRow(new Object[]{1, "com.fsck.k9", "K-9 Mail", 0, 0, R.drawable.apps_k9}); + availableAppsCursor.addRow(new Object[]{1, "com.zeapo.pwdstore", "Password Store", 0, 0, R.drawable.apps_password_store}); + availableAppsCursor.addRow(new Object[]{1, "eu.siacs.conversations", "Conversations (Instant Messaging)", 0, 0, R.drawable.apps_conversations}); MatrixCursor mergedCursor = new MatrixCursor(new String[]{ ApiApps._ID, ApiApps.PACKAGE_NAME, TEMP_COLUMN_NAME, TEMP_COLUMN_INSTALLED, - TEMP_COLUMN_REGISTERED + TEMP_COLUMN_REGISTERED, + TEMP_COLUMN_ICON_RES_ID }); CursorJoiner joiner = new CursorJoiner( @@ -181,11 +188,12 @@ public class AppsListFragment extends ListFragment implements String packageName = availableAppsCursor.getString(INDEX_PACKAGE_NAME); mergedCursor.addRow(new Object[]{ - availableAppsCursor.getLong(INDEX_ID), + 1, // no need for unique _ID packageName, availableAppsCursor.getString(INDEX_NAME), isInstalled(packageName), - 0 + 0, + availableAppsCursor.getInt(INDEX_ICON_RES_ID) }); break; } @@ -194,11 +202,12 @@ public class AppsListFragment extends ListFragment implements String packageName = data.getString(INDEX_PACKAGE_NAME); mergedCursor.addRow(new Object[]{ - data.getLong(INDEX_ID), + 1, // no need for unique _ID packageName, null, isInstalled(packageName), - 1 + 1, // registered! + 0 // icon is retrieved later }); break; } @@ -215,11 +224,12 @@ public class AppsListFragment extends ListFragment implements } mergedCursor.addRow(new Object[]{ - data.getLong(INDEX_ID), + 1, // no need for unique _ID packageName, name, isInstalled(packageName), - 1 + 1, // registered! + 0 // icon is retrieved later }); break; } @@ -309,8 +319,10 @@ public class AppsListFragment extends ListFragment implements ImageView installIcon = (ImageView) view.findViewById(R.id.api_apps_adapter_install_icon); String packageName = cursor.getString(INDEX_PACKAGE_NAME); + Log.d(Constants.TAG, "packageName: " + packageName); int installed = cursor.getInt(INDEX_INSTALLED); String name = cursor.getString(INDEX_NAME); + int iconResName = cursor.getInt(INDEX_ICON_RES_ID); // get application name and icon try { @@ -324,6 +336,7 @@ public class AppsListFragment extends ListFragment implements text.setText(packageName); } else { text.setText(name); + icon.setImageDrawable(getResources().getDrawable(iconResName)); } } diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/apps_conversations.png b/OpenKeychain/src/main/res/drawable-xxhdpi/apps_conversations.png index 9dbbdd9713a9a9fbb333072d33334dfcd3c23a74..65c1af3435b440d7b07c6fb2754a3566f1357c6b 100644 GIT binary patch literal 11054 zcmV+}E78=6P)AoD&(6$Vvj=y1EDwCe3H&|?iW@pMCw!eE{CKg z0)pYv3`PcKKnOu)yEeZD3`67PUrsd$io4>z>v(ub@&}1hruT5Mm$&Kr4&&&2r_^wkfwmHwLY3T%xOs z?Y7KU0QBN>ua=wb>h@^0LpKan>t(xIZP_wk0nm|qF}Xb|?a+-x6fJXP5*eAV0EiIL z$L-J#xnyXj(__uXzh22CS)|P((q<7EgZ*zBeIPJFhzSA$N-a>>pwvR$TE=qqg=?+$ zbw$510Lqvp^rxqh&rG2|y&L`MDHuc?aHpUEf|mFaY_=}$07#WMH5^s%9N%RDo850X7b4mf74e z^ty6k)y6V5>Q~U0+67R(PjP|4;v0>uwyMr?9hUPy1%*LUFi093joDaw zP%!XV7SIA4KQT@AzwGJ=F>&kIA7G_+0`rxhz^2MiP@VKjbf{ z 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 delta 3269 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 DnD`>! diff --git a/OpenKeychain/src/main/res/drawable-xxhdpi/apps_password_store.png b/OpenKeychain/src/main/res/drawable-xxhdpi/apps_password_store.png new file mode 100644 index 0000000000000000000000000000000000000000..84ebf04ac6a02a1f7af74098c6b41d9f1002f49c GIT binary patch literal 2246 zcmaJ@c{J307yphSyQZ={)<(7n*^~8`CToUJmO+_8mMo8bsZ6xVGD8}Xku;Pt_MH+X zOCsCYsmYd*J%)HZ=RNQH_MY>c_ngnY_w(oH-h1v6Yl$}E<`Cil0C1ZaqpbEK@o!_> zx96t~=~V!*C77U2*@O+vk6yFnbrWG- zl)8$UrGeDJt1z{0=v<`g0~6V-6-zPNtx-p9=1-BnS`)hZGg|YS?dh|)+R;l-_ zfe!gxW9vL!lwb%3t+DEbA?(?inMQ}g%9x*DzQVh3PuZgO!lDN^qL$pMAzh<1OpkoS z1qtkDqz-GY)O5fh`gc^aqDBdyy8^vS4#{7ERS-vRtuq797Xm8H zrkXp&KYU^L#3^^2f)$e&9Ql!(QcGd(<%WjhQt)he@PA;ug69&w?BN$K z)imFlg)hAC5wP07O3&__5Uz=qHhkB$T9v@Nx#CwQbs{xDJ{T}VvqHoC z9PNvn#Dee;xo>s3tAezt_1Myx&7waTN3Q8lYS7?B8W7a#uxjs66Jod*0jz1ghX^j+ z;3qoWEG}xK!>y1RI$VmOpSJbU&%=_-&It1p7K@>?yK9T91lb--Zpdq&O^HuD{qN z!>+?;-M;HTjm}2Z51*bPYiy@+L#70a7LG2?uwk>(qxB7vTfSGl&a;d%=x4ide;lgg z!lz`wZ#&d1REMIDJ5SJ@6eBZm4O7(YW`F8W?XuHnaN-|fSWY}vU}2#jK2Pwj;y?`B zi7pRa>B6zwJ!XdPiRf?&t`}_FQ;nINWo;X1E1%(5D?{!U z07Vlj?Ss#-112P(Gg}UBM$NE#izc9V5*G-VVEe`w0iNc8efZK5JDtzWsiFwo+@#p0 zvN6X~X&-~ZL`9UyKyYHV@Q2ndlypK~ho#&5%mItI9mT8+ehE;m5(OqjkYT3U z7?d#!O>Lf^ndQFK_!NS3==tj5hSTk*Zl+Ery@q5ms8cJ&hfBBZPPD zC^6Kn#Pibx0C9v}S>R7j544jaXeDpv8u-FkwjaQuy;=Q76foJ86T~bwGZ!30&Qxx6 zmfrbwVk`a^7ap{@7(U49CKj=EUF2=j!|CIE_ErZfGE@Aq{QS?#!V-;uH58y=p|>H@ z-Rd}UnC>qR2}!44)I@T$J!=QX?qi2Jnb`1hE)*ndcaokZFBnJb z4A#d6?F5Q`b=lMA%Gh~k76K=}fE9}jovm5wQEYy@C;I+UE$l8UB%cUcw_p8Z0YK2C zy`V{rMd~`w)?U`etuW-@J^me5V#pu&)O=wHilcBS;Bt4Yyf5sPVd(bBhg*RnUo!&W5K^`D4QU&R3j5gd0k6B=zvZhZ;hG2B%z%rBc(c9l1G!L z)4F*ho?`W>)ZheH>`PV$j?S$X4#=-C(2LXsJu3;_N5`uQ}Y+y@ww|_^Jf+ak(!8MpvOx zWh2dEC-81^K*mufv=~;dL?v`{9HD-eEl#&B^?n(6#tCx$5jzAk{#B_!TdCqAv^;!{ z!1rojB3*0$Ix^R;*VGRuM$p0sY@8|vX>a_zD-P%mi+Sn_7x{Qa@!q`S6kMU)wq7x? p&Wv#(T}?v#cK!eL3ou^nfuxcNaxb+JKx`X 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%0DK z8h-J(rrUJ$xqx4@Ik)<5TvPKS=|BU3S{{_doA@co$ZeRIShR*q{;I_!3il&8Hv2`e zJf3BZE@wpK&1fRe01m?diIUEXHf2;%i-wg0D(FPc5_i-#U>&eUGo;tyQ^47QqbEc_ zhDJhfEFjWA3pYbBI0IkzJW5A0T(w2LqmZ?WgCBW*D1e-jr)J|7k;9BJKPs-{O=PcG z+#Ui*kCj5W=ul3IeRB^FkR-luk#`1&0+rhD!jD#}}g07~-WU=?edWPno!i|OH@j2&H zsd0h1sjEPF@{k(RAKtma89^R0|7KGY-+tLH)}m3zBvY*Blc6DdNg#{!JwQCV%iBRH z?&o^6_8&=Pa>hHUG@Fe_oVh$NE)shCy=cOG%~#F_G5ATG(Gx)df7kXHsSw9>IJ;ie zbQII5u}Y3{Gx~*!)Ewl$KO1vZA@-bqhcB4%#E`{){Zb}(p_j6;hkO1C%!hIm^2A50 z$t*6s!;5jRMYHUf49sah2j&V$nrhqdVG>fjadbirXBh%WZEu#Y&tfENRToKOB!TlY zB;AkV;qSOFpxE-}iCk0A1LtSF<@A?Ft1)*Tm1_RWzeamW7nNy$u48ky0bx`jlpFyb z?_{xJEiQ{BmKYFG7wXfi-F^A;=OO7=#mr_DI9dblvSQ6zou5vM+zOr=5fgmBL-PKU z>SqQ5p?Wo^nq2Vos(c>Jdxra)hXO30%0yPGqgM3?LEzf~)=9YM0zZ;QI#1Q_G;FD8 zqGp%YmPTofp`Qiw;%kp&)z7t)>xbvD2d>?MH7x)WjCz*1SE2Sh@JqP`DMtZ}t4oX7 z*N0Zx+uNHPO3!$I#7j>mWf|p0UTfOz9jqJ1E2FZ!UlfH3Q359nXrk3^R(VU~Nz8ll zc84;mmz=3SxaCDV0+goxgrpnbUirlZwc1=0ihSssq%z=-u-aSq$Otw;(K>EVC>AG6 z8#s3Kf4f3D#oa!@KL+=J8wKjF2}QcI3GvU-f)Mauh7|O#7>MB^kLeRku6!C4YKI>Up^HvIh0?Cz6l{4Q7czRKGMzp&IB~OE^?{9|KOw;C2m!oUSzGh zuz)L@3`^5{OH`BEno=f0ub85hQP9Z5gvXzoItn;BjAYZ4yjGG{up#S{>ZF)LZCf_O zy$}ajviD3?Oz~2_Y zJlJh{`MwSDD7v%IP#CSL!$HK{$+`N^0?1~JH!H@O2^*(2ieMg<&BP|x_~b%HwE8nW zh3yd13K5~|TIYB#Qqfr=>giYH#CmcAOc|IySiJ-2dx=`AN;cUHg@3ZxFz}&PCb7~4 zTBOQmS-m6m)!y#!1i>0)30y0FI&lK`w9lxtBvuv&KLE$I7zwFGRx#J~+15&XhQGBzap2 z*E@#QYKtA0^^W%^>AVKo{SU0d=%60y)OKBOV7$rSg)iJZDxM*|HooDeW7)H;^?AoK zgOQN5fbpWoA3Jz!6MGUg=iSK!d@{vm!|YG85*}ulJN`9F@k>EsW!CuiecZZ7AOS74 zQJdTFB~?(yxn1w`9ZcZE(RgrEg)@2WK+K2iEy!Ox($U)=Q73Lk*A20%y7q-!{R54v z;wRB2J{q*&Oo!oR0@q~PfH4@Kp%jdvS*=&q@yybd2JJn`ckI8?I5dm75BE*QPrtJ? zyC*K8L2H|WH8b>3)5LVr=e&r@;>u`4c{huz97cQ;1V zlHPV#MXRdR)jDcCpF5$Rz*KR@c$=dNyUe?xovo;eX?thz&Oai)q^E$W{!us84!4Cg zny3o$-qbY}jeU;Qo{YNwj~Uz7!JYK<#V#UOh=lAfZ?RS!Q7Y8IO)h68ryQVrX z!nZt7^(vH!R)W-OM_DkJat~spN0$|6FT{ru8bnofisxG28^3nX=uBSQzrQ6Gs8E;7 zNg~&bBT&&2r?({O(7~&HCDYFS7Jn!)gGy7?M{#wPvszT=TOhc80d?vZ@UgdnCyn?r zm~<%b6bnAzg929dU&P@odphZcp|2iKqKV$;cA|z