diff --git a/res/drawable/application_filter_border.xml b/res/drawable/application_filter_border.xml
deleted file mode 100644
index d28a43728..000000000
--- a/res/drawable/application_filter_border.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/res/drawable/card_dark.xml b/res/drawable/card_dark.xml
new file mode 100644
index 000000000..1424b17c3
--- /dev/null
+++ b/res/drawable/card_dark.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
diff --git a/res/drawable/card_light.9.png b/res/drawable/card_light.9.png
new file mode 100644
index 000000000..1d350880a
Binary files /dev/null and b/res/drawable/card_light.9.png differ
diff --git a/res/drawable/check_holo_dark.png b/res/drawable/check_holo_dark.png
new file mode 100644
index 000000000..2e06dd01b
Binary files /dev/null and b/res/drawable/check_holo_dark.png differ
diff --git a/res/drawable/check_holo_light.png b/res/drawable/check_holo_light.png
new file mode 100644
index 000000000..bb19810bc
Binary files /dev/null and b/res/drawable/check_holo_light.png differ
diff --git a/res/drawable/divider_dark.9.png b/res/drawable/divider_dark.9.png
new file mode 100644
index 000000000..a6128ba33
Binary files /dev/null and b/res/drawable/divider_dark.9.png differ
diff --git a/res/drawable/divider_light.9.png b/res/drawable/divider_light.9.png
new file mode 100644
index 000000000..c76642a43
Binary files /dev/null and b/res/drawable/divider_light.9.png differ
diff --git a/res/layout/mainlist.xml b/res/layout/mainlist.xml
index 49fc120f3..183e4079b 100644
--- a/res/layout/mainlist.xml
+++ b/res/layout/mainlist.xml
@@ -2,25 +2,62 @@
-
+
+ android:background="?attr/drawable_card"
+ android:orientation="vertical"
+ android:paddingBottom="6dp"
+ android:paddingLeft="6dp"
+ android:paddingRight="6dp"
+ android:paddingTop="1dp" >
+
+
+
+
+
+
+
+
+
+
+
@@ -33,36 +70,26 @@
android:contentDescription="@string/title_category"
android:src="?attr/icon_expander_maximized" />
-
-
-
-
-
+ android:ems="10"
+ android:hint="@string/help_application"
+ android:inputType="textNoSuggestions"
+ android:textAppearance="?android:attr/textAppearanceSmall" />
-
-
+
+ android:layout_marginLeft="4dp" >
-
+
-
+
-
-
-
+
+
+
-
+ android:src="?attr/icon_system" />
-
-
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
-
+ android:layout_marginRight="@dimen/activity_vertical_margin" >
+
+
+
+
+
+
+
diff --git a/res/layout/restrictionlist.xml b/res/layout/restrictionlist.xml
index f8d9fd979..71ffbdb7d 100644
--- a/res/layout/restrictionlist.xml
+++ b/res/layout/restrictionlist.xml
@@ -1,7 +1,8 @@
IMSI
تصفية بواسطة الأُذونات
فلترة برامج النظام
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
التطبيق
لديه صلاحية الوصول للإنترنت
لديه صلاحية أندرويد
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index e135782fb..faef909c7 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -77,6 +77,9 @@
Абонатно ID
Филтриране по разрешения
Филтриране на системни приложения
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
Приложение
има разрешение за интернет
има разрешение в Android
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 591aa9dc7..a35cb78f8 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -75,6 +75,9 @@
ID de subscriptor
Filta per permís
Filtra aplicacions de sistema
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
Aplicació
té permís d\'Internet
té permisos d\'Android
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index d611a1bb4..20e99582a 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -78,6 +78,9 @@ nicméně je nemožné zaručit bezchybnou funkčnost na všech zařízeních a
IMSI
Filtrovat dle oprávnění
Nezobrazovat systémové aplikace
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
Aplikace
má oprávnění k Internetu
má Android oprávnění
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 5f0cd9955..8e0c5dd14 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -77,6 +77,9 @@ however it is impossible to guarantee it will work flawless on each and every de
Abonnent ID
Filtrer efter Restriktioner
Filtrer System Programmer
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
Program
har internet tilladelse
har Android tilladelse
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 980ad9384..86b0fe5ec 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -77,6 +77,9 @@
Subscriber-ID
Nach Android-Berechtigungen filtern
System-Apps ausblenden
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
App
hat Internet-Berechtigung
hat Android-Berechtigung
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index ca9df4263..c192becb5 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -77,6 +77,9 @@
Αναγνωριστικό συνδρομητή
Φιλτράρισμα ανά άδεια
Φιλτράρισμα εφαρμογών συστήματος
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
Εφαρμογή
έχει άδεια internet
έχει άδεια Android
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 3c0f93413..59711c404 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -77,6 +77,9 @@ however it is impossible to guarantee it will work flawless on each and every de
Subscriber ID
Ocultar permisos no utilizados
Ocultar aplicaciones del sistema
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
Aplicación
Tiene permisos para Internet
Tiene permisos por Android
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 5bb397bab..ff75af85a 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -76,7 +76,10 @@ il est impossible de garantir un fonctionnement parfait sur chaque appareil et p
Opérateur
ID Abonné
Filtrer par permissions
- Masquer les applications système
+ Masquer les applis système
+ Filtrer utilisation des données
+ Filtrer ayant accès à internet
+ Filtrer restreintes
Application
a les permissions Internet
a les permissions Android
diff --git a/res/values-he/strings.xml b/res/values-he/strings.xml
index c574a4fac..cf8eafb3f 100644
--- a/res/values-he/strings.xml
+++ b/res/values-he/strings.xml
@@ -77,6 +77,9 @@ however it is impossible to guarantee it will work flawless on each and every de
מנוי ID
סינון לפי הרשאות
סנן יישומי מערכת
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
יישום
כולל הרשאות גישה לאינטרנט
כולל הרשאות גישה לאנדרואיד
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index f83e4217d..d70420201 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -77,6 +77,9 @@ de lehetetlen garantálni hogy tökéletesen működjön az összes eszközön
Előfizető azonosító
Szűrés engedély szerint
Rendszer alkalmazások szűrése
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
Alkalmazás
Internet engedély
Android engedély
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index f597f2e9d..202a6ee63 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -79,6 +79,9 @@
Subscriber ID
Filtra per permessi
Filtra applicazioni di sistema
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
Applicazione
ha permesso internet
ha permesso Android
@@ -86,4 +89,4 @@
è disabilitato
è pericoloso
-
\ No newline at end of file
+
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index c574a4fac..cf8eafb3f 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -77,6 +77,9 @@ however it is impossible to guarantee it will work flawless on each and every de
מנוי ID
סינון לפי הרשאות
סנן יישומי מערכת
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
יישום
כולל הרשאות גישה לאינטרנט
כולל הרשאות גישה לאנדרואיד
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 0b37c54d4..1f36070e1 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -77,6 +77,9 @@
契約者固有ID
権限でフィルタ
システムアプリをフィルタ
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
アプリ
はインターネット権限を持っています
はAndroid権限を持っています
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 94a8587db..1f35509c9 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -77,6 +77,9 @@ Tačiau neįmanoma garantuoti, kad dirbs nepriekaištingai su kiekvienu prietais
Abonento ID
Tik naudojami leidimai
Nerodyti sistemos programų
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
Programa
Interneto leidimai
Android leidimai
diff --git a/res/values-nb-rNO/strings.xml b/res/values-nb-rNO/strings.xml
index 9a5d1c343..33230baca 100644
--- a/res/values-nb-rNO/strings.xml
+++ b/res/values-nb-rNO/strings.xml
@@ -77,6 +77,9 @@
Abonnent ID
Velg etter tillatelse
Filtrer system applikasjoner
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
Applikasjon
har internet tillatelse
har Android tillatelse
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 7ebb2f4c3..586d79d19 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -79,6 +79,9 @@ maar het is onmogelijk om te garanderen dat het op elk apparaat en voor elke app
Abonnee ID
Filter op rechten
Filter systeem applicaties
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
Applicatie
heeft internet rechten
heeft Android rechten
@@ -86,4 +89,4 @@ maar het is onmogelijk om te garanderen dat het op elk apparaat en voor elke app
is uitgezet
is gevaarlijk
-
\ No newline at end of file
+
diff --git a/res/values-nn-rNO/strings.xml b/res/values-nn-rNO/strings.xml
index 9a5d1c343..33230baca 100644
--- a/res/values-nn-rNO/strings.xml
+++ b/res/values-nn-rNO/strings.xml
@@ -77,6 +77,9 @@
Abonnent ID
Velg etter tillatelse
Filtrer system applikasjoner
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
Applikasjon
har internet tillatelse
har Android tillatelse
diff --git a/res/values-no-rNO/strings.xml b/res/values-no-rNO/strings.xml
index 9a5d1c343..33230baca 100644
--- a/res/values-no-rNO/strings.xml
+++ b/res/values-no-rNO/strings.xml
@@ -77,6 +77,9 @@
Abonnent ID
Velg etter tillatelse
Filtrer system applikasjoner
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
Applikasjon
har internet tillatelse
har Android tillatelse
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 613f71ca5..346cba20e 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -78,6 +78,9 @@
Subscriber ID
Filtruj według uprawnień
Filtruj aplikacje systemowe
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
Aplikacja
wymaga dostępu do internetu
wymaga dostępu do tych uprawnień Androida
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 35ec2bc94..11f87c1c7 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -79,6 +79,9 @@ porém é impossível garantir que irá funcionar sem problemas em todos os disp
Identidade do subscritor
Filtrar por permissão
Filtrar aplicações do sistema
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
Aplicação
Tem permissão da internet
Tem permissão do Android
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 709dcdc5d..ac2353276 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -77,6 +77,9 @@ however it is impossible to guarantee it will work flawless on each and every de
Subscriber ID
Filter by permission
Filter system applications
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
Aplicatie
are permisiune Internet
are permisiune Android
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index b08e2c873..e9e8b785d 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -77,6 +77,9 @@
Subscriber ID
Фильтровать по разрешениям
Скрывать системные приложения
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
Приложение
запрашивает доступ в интернет
имеет разрешение Android
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index e047ee17e..dd51baa9f 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -78,6 +78,9 @@ avšak nie je nemožné zaručiť, že bude fungovať bezchybne na každom zaria
IMSI
Filtrovať podľa povolenia
Filtrovať systémové aplikácie
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
Aplikácia
má internetové povolenie
má Android povolenie
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 7a07fbc46..f7284f62f 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -79,6 +79,9 @@
ID naročnika
Filtriraj po pravicah
Filtriraj sistemske programe
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
Program
uporablja internetne pravice
uporablja Android pravice
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 513d737e1..dc9a297d3 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -77,6 +77,9 @@ however it is impossible to guarantee it will work flawless on each and every de
Претплатнички ИД
Филтрирај по дозволи
Филтрирај системске апликације
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
Апликација
има дозволу за Интернет
има дозволу за Андроид
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index b112a0b2b..8957c36f0 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -77,6 +77,9 @@ Det är emellertid omöjligt att garantera att appen fungerar på alla enheter o
Abonnent-ID
Filtrera efter behörighet
Filtrera systemappar
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
Applikation
har internetbehörighet
har Android-behörighet
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 9bf4980a3..d1f348f32 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -76,6 +76,9 @@
Sim Numarası (IMSI)
İzne göre filtre et
Sistem uygulamalarını gösterme
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
Uygulama
internet izni var
Android izni var
diff --git a/res/values-v14/styles.xml b/res/values-v14/styles.xml
index 5dfa1d086..3621f2cf8 100644
--- a/res/values-v14/styles.xml
+++ b/res/values-v14/styles.xml
@@ -14,9 +14,13 @@
- @drawable/expander_ic_minimized_holo_dark
- @drawable/expander_ic_maximized_holo_dark
- @drawable/ic_launcher_holo_dark
+ - @drawable/check_holo_dark
- @drawable/cross_holo_dark
- @drawable/cross_grayed_out_holo_dark
- @drawable/frozen_holo_dark
+ - @android:color/black
+ - @drawable/card_dark
+ - @drawable/divider_dark
- @color/color_dangerous_dark
@@ -34,9 +38,13 @@
- @drawable/expander_ic_minimized_holo_light
- @drawable/expander_ic_maximized_holo_light
- @drawable/ic_launcher_holo_light
+ - @drawable/check_holo_light
- @drawable/cross_holo_light
- @drawable/cross_grayed_out_holo_light
- @drawable/frozen_holo_light
+ - @color/home_background_ligth
+ - @drawable/card_light
+ - @drawable/divider_light
- @color/color_dangerous_light
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index ca176851c..763eecad6 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -76,6 +76,9 @@
ID người đăng kí
Lọc theo quyền
Lọc theo ứng dụng hệ thống
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
Ứng dụng
có quyền truy cập mạng
có các quyền của hệ điều hành
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 75df15196..8f35118d9 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -77,6 +77,9 @@
IMSI
隐藏无关权限
隐藏系统应用
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
应用
表示联网的权限
表示授予的权限
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index 07cc7a42f..00cca2b2c 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -1,6 +1,6 @@
-
+
@@ -17,6 +17,9 @@
+
+
+
\ No newline at end of file
diff --git a/res/values/colors.xml b/res/values/colors.xml
index e367d8b8e..e9149ee71 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -6,5 +6,6 @@
#70707070
#30404040
#30D0D0D0
+ #ffe5e5e5
\ No newline at end of file
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 8d213f7a8..16c3ecb0f 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -90,6 +90,9 @@ however it is impossible to guarantee it will work flawless on each and every de
Subscriber ID
Filter by permission
Filter system applications
+ Filter on data usage
+ Filter on internet access
+ Filter on restricted
Application
has internet permission
has Android permission
diff --git a/src/biz/bokhorst/xprivacy/ActivityMain.java b/src/biz/bokhorst/xprivacy/ActivityMain.java
index 47bead094..344bb772a 100644
--- a/src/biz/bokhorst/xprivacy/ActivityMain.java
+++ b/src/biz/bokhorst/xprivacy/ActivityMain.java
@@ -61,12 +61,12 @@
import android.widget.CheckBox;
import android.widget.CheckedTextView;
import android.widget.CompoundButton;
-import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;
import android.widget.Filter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
+import android.widget.ProgressBar;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
@@ -75,8 +75,6 @@ public class ActivityMain extends Activity implements OnItemSelectedListener, Co
private int mThemeId;
private Spinner spRestriction = null;
private AppListAdapter mAppAdapter = null;
- private boolean mUsed = false;
- private boolean mInternet = false;
private boolean mFiltersHidden = false;
private static final int ACTIVITY_LICENSE = 0;
@@ -165,38 +163,12 @@ public void onClick(View view) {
spRestriction.setOnItemSelectedListener(this);
// Setup used filter
- final ImageView imgUsed = (ImageView) findViewById(R.id.imgUsed);
- if (savedInstanceState != null && savedInstanceState.containsKey("Used")) {
- mUsed = savedInstanceState.getBoolean("Used");
- imgUsed.setImageDrawable(getResources().getDrawable(
- getThemed(mUsed ? R.attr.icon_used : R.attr.icon_used_grayed)));
- }
- imgUsed.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- mUsed = !mUsed;
- imgUsed.setImageDrawable(getResources().getDrawable(
- getThemed(mUsed ? R.attr.icon_used : R.attr.icon_used_grayed)));
- applyFilter();
- }
- });
+ CheckBox cbUsed = (CheckBox) findViewById(R.id.cbFUsed);
+ cbUsed.setOnCheckedChangeListener(this);
// Setup internet filter
- final ImageView imgInternet = (ImageView) findViewById(R.id.imgInternet);
- if (savedInstanceState != null && savedInstanceState.containsKey("Internet")) {
- mInternet = savedInstanceState.getBoolean("Internet");
- imgInternet.setImageDrawable(getResources().getDrawable(
- getThemed(mInternet ? R.attr.icon_internet : R.attr.icon_internet_grayed)));
- }
- imgInternet.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- mInternet = !mInternet;
- imgInternet.setImageDrawable(getResources().getDrawable(
- getThemed(mInternet ? R.attr.icon_internet : R.attr.icon_internet_grayed)));
- applyFilter();
- }
- });
+ CheckBox cbInternet = (CheckBox) findViewById(R.id.cbFInternet);
+ cbInternet.setOnCheckedChangeListener(this);
// Setup name filter
final EditText etFilter = (EditText) findViewById(R.id.etFilter);
@@ -236,32 +208,14 @@ public void onClick(View view) {
PrivacyManager.cSettingFPermission, true, false);
CheckBox cbFPermission = (CheckBox) findViewById(R.id.cbFPermission);
cbFPermission.setChecked(fPermission);
- cbFPermission.setOnCheckedChangeListener(new OnCheckedChangeListener() {
- @Override
- public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
- PrivacyManager.setSetting(null, ActivityMain.this, PrivacyManager.cSettingFPermission,
- Boolean.toString(isChecked));
-
- AppListTask appListTask = new AppListTask();
- appListTask.executeOnExecutor(mExecutor, (Object) null);
- }
- });
+ 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(new OnCheckedChangeListener() {
- @Override
- public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
- PrivacyManager.setSetting(null, ActivityMain.this, PrivacyManager.cSettingFSystem,
- Boolean.toString(isChecked));
-
- AppListTask appListTask = new AppListTask();
- appListTask.executeOnExecutor(mExecutor, (Object) null);
- }
- });
+ cbFSystem.setOnCheckedChangeListener(this);
// Hide filters
if (savedInstanceState != null && savedInstanceState.containsKey("Filters"))
@@ -303,8 +257,6 @@ public void onClick(View view) {
@Override
protected void onSaveInstanceState(Bundle outState) {
- outState.putBoolean("Used", mUsed);
- outState.putBoolean("Internet", mInternet);
outState.putBoolean("Filters", mFiltersHidden);
super.onSaveInstanceState(outState);
}
@@ -483,16 +435,36 @@ private void selectRestriction(int pos) {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
CheckBox cbFilter = (CheckBox) findViewById(R.id.cbFilter);
- if (buttonView == cbFilter)
+ 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();
+ }
}
private void applyFilter() {
if (mAppAdapter != null) {
EditText etFilter = (EditText) findViewById(R.id.etFilter);
CheckBox cbFilter = (CheckBox) findViewById(R.id.cbFilter);
- String filter = String.format("%b\n%b\n%s\n%b", mUsed, mInternet, etFilter.getText().toString(),
- cbFilter.isChecked());
+ 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());
+ pbFilter.setVisibility(ProgressBar.VISIBLE);
+ tvStats.setVisibility(TextView.GONE);
mAppAdapter.getFilter().filter(filter);
}
}
@@ -845,33 +817,32 @@ private void optionHelp() {
private void toggleFiltersVisibility() {
ImageView imgFilterToggle = (ImageView) findViewById(R.id.imgToggleFilters);
+ ImageView imgClear = (ImageView) findViewById(R.id.imgClear);
TextView tvFilters = (TextView) findViewById(R.id.tvFilterDetail);
- LinearLayout llCategory = (LinearLayout) findViewById(R.id.llCategory);
+ EditText etFilter = (EditText) findViewById(R.id.etFilter);
LinearLayout llFilters = (LinearLayout) findViewById(R.id.llFilters);
+ CheckBox cbFilter = (CheckBox) findViewById(R.id.cbFilter);
+ 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
tvFilters.setVisibility(TextView.GONE);
- llCategory.setVisibility(LinearLayout.VISIBLE);
+ etFilter.setVisibility(EditText.VISIBLE);
+ imgClear.setVisibility(ImageView.VISIBLE);
llFilters.setVisibility(LinearLayout.VISIBLE);
- cbFPermission.setVisibility(CheckBox.VISIBLE);
- cbFSystem.setVisibility(CheckBox.VISIBLE);
} else {
int numberOfFilters = 0;
// Count number of activated filters
- if (spRestriction.getSelectedItemPosition() > 0)
- numberOfFilters++;
- if (mUsed)
+ if (cbFUsed.isChecked())
numberOfFilters++;
- if (mInternet)
+ if (cbFInternet.isChecked())
numberOfFilters++;
- EditText etFilter = (EditText) findViewById(R.id.etFilter);
if (etFilter.getText().length() > 0)
numberOfFilters++;
- CheckBox cbFilter = (CheckBox) findViewById(R.id.cbFilter);
if (cbFilter.isChecked())
numberOfFilters++;
if (cbFPermission.isChecked())
@@ -888,10 +859,9 @@ private void toggleFiltersVisibility() {
// Change visibility
tvFilters.setVisibility(TextView.VISIBLE);
- llCategory.setVisibility(LinearLayout.GONE);
+ etFilter.setVisibility(EditText.GONE);
+ imgClear.setVisibility(ImageView.GONE);
llFilters.setVisibility(LinearLayout.GONE);
- cbFPermission.setVisibility(CheckBox.GONE);
- cbFSystem.setVisibility(CheckBox.GONE);
}
imgFilterToggle.setImageDrawable(getResources().getDrawable(
@@ -1021,12 +991,6 @@ protected void onPreExecute() {
spRestriction.setEnabled(false);
// Reset filters
- final ImageView imgUsed = (ImageView) findViewById(R.id.imgUsed);
- imgUsed.setEnabled(false);
-
- final ImageView imgInternet = (ImageView) findViewById(R.id.imgInternet);
- imgInternet.setEnabled(false);
-
EditText etFilter = (EditText) findViewById(R.id.etFilter);
etFilter.setEnabled(false);
@@ -1059,12 +1023,6 @@ protected void onPostExecute(List listApp) {
}
// Enable filters
- final ImageView imgUsed = (ImageView) findViewById(R.id.imgUsed);
- imgUsed.setEnabled(true);
-
- final ImageView imgInternet = (ImageView) findViewById(R.id.imgInternet);
- imgInternet.setEnabled(true);
-
EditText etFilter = (EditText) findViewById(R.id.etFilter);
etFilter.setEnabled(true);
@@ -1170,6 +1128,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]);
// Match applications
List lstApp = new ArrayList();
@@ -1203,10 +1162,15 @@ protected FilterResults performFiltering(CharSequence constraint) {
} else
someRestricted = PrivacyManager.getRestricted(null, getApplicationContext(),
xAppInfo.getUid(), mRestrictionName, null, false, false);
+
+ // Get if system
+ boolean system = false;
+ if (fSystem)
+ system = !xAppInfo.getIsSystem();
// Match application
if ((fUsed ? used : true) && (fInternet ? internet : true) && (fName.equals("") ? true : contains)
- && (fRestricted ? someRestricted : true))
+ && (fRestricted ? someRestricted : true) && (fSystem ? system : true))
lstApp.add(xAppInfo);
}
@@ -1222,6 +1186,11 @@ protected FilterResults performFiltering(CharSequence constraint) {
@SuppressWarnings("unchecked")
protected void publishResults(CharSequence constraint, FilterResults results) {
clear();
+ TextView tvStats = (TextView) findViewById(R.id.tvStats);
+ ProgressBar pbFilter = (ProgressBar) findViewById(R.id.pbFilter);
+ pbFilter.setVisibility(ProgressBar.GONE);
+ tvStats.setVisibility(TextView.VISIBLE);
+ tvStats.setText(results.count + "/" + AppListAdapter.this.mListAppSelected.size());
if (results.values == null)
notifyDataSetInvalidated();
else {
diff --git a/src/biz/bokhorst/xprivacy/ApplicationInfoEx.java b/src/biz/bokhorst/xprivacy/ApplicationInfoEx.java
index 89a79311a..a4da55956 100644
--- a/src/biz/bokhorst/xprivacy/ApplicationInfoEx.java
+++ b/src/biz/bokhorst/xprivacy/ApplicationInfoEx.java
@@ -83,7 +83,6 @@ private void Initialize(Context context, ApplicationInfo appInfo) {
public static List getXApplicationList(Context context, ProgressDialog dialog) {
// Get references
PackageManager pm = context.getPackageManager();
- boolean fSystem = PrivacyManager.getSettingBool(null, context, PrivacyManager.cSettingFSystem, true, false);
// Get app list
SparseArray mapApp = new SparseArray();
@@ -94,14 +93,12 @@ public static List getXApplicationList(Context context, Progr
try {
dialog.setProgress(app + 1);
ApplicationInfoEx xAppInfo = new ApplicationInfoEx(context, listAppInfo.get(app));
- if (fSystem ? !(xAppInfo.isFrozen() || xAppInfo.getIsSystem()) : true) {
- ApplicationInfoEx yAppInfo = mapApp.get(xAppInfo.getUid());
- if (yAppInfo == null) {
- mapApp.put(xAppInfo.getUid(), xAppInfo);
- listApp.add(xAppInfo);
- } else
- yAppInfo.AddApplicationName(getApplicationName(listAppInfo.get(app), pm));
- }
+ ApplicationInfoEx yAppInfo = mapApp.get(xAppInfo.getUid());
+ if (yAppInfo == null) {
+ mapApp.put(xAppInfo.getUid(), xAppInfo);
+ listApp.add(xAppInfo);
+ } else
+ yAppInfo.AddApplicationName(getApplicationName(listAppInfo.get(app), pm));
} catch (Throwable ex) {
Util.bug(null, ex);
}