Skip to content
This repository was archived by the owner on May 3, 2021. It is now read-only.

Commit 25ebc4a

Browse files
committed
Match/Not match permissions
1 parent b9e95fe commit 25ebc4a

File tree

9 files changed

+58
-46
lines changed

9 files changed

+58
-46
lines changed

.idea/misc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/src/main/java/com/layoutxml/applistmanager/MainActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ public void onClick(View view) {
105105
getAllSystemButton.setOnClickListener(new View.OnClickListener() {
106106
@Override
107107
public void onClick(View view) {
108-
AppList.getSomeApps(getApplicationContext(), ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_UPDATED_SYSTEM_APP, true, null,3);
108+
AppList.getSomeApps(getApplicationContext(), ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_UPDATED_SYSTEM_APP, true, null,false,3);
109109
}
110110
});
111111

applistmanagerlibrary/src/main/java/com/layoutxml/applistmanagerlibrary/AppList.java

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -79,73 +79,73 @@ public static void registerListeners(AppListener appListener, ActivityListener a
7979

8080
public static void getAllApps(Context context, Integer uniqueIdentifier){
8181
WeakReference<Context> context1 = new WeakReference<>(context);
82-
appTask = new AppTask(context1,null, true,null, uniqueIdentifier, appListener);
82+
appTask = new AppTask(context1,null, true,null, false, uniqueIdentifier, appListener);
8383
appTask.execute();
8484
}
8585

86-
public static void getSomeApps(Context context, Integer applicationFlags, Boolean applicationFlagsMatch, String[] permissions, Integer uniqueIdentifier){
86+
public static void getSomeApps(Context context, Integer applicationFlags, Boolean applicationFlagsMatch, String[] permissions, Boolean matchPermissions, Integer uniqueIdentifier){
8787
WeakReference<Context> context1 = new WeakReference<>(context);
88-
appTask = new AppTask(context1, applicationFlags, applicationFlagsMatch, permissions, uniqueIdentifier, appListener);
88+
appTask = new AppTask(context1, applicationFlags, applicationFlagsMatch, permissions, matchPermissions, uniqueIdentifier, appListener);
8989
appTask.execute();
9090
}
9191

9292
public static void getAllActivities(Context context, Intent intent, Integer uniqueIdentifier){
9393
WeakReference<Context> context1 = new WeakReference<>(context);
94-
activityTask = new ActivityTask(context1, intent, 0, null, false,null, uniqueIdentifier, activitiesListener);
94+
activityTask = new ActivityTask(context1, intent, 0, null, false,null, false, uniqueIdentifier, activitiesListener);
9595
activityTask.execute();
9696
}
9797

98-
public static void getSomeActivities(Context context, Intent intent, Integer activityFlags, Integer applicationFlags, Boolean applicationFlagsMatch, String[] permissions, Integer uniqueIdentifier){
98+
public static void getSomeActivities(Context context, Intent intent, Integer activityFlags, Integer applicationFlags, Boolean applicationFlagsMatch, String[] permissions, Boolean matchPermissions, Integer uniqueIdentifier){
9999
WeakReference<Context> context1 = new WeakReference<>(context);
100-
activityTask = new ActivityTask(context1, intent, activityFlags, applicationFlags, applicationFlagsMatch,permissions, uniqueIdentifier, activitiesListener);
100+
activityTask = new ActivityTask(context1, intent, activityFlags, applicationFlags, applicationFlagsMatch,permissions, matchPermissions, uniqueIdentifier, activitiesListener);
101101
activityTask.execute();
102102
}
103103

104104
public static void getAllNewApps(Context context, List<AppData> appDataList, Integer uniqueIdentifier) {
105105
WeakReference<Context> context1 = new WeakReference<>(context);
106-
newAppTask = new NewAppTask(context1, appDataList, null, false, null, uniqueIdentifier, newAppListener);
106+
newAppTask = new NewAppTask(context1, appDataList, null, false, null, false, uniqueIdentifier, newAppListener);
107107
newAppTask.execute();
108108
}
109109

110-
public static void getSomeNewApps(Context context, List<AppData> appDataList, Integer applicationFlags, Boolean applicationFlagsMatch, String[] permissions, Integer uniqueIdentifier) {
110+
public static void getSomeNewApps(Context context, List<AppData> appDataList, Integer applicationFlags, Boolean applicationFlagsMatch, String[] permissions, Boolean matchPermissions, Integer uniqueIdentifier) {
111111
WeakReference<Context> context1 = new WeakReference<>(context);
112-
newAppTask = new NewAppTask(context1, appDataList, applicationFlags, applicationFlagsMatch, permissions, uniqueIdentifier, newAppListener);
112+
newAppTask = new NewAppTask(context1, appDataList, applicationFlags, applicationFlagsMatch, permissions, matchPermissions, uniqueIdentifier, newAppListener);
113113
newAppTask.execute();
114114
}
115115

116116
public static void getAllNewActivities(Context context, List<AppData> appDataList, Intent intent, Integer uniqueIdentifier) {
117117
WeakReference<Context> context1 = new WeakReference<>(context);
118-
newActivityTask = new NewActivityTask(context1,appDataList,intent,0,null,false,null,uniqueIdentifier,newActivitiesListener);
118+
newActivityTask = new NewActivityTask(context1,appDataList,intent,0,null,false,null,false, uniqueIdentifier,newActivitiesListener);
119119
newActivityTask.execute();
120120
}
121121

122-
public static void getSomeNewActivities(Context context, List<AppData> appDataList, Intent intent, Integer activityFlags, Integer applicationFlags, Boolean applicationFlagsMatch, String[] permissions, Integer uniqueIdentifier) {
122+
public static void getSomeNewActivities(Context context, List<AppData> appDataList, Intent intent, Integer activityFlags, Integer applicationFlags, Boolean applicationFlagsMatch, String[] permissions, Boolean matchPermissions, Integer uniqueIdentifier) {
123123
WeakReference<Context> context1 = new WeakReference<>(context);
124-
newActivityTask = new NewActivityTask(context1,appDataList,intent,activityFlags,applicationFlags,applicationFlagsMatch,permissions,uniqueIdentifier,newActivitiesListener);
124+
newActivityTask = new NewActivityTask(context1,appDataList,intent,activityFlags,applicationFlags,applicationFlagsMatch,permissions,matchPermissions, uniqueIdentifier,newActivitiesListener);
125125
newActivityTask.execute();
126126
}
127127

128128
public static void getAllUninstalledApps(Context context, List<AppData> appDataList, Integer uniqueIdentifier) {
129129
WeakReference<Context> context1 = new WeakReference<>(context);
130-
uninstalledAppTask = new UninstalledAppTask(context1, appDataList, null, false, null,uniqueIdentifier, uninstalledAppListener);
130+
uninstalledAppTask = new UninstalledAppTask(context1, appDataList, null, false, null,false, uniqueIdentifier, uninstalledAppListener);
131131
uninstalledAppTask.execute();
132132
}
133133

134-
public static void getSomeUninstalledApps(Context context, List<AppData> appDataList, Integer applicationFlags, Boolean applicationFlagsMatch, String[] permissions, Integer uniqueIdentifier) {
134+
public static void getSomeUninstalledApps(Context context, List<AppData> appDataList, Integer applicationFlags, Boolean applicationFlagsMatch, String[] permissions, Boolean matchPermissions, Integer uniqueIdentifier) {
135135
WeakReference<Context> context1 = new WeakReference<>(context);
136-
uninstalledAppTask = new UninstalledAppTask(context1, appDataList, applicationFlags, applicationFlagsMatch, permissions, uniqueIdentifier, uninstalledAppListener);
136+
uninstalledAppTask = new UninstalledAppTask(context1, appDataList, applicationFlags, applicationFlagsMatch, permissions, matchPermissions, uniqueIdentifier, uninstalledAppListener);
137137
uninstalledAppTask.execute();
138138
}
139139

140140
public static void getAllUninstalledActivities(Context context, List<AppData> appDataList, Intent intent, Integer uniqueIdentifier) {
141141
WeakReference<Context> context1 = new WeakReference<>(context);
142-
uninstalledActivityTask = new UninstalledActivityTask(context1, appDataList, intent, 0, null, false,null, uniqueIdentifier, uninstalledActivitiesListener);
142+
uninstalledActivityTask = new UninstalledActivityTask(context1, appDataList, intent, 0, null, false,null, false, uniqueIdentifier, uninstalledActivitiesListener);
143143
uninstalledActivityTask.execute();
144144
}
145145

146-
public static void getSomeUninstalledActivities(Context context, List<AppData> appDataList, Intent intent, Integer activityFlags, Integer applicationFlags, Boolean applicationFlagsMatch, String[] permissions, Integer uniqueIdentifier) {
146+
public static void getSomeUninstalledActivities(Context context, List<AppData> appDataList, Intent intent, Integer activityFlags, Integer applicationFlags, Boolean applicationFlagsMatch, String[] permissions, Boolean matchPermissions, Integer uniqueIdentifier) {
147147
WeakReference<Context> context1 = new WeakReference<>(context);
148-
uninstalledActivityTask = new UninstalledActivityTask(context1, appDataList, intent, activityFlags, applicationFlags, applicationFlagsMatch,permissions, uniqueIdentifier, uninstalledActivitiesListener);
148+
uninstalledActivityTask = new UninstalledActivityTask(context1, appDataList, intent, activityFlags, applicationFlags, applicationFlagsMatch,permissions,matchPermissions, uniqueIdentifier, uninstalledActivitiesListener);
149149
uninstalledActivityTask.execute();
150150
}
151151

@@ -156,7 +156,7 @@ public static Boolean checkApplicationFlags(AppData appData, Integer application
156156
return ((applicationFlags==null) || ((appData.getFlags() & applicationFlags) == 0));
157157
}
158158

159-
public static Boolean checkApplicationPermissions(AppData appData, String[] permissions) {
159+
public static Boolean checkApplicationPermissions(AppData appData, String[] permissions, Boolean matchPermissions) {
160160
Boolean containsPermission = false;
161161
for (String permission : permissions) {
162162
for (String permissionReal : appData.getPermissions()) {
@@ -168,7 +168,7 @@ public static Boolean checkApplicationPermissions(AppData appData, String[] perm
168168
if (containsPermission)
169169
break;
170170
}
171-
return containsPermission;
171+
return !containsPermission;
172172
}
173173

174174
public static void sort(List<AppData> appDataList, Integer sortBy, Integer inOrder, Integer uniqueIdentifier) {

applistmanagerlibrary/src/main/java/com/layoutxml/applistmanagerlibrary/tasks/ActivityTask.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,9 @@ public class ActivityTask extends AsyncTask<Void,Void,List<AppData>> {
2525
private final Integer activitiesFlags;
2626
private final Boolean match;
2727
private final String[] permissions;
28+
private final Boolean matchPermissions;
2829

29-
public ActivityTask(WeakReference<Context> context, Intent intent, Integer activitiesFlags, Integer appFlags, Boolean appMatch, String[] permissions, Integer uniqueIdentifier, WeakReference<ActivityListener> activitiesListenerWeakReference) {
30+
public ActivityTask(WeakReference<Context> context, Intent intent, Integer activitiesFlags, Integer appFlags, Boolean appMatch, String[] permissions, Boolean matchPermissions, Integer uniqueIdentifier, WeakReference<ActivityListener> activitiesListenerWeakReference) {
3031
this.contextWeakReference = context;
3132
this.intent = intent;
3233
this.uniqueIdentifier = uniqueIdentifier;
@@ -35,6 +36,7 @@ public ActivityTask(WeakReference<Context> context, Intent intent, Integer activ
3536
this.match = appMatch;
3637
this.activitiesFlags = activitiesFlags;
3738
this.permissions = permissions;
39+
this.matchPermissions = matchPermissions;
3840
}
3941

4042
@Override
@@ -70,15 +72,15 @@ protected List<AppData> doInBackground(Void... voids){
7072
}
7173
}
7274
} else {
73-
containsPermission = true;
75+
containsPermission = matchPermissions;
7476
}
7577
app.setPermissions(requestedPermissions);
7678
} catch (PackageManager.NameNotFoundException e) {
7779
e.printStackTrace();
7880
if (permissions==null)
79-
containsPermission=true;
81+
containsPermission=matchPermissions;
8082
}
81-
if (containsPermission) {
83+
if ((containsPermission && matchPermissions) || (!containsPermission && !matchPermissions)) {
8284
if (match) {
8385
if ((flags == null) || ((app.getFlags() & flags) != 0))
8486
appDataList.add(app);

applistmanagerlibrary/src/main/java/com/layoutxml/applistmanagerlibrary/tasks/AppTask.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,16 @@ public class AppTask extends AsyncTask<Void,Void,List<AppData>> {
2323
private final Boolean match;
2424
private final Integer uniqueIdentifier;
2525
private final String[] permissions;
26+
private final Boolean matchPermissions;
2627

27-
public AppTask(WeakReference<Context> context, Integer flags, Boolean match, String[] permissions, Integer uniqueIdentifier, WeakReference<AppListener> allListener) {
28+
public AppTask(WeakReference<Context> context, Integer flags, Boolean match, String[] permissions,Boolean matchPermissions, Integer uniqueIdentifier, WeakReference<AppListener> allListener) {
2829
this.contextWeakReference = context;
2930
this.allAppsListener = allListener;
3031
this.flags = flags;
3132
this.match = match;
3233
this.uniqueIdentifier = uniqueIdentifier;
3334
this.permissions = permissions;
35+
this.matchPermissions = matchPermissions;
3436
}
3537

3638
@Override
@@ -64,15 +66,15 @@ protected List<AppData> doInBackground(Void... voids){
6466
}
6567
}
6668
} else {
67-
containsPermission = true;
69+
containsPermission = matchPermissions;
6870
}
6971
app.setPermissions(requestedPermissions);
7072
} catch (PackageManager.NameNotFoundException e) {
7173
e.printStackTrace();
7274
if (permissions==null)
73-
containsPermission=true;
75+
containsPermission = matchPermissions;
7476
}
75-
if (containsPermission) {
77+
if ((containsPermission && matchPermissions) || (!containsPermission && !matchPermissions)) {
7678
if (match) {
7779
if ((flags == null) || ((applicationInfo.flags & flags) != 0))
7880
appDataList.add(app);

applistmanagerlibrary/src/main/java/com/layoutxml/applistmanagerlibrary/tasks/NewActivityTask.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,10 @@ public class NewActivityTask extends AsyncTask<Void,Void,List<AppData>> {
2626
private final Intent intent;
2727
private final Integer activitiesFlags;
2828
private final String[] permissions;
29+
private final Boolean matchPermissions;
2930

3031

31-
public NewActivityTask(WeakReference<Context> context, List<AppData> receivedAppList, Intent intent, Integer activitiesFlags, Integer flags, Boolean match, String[] permissions, Integer uniqueIdentifier, WeakReference<NewActivityListener> newActivitiesListener) {
32+
public NewActivityTask(WeakReference<Context> context, List<AppData> receivedAppList, Intent intent, Integer activitiesFlags, Integer flags, Boolean match, String[] permissions, Boolean matchPermissions, Integer uniqueIdentifier, WeakReference<NewActivityListener> newActivitiesListener) {
3233
contextWeakReference = context;
3334
this.newActivitiesListener = newActivitiesListener;
3435
this.receivedAppList = receivedAppList;
@@ -38,6 +39,7 @@ public NewActivityTask(WeakReference<Context> context, List<AppData> receivedApp
3839
this.intent = intent;
3940
this.activitiesFlags = activitiesFlags;
4041
this.permissions = permissions;
42+
this.matchPermissions = matchPermissions;
4143
}
4244

4345
@Override
@@ -73,15 +75,15 @@ protected final List<AppData> doInBackground(Void... voids){
7375
}
7476
}
7577
} else {
76-
containsPermission = true;
78+
containsPermission = matchPermissions;
7779
}
7880
app.setPermissions(requestedPermissions);
7981
} catch (PackageManager.NameNotFoundException e) {
8082
e.printStackTrace();
8183
if (permissions==null)
82-
containsPermission=true;
84+
containsPermission = matchPermissions;
8385
}
84-
if (containsPermission) {
86+
if ((containsPermission && matchPermissions) || (!containsPermission && !matchPermissions)) {
8587
if (receivedAppList != null) {
8688
if (match) {
8789
if ((flags == null) || ((app.getFlags() & flags) != 0))

applistmanagerlibrary/src/main/java/com/layoutxml/applistmanagerlibrary/tasks/NewAppTask.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,18 @@ public class NewAppTask extends AsyncTask<Void,Void,List<AppData>>{
2525
private final Boolean match;
2626
private final Integer uniqueIdentifier;
2727
private final String[] permissions;
28+
private final Boolean matchPermissions;
2829

2930

30-
public NewAppTask(WeakReference<Context> context, List<AppData> receivedAppList, Integer flags, Boolean match, String[] permissions, Integer uniqueIdentifier, WeakReference<NewAppListener> newListener) {
31+
public NewAppTask(WeakReference<Context> context, List<AppData> receivedAppList, Integer flags, Boolean match, String[] permissions, Boolean matchPermissions, Integer uniqueIdentifier, WeakReference<NewAppListener> newListener) {
3132
contextWeakReference = context;
3233
this.allNewAppsListener = newListener;
3334
this.receivedAppList = receivedAppList;
3435
this.flags = flags;
3536
this.match = match;
3637
this.uniqueIdentifier = uniqueIdentifier;
3738
this.permissions = permissions;
39+
this.matchPermissions = matchPermissions;
3840
}
3941

4042
@Override
@@ -68,15 +70,15 @@ protected final List<AppData> doInBackground(Void... voids){
6870
}
6971
}
7072
} else {
71-
containsPermission = true;
73+
containsPermission = matchPermissions;
7274
}
7375
app.setPermissions(requestedPermissions);
7476
} catch (PackageManager.NameNotFoundException e) {
7577
e.printStackTrace();
7678
if (permissions==null)
77-
containsPermission=true;
79+
containsPermission = matchPermissions;
7880
}
79-
if (containsPermission) {
81+
if ((containsPermission && matchPermissions) || (!containsPermission && !matchPermissions)) {
8082
if (receivedAppList != null) {
8183
if (match) {
8284
if ((flags == null) || ((applicationInfo.flags & flags) != 0)) {

0 commit comments

Comments
 (0)