From 4a8d9694c495d445a824696e95ded3337bc7beea Mon Sep 17 00:00:00 2001 From: Dominik Date: Fri, 9 Mar 2012 18:43:10 +0100 Subject: [PATCH] new icon, new about dialog, some refactorings --- AndroidManifest.xml | 7 +- LICENSE | 16 + Resources/icon.svg | 739 ++++++++++++++++++ Resources/icon_sizes.txt | 21 + .../btn_circle_disable.png | Bin .../btn_circle_disable_focused.png | Bin .../btn_circle_normal.png | Bin .../btn_circle_pressed.png | Bin .../btn_circle_selected.png | Bin .../ic_btn_round_minus.png | Bin .../ic_btn_round_plus.png | Bin res/drawable-hdpi-v4/icon.png | Bin 6505 -> 0 bytes .../encrypted.png | Bin .../encrypted_large.png | Bin .../encrypted_small.png | Bin .../ic_next.png | Bin .../ic_previous.png | Bin res/drawable-hdpi/icon.png | Bin 0 -> 3949 bytes .../key.png | Bin .../key_large.png | Bin .../key_small.png | Bin .../overlay_error.png | Bin .../overlay_ok.png | Bin .../signed.png | Bin .../signed_large.png | Bin .../signed_small.png | Bin res/drawable-ldpi-v4/icon.png | Bin 2426 -> 0 bytes .../encrypted.png | Bin .../encrypted_large.png | Bin .../encrypted_small.png | Bin .../ic_next.png | Bin .../ic_previous.png | Bin res/drawable-ldpi/icon.png | Bin 0 -> 1795 bytes .../key.png | Bin .../key_large.png | Bin .../key_small.png | Bin .../overlay_error.png | Bin .../overlay_ok.png | Bin .../signed.png | Bin .../signed_large.png | Bin .../signed_small.png | Bin .../btn_circle_disable.png | Bin .../btn_circle_disable_focused.png | Bin .../btn_circle_normal.png | Bin .../btn_circle_pressed.png | Bin .../btn_circle_selected.png | Bin .../ic_btn_round_minus.png | Bin .../ic_btn_round_plus.png | Bin res/drawable-mdpi-v4/icon.png | Bin 3582 -> 0 bytes .../encrypted.png | Bin .../encrypted_large.png | Bin .../encrypted_small.png | Bin .../ic_next.png | Bin .../ic_previous.png | Bin res/drawable-mdpi/icon.png | Bin 0 -> 2516 bytes .../key.png | Bin .../key_large.png | Bin .../key_small.png | Bin .../overlay_error.png | Bin .../overlay_ok.png | Bin .../signed.png | Bin .../signed_large.png | Bin .../signed_small.png | Bin res/drawable-xhdpi/icon.png | Bin 0 -> 5909 bytes res/drawable/icon.png | Bin 2947 -> 0 bytes res/layout/about_activity.xml | 97 +++ res/values/static_strings.xml | 3 +- res/values/strings.xml | 11 +- src/org/apg/Apg.java | 4 +- src/org/apg/Constants.java | 38 +- src/org/apg/Id.java | 2 +- src/org/apg/Preferences.java | 46 +- .../apg/provider/ApgServiceBlobProvider.java | 2 +- src/org/apg/ui/AboutActivity.java | 51 ++ src/org/apg/ui/BaseActivity.java | 53 +- src/org/apg/ui/DecryptActivity.java | 26 +- src/org/apg/ui/EditKeyActivity.java | 2 +- src/org/apg/ui/EncryptActivity.java | 4 +- src/org/apg/ui/ImportFromQRCodeActivity.java | 6 +- src/org/apg/ui/KeyListActivity.java | 10 +- src/org/apg/ui/KeyServerQueryActivity.java | 2 +- src/org/apg/ui/PreferencesActivity.java | 18 +- src/org/apg/ui/PublicKeyListActivity.java | 2 +- src/org/apg/ui/SecretKeyListActivity.java | 2 +- src/org/apg/ui/SendKeyActivity.java | 2 +- src/org/apg/ui/SignKeyActivity.java | 12 +- 86 files changed, 1044 insertions(+), 132 deletions(-) create mode 100644 LICENSE create mode 100644 Resources/icon.svg create mode 100644 Resources/icon_sizes.txt rename res/{drawable-hdpi-finger-v4 => drawable-hdpi-finger}/btn_circle_disable.png (100%) rename res/{drawable-hdpi-finger-v4 => drawable-hdpi-finger}/btn_circle_disable_focused.png (100%) rename res/{drawable-hdpi-finger-v4 => drawable-hdpi-finger}/btn_circle_normal.png (100%) rename res/{drawable-hdpi-finger-v4 => drawable-hdpi-finger}/btn_circle_pressed.png (100%) rename res/{drawable-hdpi-finger-v4 => drawable-hdpi-finger}/btn_circle_selected.png (100%) rename res/{drawable-hdpi-finger-v4 => drawable-hdpi-finger}/ic_btn_round_minus.png (100%) rename res/{drawable-hdpi-finger-v4 => drawable-hdpi-finger}/ic_btn_round_plus.png (100%) delete mode 100644 res/drawable-hdpi-v4/icon.png rename res/{drawable-hdpi-v4 => drawable-hdpi}/encrypted.png (100%) rename res/{drawable-hdpi-v4 => drawable-hdpi}/encrypted_large.png (100%) rename res/{drawable-hdpi-v4 => drawable-hdpi}/encrypted_small.png (100%) rename res/{drawable-hdpi-v4 => drawable-hdpi}/ic_next.png (100%) rename res/{drawable-hdpi-v4 => drawable-hdpi}/ic_previous.png (100%) create mode 100644 res/drawable-hdpi/icon.png rename res/{drawable-hdpi-v4 => drawable-hdpi}/key.png (100%) rename res/{drawable-hdpi-v4 => drawable-hdpi}/key_large.png (100%) rename res/{drawable-hdpi-v4 => drawable-hdpi}/key_small.png (100%) rename res/{drawable-hdpi-v4 => drawable-hdpi}/overlay_error.png (100%) rename res/{drawable-hdpi-v4 => drawable-hdpi}/overlay_ok.png (100%) rename res/{drawable-hdpi-v4 => drawable-hdpi}/signed.png (100%) rename res/{drawable-hdpi-v4 => drawable-hdpi}/signed_large.png (100%) rename res/{drawable-hdpi-v4 => drawable-hdpi}/signed_small.png (100%) delete mode 100644 res/drawable-ldpi-v4/icon.png rename res/{drawable-ldpi-v4 => drawable-ldpi}/encrypted.png (100%) rename res/{drawable-ldpi-v4 => drawable-ldpi}/encrypted_large.png (100%) rename res/{drawable-ldpi-v4 => drawable-ldpi}/encrypted_small.png (100%) rename res/{drawable-ldpi-v4 => drawable-ldpi}/ic_next.png (100%) rename res/{drawable-ldpi-v4 => drawable-ldpi}/ic_previous.png (100%) create mode 100644 res/drawable-ldpi/icon.png rename res/{drawable-ldpi-v4 => drawable-ldpi}/key.png (100%) rename res/{drawable-ldpi-v4 => drawable-ldpi}/key_large.png (100%) rename res/{drawable-ldpi-v4 => drawable-ldpi}/key_small.png (100%) rename res/{drawable-ldpi-v4 => drawable-ldpi}/overlay_error.png (100%) rename res/{drawable-ldpi-v4 => drawable-ldpi}/overlay_ok.png (100%) rename res/{drawable-ldpi-v4 => drawable-ldpi}/signed.png (100%) rename res/{drawable-ldpi-v4 => drawable-ldpi}/signed_large.png (100%) rename res/{drawable-ldpi-v4 => drawable-ldpi}/signed_small.png (100%) rename res/{drawable-mdpi-finger-v4 => drawable-mdpi-finger}/btn_circle_disable.png (100%) rename res/{drawable-mdpi-finger-v4 => drawable-mdpi-finger}/btn_circle_disable_focused.png (100%) rename res/{drawable-mdpi-finger-v4 => drawable-mdpi-finger}/btn_circle_normal.png (100%) rename res/{drawable-mdpi-finger-v4 => drawable-mdpi-finger}/btn_circle_pressed.png (100%) rename res/{drawable-mdpi-finger-v4 => drawable-mdpi-finger}/btn_circle_selected.png (100%) rename res/{drawable-mdpi-finger-v4 => drawable-mdpi-finger}/ic_btn_round_minus.png (100%) rename res/{drawable-mdpi-finger-v4 => drawable-mdpi-finger}/ic_btn_round_plus.png (100%) delete mode 100644 res/drawable-mdpi-v4/icon.png rename res/{drawable-mdpi-v4 => drawable-mdpi}/encrypted.png (100%) rename res/{drawable-mdpi-v4 => drawable-mdpi}/encrypted_large.png (100%) rename res/{drawable-mdpi-v4 => drawable-mdpi}/encrypted_small.png (100%) rename res/{drawable-mdpi-v4 => drawable-mdpi}/ic_next.png (100%) rename res/{drawable-mdpi-v4 => drawable-mdpi}/ic_previous.png (100%) create mode 100644 res/drawable-mdpi/icon.png rename res/{drawable-mdpi-v4 => drawable-mdpi}/key.png (100%) rename res/{drawable-mdpi-v4 => drawable-mdpi}/key_large.png (100%) rename res/{drawable-mdpi-v4 => drawable-mdpi}/key_small.png (100%) rename res/{drawable-mdpi-v4 => drawable-mdpi}/overlay_error.png (100%) rename res/{drawable-mdpi-v4 => drawable-mdpi}/overlay_ok.png (100%) rename res/{drawable-mdpi-v4 => drawable-mdpi}/signed.png (100%) rename res/{drawable-mdpi-v4 => drawable-mdpi}/signed_large.png (100%) rename res/{drawable-mdpi-v4 => drawable-mdpi}/signed_small.png (100%) create mode 100644 res/drawable-xhdpi/icon.png delete mode 100644 res/drawable/icon.png create mode 100644 res/layout/about_activity.xml create mode 100644 src/org/apg/ui/AboutActivity.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index b3f818239..4ab346b7d 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -8,7 +8,7 @@ android:versionName="1.1" > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + diff --git a/Resources/icon_sizes.txt b/Resources/icon_sizes.txt new file mode 100644 index 000000000..b6d698752 --- /dev/null +++ b/Resources/icon_sizes.txt @@ -0,0 +1,21 @@ +Launcher Icon: +----------------------- +ldpi: 36x36 +mdpi: 48x48 +hdpi: 72x72 +xhdpi: 96x96 +google code: 55x55 +android market: 512x512 + +Status Bar Icon: +----------------------- +Android < 3.0 +ldpi: 12x19 +mdpi: 16x25 +hdpi: 24x38 + +Android > 3.0 +ldpi: 18x18 +mdpi: 24x24 +hdpi: 36x36 +xhdpi: 48x48 diff --git a/res/drawable-hdpi-finger-v4/btn_circle_disable.png b/res/drawable-hdpi-finger/btn_circle_disable.png similarity index 100% rename from res/drawable-hdpi-finger-v4/btn_circle_disable.png rename to res/drawable-hdpi-finger/btn_circle_disable.png diff --git a/res/drawable-hdpi-finger-v4/btn_circle_disable_focused.png b/res/drawable-hdpi-finger/btn_circle_disable_focused.png similarity index 100% rename from res/drawable-hdpi-finger-v4/btn_circle_disable_focused.png rename to res/drawable-hdpi-finger/btn_circle_disable_focused.png diff --git a/res/drawable-hdpi-finger-v4/btn_circle_normal.png b/res/drawable-hdpi-finger/btn_circle_normal.png similarity index 100% rename from res/drawable-hdpi-finger-v4/btn_circle_normal.png rename to res/drawable-hdpi-finger/btn_circle_normal.png diff --git a/res/drawable-hdpi-finger-v4/btn_circle_pressed.png b/res/drawable-hdpi-finger/btn_circle_pressed.png similarity index 100% rename from res/drawable-hdpi-finger-v4/btn_circle_pressed.png rename to res/drawable-hdpi-finger/btn_circle_pressed.png diff --git a/res/drawable-hdpi-finger-v4/btn_circle_selected.png b/res/drawable-hdpi-finger/btn_circle_selected.png similarity index 100% rename from res/drawable-hdpi-finger-v4/btn_circle_selected.png rename to res/drawable-hdpi-finger/btn_circle_selected.png diff --git a/res/drawable-hdpi-finger-v4/ic_btn_round_minus.png b/res/drawable-hdpi-finger/ic_btn_round_minus.png similarity index 100% rename from res/drawable-hdpi-finger-v4/ic_btn_round_minus.png rename to res/drawable-hdpi-finger/ic_btn_round_minus.png diff --git a/res/drawable-hdpi-finger-v4/ic_btn_round_plus.png b/res/drawable-hdpi-finger/ic_btn_round_plus.png similarity index 100% rename from res/drawable-hdpi-finger-v4/ic_btn_round_plus.png rename to res/drawable-hdpi-finger/ic_btn_round_plus.png diff --git a/res/drawable-hdpi-v4/icon.png b/res/drawable-hdpi-v4/icon.png deleted file mode 100644 index 072f0a089c27da1d8ede267ce3d0d0174c2b927e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6505 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 P00000NkvXXu0mjfh@p;+ diff --git a/res/drawable-hdpi-v4/encrypted.png b/res/drawable-hdpi/encrypted.png similarity index 100% rename from res/drawable-hdpi-v4/encrypted.png rename to res/drawable-hdpi/encrypted.png diff --git a/res/drawable-hdpi-v4/encrypted_large.png b/res/drawable-hdpi/encrypted_large.png similarity index 100% rename from res/drawable-hdpi-v4/encrypted_large.png rename to res/drawable-hdpi/encrypted_large.png diff --git a/res/drawable-hdpi-v4/encrypted_small.png b/res/drawable-hdpi/encrypted_small.png similarity index 100% rename from res/drawable-hdpi-v4/encrypted_small.png rename to res/drawable-hdpi/encrypted_small.png diff --git a/res/drawable-hdpi-v4/ic_next.png b/res/drawable-hdpi/ic_next.png similarity index 100% rename from res/drawable-hdpi-v4/ic_next.png rename to res/drawable-hdpi/ic_next.png diff --git a/res/drawable-hdpi-v4/ic_previous.png b/res/drawable-hdpi/ic_previous.png similarity index 100% rename from res/drawable-hdpi-v4/ic_previous.png rename to res/drawable-hdpi/ic_previous.png diff --git a/res/drawable-hdpi/icon.png b/res/drawable-hdpi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d36080251fd1987cecac0a7a8c6b16e8f77c1a13 GIT binary patch literal 3949 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 Hu0mjfJOZ%y literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi-v4/key.png b/res/drawable-hdpi/key.png similarity index 100% rename from res/drawable-hdpi-v4/key.png rename to res/drawable-hdpi/key.png diff --git a/res/drawable-hdpi-v4/key_large.png b/res/drawable-hdpi/key_large.png similarity index 100% rename from res/drawable-hdpi-v4/key_large.png rename to res/drawable-hdpi/key_large.png diff --git a/res/drawable-hdpi-v4/key_small.png b/res/drawable-hdpi/key_small.png similarity index 100% rename from res/drawable-hdpi-v4/key_small.png rename to res/drawable-hdpi/key_small.png diff --git a/res/drawable-hdpi-v4/overlay_error.png b/res/drawable-hdpi/overlay_error.png similarity index 100% rename from res/drawable-hdpi-v4/overlay_error.png rename to res/drawable-hdpi/overlay_error.png diff --git a/res/drawable-hdpi-v4/overlay_ok.png b/res/drawable-hdpi/overlay_ok.png similarity index 100% rename from res/drawable-hdpi-v4/overlay_ok.png rename to res/drawable-hdpi/overlay_ok.png diff --git a/res/drawable-hdpi-v4/signed.png b/res/drawable-hdpi/signed.png similarity index 100% rename from res/drawable-hdpi-v4/signed.png rename to res/drawable-hdpi/signed.png diff --git a/res/drawable-hdpi-v4/signed_large.png b/res/drawable-hdpi/signed_large.png similarity index 100% rename from res/drawable-hdpi-v4/signed_large.png rename to res/drawable-hdpi/signed_large.png diff --git a/res/drawable-hdpi-v4/signed_small.png b/res/drawable-hdpi/signed_small.png similarity index 100% rename from res/drawable-hdpi-v4/signed_small.png rename to res/drawable-hdpi/signed_small.png diff --git a/res/drawable-ldpi-v4/icon.png b/res/drawable-ldpi-v4/icon.png deleted file mode 100644 index e310c42e8404d48494139b50ebba678b9708e58b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2426 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 diff --git a/res/drawable-ldpi-v4/encrypted.png b/res/drawable-ldpi/encrypted.png similarity index 100% rename from res/drawable-ldpi-v4/encrypted.png rename to res/drawable-ldpi/encrypted.png diff --git a/res/drawable-ldpi-v4/encrypted_large.png b/res/drawable-ldpi/encrypted_large.png similarity index 100% rename from res/drawable-ldpi-v4/encrypted_large.png rename to res/drawable-ldpi/encrypted_large.png diff --git a/res/drawable-ldpi-v4/encrypted_small.png b/res/drawable-ldpi/encrypted_small.png similarity index 100% rename from res/drawable-ldpi-v4/encrypted_small.png rename to res/drawable-ldpi/encrypted_small.png diff --git a/res/drawable-ldpi-v4/ic_next.png b/res/drawable-ldpi/ic_next.png similarity index 100% rename from res/drawable-ldpi-v4/ic_next.png rename to res/drawable-ldpi/ic_next.png diff --git a/res/drawable-ldpi-v4/ic_previous.png b/res/drawable-ldpi/ic_previous.png similarity index 100% rename from res/drawable-ldpi-v4/ic_previous.png rename to res/drawable-ldpi/ic_previous.png diff --git a/res/drawable-ldpi/icon.png b/res/drawable-ldpi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5b9c33f0c1bd30da9f7e8fcb04c7b0e25b42d3be GIT binary patch literal 1795 zcmV+e2mJVnP)6I)K=#*OPJEuY56cR#PQB)8QwWvIPAb}|2M~jGx8c-1>2ucL}sqzmABuc0RB_(R41Za#Cx3wKi z>PH+u;@7U%-p9RjX85spU#S&Z3Q3N1q`lgiIp006Il9VP%grRtjRv?{ZaSb~@yEp2 z*pDTb{kRyp?lBD4*1go;+4GJu2mHw)XlvEvaJrPLHm(+0C)pAi(s*#A6RZ zSF$#I-C+P6o9#Ff%pHc0;!D&=f>PX}<^jkiC+Xoli%$-#{MtL^j{? z{UXq!YtCM9osJs`G#OxqB2X%qn?`Ei-HGbmZO?l;Spu>mf-%?J5VpcPgc()yjts?( zCZsHjDs;_tR=Nwz0h}K`7vGCA~u5)I5jA(wtSXH4jf%kEdEJ z_ik$8*4AbeFusuF^zwrr0^Y?G1C0>9P(STxOW1LSm#`)+Lmv8-bm|wYd)gCehj}*F~ z=NZIM)H*NEuXnbwtz{irbV)^*6(c;ptD7%{mP`9?^Hz9%_cofM5kw1TMlbQ{KcD9d zC;B;caU2m%BYEKZMsE3<8+UlZw@APZz{nG&7I61)3^lSy3 zl=RShyV#;vQKC88T~EkSh-glZjC1gfG#G@x)=XXiNgAIy-tZ?8Tb4)HI5iM1os&NztqItSxm7NQcEo6;P-Wd@m|0%txEJH) zo+v%*6MPQ1@8w}0eRYEOMXT@L4<=&V5wBr7n<<16m|I!p1vdsRJbP-!Ul}88g&%1t zwTL^zaAL);Zc_ndv@6O87TBO%R zP0YE%gCib4U2yneBF~PtCPXx?ks9`gvsfb-V|X>0v@Q1jL}sURH<5Pv=+1$ z`m#>>KflU+51CxRDZkO-fk}RH_co60-ikJcpyT+VD7;-)b3IQs*Q1SL_{t&=47+$r z@!Z*e^40fjC8R8$2`;_GK>?)@Sr5Pq!xIci81U^HZAw5^yRH)~106Rp_6)ws{_YMG zAhPzg;%dX=gG+d-7Oe1WvWDH0v-ECAaOkeBYwi)PnM$tkQQG6Rh^?h>*5k}l zj#+WIGiv!%TZAW?qs*o={415^=)A+C3i4Py!>;By8{$#svzD`0mU(e5k89zsI>pyI z>eyHxW;&hWjl~Q^DL~a(wQjFcrA4iwzo9!*){U0xi(C1+d4j+&hXH=6e$%dp=geVxhJ^F@4b4AmWsxh%jH#A+g8U@za1QZ+lLk< zu5;ASC%G(vHBDbjOtFwWuUz(8YtIp_M~H=fF#nEufarg-sY0YUIQdm(t#(8U%3OQS z{6C7RoESaN^OWZaYK{BnI*FBhIb^w9&U0dV&AIx2ErpCK553A3o~vf+P$)FtyL{=$ zZO&zXk+NW_1|MauEq^RA{$y7;PAO}xwW{!2S*0qz5SYT|(m@u3wbnY0DW2;%)&x!9 lrLvuyNN&3CLpL4JzX6dN(B34ew1NNt002ovPDHLkV1mq9Y7_tf literal 0 HcmV?d00001 diff --git a/res/drawable-ldpi-v4/key.png b/res/drawable-ldpi/key.png similarity index 100% rename from res/drawable-ldpi-v4/key.png rename to res/drawable-ldpi/key.png diff --git a/res/drawable-ldpi-v4/key_large.png b/res/drawable-ldpi/key_large.png similarity index 100% rename from res/drawable-ldpi-v4/key_large.png rename to res/drawable-ldpi/key_large.png diff --git a/res/drawable-ldpi-v4/key_small.png b/res/drawable-ldpi/key_small.png similarity index 100% rename from res/drawable-ldpi-v4/key_small.png rename to res/drawable-ldpi/key_small.png diff --git a/res/drawable-ldpi-v4/overlay_error.png b/res/drawable-ldpi/overlay_error.png similarity index 100% rename from res/drawable-ldpi-v4/overlay_error.png rename to res/drawable-ldpi/overlay_error.png diff --git a/res/drawable-ldpi-v4/overlay_ok.png b/res/drawable-ldpi/overlay_ok.png similarity index 100% rename from res/drawable-ldpi-v4/overlay_ok.png rename to res/drawable-ldpi/overlay_ok.png diff --git a/res/drawable-ldpi-v4/signed.png b/res/drawable-ldpi/signed.png similarity index 100% rename from res/drawable-ldpi-v4/signed.png rename to res/drawable-ldpi/signed.png diff --git a/res/drawable-ldpi-v4/signed_large.png b/res/drawable-ldpi/signed_large.png similarity index 100% rename from res/drawable-ldpi-v4/signed_large.png rename to res/drawable-ldpi/signed_large.png diff --git a/res/drawable-ldpi-v4/signed_small.png b/res/drawable-ldpi/signed_small.png similarity index 100% rename from res/drawable-ldpi-v4/signed_small.png rename to res/drawable-ldpi/signed_small.png diff --git a/res/drawable-mdpi-finger-v4/btn_circle_disable.png b/res/drawable-mdpi-finger/btn_circle_disable.png similarity index 100% rename from res/drawable-mdpi-finger-v4/btn_circle_disable.png rename to res/drawable-mdpi-finger/btn_circle_disable.png diff --git a/res/drawable-mdpi-finger-v4/btn_circle_disable_focused.png b/res/drawable-mdpi-finger/btn_circle_disable_focused.png similarity index 100% rename from res/drawable-mdpi-finger-v4/btn_circle_disable_focused.png rename to res/drawable-mdpi-finger/btn_circle_disable_focused.png diff --git a/res/drawable-mdpi-finger-v4/btn_circle_normal.png b/res/drawable-mdpi-finger/btn_circle_normal.png similarity index 100% rename from res/drawable-mdpi-finger-v4/btn_circle_normal.png rename to res/drawable-mdpi-finger/btn_circle_normal.png diff --git a/res/drawable-mdpi-finger-v4/btn_circle_pressed.png b/res/drawable-mdpi-finger/btn_circle_pressed.png similarity index 100% rename from res/drawable-mdpi-finger-v4/btn_circle_pressed.png rename to res/drawable-mdpi-finger/btn_circle_pressed.png diff --git a/res/drawable-mdpi-finger-v4/btn_circle_selected.png b/res/drawable-mdpi-finger/btn_circle_selected.png similarity index 100% rename from res/drawable-mdpi-finger-v4/btn_circle_selected.png rename to res/drawable-mdpi-finger/btn_circle_selected.png diff --git a/res/drawable-mdpi-finger-v4/ic_btn_round_minus.png b/res/drawable-mdpi-finger/ic_btn_round_minus.png similarity index 100% rename from res/drawable-mdpi-finger-v4/ic_btn_round_minus.png rename to res/drawable-mdpi-finger/ic_btn_round_minus.png diff --git a/res/drawable-mdpi-finger-v4/ic_btn_round_plus.png b/res/drawable-mdpi-finger/ic_btn_round_plus.png similarity index 100% rename from res/drawable-mdpi-finger-v4/ic_btn_round_plus.png rename to res/drawable-mdpi-finger/ic_btn_round_plus.png diff --git a/res/drawable-mdpi-v4/icon.png b/res/drawable-mdpi-v4/icon.png deleted file mode 100644 index 3c165f9bd974afa1d14cf8d57fbe0b2b23d962a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3582 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 eU3@~|Y~$bS-%R|Bst@P@0000-WI$;b!g7{y>P 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 literal 0 HcmV?d00001 diff --git a/res/drawable/icon.png b/res/drawable/icon.png deleted file mode 100644 index b4e4db40e9bcca8edc7bbaa8d70d36f7232f032d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2947 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 diff --git a/res/layout/about_activity.xml b/res/layout/about_activity.xml new file mode 100644 index 000000000..0388f5c06 --- /dev/null +++ b/res/layout/about_activity.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/res/values/static_strings.xml b/res/values/static_strings.xml index 41adbfad7..c8a6a5026 100644 --- a/res/values/static_strings.xml +++ b/res/values/static_strings.xml @@ -1,6 +1,7 @@ - APG Plus + APG+ + https://github.com/dschuermann/apg \ No newline at end of file diff --git a/res/values/strings.xml b/res/values/strings.xml index 2e6386182..455b97717 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -46,7 +46,8 @@ Unknown Signature Key Import from QR Code Sign Key - + About + User IDs Keys @@ -314,7 +315,13 @@ fast slow very slow - + + + Android Privacy Guard (APG) is a OpenPGP implementation for Android. + License: Apache License 2.0 + Version: + Developer: ... + Install K-9 Mail for the best integration, it supports APG for PGP/INLINE and lets you directly encrypt/decrypt emails. diff --git a/src/org/apg/Apg.java b/src/org/apg/Apg.java index d0e54f4d8..2bfdb31e6 100644 --- a/src/org/apg/Apg.java +++ b/src/org/apg/Apg.java @@ -1966,8 +1966,8 @@ public class Apg { } if (signatureKey == null) { Bundle pauseData = new Bundle(); - pauseData.putInt(Constants.extras.status, Id.message.unknown_signature_key); - pauseData.putLong(Constants.extras.key_id, signatureKeyId); + pauseData.putInt(Constants.extras.STATUS, Id.message.unknown_signature_key); + pauseData.putLong(Constants.extras.KEY_ID, signatureKeyId); Message msg = new Message(); msg.setData(pauseData); context.sendMessage(msg); diff --git a/src/org/apg/Constants.java b/src/org/apg/Constants.java index 90822189a..9669d4b0d 100644 --- a/src/org/apg/Constants.java +++ b/src/org/apg/Constants.java @@ -20,35 +20,35 @@ import android.os.Environment; public final class Constants { - public static final String tag = "APG"; + public static final String TAG = "APG"; public static final class path { - public static final String app_dir = Environment.getExternalStorageDirectory() + "/APG"; + public static final String APP_DIR = Environment.getExternalStorageDirectory() + "/APG"; } public static final class pref { - public static final String has_seen_help = "seenHelp"; - public static final String has_seen_change_log = "seenChangeLogDialog"; - public static final String default_encryption_algorithm = "defaultEncryptionAlgorithm"; - public static final String default_hash_algorithm = "defaultHashAlgorithm"; - public static final String default_ascii_armour = "defaultAsciiArmour"; - public static final String default_message_compression = "defaultMessageCompression"; - public static final String default_file_compression = "defaultFileCompression"; - public static final String pass_phrase_cache_ttl = "passPhraseCacheTtl"; - public static final String language = "language"; - public static final String force_v3_signatures = "forceV3Signatures"; - public static final String key_servers = "keyServers"; + public static final String HAS_SEEN_HELP = "seenHelp"; + public static final String HAS_SEEN_CHANGE_LOG = "seenChangeLogDialog"; + public static final String DEFAULT_ENCRYPTION_ALGORITHM = "defaultEncryptionAlgorithm"; + public static final String DEFAULT_HASH_ALGORITHM = "defaultHashAlgorithm"; + public static final String DEFAULT_ASCII_ARMOUR = "defaultAsciiArmour"; + public static final String DEFAULT_MESSAGE_COMPRESSION = "defaultMessageCompression"; + public static final String DEFAULT_FILE_COMPRESSION = "defaultFileCompression"; + public static final String PASS_PHRASE_CACHE_TTL = "passPhraseCacheTtl"; + public static final String LANGUAGE = "language"; + public static final String FORCE_V3_SIGNATURES = "forceV3Signatures"; + public static final String KEY_SERVERS = "keyServers"; } public static final class defaults { - public static final String key_servers = "pool.sks-keyservers.net, subkeys.pgp.net, pgp.mit.edu"; + public static final String KEY_SERVERS = "pool.sks-keyservers.net, subkeys.pgp.net, pgp.mit.edu"; } public static final class extras { - public static final String progress = "progress"; - public static final String progress_max = "max"; - public static final String status = "status"; - public static final String message = "message"; - public static final String key_id = "keyId"; + public static final String PROGRESS = "progress"; + public static final String PROGRESS_MAX = "max"; + public static final String STATUS = "status"; + public static final String MESSAGE = "message"; + public static final String KEY_ID = "keyId"; } } diff --git a/src/org/apg/Id.java b/src/org/apg/Id.java index e0ffa95cd..adcad0534 100644 --- a/src/org/apg/Id.java +++ b/src/org/apg/Id.java @@ -88,7 +88,7 @@ public final class Id { public static final int export_keys = 0x2107000c; public static final int exporting = 0x2107000d; public static final int new_account = 0x2107000e; - public static final int about = 0x2107000f; +// public static final int about = 0x2107000f; public static final int change_log = 0x21070010; public static final int output_filename = 0x21070011; public static final int delete_file = 0x21070012; diff --git a/src/org/apg/Preferences.java b/src/org/apg/Preferences.java index 0bd79290f..f4800e064 100644 --- a/src/org/apg/Preferences.java +++ b/src/org/apg/Preferences.java @@ -28,17 +28,17 @@ public class Preferences { } public String getLanguage() { - return mSharedPreferences.getString(Constants.pref.language, ""); + return mSharedPreferences.getString(Constants.pref.LANGUAGE, ""); } public void setLanguage(String value) { SharedPreferences.Editor editor = mSharedPreferences.edit(); - editor.putString(Constants.pref.language, value); + editor.putString(Constants.pref.LANGUAGE, value); editor.commit(); } public int getPassPhraseCacheTtl() { - int ttl = mSharedPreferences.getInt(Constants.pref.pass_phrase_cache_ttl, 180); + int ttl = mSharedPreferences.getInt(Constants.pref.PASS_PHRASE_CACHE_TTL, 180); // fix the value if it was set to "never" in previous versions, which currently is not // supported if (ttl == 0) { @@ -49,97 +49,97 @@ public class Preferences { public void setPassPhraseCacheTtl(int value) { SharedPreferences.Editor editor = mSharedPreferences.edit(); - editor.putInt(Constants.pref.pass_phrase_cache_ttl, value); + editor.putInt(Constants.pref.PASS_PHRASE_CACHE_TTL, value); editor.commit(); } public int getDefaultEncryptionAlgorithm() { - return mSharedPreferences.getInt(Constants.pref.default_encryption_algorithm, + return mSharedPreferences.getInt(Constants.pref.DEFAULT_ENCRYPTION_ALGORITHM, PGPEncryptedData.AES_256); } public void setDefaultEncryptionAlgorithm(int value) { SharedPreferences.Editor editor = mSharedPreferences.edit(); - editor.putInt(Constants.pref.default_encryption_algorithm, value); + editor.putInt(Constants.pref.DEFAULT_ENCRYPTION_ALGORITHM, value); editor.commit(); } public int getDefaultHashAlgorithm() { - return mSharedPreferences.getInt(Constants.pref.default_hash_algorithm, + return mSharedPreferences.getInt(Constants.pref.DEFAULT_HASH_ALGORITHM, HashAlgorithmTags.SHA256); } public void setDefaultHashAlgorithm(int value) { SharedPreferences.Editor editor = mSharedPreferences.edit(); - editor.putInt(Constants.pref.default_hash_algorithm, value); + editor.putInt(Constants.pref.DEFAULT_HASH_ALGORITHM, value); editor.commit(); } public int getDefaultMessageCompression() { - return mSharedPreferences.getInt(Constants.pref.default_message_compression, + return mSharedPreferences.getInt(Constants.pref.DEFAULT_MESSAGE_COMPRESSION, Id.choice.compression.zlib); } public void setDefaultMessageCompression(int value) { SharedPreferences.Editor editor = mSharedPreferences.edit(); - editor.putInt(Constants.pref.default_message_compression, value); + editor.putInt(Constants.pref.DEFAULT_MESSAGE_COMPRESSION, value); editor.commit(); } public int getDefaultFileCompression() { - return mSharedPreferences.getInt(Constants.pref.default_file_compression, + return mSharedPreferences.getInt(Constants.pref.DEFAULT_FILE_COMPRESSION, Id.choice.compression.none); } public void setDefaultFileCompression(int value) { SharedPreferences.Editor editor = mSharedPreferences.edit(); - editor.putInt(Constants.pref.default_file_compression, value); + editor.putInt(Constants.pref.DEFAULT_FILE_COMPRESSION, value); editor.commit(); } public boolean getDefaultAsciiArmour() { - return mSharedPreferences.getBoolean(Constants.pref.default_ascii_armour, false); + return mSharedPreferences.getBoolean(Constants.pref.DEFAULT_ASCII_ARMOUR, false); } public void setDefaultAsciiArmour(boolean value) { SharedPreferences.Editor editor = mSharedPreferences.edit(); - editor.putBoolean(Constants.pref.default_ascii_armour, value); + editor.putBoolean(Constants.pref.DEFAULT_ASCII_ARMOUR, value); editor.commit(); } public boolean getForceV3Signatures() { - return mSharedPreferences.getBoolean(Constants.pref.force_v3_signatures, false); + return mSharedPreferences.getBoolean(Constants.pref.FORCE_V3_SIGNATURES, false); } public void setForceV3Signatures(boolean value) { SharedPreferences.Editor editor = mSharedPreferences.edit(); - editor.putBoolean(Constants.pref.force_v3_signatures, value); + editor.putBoolean(Constants.pref.FORCE_V3_SIGNATURES, value); editor.commit(); } public boolean hasSeenChangeLog(String version) { - return mSharedPreferences.getBoolean(Constants.pref.has_seen_change_log + version, false); + return mSharedPreferences.getBoolean(Constants.pref.HAS_SEEN_CHANGE_LOG + version, false); } public void setHasSeenChangeLog(String version, boolean value) { SharedPreferences.Editor editor = mSharedPreferences.edit(); - editor.putBoolean(Constants.pref.has_seen_change_log + version, value); + editor.putBoolean(Constants.pref.HAS_SEEN_CHANGE_LOG + version, value); editor.commit(); } public boolean hasSeenHelp() { - return mSharedPreferences.getBoolean(Constants.pref.has_seen_help, false); + return mSharedPreferences.getBoolean(Constants.pref.HAS_SEEN_HELP, false); } public void setHasSeenHelp(boolean value) { SharedPreferences.Editor editor = mSharedPreferences.edit(); - editor.putBoolean(Constants.pref.has_seen_help, value); + editor.putBoolean(Constants.pref.HAS_SEEN_HELP, value); editor.commit(); } public String[] getKeyServers() { - String rawData = mSharedPreferences.getString(Constants.pref.key_servers, - Constants.defaults.key_servers); + String rawData = mSharedPreferences.getString(Constants.pref.KEY_SERVERS, + Constants.defaults.KEY_SERVERS); Vector servers = new Vector(); String chunks[] = rawData.split(","); for (int i = 0; i < chunks.length; ++i) { @@ -164,7 +164,7 @@ public class Preferences { } rawData += tmp; } - editor.putString(Constants.pref.key_servers, rawData); + editor.putString(Constants.pref.KEY_SERVERS, rawData); editor.commit(); } } diff --git a/src/org/apg/provider/ApgServiceBlobProvider.java b/src/org/apg/provider/ApgServiceBlobProvider.java index 18aa76d5e..f2d5377a4 100644 --- a/src/org/apg/provider/ApgServiceBlobProvider.java +++ b/src/org/apg/provider/ApgServiceBlobProvider.java @@ -24,7 +24,7 @@ public class ApgServiceBlobProvider extends ContentProvider { private static final String COLUMN_KEY = "key"; - private static final String STORE_PATH = Constants.path.app_dir+"/ApgServiceBlobs"; + private static final String STORE_PATH = Constants.path.APP_DIR+"/ApgServiceBlobs"; private ApgServiceBlobDatabase mDb = null; diff --git a/src/org/apg/ui/AboutActivity.java b/src/org/apg/ui/AboutActivity.java new file mode 100644 index 000000000..308a1e06e --- /dev/null +++ b/src/org/apg/ui/AboutActivity.java @@ -0,0 +1,51 @@ +package org.apg.ui; + +import org.apg.Constants; +import org.apg.R; + +import android.app.Activity; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; +import android.content.pm.PackageManager.NameNotFoundException; +import android.os.Bundle; +import android.util.Log; +import android.widget.TextView; + +public class AboutActivity extends Activity { + Activity mActivity; + + /** + * Instantiate View for this Activity + */ + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + setContentView(R.layout.about_activity); + + mActivity = this; + + TextView versionText = (TextView) findViewById(R.id.about_version); + versionText.setText(getString(R.string.about_version) + " " + getVersion()); + } + + /** + * Get the current package version. + * + * @return The current version. + */ + private String getVersion() { + String result = ""; + try { + PackageManager manager = mActivity.getPackageManager(); + PackageInfo info = manager.getPackageInfo(mActivity.getPackageName(), 0); + + result = String.format("%s (%s)", info.versionName, info.versionCode); + } catch (NameNotFoundException e) { + Log.w(Constants.TAG, "Unable to get application version: " + e.getMessage()); + result = "Unable to get application version."; + } + + return result; + } +} diff --git a/src/org/apg/ui/BaseActivity.java b/src/org/apg/ui/BaseActivity.java index 6e61b1412..9b5039a5d 100644 --- a/src/org/apg/ui/BaseActivity.java +++ b/src/org/apg/ui/BaseActivity.java @@ -79,7 +79,7 @@ public class BaseActivity extends Activity implements Runnable, ProgressDialogUp Apg.initialize(this); if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { - File dir = new File(Constants.path.app_dir); + File dir = new File(Constants.path.APP_DIR); if (!dir.exists() && !dir.mkdirs()) { // ignore this for now, it's not crucial // that the directory doesn't exist at this point @@ -108,7 +108,7 @@ public class BaseActivity extends Activity implements Runnable, ProgressDialogUp public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case Id.menu.option.about: { - showDialog(Id.dialog.about); + startActivity(new Intent(this, AboutActivity.class)); return true; } @@ -187,31 +187,6 @@ public class BaseActivity extends Activity implements Runnable, ProgressDialogUp mProgressDialog = null; switch (id) { - case Id.dialog.about: { - AlertDialog.Builder alert = new AlertDialog.Builder(this); - - alert.setTitle("About " + Apg.getFullVersion(this)); - - LayoutInflater inflater = (LayoutInflater) this - .getSystemService(Context.LAYOUT_INFLATER_SERVICE); - View layout = inflater.inflate(R.layout.info, null); - TextView message = (TextView) layout.findViewById(R.id.message); - message.setText("This is an attempt to bring OpenPGP to Android. " - + "It is far from complete, but more features are planned (see website).\n\n" - + "Feel free to send bug reports, suggestions, feature requests, feedback, " - + "photographs.\n\n" + "mail: thi@thialfihar.org\n" - + "site: http://apg.thialfihar.org\n\n" - + "This software is provided \"as is\", without warranty of any kind."); - alert.setView(layout); - - alert.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int id) { - BaseActivity.this.removeDialog(Id.dialog.about); - } - }); - - return alert.create(); - } case Id.dialog.pass_phrase: { return AskForSecretKeyPassPhrase.createDialog(this, getSecretKeyId(), this); @@ -266,7 +241,7 @@ public class BaseActivity extends Activity implements Runnable, ProgressDialogUp mDeletingThread = new Thread(new Runnable() { public void run() { Bundle data = new Bundle(); - data.putInt(Constants.extras.status, Id.message.delete_done); + data.putInt(Constants.extras.STATUS, Id.message.delete_done); try { Apg.deleteFileSecurely(BaseActivity.this, file, BaseActivity.this); } catch (FileNotFoundException e) { @@ -330,9 +305,9 @@ public class BaseActivity extends Activity implements Runnable, ProgressDialogUp public void setProgress(int progress, int max) { Message msg = new Message(); Bundle data = new Bundle(); - data.putInt(Constants.extras.status, Id.message.progress_update); - data.putInt(Constants.extras.progress, progress); - data.putInt(Constants.extras.progress_max, max); + data.putInt(Constants.extras.STATUS, Id.message.progress_update); + data.putInt(Constants.extras.PROGRESS, progress); + data.putInt(Constants.extras.PROGRESS_MAX, max); msg.setData(data); mHandler.sendMessage(msg); } @@ -340,10 +315,10 @@ public class BaseActivity extends Activity implements Runnable, ProgressDialogUp public void setProgress(String message, int progress, int max) { Message msg = new Message(); Bundle data = new Bundle(); - data.putInt(Constants.extras.status, Id.message.progress_update); - data.putString(Constants.extras.message, message); - data.putInt(Constants.extras.progress, progress); - data.putInt(Constants.extras.progress_max, max); + data.putInt(Constants.extras.STATUS, Id.message.progress_update); + data.putString(Constants.extras.MESSAGE, message); + data.putInt(Constants.extras.PROGRESS, progress); + data.putInt(Constants.extras.PROGRESS_MAX, max); msg.setData(data); mHandler.sendMessage(msg); } @@ -354,16 +329,16 @@ public class BaseActivity extends Activity implements Runnable, ProgressDialogUp return; } - int type = data.getInt(Constants.extras.status); + int type = data.getInt(Constants.extras.STATUS); switch (type) { case Id.message.progress_update: { - String message = data.getString(Constants.extras.message); + String message = data.getString(Constants.extras.MESSAGE); if (mProgressDialog != null) { if (message != null) { mProgressDialog.setMessage(message); } - mProgressDialog.setMax(data.getInt(Constants.extras.progress_max)); - mProgressDialog.setProgress(data.getInt(Constants.extras.progress)); + mProgressDialog.setMax(data.getInt(Constants.extras.PROGRESS_MAX)); + mProgressDialog.setProgress(data.getInt(Constants.extras.PROGRESS)); } break; } diff --git a/src/org/apg/ui/DecryptActivity.java b/src/org/apg/ui/DecryptActivity.java index 48884cbfc..cb58dfb09 100644 --- a/src/org/apg/ui/DecryptActivity.java +++ b/src/org/apg/ui/DecryptActivity.java @@ -196,28 +196,28 @@ public class DecryptActivity extends BaseActivity { // ignore, then } } else if (Apg.Intent.DECRYPT.equals(mIntent.getAction())) { - Log.d(Constants.tag, "Apg Intent DECRYPT startet"); + Log.d(Constants.TAG, "Apg Intent DECRYPT startet"); Bundle extras = mIntent.getExtras(); if (extras == null) { - Log.d(Constants.tag, "extra bundle was null"); + Log.d(Constants.TAG, "extra bundle was null"); extras = new Bundle(); } else { - Log.d(Constants.tag, "got extras"); + Log.d(Constants.TAG, "got extras"); } mData = extras.getByteArray(Apg.EXTRA_DATA); String textData = null; if (mData == null) { - Log.d(Constants.tag, "EXTRA_DATA was null"); + Log.d(Constants.TAG, "EXTRA_DATA was null"); textData = extras.getString(Apg.EXTRA_TEXT); } else { - Log.d(Constants.tag, "Got data from EXTRA_DATA"); + Log.d(Constants.TAG, "Got data from EXTRA_DATA"); } if (textData != null) { - Log.d(Constants.tag, "textData null, matching text ..."); + Log.d(Constants.TAG, "textData null, matching text ..."); Matcher matcher = Apg.PGP_MESSAGE.matcher(textData); if (matcher.matches()) { - Log.d(Constants.tag, "PGP_MESSAGE matched"); + Log.d(Constants.TAG, "PGP_MESSAGE matched"); textData = matcher.group(1); // replace non breakable spaces textData = textData.replaceAll("\\xa0", " "); @@ -225,14 +225,14 @@ public class DecryptActivity extends BaseActivity { } else { matcher = Apg.PGP_SIGNED_MESSAGE.matcher(textData); if (matcher.matches()) { - Log.d(Constants.tag, "PGP_SIGNED_MESSAGE matched"); + Log.d(Constants.TAG, "PGP_SIGNED_MESSAGE matched"); textData = matcher.group(1); // replace non breakable spaces textData = textData.replaceAll("\\xa0", " "); mMessage.setText(textData); mDecryptButton.setText(R.string.btn_verify); } else { - Log.d(Constants.tag, "Nothing matched!"); + Log.d(Constants.TAG, "Nothing matched!"); } } } @@ -377,7 +377,7 @@ public class DecryptActivity extends BaseActivity { if (filename.endsWith(".asc") || filename.endsWith(".gpg") || filename.endsWith(".pgp")) { filename = filename.substring(0, filename.length() - 4); } - mOutputFilename = Constants.path.app_dir + "/" + filename; + mOutputFilename = Constants.path.APP_DIR + "/" + filename; } private void updateSource() { @@ -564,7 +564,7 @@ public class DecryptActivity extends BaseActivity { error = "" + e; } - data.putInt(Constants.extras.status, Id.message.done); + data.putInt(Constants.extras.STATUS, Id.message.done); if (error != null) { data.putString(Apg.EXTRA_ERROR, error); @@ -581,8 +581,8 @@ public class DecryptActivity extends BaseActivity { return; } - if (data.getInt(Constants.extras.status) == Id.message.unknown_signature_key) { - mUnknownSignatureKeyId = data.getLong(Constants.extras.key_id); + if (data.getInt(Constants.extras.STATUS) == Id.message.unknown_signature_key) { + mUnknownSignatureKeyId = data.getLong(Constants.extras.KEY_ID); showDialog(Id.dialog.lookup_unknown_key); return; } diff --git a/src/org/apg/ui/EditKeyActivity.java b/src/org/apg/ui/EditKeyActivity.java index 6e1eab63e..c3945d4ed 100644 --- a/src/org/apg/ui/EditKeyActivity.java +++ b/src/org/apg/ui/EditKeyActivity.java @@ -257,7 +257,7 @@ public class EditKeyActivity extends BaseActivity implements OnClickListener { error = "" + e; } - data.putInt(Constants.extras.status, Id.message.done); + data.putInt(Constants.extras.STATUS, Id.message.done); if (error != null) { data.putString(Apg.EXTRA_ERROR, error); diff --git a/src/org/apg/ui/EncryptActivity.java b/src/org/apg/ui/EncryptActivity.java index 603d1a04d..e5892a4d5 100644 --- a/src/org/apg/ui/EncryptActivity.java +++ b/src/org/apg/ui/EncryptActivity.java @@ -421,7 +421,7 @@ public class EncryptActivity extends BaseActivity { mInputFilename = mFilename.getText().toString(); File file = new File(mInputFilename); String ending = (mAsciiArmour.isChecked() ? ".asc" : ".gpg"); - mOutputFilename = Constants.path.app_dir + "/" + file.getName() + ending; + mOutputFilename = Constants.path.APP_DIR + "/" + file.getName() + ending; } private void updateSource() { @@ -731,7 +731,7 @@ public class EncryptActivity extends BaseActivity { error = "" + e; } - data.putInt(Constants.extras.status, Id.message.done); + data.putInt(Constants.extras.STATUS, Id.message.done); if (error != null) { data.putString(Apg.EXTRA_ERROR, error); diff --git a/src/org/apg/ui/ImportFromQRCodeActivity.java b/src/org/apg/ui/ImportFromQRCodeActivity.java index 0d9209991..593c841df 100644 --- a/src/org/apg/ui/ImportFromQRCodeActivity.java +++ b/src/org/apg/ui/ImportFromQRCodeActivity.java @@ -69,11 +69,11 @@ public class ImportFromQRCodeActivity extends BaseActivity { } catch (QueryException e) { Log.e(TAG, "Failed to query KeyServer", e); status.putString(Apg.EXTRA_ERROR, "Failed to query KeyServer"); - status.putInt(Constants.extras.status, Id.message.done); + status.putInt(Constants.extras.STATUS, Id.message.done); } catch (IOException e) { Log.e(TAG, "Failed to query KeyServer", e); status.putString(Apg.EXTRA_ERROR, "Failed to query KeyServer"); - status.putInt(Constants.extras.status, Id.message.done); + status.putInt(Constants.extras.STATUS, Id.message.done); } } }; @@ -107,7 +107,7 @@ public class ImportFromQRCodeActivity extends BaseActivity { case Id.request.sign_key: { // signals the end of processing. Signature was either applied, or it wasnt - status.putInt(Constants.extras.status, Id.message.done); + status.putInt(Constants.extras.STATUS, Id.message.done); msg.setData(status); sendMessage(msg); diff --git a/src/org/apg/ui/KeyListActivity.java b/src/org/apg/ui/KeyListActivity.java index 00be0321a..6c76f02bc 100644 --- a/src/org/apg/ui/KeyListActivity.java +++ b/src/org/apg/ui/KeyListActivity.java @@ -74,8 +74,8 @@ public class KeyListActivity extends BaseActivity { protected int mSelectedItem = -1; protected int mTask = 0; - protected String mImportFilename = Constants.path.app_dir + "/"; - protected String mExportFilename = Constants.path.app_dir + "/"; + protected String mImportFilename = Constants.path.APP_DIR + "/"; + protected String mExportFilename = Constants.path.APP_DIR + "/"; protected String mImportData; protected boolean mDeleteAfterImport = false; @@ -352,9 +352,9 @@ public class KeyListActivity extends BaseActivity { mImportData = null; if (mTask == Id.task.import_keys) { - data.putInt(Constants.extras.status, Id.message.import_done); + data.putInt(Constants.extras.STATUS, Id.message.import_done); } else { - data.putInt(Constants.extras.status, Id.message.export_done); + data.putInt(Constants.extras.STATUS, Id.message.export_done); } if (error != null) { @@ -381,7 +381,7 @@ public class KeyListActivity extends BaseActivity { Bundle data = msg.getData(); if (data != null) { - int type = data.getInt(Constants.extras.status); + int type = data.getInt(Constants.extras.STATUS); switch (type) { case Id.message.import_done: { removeDialog(Id.dialog.importing); diff --git a/src/org/apg/ui/KeyServerQueryActivity.java b/src/org/apg/ui/KeyServerQueryActivity.java index f1f6466e3..606acb575 100644 --- a/src/org/apg/ui/KeyServerQueryActivity.java +++ b/src/org/apg/ui/KeyServerQueryActivity.java @@ -144,7 +144,7 @@ public class KeyServerQueryActivity extends BaseActivity { error = "Too many responses."; } - data.putInt(Constants.extras.status, Id.message.done); + data.putInt(Constants.extras.STATUS, Id.message.done); if (error != null) { data.putString(Apg.EXTRA_ERROR, error); diff --git a/src/org/apg/ui/PreferencesActivity.java b/src/org/apg/ui/PreferencesActivity.java index 749f70657..421c9cc39 100644 --- a/src/org/apg/ui/PreferencesActivity.java +++ b/src/org/apg/ui/PreferencesActivity.java @@ -61,7 +61,7 @@ public class PreferencesActivity extends PreferenceActivity { addPreferencesFromResource(R.xml.apg_preferences); - mLanguage = (ListPreference) findPreference(Constants.pref.language); + mLanguage = (ListPreference) findPreference(Constants.pref.LANGUAGE); Vector entryVector = new Vector(Arrays.asList(mLanguage.getEntries())); Vector entryValueVector = new Vector(Arrays.asList(mLanguage.getEntryValues())); String supportedLanguages[] = getResources().getStringArray(R.array.supported_languages); @@ -90,7 +90,7 @@ public class PreferencesActivity extends PreferenceActivity { } }); - mPassPhraseCacheTtl = (IntegerListPreference) findPreference(Constants.pref.pass_phrase_cache_ttl); + mPassPhraseCacheTtl = (IntegerListPreference) findPreference(Constants.pref.PASS_PHRASE_CACHE_TTL); mPassPhraseCacheTtl.setValue("" + mPreferences.getPassPhraseCacheTtl()); mPassPhraseCacheTtl.setSummary(mPassPhraseCacheTtl.getEntry()); mPassPhraseCacheTtl.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() @@ -105,7 +105,7 @@ public class PreferencesActivity extends PreferenceActivity { } }); - mEncryptionAlgorithm = (IntegerListPreference) findPreference(Constants.pref.default_encryption_algorithm); + mEncryptionAlgorithm = (IntegerListPreference) findPreference(Constants.pref.DEFAULT_ENCRYPTION_ALGORITHM); int valueIds[] = { PGPEncryptedData.AES_128, PGPEncryptedData.AES_192, PGPEncryptedData.AES_256, PGPEncryptedData.BLOWFISH, PGPEncryptedData.TWOFISH, PGPEncryptedData.CAST5, @@ -135,7 +135,7 @@ public class PreferencesActivity extends PreferenceActivity { } }); - mHashAlgorithm = (IntegerListPreference) findPreference(Constants.pref.default_hash_algorithm); + mHashAlgorithm = (IntegerListPreference) findPreference(Constants.pref.DEFAULT_HASH_ALGORITHM); valueIds = new int[] { HashAlgorithmTags.MD5, HashAlgorithmTags.RIPEMD160, HashAlgorithmTags.SHA1, HashAlgorithmTags.SHA224, HashAlgorithmTags.SHA256, HashAlgorithmTags.SHA384, @@ -165,7 +165,7 @@ public class PreferencesActivity extends PreferenceActivity { } }); - mMessageCompression = (IntegerListPreference) findPreference(Constants.pref.default_message_compression); + mMessageCompression = (IntegerListPreference) findPreference(Constants.pref.DEFAULT_MESSAGE_COMPRESSION); valueIds = new int[] { Id.choice.compression.none, Id.choice.compression.zip, @@ -197,7 +197,7 @@ public class PreferencesActivity extends PreferenceActivity { } }); - mFileCompression = (IntegerListPreference) findPreference(Constants.pref.default_file_compression); + mFileCompression = (IntegerListPreference) findPreference(Constants.pref.DEFAULT_FILE_COMPRESSION); mFileCompression.setEntries(entries); mFileCompression.setEntryValues(values); mFileCompression.setValue("" + mPreferences.getDefaultFileCompression()); @@ -213,7 +213,7 @@ public class PreferencesActivity extends PreferenceActivity { } }); - mAsciiArmour = (CheckBoxPreference) findPreference(Constants.pref.default_ascii_armour); + mAsciiArmour = (CheckBoxPreference) findPreference(Constants.pref.DEFAULT_ASCII_ARMOUR); mAsciiArmour.setChecked(mPreferences.getDefaultAsciiArmour()); mAsciiArmour.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { @@ -225,7 +225,7 @@ public class PreferencesActivity extends PreferenceActivity { } }); - mForceV3Signatures = (CheckBoxPreference) findPreference(Constants.pref.force_v3_signatures); + mForceV3Signatures = (CheckBoxPreference) findPreference(Constants.pref.FORCE_V3_SIGNATURES); mForceV3Signatures.setChecked(mPreferences.getForceV3Signatures()); mForceV3Signatures.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { @@ -237,7 +237,7 @@ public class PreferencesActivity extends PreferenceActivity { } }); - mKeyServerPreference = (PreferenceScreen) findPreference(Constants.pref.key_servers); + mKeyServerPreference = (PreferenceScreen) findPreference(Constants.pref.KEY_SERVERS); String servers[] = mPreferences.getKeyServers(); mKeyServerPreference.setSummary(getResources().getString(R.string.nKeyServers, servers.length)); mKeyServerPreference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { diff --git a/src/org/apg/ui/PublicKeyListActivity.java b/src/org/apg/ui/PublicKeyListActivity.java index a9c5dbc15..81a79ce33 100644 --- a/src/org/apg/ui/PublicKeyListActivity.java +++ b/src/org/apg/ui/PublicKeyListActivity.java @@ -40,7 +40,7 @@ import android.widget.ExpandableListView.ExpandableListContextMenuInfo; public class PublicKeyListActivity extends KeyListActivity { @Override public void onCreate(Bundle savedInstanceState) { - mExportFilename = Constants.path.app_dir + "/pubexport.asc"; + mExportFilename = Constants.path.APP_DIR + "/pubexport.asc"; mKeyType = Id.type.public_key; super.onCreate(savedInstanceState); } diff --git a/src/org/apg/ui/SecretKeyListActivity.java b/src/org/apg/ui/SecretKeyListActivity.java index c8a5c9866..a5d351bc6 100644 --- a/src/org/apg/ui/SecretKeyListActivity.java +++ b/src/org/apg/ui/SecretKeyListActivity.java @@ -45,7 +45,7 @@ import com.google.zxing.integration.android.IntentIntegrator; public class SecretKeyListActivity extends KeyListActivity implements OnChildClickListener { @Override public void onCreate(Bundle savedInstanceState) { - mExportFilename = Constants.path.app_dir + "/secexport.asc"; + mExportFilename = Constants.path.APP_DIR + "/secexport.asc"; mKeyType = Id.type.secret_key; super.onCreate(savedInstanceState); mList.setOnChildClickListener(this); diff --git a/src/org/apg/ui/SendKeyActivity.java b/src/org/apg/ui/SendKeyActivity.java index 2dcb08d3d..c44e87469 100644 --- a/src/org/apg/ui/SendKeyActivity.java +++ b/src/org/apg/ui/SendKeyActivity.java @@ -73,7 +73,7 @@ public class SendKeyActivity extends BaseActivity { } } - data.putInt(Constants.extras.status, Id.message.export_done); + data.putInt(Constants.extras.STATUS, Id.message.export_done); if (error != null) { data.putString(Apg.EXTRA_ERROR, error); diff --git a/src/org/apg/ui/SignKeyActivity.java b/src/org/apg/ui/SignKeyActivity.java index 6fad76dff..ab145c921 100644 --- a/src/org/apg/ui/SignKeyActivity.java +++ b/src/org/apg/ui/SignKeyActivity.java @@ -141,7 +141,7 @@ public class SignKeyActivity extends BaseActivity { status.putString(Apg.EXTRA_ERROR, "Key has already been signed"); - status.putInt(Constants.extras.status, Id.message.done); + status.putInt(Constants.extras.STATUS, Id.message.done); msg.setData(status); sendMessage(msg); @@ -221,26 +221,26 @@ public class SignKeyActivity extends BaseActivity { } catch (PGPException e) { Log.e(TAG, "Failed to sign key", e); status.putString(Apg.EXTRA_ERROR, "Failed to sign key"); - status.putInt(Constants.extras.status, Id.message.done); + status.putInt(Constants.extras.STATUS, Id.message.done); return; } catch (NoSuchAlgorithmException e) { Log.e(TAG, "Failed to sign key", e); status.putString(Apg.EXTRA_ERROR, "Failed to sign key"); - status.putInt(Constants.extras.status, Id.message.done); + status.putInt(Constants.extras.STATUS, Id.message.done); return; } catch (NoSuchProviderException e) { Log.e(TAG, "Failed to sign key", e); status.putString(Apg.EXTRA_ERROR, "Failed to sign key"); - status.putInt(Constants.extras.status, Id.message.done); + status.putInt(Constants.extras.STATUS, Id.message.done); return; } catch (SignatureException e) { Log.e(TAG, "Failed to sign key", e); status.putString(Apg.EXTRA_ERROR, "Failed to sign key"); - status.putInt(Constants.extras.status, Id.message.done); + status.putInt(Constants.extras.STATUS, Id.message.done); return; } - status.putInt(Constants.extras.status, Id.message.done); + status.putInt(Constants.extras.STATUS, Id.message.done); msg.setData(status); sendMessage(msg);