Update zen introduction text
am: c12676b449
Change-Id: Ibe776e22adc0fa87817d07547364ac1885e1518c
This commit is contained in:
@@ -29,6 +29,52 @@
|
|||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:background="@color/qs_tile_divider" />
|
android:background="@color/qs_tile_divider" />
|
||||||
|
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:id="@+id/zen_introduction"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="16dp"
|
||||||
|
android:layout_marginEnd="16dp"
|
||||||
|
android:paddingTop="8dp"
|
||||||
|
android:paddingBottom="8dp"
|
||||||
|
android:background="@drawable/zen_introduction_message_background"
|
||||||
|
android:theme="@*android:style/ThemeOverlay.DeviceDefault.Accent.Light">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/zen_introduction_confirm"
|
||||||
|
android:layout_width="48dp"
|
||||||
|
android:layout_height="48dp"
|
||||||
|
android:layout_marginEnd="8dp"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:background="@drawable/btn_borderless_rect"
|
||||||
|
android:clickable="true"
|
||||||
|
android:contentDescription="@string/accessibility_desc_close"
|
||||||
|
android:scaleType="center"
|
||||||
|
android:src="@drawable/ic_close"
|
||||||
|
android:tint="@android:color/white" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/zen_introduction_message"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="12dp"
|
||||||
|
android:layout_marginStart="24dp"
|
||||||
|
android:textDirection="locale"
|
||||||
|
android:lineSpacingMultiplier="1.20029"
|
||||||
|
android:layout_toStartOf="@id/zen_introduction_confirm"
|
||||||
|
android:text="@string/zen_alarms_introduction"
|
||||||
|
android:textAppearance="@style/TextAppearance.QS.Introduction" />
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="16dp"
|
||||||
|
android:layout_below="@id/zen_introduction_message"
|
||||||
|
android:layout_alignParentEnd="true" />
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
|||||||
@@ -838,7 +838,10 @@
|
|||||||
<string name="description_direction_left">"Slide left for <xliff:g id="target_description" example="Unlock">%s</xliff:g>.</string>
|
<string name="description_direction_left">"Slide left for <xliff:g id="target_description" example="Unlock">%s</xliff:g>.</string>
|
||||||
|
|
||||||
<!-- Zen mode: Priority only introduction message on first use -->
|
<!-- Zen mode: Priority only introduction message on first use -->
|
||||||
<string name="zen_priority_introduction">You won’t be disturbed by sounds and vibrations, except from alarms, reminders, events, and callers you specify.</string>
|
<string name="zen_priority_introduction">You won’t be disturbed by sounds and vibrations, except from alarms, reminders, events, and callers you specify. You'll still hear anything you choose to play including music, videos, and games.</string>
|
||||||
|
|
||||||
|
<!-- Zen mode: Alarms only introduction message on first use -->
|
||||||
|
<string name="zen_alarms_introduction">You won’t be disturbed by sounds and vibrations, except from alarms. You'll still hear anything you choose to play including music, videos, and games.</string>
|
||||||
|
|
||||||
<!-- Zen mode: Priority only customization button label -->
|
<!-- Zen mode: Priority only customization button label -->
|
||||||
<string name="zen_priority_customize_button">Customize</string>
|
<string name="zen_priority_customize_button">Customize</string>
|
||||||
@@ -1211,7 +1214,7 @@
|
|||||||
<string name="zen_mode_and_condition"><xliff:g id="zen_mode" example="Priority interruptions only">%1$s</xliff:g>. <xliff:g id="exit_condition" example="For one hour">%2$s</xliff:g></string>
|
<string name="zen_mode_and_condition"><xliff:g id="zen_mode" example="Priority interruptions only">%1$s</xliff:g>. <xliff:g id="exit_condition" example="For one hour">%2$s</xliff:g></string>
|
||||||
|
|
||||||
<!-- Button label for ending zen mode in the volume dialog -->
|
<!-- Button label for ending zen mode in the volume dialog -->
|
||||||
<string name="volume_zen_end_now">End now</string>
|
<string name="volume_zen_end_now">Turn off now</string>
|
||||||
|
|
||||||
<!-- Content description for accessibility (not shown on the screen): volume dialog expand button. [CHAR LIMIT=NONE] -->
|
<!-- Content description for accessibility (not shown on the screen): volume dialog expand button. [CHAR LIMIT=NONE] -->
|
||||||
<string name="accessibility_volume_expand">Expand</string>
|
<string name="accessibility_volume_expand">Expand</string>
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ public final class Prefs {
|
|||||||
String DND_TILE_COMBINED_ICON = "DndTileCombinedIcon";
|
String DND_TILE_COMBINED_ICON = "DndTileCombinedIcon";
|
||||||
String DND_CONFIRMED_PRIORITY_INTRODUCTION = "DndConfirmedPriorityIntroduction";
|
String DND_CONFIRMED_PRIORITY_INTRODUCTION = "DndConfirmedPriorityIntroduction";
|
||||||
String DND_CONFIRMED_SILENCE_INTRODUCTION = "DndConfirmedSilenceIntroduction";
|
String DND_CONFIRMED_SILENCE_INTRODUCTION = "DndConfirmedSilenceIntroduction";
|
||||||
|
String DND_CONFIRMED_ALARM_INTRODUCTION = "DndConfirmedAlarmIntroduction";
|
||||||
String DND_FAVORITE_BUCKET_INDEX = "DndCountdownMinuteIndex";
|
String DND_FAVORITE_BUCKET_INDEX = "DndCountdownMinuteIndex";
|
||||||
String DND_NONE_SELECTED = "DndNoneSelected";
|
String DND_NONE_SELECTED = "DndNoneSelected";
|
||||||
String DND_FAVORITE_ZEN = "DndFavoriteZen";
|
String DND_FAVORITE_ZEN = "DndFavoriteZen";
|
||||||
|
|||||||
@@ -642,7 +642,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable {
|
|||||||
updateVolumeRowSliderTintH(row, isActive);
|
updateVolumeRowSliderTintH(row, isActive);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void trimObsoleteH() {
|
private void trimObsoleteH() {
|
||||||
@@ -695,28 +694,25 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable {
|
|||||||
final boolean visible = mState.zenMode != Global.ZEN_MODE_OFF
|
final boolean visible = mState.zenMode != Global.ZEN_MODE_OFF
|
||||||
&& (mAudioManager.isStreamAffectedByRingerMode(mActiveStream) || mExpanded)
|
&& (mAudioManager.isStreamAffectedByRingerMode(mActiveStream) || mExpanded)
|
||||||
&& !mZenPanel.isEditing();
|
&& !mZenPanel.isEditing();
|
||||||
TransitionManager.beginDelayedTransition(mDialogView, getTransistion());
|
|
||||||
if (wasVisible != visible && !visible) {
|
if (wasVisible != visible) {
|
||||||
prepareForCollapse();
|
mZenFooter.update();
|
||||||
|
Util.setVisOrGone(mZenFooter, visible);
|
||||||
}
|
}
|
||||||
Util.setVisOrGone(mZenFooter, visible);
|
|
||||||
mZenFooter.update();
|
|
||||||
|
|
||||||
final boolean fullWasVisible = mZenPanel.getVisibility() == View.VISIBLE;
|
final boolean fullWasVisible = mZenPanel.getVisibility() == View.VISIBLE;
|
||||||
final boolean fullVisible = mShowFullZen && !visible;
|
final boolean fullVisible = mShowFullZen && !visible;
|
||||||
if (fullWasVisible != fullVisible && !fullVisible) {
|
if (fullWasVisible != fullVisible) {
|
||||||
prepareForCollapse();
|
Util.setVisOrGone(mZenPanel, fullVisible);
|
||||||
}
|
if (fullVisible) {
|
||||||
Util.setVisOrGone(mZenPanel, fullVisible);
|
mZenPanel.setZenState(mState.zenMode);
|
||||||
if (fullVisible) {
|
mZenPanel.setDoneListener(new OnClickListener() {
|
||||||
mZenPanel.setZenState(mState.zenMode);
|
@Override
|
||||||
mZenPanel.setDoneListener(new OnClickListener() {
|
public void onClick(View v) {
|
||||||
@Override
|
mHandler.sendEmptyMessage(H.UPDATE_FOOTER);
|
||||||
public void onClick(View v) {
|
}
|
||||||
prepareForCollapse();
|
});
|
||||||
mHandler.sendEmptyMessage(H.UPDATE_FOOTER);
|
}
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,12 +20,16 @@ import android.animation.ValueAnimator;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.provider.Settings.Global;
|
import android.provider.Settings.Global;
|
||||||
import android.service.notification.ZenModeConfig;
|
import android.service.notification.ZenModeConfig;
|
||||||
|
import android.transition.AutoTransition;
|
||||||
|
import android.transition.TransitionManager;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import com.android.systemui.Prefs;
|
||||||
import com.android.systemui.R;
|
import com.android.systemui.R;
|
||||||
import com.android.systemui.statusbar.policy.ZenModeController;
|
import com.android.systemui.statusbar.policy.ZenModeController;
|
||||||
|
|
||||||
@@ -44,6 +48,9 @@ public class ZenFooter extends LinearLayout {
|
|||||||
private TextView mSummaryLine1;
|
private TextView mSummaryLine1;
|
||||||
private TextView mSummaryLine2;
|
private TextView mSummaryLine2;
|
||||||
private TextView mEndNowButton;
|
private TextView mEndNowButton;
|
||||||
|
private View mZenIntroduction;
|
||||||
|
private View mZenIntroductionConfirm;
|
||||||
|
private TextView mZenIntroductionMessage;
|
||||||
private int mZen = -1;
|
private int mZen = -1;
|
||||||
private ZenModeConfig mConfig;
|
private ZenModeConfig mConfig;
|
||||||
private ZenModeController mController;
|
private ZenModeController mController;
|
||||||
@@ -64,6 +71,17 @@ public class ZenFooter extends LinearLayout {
|
|||||||
mSummaryLine1 = findViewById(R.id.volume_zen_summary_line_1);
|
mSummaryLine1 = findViewById(R.id.volume_zen_summary_line_1);
|
||||||
mSummaryLine2 = findViewById(R.id.volume_zen_summary_line_2);
|
mSummaryLine2 = findViewById(R.id.volume_zen_summary_line_2);
|
||||||
mEndNowButton = findViewById(R.id.volume_zen_end_now);
|
mEndNowButton = findViewById(R.id.volume_zen_end_now);
|
||||||
|
mZenIntroduction = findViewById(R.id.zen_introduction);
|
||||||
|
mZenIntroductionMessage = findViewById(R.id.zen_introduction_message);
|
||||||
|
mConfigurableTexts.add(mZenIntroductionMessage, R.string.zen_alarms_introduction);
|
||||||
|
mZenIntroductionConfirm = findViewById(R.id.zen_introduction_confirm);
|
||||||
|
mZenIntroductionConfirm.setOnClickListener(new OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
confirmZenIntroduction();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Util.setVisOrGone(mZenIntroduction, shouldShowIntroduction());
|
||||||
mConfigurableTexts.add(mSummaryLine1);
|
mConfigurableTexts.add(mSummaryLine1);
|
||||||
mConfigurableTexts.add(mSummaryLine2);
|
mConfigurableTexts.add(mSummaryLine2);
|
||||||
mConfigurableTexts.add(mEndNowButton, R.string.volume_zen_end_now);
|
mConfigurableTexts.add(mEndNowButton, R.string.volume_zen_end_now);
|
||||||
@@ -73,6 +91,7 @@ public class ZenFooter extends LinearLayout {
|
|||||||
mEndNowButton.setOnClickListener(new OnClickListener() {
|
mEndNowButton.setOnClickListener(new OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
|
setZen(Global.ZEN_MODE_OFF);
|
||||||
controller.setZen(Global.ZEN_MODE_OFF, null, TAG);
|
controller.setZen(Global.ZEN_MODE_OFF, null, TAG);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -81,6 +100,7 @@ public class ZenFooter extends LinearLayout {
|
|||||||
mController = controller;
|
mController = controller;
|
||||||
mController.addCallback(mZenCallback);
|
mController.addCallback(mZenCallback);
|
||||||
update();
|
update();
|
||||||
|
updateIntroduction();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void cleanup() {
|
public void cleanup() {
|
||||||
@@ -91,6 +111,7 @@ public class ZenFooter extends LinearLayout {
|
|||||||
if (mZen == zen) return;
|
if (mZen == zen) return;
|
||||||
mZen = zen;
|
mZen = zen;
|
||||||
update();
|
update();
|
||||||
|
updateIntroduction();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setConfig(ZenModeConfig config) {
|
private void setConfig(ZenModeConfig config) {
|
||||||
@@ -99,8 +120,9 @@ public class ZenFooter extends LinearLayout {
|
|||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isZen() {
|
private void confirmZenIntroduction() {
|
||||||
return isZenPriority() || isZenAlarms() || isZenNone();
|
Prefs.putBoolean(mContext, Prefs.Key.DND_CONFIRMED_ALARM_INTRODUCTION, true);
|
||||||
|
updateIntroduction();
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isZenPriority() {
|
private boolean isZenPriority() {
|
||||||
@@ -128,6 +150,15 @@ public class ZenFooter extends LinearLayout {
|
|||||||
mController.getCurrentUser(), true /*shortVersion*/);
|
mController.getCurrentUser(), true /*shortVersion*/);
|
||||||
Util.setText(mSummaryLine2, line2);
|
Util.setText(mSummaryLine2, line2);
|
||||||
}
|
}
|
||||||
|
public boolean shouldShowIntroduction() {
|
||||||
|
final boolean confirmed = Prefs.getBoolean(mContext,
|
||||||
|
Prefs.Key.DND_CONFIRMED_ALARM_INTRODUCTION, false);
|
||||||
|
return !confirmed && isZenAlarms();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updateIntroduction() {
|
||||||
|
Util.setVisOrGone(mZenIntroduction, shouldShowIntroduction());
|
||||||
|
}
|
||||||
|
|
||||||
public void onConfigurationChanged() {
|
public void onConfigurationChanged() {
|
||||||
mConfigurableTexts.update();
|
mConfigurableTexts.update();
|
||||||
|
|||||||
@@ -284,6 +284,8 @@ public class ZenModePanel extends FrameLayout {
|
|||||||
return Prefs.Key.DND_CONFIRMED_PRIORITY_INTRODUCTION;
|
return Prefs.Key.DND_CONFIRMED_PRIORITY_INTRODUCTION;
|
||||||
case Global.ZEN_MODE_NO_INTERRUPTIONS:
|
case Global.ZEN_MODE_NO_INTERRUPTIONS:
|
||||||
return Prefs.Key.DND_CONFIRMED_SILENCE_INTRODUCTION;
|
return Prefs.Key.DND_CONFIRMED_SILENCE_INTRODUCTION;
|
||||||
|
case Global.ZEN_MODE_ALARMS:
|
||||||
|
return Prefs.Key.DND_CONFIRMED_ALARM_INTRODUCTION;
|
||||||
default:
|
default:
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -523,16 +525,22 @@ public class ZenModePanel extends FrameLayout {
|
|||||||
final int zen = getSelectedZen(Global.ZEN_MODE_OFF);
|
final int zen = getSelectedZen(Global.ZEN_MODE_OFF);
|
||||||
final boolean zenImportant = zen == Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS;
|
final boolean zenImportant = zen == Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS;
|
||||||
final boolean zenNone = zen == Global.ZEN_MODE_NO_INTERRUPTIONS;
|
final boolean zenNone = zen == Global.ZEN_MODE_NO_INTERRUPTIONS;
|
||||||
|
final boolean zenAlarm = zen == Global.ZEN_MODE_ALARMS;
|
||||||
final boolean introduction = (zenImportant && !mPrefs.mConfirmedPriorityIntroduction
|
final boolean introduction = (zenImportant && !mPrefs.mConfirmedPriorityIntroduction
|
||||||
|| zenNone && !mPrefs.mConfirmedSilenceIntroduction);
|
|| zenNone && !mPrefs.mConfirmedSilenceIntroduction
|
||||||
|
|| zenAlarm && !mPrefs.mConfirmedAlarmIntroduction);
|
||||||
|
|
||||||
mZenButtons.setVisibility(mHidden ? GONE : VISIBLE);
|
mZenButtons.setVisibility(mHidden ? GONE : VISIBLE);
|
||||||
mZenIntroduction.setVisibility(introduction ? VISIBLE : GONE);
|
mZenIntroduction.setVisibility(introduction ? VISIBLE : GONE);
|
||||||
if (introduction) {
|
if (introduction) {
|
||||||
mConfigurableTexts.add(mZenIntroductionMessage, zenImportant
|
int message = zenImportant
|
||||||
? R.string.zen_priority_introduction
|
? R.string.zen_priority_introduction
|
||||||
: mVoiceCapable ? R.string.zen_silence_introduction_voice
|
: zenAlarm
|
||||||
: R.string.zen_silence_introduction);
|
? R.string.zen_alarms_introduction
|
||||||
|
: mVoiceCapable
|
||||||
|
? R.string.zen_silence_introduction_voice
|
||||||
|
: R.string.zen_silence_introduction;
|
||||||
|
mConfigurableTexts.add(mZenIntroductionMessage, message);
|
||||||
mConfigurableTexts.update();
|
mConfigurableTexts.update();
|
||||||
mZenIntroductionCustomize.setVisibility(zenImportant ? VISIBLE : GONE);
|
mZenIntroductionCustomize.setVisibility(zenImportant ? VISIBLE : GONE);
|
||||||
}
|
}
|
||||||
@@ -963,6 +971,7 @@ public class ZenModePanel extends FrameLayout {
|
|||||||
private int mNoneSelected;
|
private int mNoneSelected;
|
||||||
private boolean mConfirmedPriorityIntroduction;
|
private boolean mConfirmedPriorityIntroduction;
|
||||||
private boolean mConfirmedSilenceIntroduction;
|
private boolean mConfirmedSilenceIntroduction;
|
||||||
|
private boolean mConfirmedAlarmIntroduction;
|
||||||
|
|
||||||
private ZenPrefs() {
|
private ZenPrefs() {
|
||||||
mNoneDangerousThreshold = mContext.getResources()
|
mNoneDangerousThreshold = mContext.getResources()
|
||||||
@@ -972,6 +981,7 @@ public class ZenModePanel extends FrameLayout {
|
|||||||
updateNoneSelected();
|
updateNoneSelected();
|
||||||
updateConfirmedPriorityIntroduction();
|
updateConfirmedPriorityIntroduction();
|
||||||
updateConfirmedSilenceIntroduction();
|
updateConfirmedSilenceIntroduction();
|
||||||
|
updateConfirmedAlarmIntroduction();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void trackNoneSelected() {
|
public void trackNoneSelected() {
|
||||||
@@ -999,6 +1009,7 @@ public class ZenModePanel extends FrameLayout {
|
|||||||
updateNoneSelected();
|
updateNoneSelected();
|
||||||
updateConfirmedPriorityIntroduction();
|
updateConfirmedPriorityIntroduction();
|
||||||
updateConfirmedSilenceIntroduction();
|
updateConfirmedSilenceIntroduction();
|
||||||
|
updateConfirmedAlarmIntroduction();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateMinuteIndex() {
|
private void updateMinuteIndex() {
|
||||||
@@ -1038,6 +1049,15 @@ public class ZenModePanel extends FrameLayout {
|
|||||||
if (DEBUG) Log.d(mTag, "Confirmed silence introduction: "
|
if (DEBUG) Log.d(mTag, "Confirmed silence introduction: "
|
||||||
+ mConfirmedSilenceIntroduction);
|
+ mConfirmedSilenceIntroduction);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void updateConfirmedAlarmIntroduction() {
|
||||||
|
final boolean confirmed = Prefs.getBoolean(mContext,
|
||||||
|
Prefs.Key.DND_CONFIRMED_ALARM_INTRODUCTION, false);
|
||||||
|
if (confirmed == mConfirmedAlarmIntroduction) return;
|
||||||
|
mConfirmedAlarmIntroduction = confirmed;
|
||||||
|
if (DEBUG) Log.d(mTag, "Confirmed alarm introduction: "
|
||||||
|
+ mConfirmedAlarmIntroduction);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected final SegmentedButtons.Callback mZenButtonsCallback = new SegmentedButtons.Callback() {
|
protected final SegmentedButtons.Callback mZenButtonsCallback = new SegmentedButtons.Callback() {
|
||||||
|
|||||||
Reference in New Issue
Block a user