Loading packages/SystemUI/res/layout/volume_dialog.xml +0 −35 Original line number Diff line number Diff line Loading @@ -34,44 +34,9 @@ android:id="@+id/volume_dialog_rows" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingEnd="@dimen/volume_button_size" android:orientation="vertical" > <!-- volume rows added and removed here! :-) --> </LinearLayout> <include layout="@layout/volume_zen_footer" /> <!-- Only shown from Tuner setting --> <include layout="@layout/tuner_zen_mode_panel" /> </LinearLayout> <LinearLayout android:id="@+id/volume_dialog_content" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:layout_alignParentEnd="true" android:layout_alignParentTop="true" android:layout_marginEnd="@dimen/volume_expander_margin_end" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:ellipsize="end" android:maxLines="1" android:textAppearance="@style/TextAppearance.Volume.Header" /> <com.android.keyguard.AlphaOptimizedImageButton xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/volume_expand_button" style="@style/VolumeButtons" android:layout_width="@dimen/volume_button_size" android:layout_height="@dimen/volume_button_size" android:clickable="true" android:soundEffectsEnabled="false" android:src="@drawable/ic_volume_collapse_animation" android:background="@drawable/ripple_drawable" tools:ignore="RtlHardcoded" /> </LinearLayout> </RelativeLayout> packages/SystemUI/res/layout/volume_zen_footer.xmldeleted 100644 → 0 +0 −127 Original line number Diff line number Diff line <!-- Copyright (C) 2015 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <com.android.systemui.volume.ZenFooter xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/volume_zen_footer" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:paddingBottom="8dp" > <!-- extends LinearLayout --> <View android:id="@+id/zen_embedded_divider" android:layout_width="match_parent" android:layout_height="1dp" android:layout_marginTop="8dp" 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: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_white_rounded" /> <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 android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal" > <ImageView android:id="@+id/volume_zen_icon" android:layout_width="@dimen/volume_button_size" android:layout_height="@dimen/volume_button_size" android:layout_marginEnd="7dp" android:scaleType="center" /> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" > <TextView android:id="@+id/volume_zen_summary_line_1" android:layout_width="match_parent" android:layout_height="wrap_content" android:textDirection="locale" android:textAppearance="@style/TextAppearance.Volume.ZenSummary" /> <TextView android:id="@+id/volume_zen_summary_line_2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="1dp" android:textDirection="locale" android:textAppearance="@style/TextAppearance.Volume.ZenDetail" /> </LinearLayout> </LinearLayout> <TextView android:id="@+id/volume_zen_end_now" style="@style/QSBorderlessButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end" android:layout_marginEnd="8dp" android:clickable="true" android:focusable="true" android:paddingStart="15dp" android:paddingEnd="15dp" android:text="@string/volume_zen_end_now" android:textColor="?android:attr/colorAccent" android:textAppearance="@style/TextAppearance.QS.DetailButton" /> </com.android.systemui.volume.ZenFooter> packages/SystemUI/res/xml/tuner_prefs.xml +0 −7 Original line number Diff line number Diff line Loading @@ -104,13 +104,6 @@ android:key="volume_and_do_not_disturb" android:title="@string/volume_and_do_not_disturb"> <!-- Action for this is MetricsConstants.ACTION_TUNER_DO_NOT_DISTURB_VOLUME_PANEL --> <com.android.systemui.tuner.TunerSwitch android:key="sysui_show_full_zen" android:title="@string/tuner_full_zen_title" sysui:metricsAction="314" /> <!-- Action for this is MetricsConstants.ACTION_TUNER_DO_NOT_DISTURB_VOLUME_SHORTCUT --> <com.android.systemui.tuner.TunerSwitch Loading packages/SystemUI/src/com/android/systemui/volume/VolumeDialogComponent.java +0 −1 Original line number Diff line number Diff line Loading @@ -96,7 +96,6 @@ public class VolumeDialogComponent implements VolumeComponent, TunerService.Tuna private VolumeDialog createDefault() { VolumeDialogImpl impl = new VolumeDialogImpl(mContext); impl.setStreamImportant(AudioManager.STREAM_ALARM, true); impl.setStreamImportant(AudioManager.STREAM_SYSTEM, false); impl.setAutomute(true); impl.setSilentMode(false); Loading packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java +6 −202 Original line number Diff line number Diff line Loading @@ -26,16 +26,13 @@ import android.annotation.SuppressLint; import android.app.Dialog; import android.app.KeyguardManager; import android.content.Context; import android.content.pm.PackageManager; import android.content.res.ColorStateList; import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Color; import android.graphics.PixelFormat; import android.graphics.Rect; import android.graphics.drawable.AnimatedVectorDrawable; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.media.AudioManager; import android.media.AudioSystem; import android.os.Debug; Loading @@ -44,9 +41,6 @@ import android.os.Looper; import android.os.Message; import android.os.SystemClock; import android.provider.Settings.Global; import android.transition.AutoTransition; import android.transition.Transition; import android.transition.TransitionManager; import android.util.DisplayMetrics; import android.util.Log; import android.util.Slog; Loading Loading @@ -74,16 +68,12 @@ import android.widget.TextView; import com.android.settingslib.Utils; import com.android.systemui.Dependency; import com.android.systemui.Interpolators; import com.android.systemui.Prefs; import com.android.systemui.R; import com.android.systemui.plugins.VolumeDialog; import com.android.systemui.plugins.VolumeDialogController; import com.android.systemui.plugins.VolumeDialogController.State; import com.android.systemui.plugins.VolumeDialogController.StreamState; import com.android.systemui.statusbar.policy.ZenModeController; import com.android.systemui.tuner.TunerService; import com.android.systemui.tuner.TunerZenModePanel; import java.io.PrintWriter; import java.util.ArrayList; Loading @@ -96,7 +86,7 @@ import java.util.List; * * Methods ending in "H" must be called on the (ui) handler. */ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { public class VolumeDialogImpl implements VolumeDialog { private static final String TAG = Util.logTag(VolumeDialogImpl.class); public static final String SHOW_FULL_ZEN = "sysui_show_full_zen"; Loading @@ -113,7 +103,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { private ViewGroup mDialogView; private ViewGroup mDialogRowsView; private ViewGroup mDialogContentView; private ImageButton mExpandButton; private final List<VolumeRow> mRows = new ArrayList<>(); private ConfigurableTexts mConfigurableTexts; private final SparseBooleanArray mDynamic = new SparseBooleanArray(); Loading @@ -121,7 +110,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { private final AudioManager mAudioManager; private final AccessibilityManager mAccessibilityMgr; private int mExpandButtonAnimationDuration; private ZenFooter mZenFooter; private final Object mSafetyWarningLock = new Object(); private final Accessibility mAccessibility = new Accessibility(); private final ColorStateList mActiveSliderTint; Loading @@ -131,7 +119,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { private final ZenModeController mZenModeController; private boolean mShowing; private boolean mExpanded; private boolean mShowA11yStream; private int mActiveStream; Loading @@ -139,7 +126,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { private boolean mAutomute = VolumePrefs.DEFAULT_ENABLE_AUTOMUTE; private boolean mSilentMode = VolumePrefs.DEFAULT_ENABLE_SILENT_MODE; private State mState; private boolean mExpandButtonAnimationRunning; private SafetyWarningDialog mSafetyWarning; private Callback mCallback; private boolean mPendingStateChanged; Loading @@ -148,9 +134,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { private boolean mHovering = false; private int mDensity; private boolean mShowFullZen; private TunerZenModePanel mZenPanel; public VolumeDialogImpl(Context context) { mContext = new ContextThemeWrapper(context, com.android.systemui.R.style.qs_theme); mZenModeController = Dependency.get(ZenModeController.class); Loading @@ -173,7 +156,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { mController.addCallback(mControllerCallbackH, mHandler); mController.getState(); Dependency.get(TunerService.class).addTunable(this, SHOW_FULL_ZEN); final Configuration currentConfig = mContext.getResources().getConfiguration(); mDensity = currentConfig.densityDpi; Loading @@ -183,10 +165,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { public void destroy() { mAccessibility.destroy(); mController.removeCallback(mControllerCallbackH); if (mZenFooter != null) { mZenFooter.cleanup(); } Dependency.get(TunerService.class).removeTunable(this); mHandler.removeCallbacksAndMessages(null); } Loading Loading @@ -234,16 +212,9 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { mDialogContentView = mDialog.findViewById(R.id.volume_dialog_content); mDialogRowsView = mDialogContentView.findViewById(R.id.volume_dialog_rows); mExpanded = false; mExpandButton = (ImageButton) mDialogView.findViewById(R.id.volume_expand_button); mExpandButton.setOnClickListener(mClickExpand); mExpandButton.setVisibility( AudioSystem.isSingleVolume(mContext) ? View.GONE : View.VISIBLE); updateWindowWidthH(); updateExpandButtonH(); mMotion = new VolumeDialogMotion(mDialog, mDialogView, mDialogContentView, mExpandButton, mMotion = new VolumeDialogMotion(mDialog, mDialogView, mDialogContentView, new VolumeDialogMotion.Callback() { @Override public void onAnimatingChanged(boolean animating) { Loading Loading @@ -280,18 +251,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { addExistingRows(); } mExpandButtonAnimationDuration = res.getInteger(R.integer.volume_expand_animation_duration); mZenFooter = (ZenFooter) mDialog.findViewById(R.id.volume_zen_footer); mZenFooter.init(mZenModeController); mZenPanel = (TunerZenModePanel) mDialog.findViewById(R.id.tuner_zen_mode_panel); mZenPanel.init(mZenModeController); mZenPanel.setCallback(mZenPanelCallback); } @Override public void onTuningChanged(String key, String newValue) { if (SHOW_FULL_ZEN.equals(key)) { mShowFullZen = newValue != null && Integer.parseInt(newValue) != 0; } } private ColorStateList loadColorStateList(int colorResId) { Loading Loading @@ -359,11 +318,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { } } private boolean isAttached() { return mDialogContentView != null && mDialogContentView.isAttachedToWindow(); } private VolumeRow getActiveRow() { for (VolumeRow row : mRows) { if (row.stream == mActiveStream) { Loading @@ -383,9 +337,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { public void dump(PrintWriter writer) { writer.println(VolumeDialogImpl.class.getSimpleName() + " state:"); writer.print(" mShowing: "); writer.println(mShowing); writer.print(" mExpanded: "); writer.println(mExpanded); writer.print(" mExpandButtonAnimationRunning: "); writer.println(mExpandButtonAnimationRunning); writer.print(" mActiveStream: "); writer.println(mActiveStream); writer.print(" mDynamic: "); writer.println(mDynamic); writer.print(" mAutomute: "); writer.println(mAutomute); Loading Loading @@ -514,11 +465,7 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { if (mAccessibility.mFeedbackEnabled) return 20000; if (mHovering) return 16000; if (mSafetyWarning != null) return 5000; if (mExpanded || mExpandButtonAnimationRunning) return 5000; if (mActiveStream == AudioManager.STREAM_MUSIC) return 1500; if (mZenFooter.shouldShowIntroduction()) { return 6000; } return 3000; } Loading @@ -530,12 +477,7 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { mHandler.removeMessages(H.SHOW); if (!mShowing) return; mShowing = false; mMotion.startDismiss(new Runnable() { @Override public void run() { updateExpandedH(false /* expanding */, true /* dismissing */); } }); mMotion.startDismiss(); if (mAccessibilityMgr.isEnabled()) { AccessibilityEvent event = AccessibilityEvent.obtain(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED); Loading Loading @@ -579,59 +521,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { mHandler.sendEmptyMessageDelayed(H.UPDATE_BOTTOM_MARGIN, getConservativeCollapseDuration()); } private void updateExpandedH(final boolean expanded, final boolean dismissing) { if (mExpanded == expanded) return; mExpanded = expanded; mExpandButtonAnimationRunning = isAttached(); if (D.BUG) Log.d(TAG, "updateExpandedH " + expanded); updateExpandButtonH(); updateFooterH(); TransitionManager.endTransitions(mDialogView); final VolumeRow activeRow = getActiveRow(); if (!dismissing) { mWindow.setLayout(mWindow.getAttributes().width, ViewGroup.LayoutParams.MATCH_PARENT); TransitionManager.beginDelayedTransition(mDialogView, getTransition()); } updateRowsH(activeRow); rescheduleTimeoutH(); } private void updateExpandButtonH() { if (D.BUG) Log.d(TAG, "updateExpandButtonH"); mExpandButton.setClickable(!mExpandButtonAnimationRunning); if (!(mExpandButtonAnimationRunning && isAttached())) { final int res = mExpanded ? R.drawable.ic_volume_collapse_animation : R.drawable.ic_volume_expand_animation; if (hasTouchFeature()) { mExpandButton.setImageResource(res); } else { // if there is no touch feature, show the volume ringer instead mExpandButton.setImageResource(R.drawable.ic_volume_ringer); mExpandButton.setBackgroundResource(0); // remove gray background emphasis } mExpandButton.setContentDescription(mContext.getString(mExpanded ? R.string.accessibility_volume_collapse : R.string.accessibility_volume_expand)); } if (mExpandButtonAnimationRunning) { final Drawable d = mExpandButton.getDrawable(); if (d instanceof AnimatedVectorDrawable) { // workaround to reset drawable final AnimatedVectorDrawable avd = (AnimatedVectorDrawable) d.getConstantState() .newDrawable(); mExpandButton.setImageDrawable(avd); avd.start(); mHandler.postDelayed(new Runnable() { @Override public void run() { mExpandButtonAnimationRunning = false; updateExpandButtonH(); rescheduleTimeoutH(); } }, mExpandButtonAnimationDuration); } } } private boolean shouldBeVisibleH(VolumeRow row, VolumeRow activeRow) { boolean isActive = row == activeRow; if (row.stream == AudioSystem.STREAM_ACCESSIBILITY) { Loading @@ -639,15 +528,13 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { } // if the active row is accessibility, then continue to display previous // active row since accessibility is dispalyed under it // active row since accessibility is displayed under it if (activeRow.stream == AudioSystem.STREAM_ACCESSIBILITY && row.stream == mPrevActiveStream) { return true; } return mExpanded && row.view.getVisibility() == View.VISIBLE || (mExpanded && (row.important || isActive)) || !mExpanded && isActive; return row.important || isActive; } private void updateRowsH(final VolumeRow activeRow) { Loading Loading @@ -709,38 +596,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { for (VolumeRow row : mRows) { updateVolumeRowH(row); } updateFooterH(); } private void updateFooterH() { if (D.BUG) Log.d(TAG, "updateFooterH"); final boolean wasVisible = mZenFooter.getVisibility() == View.VISIBLE; final boolean visible = mState.zenMode != Global.ZEN_MODE_OFF && (mAudioManager.isStreamAffectedByRingerMode(mActiveStream) || mExpanded) && !mZenPanel.isEditing(); TransitionManager.endTransitions(mDialogView); TransitionManager.beginDelayedTransition(mDialogView, getTransition()); if (wasVisible != visible && !visible) { prepareForCollapse(); } Util.setVisOrGone(mZenFooter, visible); mZenFooter.update(); final boolean fullWasVisible = mZenPanel.getVisibility() == View.VISIBLE; final boolean fullVisible = mShowFullZen && !visible; if (fullWasVisible != fullVisible) { Util.setVisOrGone(mZenPanel, fullVisible); if (fullVisible) { mZenPanel.setZenState(mState.zenMode); mZenPanel.setDoneListener(new OnClickListener() { @Override public void onClick(View v) { mHandler.sendEmptyMessage(H.UPDATE_FOOTER); } }); } } } private void updateVolumeRowH(VolumeRow row) { Loading Loading @@ -860,7 +715,7 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { } private void updateVolumeRowSliderTintH(VolumeRow row, boolean isActive) { if (isActive && mExpanded) { if (isActive) { row.slider.requestFocus(); } final ColorStateList tint = isActive && row.slider.isEnabled() ? mActiveSliderTint Loading Loading @@ -980,43 +835,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { } } private AutoTransition getTransition() { AutoTransition transition = new AutoTransition(); transition.setDuration(mExpandButtonAnimationDuration); transition.setInterpolator(Interpolators.LINEAR_OUT_SLOW_IN); transition.addListener(new Transition.TransitionListener() { @Override public void onTransitionStart(Transition transition) { } @Override public void onTransitionEnd(Transition transition) { mWindow.setLayout( mWindow.getAttributes().width, ViewGroup.LayoutParams.WRAP_CONTENT); } @Override public void onTransitionCancel(Transition transition) { } @Override public void onTransitionPause(Transition transition) { mWindow.setLayout( mWindow.getAttributes().width, ViewGroup.LayoutParams.WRAP_CONTENT); } @Override public void onTransitionResume(Transition transition) { } }); return transition; } private boolean hasTouchFeature() { final PackageManager pm = mContext.getPackageManager(); return pm.hasSystemFeature(PackageManager.FEATURE_TOUCHSCREEN); } private final VolumeDialogController.Callbacks mControllerCallbackH = new VolumeDialogController.Callbacks() { @Override Loading Loading @@ -1050,13 +868,11 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { final int density = newConfig.densityDpi; if (density != mDensity) { mDialog.dismiss(); mZenFooter.cleanup(); initDialog(); mDensity = density; } updateWindowWidthH(); mConfigurableTexts.update(); mZenFooter.onConfigurationChanged(); } @Override Loading Loading @@ -1109,16 +925,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { } }; private final OnClickListener mClickExpand = new OnClickListener() { @Override public void onClick(View v) { if (mExpandButtonAnimationRunning) return; final boolean newExpand = !mExpanded; Events.writeEvent(mContext, Events.EVENT_EXPAND, newExpand); updateExpandedH(newExpand, false /* dismissing */); } }; private final class H extends Handler { private static final int SHOW = 1; private static final int DISMISS = 2; Loading @@ -1128,7 +934,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { private static final int RESCHEDULE_TIMEOUT = 6; private static final int STATE_CHANGED = 7; private static final int UPDATE_BOTTOM_MARGIN = 8; private static final int UPDATE_FOOTER = 9; public H() { super(Looper.getMainLooper()); Loading @@ -1145,7 +950,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { case RESCHEDULE_TIMEOUT: rescheduleTimeoutH(); break; case STATE_CHANGED: onStateChangedH(mState); break; case UPDATE_BOTTOM_MARGIN: updateDialogBottomMarginH(); break; case UPDATE_FOOTER: updateFooterH(); break; } } } Loading Loading
packages/SystemUI/res/layout/volume_dialog.xml +0 −35 Original line number Diff line number Diff line Loading @@ -34,44 +34,9 @@ android:id="@+id/volume_dialog_rows" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingEnd="@dimen/volume_button_size" android:orientation="vertical" > <!-- volume rows added and removed here! :-) --> </LinearLayout> <include layout="@layout/volume_zen_footer" /> <!-- Only shown from Tuner setting --> <include layout="@layout/tuner_zen_mode_panel" /> </LinearLayout> <LinearLayout android:id="@+id/volume_dialog_content" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:layout_alignParentEnd="true" android:layout_alignParentTop="true" android:layout_marginEnd="@dimen/volume_expander_margin_end" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:ellipsize="end" android:maxLines="1" android:textAppearance="@style/TextAppearance.Volume.Header" /> <com.android.keyguard.AlphaOptimizedImageButton xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/volume_expand_button" style="@style/VolumeButtons" android:layout_width="@dimen/volume_button_size" android:layout_height="@dimen/volume_button_size" android:clickable="true" android:soundEffectsEnabled="false" android:src="@drawable/ic_volume_collapse_animation" android:background="@drawable/ripple_drawable" tools:ignore="RtlHardcoded" /> </LinearLayout> </RelativeLayout>
packages/SystemUI/res/layout/volume_zen_footer.xmldeleted 100644 → 0 +0 −127 Original line number Diff line number Diff line <!-- Copyright (C) 2015 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <com.android.systemui.volume.ZenFooter xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/volume_zen_footer" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:paddingBottom="8dp" > <!-- extends LinearLayout --> <View android:id="@+id/zen_embedded_divider" android:layout_width="match_parent" android:layout_height="1dp" android:layout_marginTop="8dp" 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: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_white_rounded" /> <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 android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal" > <ImageView android:id="@+id/volume_zen_icon" android:layout_width="@dimen/volume_button_size" android:layout_height="@dimen/volume_button_size" android:layout_marginEnd="7dp" android:scaleType="center" /> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical" > <TextView android:id="@+id/volume_zen_summary_line_1" android:layout_width="match_parent" android:layout_height="wrap_content" android:textDirection="locale" android:textAppearance="@style/TextAppearance.Volume.ZenSummary" /> <TextView android:id="@+id/volume_zen_summary_line_2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="1dp" android:textDirection="locale" android:textAppearance="@style/TextAppearance.Volume.ZenDetail" /> </LinearLayout> </LinearLayout> <TextView android:id="@+id/volume_zen_end_now" style="@style/QSBorderlessButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end" android:layout_marginEnd="8dp" android:clickable="true" android:focusable="true" android:paddingStart="15dp" android:paddingEnd="15dp" android:text="@string/volume_zen_end_now" android:textColor="?android:attr/colorAccent" android:textAppearance="@style/TextAppearance.QS.DetailButton" /> </com.android.systemui.volume.ZenFooter>
packages/SystemUI/res/xml/tuner_prefs.xml +0 −7 Original line number Diff line number Diff line Loading @@ -104,13 +104,6 @@ android:key="volume_and_do_not_disturb" android:title="@string/volume_and_do_not_disturb"> <!-- Action for this is MetricsConstants.ACTION_TUNER_DO_NOT_DISTURB_VOLUME_PANEL --> <com.android.systemui.tuner.TunerSwitch android:key="sysui_show_full_zen" android:title="@string/tuner_full_zen_title" sysui:metricsAction="314" /> <!-- Action for this is MetricsConstants.ACTION_TUNER_DO_NOT_DISTURB_VOLUME_SHORTCUT --> <com.android.systemui.tuner.TunerSwitch Loading
packages/SystemUI/src/com/android/systemui/volume/VolumeDialogComponent.java +0 −1 Original line number Diff line number Diff line Loading @@ -96,7 +96,6 @@ public class VolumeDialogComponent implements VolumeComponent, TunerService.Tuna private VolumeDialog createDefault() { VolumeDialogImpl impl = new VolumeDialogImpl(mContext); impl.setStreamImportant(AudioManager.STREAM_ALARM, true); impl.setStreamImportant(AudioManager.STREAM_SYSTEM, false); impl.setAutomute(true); impl.setSilentMode(false); Loading
packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java +6 −202 Original line number Diff line number Diff line Loading @@ -26,16 +26,13 @@ import android.annotation.SuppressLint; import android.app.Dialog; import android.app.KeyguardManager; import android.content.Context; import android.content.pm.PackageManager; import android.content.res.ColorStateList; import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Color; import android.graphics.PixelFormat; import android.graphics.Rect; import android.graphics.drawable.AnimatedVectorDrawable; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.media.AudioManager; import android.media.AudioSystem; import android.os.Debug; Loading @@ -44,9 +41,6 @@ import android.os.Looper; import android.os.Message; import android.os.SystemClock; import android.provider.Settings.Global; import android.transition.AutoTransition; import android.transition.Transition; import android.transition.TransitionManager; import android.util.DisplayMetrics; import android.util.Log; import android.util.Slog; Loading Loading @@ -74,16 +68,12 @@ import android.widget.TextView; import com.android.settingslib.Utils; import com.android.systemui.Dependency; import com.android.systemui.Interpolators; import com.android.systemui.Prefs; import com.android.systemui.R; import com.android.systemui.plugins.VolumeDialog; import com.android.systemui.plugins.VolumeDialogController; import com.android.systemui.plugins.VolumeDialogController.State; import com.android.systemui.plugins.VolumeDialogController.StreamState; import com.android.systemui.statusbar.policy.ZenModeController; import com.android.systemui.tuner.TunerService; import com.android.systemui.tuner.TunerZenModePanel; import java.io.PrintWriter; import java.util.ArrayList; Loading @@ -96,7 +86,7 @@ import java.util.List; * * Methods ending in "H" must be called on the (ui) handler. */ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { public class VolumeDialogImpl implements VolumeDialog { private static final String TAG = Util.logTag(VolumeDialogImpl.class); public static final String SHOW_FULL_ZEN = "sysui_show_full_zen"; Loading @@ -113,7 +103,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { private ViewGroup mDialogView; private ViewGroup mDialogRowsView; private ViewGroup mDialogContentView; private ImageButton mExpandButton; private final List<VolumeRow> mRows = new ArrayList<>(); private ConfigurableTexts mConfigurableTexts; private final SparseBooleanArray mDynamic = new SparseBooleanArray(); Loading @@ -121,7 +110,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { private final AudioManager mAudioManager; private final AccessibilityManager mAccessibilityMgr; private int mExpandButtonAnimationDuration; private ZenFooter mZenFooter; private final Object mSafetyWarningLock = new Object(); private final Accessibility mAccessibility = new Accessibility(); private final ColorStateList mActiveSliderTint; Loading @@ -131,7 +119,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { private final ZenModeController mZenModeController; private boolean mShowing; private boolean mExpanded; private boolean mShowA11yStream; private int mActiveStream; Loading @@ -139,7 +126,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { private boolean mAutomute = VolumePrefs.DEFAULT_ENABLE_AUTOMUTE; private boolean mSilentMode = VolumePrefs.DEFAULT_ENABLE_SILENT_MODE; private State mState; private boolean mExpandButtonAnimationRunning; private SafetyWarningDialog mSafetyWarning; private Callback mCallback; private boolean mPendingStateChanged; Loading @@ -148,9 +134,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { private boolean mHovering = false; private int mDensity; private boolean mShowFullZen; private TunerZenModePanel mZenPanel; public VolumeDialogImpl(Context context) { mContext = new ContextThemeWrapper(context, com.android.systemui.R.style.qs_theme); mZenModeController = Dependency.get(ZenModeController.class); Loading @@ -173,7 +156,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { mController.addCallback(mControllerCallbackH, mHandler); mController.getState(); Dependency.get(TunerService.class).addTunable(this, SHOW_FULL_ZEN); final Configuration currentConfig = mContext.getResources().getConfiguration(); mDensity = currentConfig.densityDpi; Loading @@ -183,10 +165,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { public void destroy() { mAccessibility.destroy(); mController.removeCallback(mControllerCallbackH); if (mZenFooter != null) { mZenFooter.cleanup(); } Dependency.get(TunerService.class).removeTunable(this); mHandler.removeCallbacksAndMessages(null); } Loading Loading @@ -234,16 +212,9 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { mDialogContentView = mDialog.findViewById(R.id.volume_dialog_content); mDialogRowsView = mDialogContentView.findViewById(R.id.volume_dialog_rows); mExpanded = false; mExpandButton = (ImageButton) mDialogView.findViewById(R.id.volume_expand_button); mExpandButton.setOnClickListener(mClickExpand); mExpandButton.setVisibility( AudioSystem.isSingleVolume(mContext) ? View.GONE : View.VISIBLE); updateWindowWidthH(); updateExpandButtonH(); mMotion = new VolumeDialogMotion(mDialog, mDialogView, mDialogContentView, mExpandButton, mMotion = new VolumeDialogMotion(mDialog, mDialogView, mDialogContentView, new VolumeDialogMotion.Callback() { @Override public void onAnimatingChanged(boolean animating) { Loading Loading @@ -280,18 +251,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { addExistingRows(); } mExpandButtonAnimationDuration = res.getInteger(R.integer.volume_expand_animation_duration); mZenFooter = (ZenFooter) mDialog.findViewById(R.id.volume_zen_footer); mZenFooter.init(mZenModeController); mZenPanel = (TunerZenModePanel) mDialog.findViewById(R.id.tuner_zen_mode_panel); mZenPanel.init(mZenModeController); mZenPanel.setCallback(mZenPanelCallback); } @Override public void onTuningChanged(String key, String newValue) { if (SHOW_FULL_ZEN.equals(key)) { mShowFullZen = newValue != null && Integer.parseInt(newValue) != 0; } } private ColorStateList loadColorStateList(int colorResId) { Loading Loading @@ -359,11 +318,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { } } private boolean isAttached() { return mDialogContentView != null && mDialogContentView.isAttachedToWindow(); } private VolumeRow getActiveRow() { for (VolumeRow row : mRows) { if (row.stream == mActiveStream) { Loading @@ -383,9 +337,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { public void dump(PrintWriter writer) { writer.println(VolumeDialogImpl.class.getSimpleName() + " state:"); writer.print(" mShowing: "); writer.println(mShowing); writer.print(" mExpanded: "); writer.println(mExpanded); writer.print(" mExpandButtonAnimationRunning: "); writer.println(mExpandButtonAnimationRunning); writer.print(" mActiveStream: "); writer.println(mActiveStream); writer.print(" mDynamic: "); writer.println(mDynamic); writer.print(" mAutomute: "); writer.println(mAutomute); Loading Loading @@ -514,11 +465,7 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { if (mAccessibility.mFeedbackEnabled) return 20000; if (mHovering) return 16000; if (mSafetyWarning != null) return 5000; if (mExpanded || mExpandButtonAnimationRunning) return 5000; if (mActiveStream == AudioManager.STREAM_MUSIC) return 1500; if (mZenFooter.shouldShowIntroduction()) { return 6000; } return 3000; } Loading @@ -530,12 +477,7 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { mHandler.removeMessages(H.SHOW); if (!mShowing) return; mShowing = false; mMotion.startDismiss(new Runnable() { @Override public void run() { updateExpandedH(false /* expanding */, true /* dismissing */); } }); mMotion.startDismiss(); if (mAccessibilityMgr.isEnabled()) { AccessibilityEvent event = AccessibilityEvent.obtain(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED); Loading Loading @@ -579,59 +521,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { mHandler.sendEmptyMessageDelayed(H.UPDATE_BOTTOM_MARGIN, getConservativeCollapseDuration()); } private void updateExpandedH(final boolean expanded, final boolean dismissing) { if (mExpanded == expanded) return; mExpanded = expanded; mExpandButtonAnimationRunning = isAttached(); if (D.BUG) Log.d(TAG, "updateExpandedH " + expanded); updateExpandButtonH(); updateFooterH(); TransitionManager.endTransitions(mDialogView); final VolumeRow activeRow = getActiveRow(); if (!dismissing) { mWindow.setLayout(mWindow.getAttributes().width, ViewGroup.LayoutParams.MATCH_PARENT); TransitionManager.beginDelayedTransition(mDialogView, getTransition()); } updateRowsH(activeRow); rescheduleTimeoutH(); } private void updateExpandButtonH() { if (D.BUG) Log.d(TAG, "updateExpandButtonH"); mExpandButton.setClickable(!mExpandButtonAnimationRunning); if (!(mExpandButtonAnimationRunning && isAttached())) { final int res = mExpanded ? R.drawable.ic_volume_collapse_animation : R.drawable.ic_volume_expand_animation; if (hasTouchFeature()) { mExpandButton.setImageResource(res); } else { // if there is no touch feature, show the volume ringer instead mExpandButton.setImageResource(R.drawable.ic_volume_ringer); mExpandButton.setBackgroundResource(0); // remove gray background emphasis } mExpandButton.setContentDescription(mContext.getString(mExpanded ? R.string.accessibility_volume_collapse : R.string.accessibility_volume_expand)); } if (mExpandButtonAnimationRunning) { final Drawable d = mExpandButton.getDrawable(); if (d instanceof AnimatedVectorDrawable) { // workaround to reset drawable final AnimatedVectorDrawable avd = (AnimatedVectorDrawable) d.getConstantState() .newDrawable(); mExpandButton.setImageDrawable(avd); avd.start(); mHandler.postDelayed(new Runnable() { @Override public void run() { mExpandButtonAnimationRunning = false; updateExpandButtonH(); rescheduleTimeoutH(); } }, mExpandButtonAnimationDuration); } } } private boolean shouldBeVisibleH(VolumeRow row, VolumeRow activeRow) { boolean isActive = row == activeRow; if (row.stream == AudioSystem.STREAM_ACCESSIBILITY) { Loading @@ -639,15 +528,13 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { } // if the active row is accessibility, then continue to display previous // active row since accessibility is dispalyed under it // active row since accessibility is displayed under it if (activeRow.stream == AudioSystem.STREAM_ACCESSIBILITY && row.stream == mPrevActiveStream) { return true; } return mExpanded && row.view.getVisibility() == View.VISIBLE || (mExpanded && (row.important || isActive)) || !mExpanded && isActive; return row.important || isActive; } private void updateRowsH(final VolumeRow activeRow) { Loading Loading @@ -709,38 +596,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { for (VolumeRow row : mRows) { updateVolumeRowH(row); } updateFooterH(); } private void updateFooterH() { if (D.BUG) Log.d(TAG, "updateFooterH"); final boolean wasVisible = mZenFooter.getVisibility() == View.VISIBLE; final boolean visible = mState.zenMode != Global.ZEN_MODE_OFF && (mAudioManager.isStreamAffectedByRingerMode(mActiveStream) || mExpanded) && !mZenPanel.isEditing(); TransitionManager.endTransitions(mDialogView); TransitionManager.beginDelayedTransition(mDialogView, getTransition()); if (wasVisible != visible && !visible) { prepareForCollapse(); } Util.setVisOrGone(mZenFooter, visible); mZenFooter.update(); final boolean fullWasVisible = mZenPanel.getVisibility() == View.VISIBLE; final boolean fullVisible = mShowFullZen && !visible; if (fullWasVisible != fullVisible) { Util.setVisOrGone(mZenPanel, fullVisible); if (fullVisible) { mZenPanel.setZenState(mState.zenMode); mZenPanel.setDoneListener(new OnClickListener() { @Override public void onClick(View v) { mHandler.sendEmptyMessage(H.UPDATE_FOOTER); } }); } } } private void updateVolumeRowH(VolumeRow row) { Loading Loading @@ -860,7 +715,7 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { } private void updateVolumeRowSliderTintH(VolumeRow row, boolean isActive) { if (isActive && mExpanded) { if (isActive) { row.slider.requestFocus(); } final ColorStateList tint = isActive && row.slider.isEnabled() ? mActiveSliderTint Loading Loading @@ -980,43 +835,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { } } private AutoTransition getTransition() { AutoTransition transition = new AutoTransition(); transition.setDuration(mExpandButtonAnimationDuration); transition.setInterpolator(Interpolators.LINEAR_OUT_SLOW_IN); transition.addListener(new Transition.TransitionListener() { @Override public void onTransitionStart(Transition transition) { } @Override public void onTransitionEnd(Transition transition) { mWindow.setLayout( mWindow.getAttributes().width, ViewGroup.LayoutParams.WRAP_CONTENT); } @Override public void onTransitionCancel(Transition transition) { } @Override public void onTransitionPause(Transition transition) { mWindow.setLayout( mWindow.getAttributes().width, ViewGroup.LayoutParams.WRAP_CONTENT); } @Override public void onTransitionResume(Transition transition) { } }); return transition; } private boolean hasTouchFeature() { final PackageManager pm = mContext.getPackageManager(); return pm.hasSystemFeature(PackageManager.FEATURE_TOUCHSCREEN); } private final VolumeDialogController.Callbacks mControllerCallbackH = new VolumeDialogController.Callbacks() { @Override Loading Loading @@ -1050,13 +868,11 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { final int density = newConfig.densityDpi; if (density != mDensity) { mDialog.dismiss(); mZenFooter.cleanup(); initDialog(); mDensity = density; } updateWindowWidthH(); mConfigurableTexts.update(); mZenFooter.onConfigurationChanged(); } @Override Loading Loading @@ -1109,16 +925,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { } }; private final OnClickListener mClickExpand = new OnClickListener() { @Override public void onClick(View v) { if (mExpandButtonAnimationRunning) return; final boolean newExpand = !mExpanded; Events.writeEvent(mContext, Events.EVENT_EXPAND, newExpand); updateExpandedH(newExpand, false /* dismissing */); } }; private final class H extends Handler { private static final int SHOW = 1; private static final int DISMISS = 2; Loading @@ -1128,7 +934,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { private static final int RESCHEDULE_TIMEOUT = 6; private static final int STATE_CHANGED = 7; private static final int UPDATE_BOTTOM_MARGIN = 8; private static final int UPDATE_FOOTER = 9; public H() { super(Looper.getMainLooper()); Loading @@ -1145,7 +950,6 @@ public class VolumeDialogImpl implements VolumeDialog, TunerService.Tunable { case RESCHEDULE_TIMEOUT: rescheduleTimeoutH(); break; case STATE_CHANGED: onStateChangedH(mState); break; case UPDATE_BOTTOM_MARGIN: updateDialogBottomMarginH(); break; case UPDATE_FOOTER: updateFooterH(); break; } } } Loading