diff --git a/res/drawable-nodpi/bg_checkbox_holo_dark.9.png b/res/drawable-nodpi/bg_checkbox_holo_dark.9.png new file mode 100644 index 000000000..5d7cacc3b Binary files /dev/null and b/res/drawable-nodpi/bg_checkbox_holo_dark.9.png differ diff --git a/res/drawable-nodpi/bg_checkbox_holo_light.9.png b/res/drawable-nodpi/bg_checkbox_holo_light.9.png new file mode 100644 index 000000000..a7be58996 Binary files /dev/null and b/res/drawable-nodpi/bg_checkbox_holo_light.9.png differ diff --git a/res/drawable/card_light.9.png b/res/drawable-nodpi/card_light.9.png similarity index 100% rename from res/drawable/card_light.9.png rename to res/drawable-nodpi/card_light.9.png diff --git a/res/drawable/divider_dark.9.png b/res/drawable-nodpi/divider_dark.9.png similarity index 100% rename from res/drawable/divider_dark.9.png rename to res/drawable-nodpi/divider_dark.9.png diff --git a/res/drawable/divider_light.9.png b/res/drawable-nodpi/divider_light.9.png similarity index 100% rename from res/drawable/divider_light.9.png rename to res/drawable-nodpi/divider_light.9.png diff --git a/res/drawable/bg_button.xml b/res/drawable/bg_button.xml new file mode 100644 index 000000000..b06d5ddcc --- /dev/null +++ b/res/drawable/bg_button.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/res/drawable/bg_checkbox_dark.xml b/res/drawable/bg_checkbox_dark.xml new file mode 100644 index 000000000..f44740535 --- /dev/null +++ b/res/drawable/bg_checkbox_dark.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/res/drawable/bg_checkbox_light.xml b/res/drawable/bg_checkbox_light.xml new file mode 100644 index 000000000..d1924d088 --- /dev/null +++ b/res/drawable/bg_checkbox_light.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/res/drawable/checkbox_check.png b/res/drawable/checkbox_check.png new file mode 100644 index 000000000..78d0b6c07 Binary files /dev/null and b/res/drawable/checkbox_check.png differ diff --git a/res/drawable/checkbox_half.png b/res/drawable/checkbox_half.png new file mode 100644 index 000000000..08db16fb8 Binary files /dev/null and b/res/drawable/checkbox_half.png differ diff --git a/res/drawable/granted_grayed_holo_dark.png b/res/drawable/granted_grayed_holo_dark.png deleted file mode 100644 index 31f9785eb..000000000 Binary files a/res/drawable/granted_grayed_holo_dark.png and /dev/null differ diff --git a/res/drawable/granted_grayed_holo_light.png b/res/drawable/granted_grayed_holo_light.png deleted file mode 100644 index 31f9785eb..000000000 Binary files a/res/drawable/granted_grayed_holo_light.png and /dev/null differ diff --git a/res/drawable/internet_grayed_holo_dark.png b/res/drawable/internet_grayed_holo_dark.png deleted file mode 100644 index ae31fb4ae..000000000 Binary files a/res/drawable/internet_grayed_holo_dark.png and /dev/null differ diff --git a/res/drawable/internet_grayed_holo_light.png b/res/drawable/internet_grayed_holo_light.png deleted file mode 100644 index ae31fb4ae..000000000 Binary files a/res/drawable/internet_grayed_holo_light.png and /dev/null differ diff --git a/res/drawable/system_grayed_holo_dark.png b/res/drawable/system_grayed_holo_dark.png deleted file mode 100644 index ac738add0..000000000 Binary files a/res/drawable/system_grayed_holo_dark.png and /dev/null differ diff --git a/res/drawable/system_grayed_holo_light.png b/res/drawable/system_grayed_holo_light.png deleted file mode 100644 index ac738add0..000000000 Binary files a/res/drawable/system_grayed_holo_light.png and /dev/null differ diff --git a/res/drawable/system_holo_dark.png b/res/drawable/system_holo_dark.png index 6fc64c49f..f8ba4b893 100644 Binary files a/res/drawable/system_holo_dark.png and b/res/drawable/system_holo_dark.png differ diff --git a/res/drawable/system_holo_light.png b/res/drawable/system_holo_light.png index 9787ee4e3..fd6316caf 100644 Binary files a/res/drawable/system_holo_light.png and b/res/drawable/system_holo_light.png differ diff --git a/res/drawable/used_grayed_holo_dark.png b/res/drawable/used_grayed_holo_dark.png deleted file mode 100644 index b10b917a3..000000000 Binary files a/res/drawable/used_grayed_holo_dark.png and /dev/null differ diff --git a/res/drawable/used_grayed_holo_light.png b/res/drawable/used_grayed_holo_light.png deleted file mode 100644 index b10b917a3..000000000 Binary files a/res/drawable/used_grayed_holo_light.png and /dev/null differ diff --git a/res/drawable/user_holo_dark.png b/res/drawable/user_holo_dark.png new file mode 100644 index 000000000..4671fd446 Binary files /dev/null and b/res/drawable/user_holo_dark.png differ diff --git a/res/drawable/user_holo_light.png b/res/drawable/user_holo_light.png new file mode 100644 index 000000000..0192d1f84 Binary files /dev/null and b/res/drawable/user_holo_light.png differ diff --git a/res/drawable/user_system_holo_dark.png b/res/drawable/user_system_holo_dark.png new file mode 100644 index 000000000..2f98ae1da Binary files /dev/null and b/res/drawable/user_system_holo_dark.png differ diff --git a/res/drawable/user_system_holo_light.png b/res/drawable/user_system_holo_light.png new file mode 100644 index 000000000..a5d60b16a Binary files /dev/null and b/res/drawable/user_system_holo_light.png differ diff --git a/res/layout/helpmain.xml b/res/layout/helpmain.xml index 5fc478464..1b8f9317f 100644 --- a/res/layout/helpmain.xml +++ b/res/layout/helpmain.xml @@ -13,18 +13,99 @@ android:id="@+id/tvEditMsg" android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingLeft="@dimen/activity_vertical_margin" - android:paddingRight="@dimen/activity_vertical_margin" - android:paddingTop="@dimen/activity_horizontal_margin" + android:paddingLeft="@dimen/activity_horizontal_margin" + android:paddingRight="@dimen/activity_horizontal_margin" + android:paddingTop="@dimen/activity_vertical_margin" android:text="@string/msg_edit" android:textAppearance="?android:attr/textAppearanceSmall" /> + + + + + + + + + + + + + + + + + + + + + + + + + + - + android:clickable="true" + android:focusable="true" + android:paddingLeft="6dip" > + + + + + \ No newline at end of file diff --git a/res/layout/mainlist.xml b/res/layout/mainlist.xml index ab19aac30..5362b331a 100644 --- a/res/layout/mainlist.xml +++ b/res/layout/mainlist.xml @@ -52,7 +52,10 @@ android:layout_width="32dip" android:layout_height="32dip" android:layout_gravity="center_vertical" + android:background="@drawable/bg_button" + android:clickable="true" android:contentDescription="@string/help_application" + android:focusable="true" android:src="?attr/icon_info" /> @@ -67,7 +70,10 @@ android:layout_width="32dp" android:layout_height="32dp" android:layout_centerVertical="true" + android:background="@drawable/bg_button" + android:clickable="true" android:contentDescription="@string/title_category" + android:focusable="true" android:src="?attr/icon_expander_maximized" /> + android:layout_marginLeft="4dp" + android:layout_marginRight="4dp" + android:orientation="vertical" > + android:orientation="horizontal" > + + + + + + + + + + - + android:layout_marginLeft="4dp" + android:text="@string/settings_fpermission" + android:textAppearance="?android:attr/textAppearanceSmall" /> + + + - - - + - + - + android:contentDescription="@string/help_application" + android:src="?attr/icon_user_system" /> + - + + + android:layout_weight="1" + android:background="@drawable/bg_button" + android:clickable="true" + android:contentDescription="@string/filter_app_both" + android:focusable="true" + android:src="?attr/icon_user_system" /> + + + + diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml index e659052af..2f0d733a9 100644 --- a/res/values-ar/strings.xml +++ b/res/values-ar/strings.xml @@ -79,11 +79,14 @@ المُشغل IMSI تصفية بواسطة الأُذونات - فلترة برامج النظام + Filter by application type سِجِل تصحيح الأخطاء (يتطلب إعادة التشغيل) التصفية حسب استخدام البيانات التصفية حسب الاتصال بالإنترنت التصفية حسب التقييد + System application + User application + All applications التطبيق لديه صلاحية الوصول للإنترنت لديه صلاحية أندرويد diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml index e9b6d464a..589ea1646 100644 --- a/res/values-bg/strings.xml +++ b/res/values-bg/strings.xml @@ -79,11 +79,14 @@ Operator Абонатно ID Филтриране по разрешения - Филтриране на системни приложения + Filter by application type Debug log (requires restart) Filter on data usage Filter on internet access Filter on restricted + System application + User application + All applications Приложение има разрешение за интернет има разрешение в Android @@ -91,4 +94,4 @@ е деактивирано е опасно - \ No newline at end of file + diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index b16d47f84..bc4ea8241 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -77,11 +77,14 @@ Operador ID de subscriptor Filta per permís - Filtra aplicacions de sistema + Filter by application type Debug log (requires restart) Filter on data usage Filter on internet access Filter on restricted + System application + User application + All applications Aplicació té permís d\'Internet té permisos d\'Android @@ -89,4 +92,4 @@ està desactivat és perillós - \ No newline at end of file + diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml index 0a374ecef..efcf2ca1c 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -80,11 +80,14 @@ nicméně je nemožné zaručit bezchybnou funkčnost na všech zařízeních a Operátor IMSI Filtrovat dle oprávnění - Nezobrazovat systémové aplikace + Filter by application type Debug log (requires restart) Filter on data usage Filter on internet access Filter on restricted + System application + User application + All applications Aplikace má oprávnění k Internetu má Android oprávnění @@ -92,4 +95,4 @@ nicméně je nemožné zaručit bezchybnou funkčnost na všech zařízeních a je zakázaná je nebezpečná - \ No newline at end of file + diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml index c2168e727..fdc9c0a61 100644 --- a/res/values-da/strings.xml +++ b/res/values-da/strings.xml @@ -79,11 +79,14 @@ however it is impossible to guarantee it will work flawless on each and every de Operator Abonnent ID Filtrer efter Restriktioner - Filtrer System Programmer + Filter by application type Debug log (requires restart) Filter on data usage Filter on internet access Filter on restricted + System application + User application + All applications Program har internet tilladelse har Android tilladelse @@ -91,4 +94,4 @@ however it is impossible to guarantee it will work flawless on each and every de is disabled is dangerous - \ No newline at end of file + diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index 657bb2b98..7d55d53b3 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -79,11 +79,14 @@ Mobilfunkanbieter Subscriber-ID Nach Android-Berechtigungen filtern - System-Apps ausblenden + Filter by application type Debug Log (erfordert Neustart) Nach Datennutzung filtern Nach Internetzugang filtern Nach Beschränkungen filtern + System application + User application + All applications App hat Internet-Berechtigung hat Android-Berechtigung diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml index b66e54e6a..80815c3f9 100644 --- a/res/values-el/strings.xml +++ b/res/values-el/strings.xml @@ -79,11 +79,14 @@ Operator Αναγνωριστικό συνδρομητή Φιλτράρισμα ανά άδεια - Φιλτράρισμα εφαρμογών συστήματος + Filter by application type Debug log (requires restart) Filter on data usage Filter on internet access Filter on restricted + System application + User application + All applications Εφαρμογή έχει άδεια internet έχει άδεια Android @@ -91,4 +94,4 @@ είναι απενεργοποιημένη είναι επικίνδυνη - \ No newline at end of file + diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index fef72e492..1b9091f97 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -79,11 +79,14 @@ however it is impossible to guarantee it will work flawless on each and every de Operator Subscriber ID Ocultar permisos no utilizados - Ocultar aplicaciones del sistema + Filter by application type Debug log (requires restart) Filter on data usage Filter on internet access Filter on restricted + System application + User application + All applications Aplicación Tiene permisos para Internet Tiene permisos por Android @@ -91,4 +94,4 @@ however it is impossible to guarantee it will work flawless on each and every de is disabled Es peligroso - \ No newline at end of file + diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index f94d1aca9..687f2e4a3 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -79,11 +79,14 @@ il est impossible de garantir un fonctionnement parfait sur chaque appareil et p Opérateur ID Abonné Filtrer par permissions - Masquer les applis système - Debug log (requires restart) + Filtrer par type d\'application + Debug log (redémarrage nécessaire) Filtrer utilisation des données Filtrer ayant accès à internet Filtrer restreintes + Application système + Application utilisateur + Toutes les applications Application a les permissions Internet a les permissions Android diff --git a/res/values-he/strings.xml b/res/values-he/strings.xml index d255c470e..20e8f861f 100644 --- a/res/values-he/strings.xml +++ b/res/values-he/strings.xml @@ -79,11 +79,14 @@ however it is impossible to guarantee it will work flawless on each and every de Operator מנוי ID סינון לפי הרשאות - סנן יישומי מערכת + Filter by application type Debug log (requires restart) Filter on data usage Filter on internet access Filter on restricted + System application + User application + All applications יישום כולל הרשאות גישה לאינטרנט כולל הרשאות גישה לאנדרואיד @@ -91,4 +94,4 @@ however it is impossible to guarantee it will work flawless on each and every de is disabled מסוכן - \ No newline at end of file + diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml index d6fc24ab4..0745b6770 100644 --- a/res/values-hi/strings.xml +++ b/res/values-hi/strings.xml @@ -79,11 +79,14 @@ ऑपरेटर ग्राहक क्रमांक अनुमति के द्वारा फिल्टर करे - सिस्टम application फिल्टर करे + Filter by application type Debug log (पुनरारंभ जरूरी) डेटा उपयोग पर फिल्टर करे इन्टरनेट उपयोग पर फिल्टर करे प्रतिबंध पर फिल्टर करे + System application + User application + All applications Application इंटरनेट की अनुमति है Android की अनुमति है diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml index 71883f6ba..9a4eb5a2e 100644 --- a/res/values-hu/strings.xml +++ b/res/values-hu/strings.xml @@ -79,11 +79,14 @@ de lehetetlen garantálni hogy tökéletesen működjön az összes eszközön Operator Előfizető azonosító Szűrés engedély szerint - Rendszer alkalmazások szűrése + Filter by application type Debug log (requires restart) Filter on data usage Filter on internet access Filter on restricted + System application + User application + All applications Alkalmazás Internet engedély Android engedély @@ -91,4 +94,4 @@ de lehetetlen garantálni hogy tökéletesen működjön az összes eszközön Ki van kapcsolva Veszélyes - \ No newline at end of file + diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index 7cddb3598..ef5002da6 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -79,11 +79,14 @@ Operatore Subscriber ID Filtra per permessi - Filtra applicazioni di sistema + Filter by application type Debug log (requires restart) Filter on data usage Filter on internet access Filter on restricted + System application + User application + All applications Applicazione ha permesso internet ha permesso Android diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml index d255c470e..20e8f861f 100644 --- a/res/values-iw/strings.xml +++ b/res/values-iw/strings.xml @@ -79,11 +79,14 @@ however it is impossible to guarantee it will work flawless on each and every de Operator מנוי ID סינון לפי הרשאות - סנן יישומי מערכת + Filter by application type Debug log (requires restart) Filter on data usage Filter on internet access Filter on restricted + System application + User application + All applications יישום כולל הרשאות גישה לאינטרנט כולל הרשאות גישה לאנדרואיד @@ -91,4 +94,4 @@ however it is impossible to guarantee it will work flawless on each and every de is disabled מסוכן - \ No newline at end of file + diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index 95b99fd3b..50b08c8e9 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -79,11 +79,14 @@ キャリア 契約者固有ID 権限でフィルタ - システムアプリをフィルタ + Filter by application type デバッグログ(要再起動) データ使用率でフィルタ ネット接続でフィルタ 制限済みでフィルタ + System application + User application + All applications アプリ はインターネット権限を持っています はAndroid権限を持っています diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml index f15da15a3..f1a28ee59 100644 --- a/res/values-lt/strings.xml +++ b/res/values-lt/strings.xml @@ -79,11 +79,14 @@ Tačiau neįmanoma garantuoti, kad dirbs nepriekaištingai su kiekvienu prietais Operatorius Abonento ID Tik naudojami leidimai - Nerodyti sistemos programų + Filter by application type Debug log (requires restart) Filter on data usage Filter on internet access Filter on restricted + System application + User application + All applications Programa Interneto leidimai Android leidimai @@ -91,4 +94,4 @@ Tačiau neįmanoma garantuoti, kad dirbs nepriekaištingai su kiekvienu prietais Išjungtų programų leidimai Pavojingi leidimai - \ No newline at end of file + diff --git a/res/values-nb-rNO/strings.xml b/res/values-nb-rNO/strings.xml index e5c438825..0b92246d8 100644 --- a/res/values-nb-rNO/strings.xml +++ b/res/values-nb-rNO/strings.xml @@ -77,11 +77,14 @@ Operator Abonnent ID Velg etter tillatelse - Filtrer system applikasjoner + Filter by application type Debug log (requires restart) Filter on data usage Filter on internet access Filter on restricted + System application + User application + All applications Applikasjon har internet tillatelse har Android tillatelse diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index 61e074f12..1b092b14e 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -79,11 +79,14 @@ maar het is onmogelijk om te garanderen dat het op elk apparaat en voor elke app Operator Abonnee ID Filter op rechten - Filter systeem applicaties + Filter by application type Debug log (herstart vereist) Filter op gegevensgebruik Filter op internet toegang Filter op beperkingen + System application + User application + All applications Applicatie heeft internet rechten heeft Android rechten diff --git a/res/values-nn-rNO/strings.xml b/res/values-nn-rNO/strings.xml index e5c438825..0b92246d8 100644 --- a/res/values-nn-rNO/strings.xml +++ b/res/values-nn-rNO/strings.xml @@ -77,11 +77,14 @@ Operator Abonnent ID Velg etter tillatelse - Filtrer system applikasjoner + Filter by application type Debug log (requires restart) Filter on data usage Filter on internet access Filter on restricted + System application + User application + All applications Applikasjon har internet tillatelse har Android tillatelse diff --git a/res/values-no-rNO/strings.xml b/res/values-no-rNO/strings.xml index e5c438825..0b92246d8 100644 --- a/res/values-no-rNO/strings.xml +++ b/res/values-no-rNO/strings.xml @@ -77,11 +77,14 @@ Operator Abonnent ID Velg etter tillatelse - Filtrer system applikasjoner + Filter by application type Debug log (requires restart) Filter on data usage Filter on internet access Filter on restricted + System application + User application + All applications Applikasjon har internet tillatelse har Android tillatelse diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index 9a12b2c01..030a3b18a 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -80,11 +80,14 @@ Operator Subscriber ID Filtruj według uprawnień - Filtruj aplikacje systemowe + Filter by application type Debug log (requires restart) Filter on data usage Filter on internet access Filter on restricted + System application + User application + All applications Aplikacja wymaga dostępu do internetu wymaga dostępu do tych uprawnień Androida @@ -92,4 +95,4 @@ jest wyłączona jest niebezpieczne - \ No newline at end of file + diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml index bae7cc386..8183542c3 100644 --- a/res/values-pt/strings.xml +++ b/res/values-pt/strings.xml @@ -79,11 +79,14 @@ porém é impossível garantir que irá funcionar sem problemas em todos os disp Operador Identidade do subscritor Filtrar por permissão - Filtrar aplicações do sistema + Filter by application type Relatório de depuração (requer reinicialização) Filtrar o uso de dados Filtrar o acesso à Internet Filtrar restrito + System application + User application + All applications Aplicação Tem permissão da internet Tem permissão do Android @@ -91,4 +94,4 @@ porém é impossível garantir que irá funcionar sem problemas em todos os disp Está desativado É perigoso - \ No newline at end of file + diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml index 176043af2..0a9bf054b 100644 --- a/res/values-ro/strings.xml +++ b/res/values-ro/strings.xml @@ -79,11 +79,14 @@ however it is impossible to guarantee it will work flawless on each and every de Operator Subscriber ID Filter by permission - Filter system applications + Filter by application type Debug log (requires restart) Filter on data usage Filter on internet access Filter on restricted + System application + User application + All applications Aplicatie are permisiune Internet are permisiune Android @@ -91,4 +94,4 @@ however it is impossible to guarantee it will work flawless on each and every de is disabled is dangerous - \ No newline at end of file + diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index 686ecaffb..8ace20802 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -79,11 +79,14 @@ Operator Subscriber ID Фильтровать по разрешениям - Скрывать системные приложения + Filter by application type Debug log (requires restart) Filter on data usage Filter on internet access Filter on restricted + System application + User application + All applications Приложение запрашивает доступ в интернет имеет разрешение Android @@ -91,4 +94,4 @@ отключено изменение разрешений опасно - \ No newline at end of file + diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml index 3cebd2bda..694cfd06f 100644 --- a/res/values-sk/strings.xml +++ b/res/values-sk/strings.xml @@ -80,11 +80,14 @@ avšak nie je nemožné zaručiť, že bude fungovať bezchybne na každom zaria Operátor IMSI Filtrovať podľa povolenia - Filtrovať systémové aplikácie + Filter by application type Záznam na ladenie (vyžaduje reštart) Filter na využitie dát Filter na prístup k internetu Filter na obmedzené + System application + User application + All applications Aplikácia má internetové povolenie má Android povolenie diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml index fae5308b0..3a76c331b 100644 --- a/res/values-sl/strings.xml +++ b/res/values-sl/strings.xml @@ -81,11 +81,14 @@ Operater ID naročnika Filtriraj po pravicah - Filtriraj sistemske programe + Filter by application type Debug log (requires restart) Filtriraj po uporabi podatkov Filtriraj po uporabi interneta Filtriraj po omejitvah + System application + User application + All applications Program uporablja internetne pravice uporablja Android pravice diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml index d83a37148..72d773737 100644 --- a/res/values-sr/strings.xml +++ b/res/values-sr/strings.xml @@ -79,11 +79,14 @@ however it is impossible to guarantee it will work flawless on each and every de Operator Претплатнички ИД Филтрирај по дозволи - Филтрирај системске апликације + Filter by application type Debug log (requires restart) Filter on data usage Filter on internet access Filter on restricted + System application + User application + All applications Апликација има дозволу за Интернет има дозволу за Андроид @@ -91,4 +94,4 @@ however it is impossible to guarantee it will work flawless on each and every de is disabled је опасан - \ No newline at end of file + diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index 16fab3669..16a02b520 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -79,11 +79,14 @@ Det är emellertid omöjligt att garantera att appen fungerar på alla enheter o Operatör Abonnent-ID Filtrera efter behörighet - Filtrera systemappar + Filter by application type Debug log (requires restart) Filter on data usage Filter on internet access Filter on restricted + System application + User application + All applications Applikation har internetbehörighet har Android-behörighet @@ -91,4 +94,4 @@ Det är emellertid omöjligt att garantera att appen fungerar på alla enheter o is inaktiverad är farlig - \ No newline at end of file + diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml index 8e8e2709a..30d4498c1 100644 --- a/res/values-tr/strings.xml +++ b/res/values-tr/strings.xml @@ -78,11 +78,14 @@ Operator Sim Numarası (IMSI) İzne göre filtre et - Sistem uygulamalarını gösterme + Filter by application type Debug log (requires restart) Filter on data usage Filter on internet access Filter on restricted + System application + User application + All applications Uygulama internet izni var Android izni var @@ -90,4 +93,4 @@ uygulama devredışı tehlikeli izin - \ No newline at end of file + diff --git a/res/values-v14/styles.xml b/res/values-v14/styles.xml index 3621f2cf8..08684d2a4 100644 --- a/res/values-v14/styles.xml +++ b/res/values-v14/styles.xml @@ -2,15 +2,13 @@ diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml index 8565035c0..e8eec91e6 100644 --- a/res/values-vi/strings.xml +++ b/res/values-vi/strings.xml @@ -78,11 +78,14 @@ Nhà mạng ID người đăng kí Lọc theo quyền - Lọc ứng dụng hệ thống + Filter by application type Lưu thông tin gỡ rối (yêu cầu khởi động lại) Lọc ứng dụng truy cập dữ liệu Lọc ứng dụng truy cập internet Lọc ứng dụng đã hạn chế các quyền + System application + User application + All applications Ứng dụng có quyền truy cập mạng có các quyền của hệ điều hành @@ -90,4 +93,4 @@ đã được tắt nguy hiểm - \ No newline at end of file + diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index 18eda3614..0cfd07085 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -79,11 +79,14 @@ 运营商 IMSI 无关权限过滤 - 系统应用过滤 + Filter by application type 调试日志 (需要重启) 未用数据过滤 无联网权过滤 未勾限制过滤 + System application + User application + All applications 应用 表示联网的权限 表示授予的权限 diff --git a/res/values/attrs.xml b/res/values/attrs.xml index 00cca2b2c..d2738c330 100644 --- a/res/values/attrs.xml +++ b/res/values/attrs.xml @@ -2,15 +2,13 @@ - - - - + + @@ -20,6 +18,7 @@ + \ No newline at end of file diff --git a/res/values/strings.xml b/res/values/strings.xml index ea38d6021..8a621cf80 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -90,11 +90,14 @@ however it is impossible to guarantee it will work flawless on each and every de ICC ID Subscriber ID Filter by permission - Filter system applications + Filter by application type Debug log (requires restart) Filter on data usage Filter on internet access Filter on restricted + System application + User application + All applications Application has internet permission has Android permission @@ -103,4 +106,4 @@ however it is impossible to guarantee it will work flawless on each and every de is dangerous 10620ae961d78854f6c9cd872c4388232849c799 - \ No newline at end of file + diff --git a/src/biz/bokhorst/xprivacy/ActivityMain.java b/src/biz/bokhorst/xprivacy/ActivityMain.java index 99fc8bb1e..6af8b3d22 100644 --- a/src/biz/bokhorst/xprivacy/ActivityMain.java +++ b/src/biz/bokhorst/xprivacy/ActivityMain.java @@ -59,7 +59,6 @@ import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.CheckBox; -import android.widget.CheckedTextView; import android.widget.CompoundButton; import android.widget.EditText; import android.widget.Filter; @@ -67,6 +66,7 @@ import android.widget.LinearLayout; import android.widget.ListView; import android.widget.ProgressBar; +import android.widget.RelativeLayout; import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast; @@ -75,7 +75,12 @@ public class ActivityMain extends Activity implements OnItemSelectedListener, Co private int mThemeId; private Spinner spRestriction = null; private AppListAdapter mAppAdapter = null; + private String mUserSystemOrBoth = APP_FILTER_BOTH; private boolean mFiltersHidden = false; + + private static final String APP_FILTER_BOTH = "B"; + private static final String APP_FILTER_USER = "U"; + private static final String APP_FILTER_SYS = "S"; private static final int ACTIVITY_LICENSE = 0; private static final int ACTIVITY_EXPORT = 1; @@ -210,12 +215,64 @@ public void onClick(View view) { cbFPermission.setChecked(fPermission); cbFPermission.setOnCheckedChangeListener(this); - // Setup system filter - boolean fSystem = PrivacyManager.getSettingBool(null, ActivityMain.this, PrivacyManager.cSettingFSystem, true, - false); - CheckBox cbFSystem = (CheckBox) findViewById(R.id.cbFSystem); - cbFSystem.setChecked(fSystem); - cbFSystem.setOnCheckedChangeListener(this); + // Setup user/system/both filter + mUserSystemOrBoth = PrivacyManager.getSetting(null, ActivityMain.this, PrivacyManager.cSettingFSystem, + APP_FILTER_BOTH, false); + final ImageView imgUserSystemBoth = (ImageView) findViewById(R.id.imgAppFilter); + imgUserSystemBoth.setImageDrawable(getResources().getDrawable( + getThemed(mUserSystemOrBoth.equals(APP_FILTER_SYS) ? R.attr.icon_system : (mUserSystemOrBoth + .equals(APP_FILTER_USER) ? R.attr.icon_user : R.attr.icon_user_system)))); + final LinearLayout llAppFilter = (LinearLayout) findViewById(R.id.llAppFilter); + final LinearLayout llAppFilter2 = (LinearLayout) findViewById(R.id.llAppFilter2); + final CheckBox cbFSystem = (CheckBox) findViewById(R.id.cbFSystem); + cbFSystem.setChecked(!mUserSystemOrBoth.equals(APP_FILTER_BOTH)); + cbFSystem.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + llAppFilter.setVisibility(LinearLayout.GONE); + llAppFilter2.setVisibility(LinearLayout.VISIBLE); + } + }); + final ImageView imgAppAll = (ImageView) findViewById(R.id.imgAppAll); + imgAppAll.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + mUserSystemOrBoth = APP_FILTER_BOTH; + PrivacyManager.setSetting(null, ActivityMain.this, PrivacyManager.cSettingFSystem, mUserSystemOrBoth); + imgUserSystemBoth.setImageDrawable(getResources() + .getDrawable(getThemed(R.attr.icon_user_system))); + llAppFilter.setVisibility(LinearLayout.VISIBLE); + llAppFilter2.setVisibility(LinearLayout.GONE); + cbFSystem.setChecked(false); + applyFilter(); + } + }); + final ImageView imgAppSystem = (ImageView) findViewById(R.id.imgAppSys); + imgAppSystem.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + mUserSystemOrBoth = APP_FILTER_SYS; + PrivacyManager.setSetting(null, ActivityMain.this, PrivacyManager.cSettingFSystem, mUserSystemOrBoth); + imgUserSystemBoth.setImageDrawable(getResources().getDrawable(getThemed(R.attr.icon_system))); + llAppFilter.setVisibility(LinearLayout.VISIBLE); + llAppFilter2.setVisibility(LinearLayout.GONE); + cbFSystem.setChecked(true); + applyFilter(); + } + }); + final ImageView imgAppUser = (ImageView) findViewById(R.id.imgAppUser); + imgAppUser.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + mUserSystemOrBoth = APP_FILTER_USER; + PrivacyManager.setSetting(null, ActivityMain.this, PrivacyManager.cSettingFSystem, mUserSystemOrBoth); + imgUserSystemBoth.setImageDrawable(getResources().getDrawable(getThemed(R.attr.icon_user))); + llAppFilter.setVisibility(LinearLayout.VISIBLE); + llAppFilter2.setVisibility(LinearLayout.GONE); + cbFSystem.setChecked(true); + applyFilter(); + } + }); // Hide filters if (savedInstanceState != null && savedInstanceState.containsKey("Filters")) @@ -438,17 +495,12 @@ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { CheckBox cbUsed = (CheckBox) findViewById(R.id.cbFUsed); CheckBox cbInternet = (CheckBox) findViewById(R.id.cbFInternet); CheckBox cbPermission = (CheckBox) findViewById(R.id.cbFPermission); - CheckBox cbSystem = (CheckBox) findViewById(R.id.cbFSystem); if (buttonView == cbFilter || buttonView == cbUsed || buttonView == cbInternet) applyFilter(); else if (buttonView == cbPermission) { PrivacyManager.setSetting(null, ActivityMain.this, PrivacyManager.cSettingFPermission, Boolean.toString(isChecked)); applyFilter(); - } else if (buttonView == cbSystem) { - PrivacyManager.setSetting(null, ActivityMain.this, PrivacyManager.cSettingFSystem, - Boolean.toString(isChecked)); - applyFilter(); } } @@ -458,11 +510,10 @@ private void applyFilter() { CheckBox cbFilter = (CheckBox) findViewById(R.id.cbFilter); CheckBox cbUsed = (CheckBox) findViewById(R.id.cbFUsed); CheckBox cbInternet = (CheckBox) findViewById(R.id.cbFInternet); - CheckBox cbSystem = (CheckBox) findViewById(R.id.cbFSystem); ProgressBar pbFilter = (ProgressBar) findViewById(R.id.pbFilter); TextView tvStats = (TextView) findViewById(R.id.tvStats); - String filter = String.format("%b\n%b\n%s\n%b\n%b", cbUsed.isChecked(), cbInternet.isChecked(), etFilter - .getText().toString(), cbFilter.isChecked(), cbSystem.isChecked()); + String filter = String.format("%b\n%b\n%s\n%b\n%s", cbUsed.isChecked(), cbInternet.isChecked(), etFilter + .getText().toString(), cbFilter.isChecked(), mUserSystemOrBoth); pbFilter.setVisibility(ProgressBar.VISIBLE); tvStats.setVisibility(TextView.GONE); mAppAdapter.getFilter().filter(filter); @@ -834,7 +885,6 @@ private void toggleFiltersVisibility() { CheckBox cbFUsed = (CheckBox) findViewById(R.id.cbFUsed); CheckBox cbFInternet = (CheckBox) findViewById(R.id.cbFInternet); CheckBox cbFPermission = (CheckBox) findViewById(R.id.cbFPermission); - CheckBox cbFSystem = (CheckBox) findViewById(R.id.cbFSystem); if (mFiltersHidden) { // Change visibility @@ -856,7 +906,7 @@ private void toggleFiltersVisibility() { numberOfFilters++; if (cbFPermission.isChecked()) numberOfFilters++; - if (cbFSystem.isChecked()) + if (!mUserSystemOrBoth.equals(APP_FILTER_BOTH)) numberOfFilters++; // Change text @@ -1137,7 +1187,7 @@ protected FilterResults performFiltering(CharSequence constraint) { boolean fInternet = Boolean.parseBoolean(components[1]); String fName = components[2]; boolean fRestricted = Boolean.parseBoolean(components[3]); - boolean fSystem = Boolean.parseBoolean(components[4]); + String fUserSystemBoth = components[4]; // Match applications List lstApp = new ArrayList(); @@ -1172,14 +1222,17 @@ protected FilterResults performFiltering(CharSequence constraint) { someRestricted = PrivacyManager.getRestricted(null, getApplicationContext(), xAppInfo.getUid(), mRestrictionName, null, false, false); - // Get if system - boolean system = false; - if (fSystem) - system = !xAppInfo.getIsSystem(); + // Get if system or not + boolean userSystemBoth = false; + if (fUserSystemBoth.equals(APP_FILTER_SYS)) + userSystemBoth = xAppInfo.getIsSystem(); + else if (fUserSystemBoth.equals(APP_FILTER_USER)) + userSystemBoth = !xAppInfo.getIsSystem(); // Match application if ((fUsed ? used : true) && (fInternet ? internet : true) && (fName.equals("") ? true : contains) - && (fRestricted ? someRestricted : true) && (fSystem ? system : true)) + && (fRestricted ? someRestricted : true) + && (fUserSystemBoth.equals(APP_FILTER_BOTH) ? true : userSystemBoth)) lstApp.add(xAppInfo); } @@ -1217,7 +1270,9 @@ private class ViewHolder { public ImageView imgGranted; public ImageView imgInternet; public ImageView imgFrozen; - public CheckedTextView ctvApp; + public TextView tvName; + public ImageView imgCBName; + public RelativeLayout rlName; public ViewHolder(View theRow, int thePosition) { row = theRow; @@ -1227,7 +1282,9 @@ public ViewHolder(View theRow, int thePosition) { imgGranted = (ImageView) row.findViewById(R.id.imgGranted); imgInternet = (ImageView) row.findViewById(R.id.imgInternet); imgFrozen = (ImageView) row.findViewById(R.id.imgFrozen); - ctvApp = (CheckedTextView) row.findViewById(R.id.ctvName); + tvName = (TextView) row.findViewById(R.id.tvName); + imgCBName = (ImageView) row.findViewById(R.id.imgCBName); + rlName = (RelativeLayout) row.findViewById(R.id.rlName); } } @@ -1288,7 +1345,7 @@ protected Object doInBackground(Object... params) { protected void onPostExecute(Object result) { if (holder.position == position && xAppInfo != null) { // Check if used - holder.ctvApp.setTypeface(null, used ? Typeface.BOLD_ITALIC : Typeface.NORMAL); + holder.tvName.setTypeface(null, used ? Typeface.BOLD_ITALIC : Typeface.NORMAL); holder.imgUsed.setVisibility(used ? View.VISIBLE : View.INVISIBLE); // Check if permission @@ -1301,13 +1358,18 @@ protected void onPostExecute(Object result) { holder.imgFrozen.setVisibility(xAppInfo.isFrozen() ? View.VISIBLE : View.INVISIBLE); // Display restriction - holder.ctvApp.setChecked(allRestricted); - holder.ctvApp.setEnabled(mRestrictionName == null && someRestricted ? allRestricted : true); + holder.imgCBName.setEnabled(mRestrictionName == null && someRestricted ? allRestricted : true); + holder.imgCBName.setImageResource(allRestricted ? R.drawable.checkbox_check + : (someRestricted ? (mRestrictionName == null ? R.drawable.checkbox_half + : R.drawable.checkbox_check) : android.R.color.transparent)); // Listen for restriction changes - holder.ctvApp.setOnClickListener(new View.OnClickListener() { + holder.rlName.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { + if (!holder.imgCBName.isEnabled()) + return; + // Get all/some restricted boolean allRestricted = true; if (mRestrictionName == null) @@ -1325,7 +1387,8 @@ public void onClick(View view) { for (String restrictionName : listRestriction) PrivacyManager.setRestricted(null, view.getContext(), xAppInfo.getUid(), restrictionName, null, allRestricted); - holder.ctvApp.setChecked(allRestricted); + holder.imgCBName.setImageResource(allRestricted ? R.drawable.checkbox_check + : android.R.color.transparent); } }); } @@ -1369,15 +1432,14 @@ public void onClick(View view) { }); // Set data - holder.ctvApp.setText(xAppInfo.toString()); - holder.ctvApp.setTypeface(null, Typeface.NORMAL); + holder.tvName.setText(xAppInfo.toString()); + holder.tvName.setTypeface(null, Typeface.NORMAL); holder.imgUsed.setVisibility(View.INVISIBLE); holder.imgGranted.setVisibility(View.INVISIBLE); holder.imgInternet.setVisibility(View.INVISIBLE); holder.imgFrozen.setVisibility(View.INVISIBLE); - holder.ctvApp.setChecked(false); - holder.ctvApp.setEnabled(false); - holder.ctvApp.setClickable(false); + holder.imgCBName.setImageResource(android.R.color.transparent); + holder.imgCBName.setEnabled(false); // Async update new HolderTask(position, holder, xAppInfo).executeOnExecutor(mExecutor, (Object) null);