diff --git a/res/layout/manage_applications_item.xml b/res/layout/manage_applications_item.xml index 042d518d7af..90555c8f25b 100755 --- a/res/layout/manage_applications_item.xml +++ b/res/layout/manage_applications_item.xml @@ -59,13 +59,15 @@ android:duplicateParentState="true" /> Block - Sensitive + Sensitive content hidden Priority - - Priority & Sensitive + + No peeking + + %1$s / %2$s + + %1$s / %2$s / %3$s + @@ -6459,7 +6464,9 @@ Priority - Sensitive + Sensitive content hidden + + No peeking With domain URLs diff --git a/src/com/android/settings/applications/AppOpsDetails.java b/src/com/android/settings/applications/AppOpsDetails.java index 88591d77678..0643b566fa1 100644 --- a/src/com/android/settings/applications/AppOpsDetails.java +++ b/src/com/android/settings/applications/AppOpsDetails.java @@ -71,7 +71,7 @@ public class AppOpsDetails extends InstrumentedFragment { TextView label = (TextView) appSnippet.findViewById(R.id.app_name); label.setText(mPm.getApplicationLabel(pkgInfo.applicationInfo)); // Version number of application - mAppVersion = (TextView) appSnippet.findViewById(R.id.app_size); + mAppVersion = (TextView) appSnippet.findViewById(R.id.app_summary); if (pkgInfo.versionName != null) { mAppVersion.setVisibility(View.VISIBLE); diff --git a/src/com/android/settings/applications/AppStateNotificationBridge.java b/src/com/android/settings/applications/AppStateNotificationBridge.java index 1aa7ebf123a..4ac86506794 100644 --- a/src/com/android/settings/applications/AppStateNotificationBridge.java +++ b/src/com/android/settings/applications/AppStateNotificationBridge.java @@ -87,4 +87,15 @@ public class AppStateNotificationBridge extends AppStateBaseBridge { return info.extraInfo != null && ((AppRow) info.extraInfo).sensitive; } }; + + public static final AppFilter FILTER_APP_NOTIFICATION_NO_PEEK = new AppFilter() { + @Override + public void init() { + } + + @Override + public boolean filterApp(AppEntry info) { + return info.extraInfo != null && !((AppRow) info.extraInfo).peekable; + } + }; } diff --git a/src/com/android/settings/applications/AppViewHolder.java b/src/com/android/settings/applications/AppViewHolder.java index 92aa87a7bad..34c99524532 100644 --- a/src/com/android/settings/applications/AppViewHolder.java +++ b/src/com/android/settings/applications/AppViewHolder.java @@ -45,7 +45,7 @@ public class AppViewHolder { holder.rootView = convertView; holder.appName = (TextView) convertView.findViewById(R.id.app_name); holder.appIcon = (ImageView) convertView.findViewById(R.id.app_icon); - holder.summary = (TextView) convertView.findViewById(R.id.app_size); + holder.summary = (TextView) convertView.findViewById(R.id.app_summary); holder.disabled = (TextView) convertView.findViewById(R.id.app_disabled); holder.checkBox = (CheckBox) convertView.findViewById(R.id.app_on_sdcard); convertView.setTag(holder); diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java index 33a74282c5a..ffd4959abf9 100755 --- a/src/com/android/settings/applications/InstalledAppDetails.java +++ b/src/com/android/settings/applications/InstalledAppDetails.java @@ -364,7 +364,7 @@ public class InstalledAppDetails extends AppInfoBase TextView label = (TextView) appSnippet.findViewById(R.id.app_name); label.setText(mAppEntry.label); // Version number of application - mAppVersion = (TextView) appSnippet.findViewById(R.id.app_size); + mAppVersion = (TextView) appSnippet.findViewById(R.id.app_summary); if (pkgInfo != null && pkgInfo.versionName != null) { mAppVersion.setVisibility(View.VISIBLE); @@ -675,15 +675,29 @@ public class InstalledAppDetails extends AppInfoBase public static CharSequence getNotificationSummary(AppRow appRow, Context context) { if (appRow.banned) { return context.getString(R.string.notifications_disabled); - } else if (appRow.priority) { - if (appRow.sensitive) { - return context.getString(R.string.notifications_priority_sensitive); - } - return context.getString(R.string.notifications_priority); - } else if (appRow.sensitive) { - return context.getString(R.string.notifications_sensitive); } - return context.getString(R.string.notifications_enabled); + ArrayList notifSummary = new ArrayList<>(); + if (appRow.priority) { + notifSummary.add(context.getString(R.string.notifications_priority)); + } + if (appRow.sensitive) { + notifSummary.add(context.getString(R.string.notifications_sensitive)); + } + if (!appRow.peekable) { + notifSummary.add(context.getString(R.string.notifications_no_peeking)); + } + switch (notifSummary.size()) { + case 3: + return context.getString(R.string.notifications_three_items, + notifSummary.get(0), notifSummary.get(1), notifSummary.get(2)); + case 2: + return context.getString(R.string.notifications_two_items, + notifSummary.get(0), notifSummary.get(1)); + case 1: + return notifSummary.get(0); + default: + return context.getString(R.string.notifications_enabled); + } } static class DisableChanger extends AsyncTask { diff --git a/src/com/android/settings/applications/ManageApplications.java b/src/com/android/settings/applications/ManageApplications.java index e7ee1d4fd24..b9f49d10227 100644 --- a/src/com/android/settings/applications/ManageApplications.java +++ b/src/com/android/settings/applications/ManageApplications.java @@ -111,11 +111,12 @@ public class ManageApplications extends InstrumentedFragment public static final int FILTER_APPS_DISABLED = 2; public static final int FILTER_APPS_BLOCKED = 3; public static final int FILTER_APPS_PRIORITY = 4; - public static final int FILTER_APPS_SENSITIVE = 5; - public static final int FILTER_APPS_PERSONAL = 6; - public static final int FILTER_APPS_WORK = 7; - public static final int FILTER_APPS_WITH_DOMAIN_URLS = 8; - public static final int FILTER_APPS_USAGE_ACCESS = 9; + public static final int FILTER_APPS_NO_PEEKING = 5; + public static final int FILTER_APPS_SENSITIVE = 6; + public static final int FILTER_APPS_PERSONAL = 7; + public static final int FILTER_APPS_WORK = 8; + public static final int FILTER_APPS_WITH_DOMAIN_URLS = 9; + public static final int FILTER_APPS_USAGE_ACCESS = 10; // This is the string labels for the filter modes above, the order must be kept in sync. public static final int[] FILTER_LABELS = new int[] { @@ -124,6 +125,7 @@ public class ManageApplications extends InstrumentedFragment R.string.filter_apps_disabled, // Disabled R.string.filter_notif_blocked_apps, // Blocked Notifications R.string.filter_notif_priority_apps, // Priority Notifications + R.string.filter_notif_no_peeking, // No peeking Notifications R.string.filter_notif_sensitive_apps, // Sensitive Notifications R.string.filter_personal_apps, // Personal R.string.filter_work_apps, // Work @@ -138,6 +140,7 @@ public class ManageApplications extends InstrumentedFragment ApplicationsState.FILTER_DISABLED, // Disabled AppStateNotificationBridge.FILTER_APP_NOTIFICATION_BLOCKED, // Blocked Notifications AppStateNotificationBridge.FILTER_APP_NOTIFICATION_PRIORITY, // Priority Notifications + AppStateNotificationBridge.FILTER_APP_NOTIFICATION_NO_PEEK, // No peeking Notifications AppStateNotificationBridge.FILTER_APP_NOTIFICATION_SENSITIVE, // Sensitive Notifications ApplicationsState.FILTER_PERSONAL, // Personal ApplicationsState.FILTER_WORK, // Work @@ -305,6 +308,7 @@ public class ManageApplications extends InstrumentedFragment mFilterAdapter.enableFilter(FILTER_APPS_BLOCKED); mFilterAdapter.enableFilter(FILTER_APPS_PRIORITY); mFilterAdapter.enableFilter(FILTER_APPS_SENSITIVE); + mFilterAdapter.enableFilter(FILTER_APPS_NO_PEEKING); } if (mListType == LIST_TYPE_STORAGE) { mApplications.setOverrideFilter(new VolumeFilter(mVolumeUuid));