Add "FILTER_NOT_HIDE" to filter out the apps.

am: 4bf191ca75

Change-Id: I96ad716830dc857091b8f66c9631d217a95b70b4
This commit is contained in:
jackqdyulei
2016-10-06 20:26:45 +00:00
committed by android-build-merger
2 changed files with 42 additions and 2 deletions

View File

@@ -37,4 +37,7 @@
<!-- Intent key for package name values --> <!-- Intent key for package name values -->
<string name="config_helpIntentNameKey" translatable="false"></string> <string name="config_helpIntentNameKey" translatable="false"></string>
</resources>
<!-- The apps that need to be hided when they are disabled -->
<string-array name="config_hideWhenDisabled_packageNames"></string-array>
</resources>

View File

@@ -47,6 +47,7 @@ import android.util.Log;
import android.util.SparseArray; import android.util.SparseArray;
import com.android.internal.util.ArrayUtils; import com.android.internal.util.ArrayUtils;
import com.android.settingslib.R;
import java.io.File; import java.io.File;
import java.text.Collator; import java.text.Collator;
@@ -621,7 +622,7 @@ public class ApplicationsState {
} }
if (filter != null) { if (filter != null) {
filter.init(); filter.init(mContext);
} }
List<AppEntry> apps; List<AppEntry> apps;
@@ -1280,6 +1281,9 @@ public class ApplicationsState {
public interface AppFilter { public interface AppFilter {
void init(); void init();
default void init(Context context) {
init();
}
boolean filterApp(AppEntry info); boolean filterApp(AppEntry info);
} }
@@ -1398,6 +1402,33 @@ public class ApplicationsState {
} }
}; };
public static final AppFilter FILTER_NOT_HIDE = new AppFilter() {
private String[] mHidePackageNames;
public void init(Context context) {
mHidePackageNames = context.getResources()
.getStringArray(R.array.config_hideWhenDisabled_packageNames);
}
@Override
public void init() {
}
@Override
public boolean filterApp(AppEntry entry) {
if (ArrayUtils.contains(mHidePackageNames, entry.info.packageName)) {
if (!entry.info.enabled) {
return false;
} else if (entry.info.enabledSetting ==
PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED) {
return false;
}
}
return true;
}
};
public static class VolumeFilter implements AppFilter { public static class VolumeFilter implements AppFilter {
private final String mVolumeUuid; private final String mVolumeUuid;
@@ -1424,6 +1455,12 @@ public class ApplicationsState {
mSecondFilter = second; mSecondFilter = second;
} }
@Override
public void init(Context context) {
mFirstFilter.init(context);
mSecondFilter.init(context);
}
@Override @Override
public void init() { public void init() {
mFirstFilter.init(); mFirstFilter.init();