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);