Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 5 additions & 11 deletions core/java/android/app/NotificationManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ public class NotificationManager

/** @hide */
@IntDef({VISIBILITY_NO_OVERRIDE, IMPORTANCE_UNSPECIFIED, IMPORTANCE_NONE,
IMPORTANCE_MIN, IMPORTANCE_VERY_LOW, IMPORTANCE_LOW, IMPORTANCE_DEFAULT, IMPORTANCE_HIGH,
IMPORTANCE_MIN, IMPORTANCE_LOW, IMPORTANCE_DEFAULT, IMPORTANCE_HIGH,
IMPORTANCE_MAX})
@Retention(RetentionPolicy.SOURCE)
public @interface Importance {}
Expand All @@ -208,33 +208,27 @@ public class NotificationManager
*/
public static final int IMPORTANCE_MIN = 1;

/**
* Very low notification importance: shows on the status bar, but never
* on the lock screen and is not intrusive.
*/
public static final int IMPORTANCE_VERY_LOW = 2;

/**
* Low notification importance: shows everywhere, but is not intrusive.
*/
public static final int IMPORTANCE_LOW = 3;
public static final int IMPORTANCE_LOW = 2;

/**
* Default notification importance: shows everywhere, allowed to makes noise,
* but does not visually intrude.
*/
public static final int IMPORTANCE_DEFAULT = 4;
public static final int IMPORTANCE_DEFAULT = 3;

/**
* Higher notification importance: shows everywhere, allowed to makes noise and peek.
*/
public static final int IMPORTANCE_HIGH = 5;
public static final int IMPORTANCE_HIGH = 4;

/**
* Highest notification importance: shows everywhere, allowed to makes noise, peek, and
* use full screen intents.
*/
public static final int IMPORTANCE_MAX = 6;
public static final int IMPORTANCE_MAX = 5;

private static INotificationManager sService;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1038,13 +1038,6 @@ public static class Ranking {
*/
public static final int IMPORTANCE_MIN = NotificationManager.IMPORTANCE_MIN;

/**
* Very low notification importance: not on lock screen and not intrusive.
*
* @hide
*/
public static final int IMPORTANCE_VERY_LOW = NotificationManager.IMPORTANCE_VERY_LOW;

/**
* Low notification importance: shows everywhere, but is not intrusive.
*
Expand Down Expand Up @@ -1176,7 +1169,7 @@ private void populate(String key, int rank, boolean matchesInterruptionFilter,
CharSequence explanation, String overrideGroupKey) {
mKey = key;
mRank = rank;
mIsAmbient = importance < IMPORTANCE_VERY_LOW;
mIsAmbient = importance < IMPORTANCE_LOW;
mMatchesInterruptionFilter = matchesInterruptionFilter;
mVisibilityOverride = visibilityOverride;
mSuppressedVisualEffects = suppressedVisualEffects;
Expand All @@ -1196,8 +1189,6 @@ public static String importanceToString(int importance) {
return "NONE";
case IMPORTANCE_MIN:
return "MIN";
case IMPORTANCE_VERY_LOW:
return "VERY_LOW";
case IMPORTANCE_LOW:
return "LOW";
case IMPORTANCE_DEFAULT:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:text="@string/cm_power_notification_controls_description"/>
android:text="@string/power_notification_controls_description"/>

</LinearLayout>
38 changes: 0 additions & 38 deletions packages/SystemUI/res/values/cm_strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -36,44 +36,6 @@
<string name="quick_settings_tile_flashlight_not_title">Flashlight is on</string>
<string name="quick_settings_tile_flashlight_not_summary">Tap to turn off</string>

<!-- [CHAR LIMIT=NONE] Importance Tuner setting title -->
<string name="cm_power_notification_controls_description">With power notification controls, you can set an importance level from 0 to 6 for an app\'s notifications.
\n\n<b>Level 6</b>
\n- Show at the top of the notification list
\n- Allow full screen interruption
\n- Always peek
\n\n<b>Level 5</b>
\n- Prevent full screen interruption
\n- Always peek
\n\n<b>Level 4</b>
\n- Prevent full screen interruption
\n- Never peek
\n\n<b>Level 3</b>
\n- Prevent full screen interruption
\n- Never peek
\n- Never make sound and vibration
\n\n<b>Level 2</b>
\n- Prevent full screen interruption
\n- Never peek
\n- Never make sound or vibrate
\n- Hide from lock screen
\n- Show at the bottom of the notification list
\n\n<b>Level 1</b>
\n- Prevent full screen interruption
\n- Never peek
\n- Never make sound or vibrate
\n- Hide from lock screen and status bar
\n- Show at the bottom of the notification list
\n\n<b>Level 0</b>
\n- Block all notifications from the app
</string>

<!-- Notification importance level title-->
<string name="importance_level_title">Importance: Level %1$d</string>

<!-- [CHAR LIMIT=100] Notification Importance slider: very low importance level description -->
<string name="notification_importance_very_low">No full screen interruption, peeking, sound, or vibration. Hide from lock screen.</string>

<!-- Screen pinning dialog description (for devices without navbar) -->
<string name="screen_pinning_description_no_navbar">This keeps it in view until you unpin. Touch and hold the Back button to unpin.</string>

Expand Down
36 changes: 36 additions & 0 deletions packages/SystemUI/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1279,9 +1279,45 @@
<string name="tuner_full_importance_settings">Power notification controls</string>
<string name="tuner_full_importance_settings_on">On</string>
<string name="tuner_full_importance_settings_off">Off</string>
<string name="power_notification_controls_description">With power notification controls, you can set an importance level from 0 to 5 for an app\'s notifications.
\n\n<b>Level 5</b>
\n- Show at the top of the notification list
\n- Allow full screen interruption
\n- Always peek
\n\n<b>Level 4</b>
\n- Prevent full screen interruption
\n- Always peek
\n\n<b>Level 3</b>
\n- Prevent full screen interruption
\n- Never peek
\n\n<b>Level 2</b>
\n- Prevent full screen interruption
\n- Never peek
\n- Never make sound and vibration
\n\n<b>Level 1</b>
\n- Prevent full screen interruption
\n- Never peek
\n- Never make sound or vibrate
\n- Hide from lock screen and status bar
\n- Show at the bottom of the notification list
\n\n<b>Level 0</b>
\n- Block all notifications from the app
</string>

<!-- Notification importance title, user unspecified status-->
<string name="user_unspecified_importance">Importance: Automatic</string>
<!-- Notification importance title, blocked status-->
<string name="blocked_importance">Importance: Level 0</string>
<!-- Notification importance title, min status-->
<string name="min_importance">Importance: Level 1</string>
<!-- Notification importance title, low status-->
<string name="low_importance">Importance: Level 2</string>
<!-- Notification importance title, normal status-->
<string name="default_importance">Importance: Level 3</string>
<!-- Notification importance title, high status-->
<string name="high_importance">Importance: Level 4</string>
<!-- Notification importance title, max status-->
<string name="max_importance">Importance: Level 5</string>

<!-- [CHAR LIMIT=100] Notification Importance slider: blocked importance level description -->
<string name="notification_importance_user_unspecified">App determines importance for each notification.</string>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,6 @@
import java.util.Locale;

import static android.service.notification.NotificationListenerService.Ranking.IMPORTANCE_HIGH;
import static android.service.notification.NotificationListenerService.Ranking.IMPORTANCE_VERY_LOW;

public abstract class BaseStatusBar extends SystemUI implements
CommandQueue.Callbacks, ActivatableNotificationView.OnActivatedListener,
Expand Down Expand Up @@ -2304,8 +2303,7 @@ protected void updateRowStates() {
}

public boolean shouldShowOnKeyguard(StatusBarNotification sbn) {
return mShowLockscreenNotifications && !mNotificationData.isAmbient(sbn.getKey())
&& mNotificationData.getImportance(sbn.getKey()) > IMPORTANCE_VERY_LOW;
return mShowLockscreenNotifications && !mNotificationData.isAmbient(sbn.getKey());
}

protected void setZenMode(int mode) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -339,36 +339,36 @@ private void applyAuto() {
}

private void updateTitleAndSummary(int progress) {
mImportanceTitle.setText(String.format(mContext.getString(
R.string.importance_level_title), progress));
switch (progress) {
case Ranking.IMPORTANCE_NONE:
mImportanceSummary.setText(mContext.getString(
R.string.notification_importance_blocked));
mImportanceTitle.setText(mContext.getString(R.string.blocked_importance));
break;
case Ranking.IMPORTANCE_MIN:
mImportanceSummary.setText(mContext.getString(
R.string.notification_importance_min));
break;
case Ranking.IMPORTANCE_VERY_LOW:
mImportanceSummary.setText(mContext.getString(
R.string.notification_importance_very_low));
mImportanceTitle.setText(mContext.getString(R.string.min_importance));
break;
case Ranking.IMPORTANCE_LOW:
mImportanceSummary.setText(mContext.getString(
R.string.notification_importance_low));
mImportanceTitle.setText(mContext.getString(R.string.low_importance));
break;
case Ranking.IMPORTANCE_DEFAULT:
mImportanceSummary.setText(mContext.getString(
R.string.notification_importance_default));
mImportanceTitle.setText(mContext.getString(R.string.default_importance));
break;
case Ranking.IMPORTANCE_HIGH:
mImportanceSummary.setText(mContext.getString(
R.string.notification_importance_high));
mImportanceTitle.setText(mContext.getString(R.string.high_importance));
break;
case Ranking.IMPORTANCE_MAX:
mImportanceSummary.setText(mContext.getString(
R.string.notification_importance_max));
mImportanceTitle.setText(mContext.getString(R.string.max_importance));
break;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -699,9 +699,9 @@ private void maybePut(JSONObject dump, String name, float value) throws JSONExce

private static class ImportanceHistogram {
// TODO define these somewhere else
private static final int NUM_IMPORTANCES = 7;
private static final int NUM_IMPORTANCES = 6;
private static final String[] IMPORTANCE_NAMES =
{"none", "min", "very-low", "low", "default", "high", "max"};
{"none", "min", "low", "default", "high", "max"};
private final Context mContext;
private final String[] mCounterNames;
private final String mPrefix;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,7 @@
public class RankingHelper implements RankingConfig {
private static final String TAG = "RankingHelper";

private static final int VERSION_INIT = 1;
private static final int VERSION_ADDED_VERY_LOW_IMPORTANCE = 2;
private static final int VERSION_LATEST = VERSION_ADDED_VERY_LOW_IMPORTANCE;
private static final int XML_VERSION = 1;

private static final String TAG_RANKING = "ranking";
private static final String TAG_PACKAGE = "package";
Expand All @@ -63,7 +61,6 @@ public class RankingHelper implements RankingConfig {
private static final int DEFAULT_PRIORITY = Notification.PRIORITY_DEFAULT;
private static final int DEFAULT_VISIBILITY = Ranking.VISIBILITY_NO_OVERRIDE;
private static final int DEFAULT_IMPORTANCE = Ranking.IMPORTANCE_UNSPECIFIED;
private static final int VERY_LOW_IMPORTANCE = Ranking.IMPORTANCE_VERY_LOW;

private final NotificationSignalExtractor[] mSignalExtractors;
private final NotificationComparator mPreliminaryComparator = new NotificationComparator();
Expand Down Expand Up @@ -135,7 +132,6 @@ public void readXml(XmlPullParser parser, boolean forRestore)
if (type != XmlPullParser.START_TAG) return;
String tag = parser.getName();
if (!TAG_RANKING.equals(tag)) return;
int version = safeInt(parser, ATT_VERSION, VERSION_INIT);
mRecords.clear();
mRestoredWithoutUids.clear();
while ((type = parser.next()) != XmlPullParser.END_DOCUMENT) {
Expand Down Expand Up @@ -168,9 +164,6 @@ public void readXml(XmlPullParser parser, boolean forRestore)
r = getOrCreateRecord(name, uid);
}
r.importance = safeInt(parser, ATT_IMPORTANCE, DEFAULT_IMPORTANCE);
if (version < VERSION_ADDED_VERY_LOW_IMPORTANCE
&& r.importance >= VERY_LOW_IMPORTANCE)
r.importance++;
r.priority = safeInt(parser, ATT_PRIORITY, DEFAULT_PRIORITY);
r.visibility = safeInt(parser, ATT_VISIBILITY, DEFAULT_VISIBILITY);
}
Expand Down Expand Up @@ -198,7 +191,7 @@ private Record getOrCreateRecord(String pkg, int uid) {

public void writeXml(XmlSerializer out, boolean forBackup) throws IOException {
out.startTag(null, TAG_RANKING);
out.attribute(null, ATT_VERSION, Integer.toString(VERSION_LATEST));
out.attribute(null, ATT_VERSION, Integer.toString(XML_VERSION));

final int N = mRecords.size();
for (int i = 0; i < N; i++) {
Expand Down