Merge "Essential packages' notifications can no longer be silenced." into nyc-mr1-dev

This commit is contained in:
Daniel Sandler
2016-10-12 13:38:59 +00:00
committed by Android (Google) Code Review
4 changed files with 42 additions and 19 deletions

View File

@@ -91,6 +91,16 @@
style="@style/TextAppearance.NotificationGuts.Radio" style="@style/TextAppearance.NotificationGuts.Radio"
android:buttonTint="@color/notification_guts_buttons" /> android:buttonTint="@color/notification_guts_buttons" />
</RadioGroup> </RadioGroup>
<!-- When neither blocking or silencing is available -->
<TextView
android:id="@+id/cant_silence_or_block"
android:layout_width="match_parent"
android:layout_height="48dp"
android:gravity="center_vertical"
style="@style/TextAppearance.NotificationGuts.Radio"
android:text="@string/cant_silence_or_block"
android:visibility="gone"
/>
<!-- Importance slider --> <!-- Importance slider -->
<LinearLayout <LinearLayout
android:id="@+id/importance_slider" android:id="@+id/importance_slider"

View File

@@ -1666,7 +1666,10 @@
<!-- accessibility label for button to edit quick settings [CHAR LIMIT=NONE] --> <!-- accessibility label for button to edit quick settings [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_edit">Edit order of settings.</string> <string name="accessibility_quick_settings_edit">Edit order of settings.</string>
<!-- accessibility label for paging indicator in quick settings [CHAR LIMITi=NONE] --> <!-- accessibility label for paging indicator in quick settings [CHAR LIMIT=NONE] -->
<string name="accessibility_quick_settings_page">Page <xliff:g name="current_page" example="1">%1$d</xliff:g> of <xliff:g name="num_pages" example="2">%2$d</xliff:g></string> <string name="accessibility_quick_settings_page">Page <xliff:g name="current_page" example="1">%1$d</xliff:g> of <xliff:g name="num_pages" example="2">%2$d</xliff:g></string>
<!-- Label that replaces other notification controls when the notification is from the system
and cannot be silenced (see @string/show_silently) or blocked (see @string/block) -->
<string name="cant_silence_or_block">Notifications can\'t be silenced or blocked</string>
</resources> </resources>

View File

@@ -829,7 +829,7 @@ public abstract class BaseStatusBar extends SystemUI implements
Slog.e(TAG, "Failed to register VR mode state listener: " + e); Slog.e(TAG, "Failed to register VR mode state listener: " + e);
} }
mNonBlockablePkgs = new HashSet<String>(); mNonBlockablePkgs = new ArraySet<String>();
Collections.addAll(mNonBlockablePkgs, mContext.getResources().getStringArray( Collections.addAll(mNonBlockablePkgs, mContext.getResources().getStringArray(
com.android.internal.R.array.config_nonBlockableNotificationPackages)); com.android.internal.R.array.config_nonBlockableNotificationPackages));
} }

View File

@@ -184,6 +184,20 @@ public class NotificationGuts extends LinearLayout implements TunerService.Tunab
mINotificationManager.getImportance(sbn.getPackageName(), sbn.getUid()); mINotificationManager.getImportance(sbn.getPackageName(), sbn.getUid());
} catch (RemoteException e) {} } catch (RemoteException e) {}
mNotificationImportance = importance; mNotificationImportance = importance;
final View importanceSlider = findViewById(R.id.importance_slider);
final View importanceButtons = findViewById(R.id.importance_buttons);
final View cantTouchThis = findViewById(R.id.cant_silence_or_block);
final boolean essentialPackage =
(nonBlockablePkgs != null && nonBlockablePkgs.contains(sbn.getPackageName()));
if (essentialPackage) {
importanceButtons.setVisibility(View.GONE);
importanceSlider.setVisibility(View.GONE);
cantTouchThis.setVisibility(View.VISIBLE);
} else {
cantTouchThis.setVisibility(View.GONE);
boolean nonBlockable = false; boolean nonBlockable = false;
try { try {
final PackageInfo info = final PackageInfo info =
@@ -192,12 +206,7 @@ public class NotificationGuts extends LinearLayout implements TunerService.Tunab
} catch (PackageManager.NameNotFoundException e) { } catch (PackageManager.NameNotFoundException e) {
// unlikely. // unlikely.
} }
if (nonBlockablePkgs != null) {
nonBlockable |= nonBlockablePkgs.contains(sbn.getPackageName());
}
final View importanceSlider = findViewById(R.id.importance_slider);
final View importanceButtons = findViewById(R.id.importance_buttons);
if (mShowSlider) { if (mShowSlider) {
bindSlider(importanceSlider, nonBlockable); bindSlider(importanceSlider, nonBlockable);
importanceSlider.setVisibility(View.VISIBLE); importanceSlider.setVisibility(View.VISIBLE);
@@ -208,6 +217,7 @@ public class NotificationGuts extends LinearLayout implements TunerService.Tunab
importanceSlider.setVisibility(View.GONE); importanceSlider.setVisibility(View.GONE);
} }
} }
}
public boolean hasImportanceChanged() { public boolean hasImportanceChanged() {
return mStartingUserImportance != getSelectedImportance(); return mStartingUserImportance != getSelectedImportance();