Merge "Do not animate QSCustomizer when screen off" into qt-qpr1-dev
am: 6fdfdbed1d
Change-Id: I8012329b07b08aeceb4b4e2d101f20b44572ea3c
This commit is contained in:
@@ -38,8 +38,8 @@ import androidx.recyclerview.widget.RecyclerView;
|
|||||||
|
|
||||||
import com.android.internal.logging.MetricsLogger;
|
import com.android.internal.logging.MetricsLogger;
|
||||||
import com.android.internal.logging.nano.MetricsProto;
|
import com.android.internal.logging.nano.MetricsProto;
|
||||||
import com.android.systemui.Dependency;
|
|
||||||
import com.android.systemui.R;
|
import com.android.systemui.R;
|
||||||
|
import com.android.systemui.keyguard.ScreenLifecycle;
|
||||||
import com.android.systemui.plugins.qs.QS;
|
import com.android.systemui.plugins.qs.QS;
|
||||||
import com.android.systemui.plugins.qs.QSTile;
|
import com.android.systemui.plugins.qs.QSTile;
|
||||||
import com.android.systemui.qs.QSDetailClipper;
|
import com.android.systemui.qs.QSDetailClipper;
|
||||||
@@ -52,6 +52,8 @@ import com.android.systemui.statusbar.policy.KeyguardMonitor.Callback;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allows full-screen customization of QS, through show() and hide().
|
* Allows full-screen customization of QS, through show() and hide().
|
||||||
*
|
*
|
||||||
@@ -66,6 +68,8 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene
|
|||||||
|
|
||||||
private final QSDetailClipper mClipper;
|
private final QSDetailClipper mClipper;
|
||||||
private final LightBarController mLightBarController;
|
private final LightBarController mLightBarController;
|
||||||
|
private KeyguardMonitor mKeyguardMonitor;
|
||||||
|
private final ScreenLifecycle mScreenLifecycle;
|
||||||
private final TileQueryHelper mTileQueryHelper;
|
private final TileQueryHelper mTileQueryHelper;
|
||||||
private final View mTransparentView;
|
private final View mTransparentView;
|
||||||
|
|
||||||
@@ -82,7 +86,11 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene
|
|||||||
private boolean mOpening;
|
private boolean mOpening;
|
||||||
private boolean mIsShowingNavBackdrop;
|
private boolean mIsShowingNavBackdrop;
|
||||||
|
|
||||||
public QSCustomizer(Context context, AttributeSet attrs) {
|
@Inject
|
||||||
|
public QSCustomizer(Context context, AttributeSet attrs,
|
||||||
|
LightBarController lightBarController,
|
||||||
|
KeyguardMonitor keyguardMonitor,
|
||||||
|
ScreenLifecycle screenLifecycle) {
|
||||||
super(new ContextThemeWrapper(context, R.style.edit_theme), attrs);
|
super(new ContextThemeWrapper(context, R.style.edit_theme), attrs);
|
||||||
|
|
||||||
LayoutInflater.from(getContext()).inflate(R.layout.qs_customize_panel_content, this);
|
LayoutInflater.from(getContext()).inflate(R.layout.qs_customize_panel_content, this);
|
||||||
@@ -115,7 +123,9 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene
|
|||||||
DefaultItemAnimator animator = new DefaultItemAnimator();
|
DefaultItemAnimator animator = new DefaultItemAnimator();
|
||||||
animator.setMoveDuration(TileAdapter.MOVE_DURATION);
|
animator.setMoveDuration(TileAdapter.MOVE_DURATION);
|
||||||
mRecyclerView.setItemAnimator(animator);
|
mRecyclerView.setItemAnimator(animator);
|
||||||
mLightBarController = Dependency.get(LightBarController.class);
|
mLightBarController = lightBarController;
|
||||||
|
mKeyguardMonitor = keyguardMonitor;
|
||||||
|
mScreenLifecycle = screenLifecycle;
|
||||||
updateNavBackDrop(getResources().getConfiguration());
|
updateNavBackDrop(getResources().getConfiguration());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -177,7 +187,7 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene
|
|||||||
queryTiles();
|
queryTiles();
|
||||||
mNotifQsContainer.setCustomizerAnimating(true);
|
mNotifQsContainer.setCustomizerAnimating(true);
|
||||||
mNotifQsContainer.setCustomizerShowing(true);
|
mNotifQsContainer.setCustomizerShowing(true);
|
||||||
Dependency.get(KeyguardMonitor.class).addCallback(mKeyguardCallback);
|
mKeyguardMonitor.addCallback(mKeyguardCallback);
|
||||||
updateNavColors();
|
updateNavColors();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -193,7 +203,7 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene
|
|||||||
queryTiles();
|
queryTiles();
|
||||||
mNotifQsContainer.setCustomizerAnimating(false);
|
mNotifQsContainer.setCustomizerAnimating(false);
|
||||||
mNotifQsContainer.setCustomizerShowing(true);
|
mNotifQsContainer.setCustomizerShowing(true);
|
||||||
Dependency.get(KeyguardMonitor.class).addCallback(mKeyguardCallback);
|
mKeyguardMonitor.addCallback(mKeyguardCallback);
|
||||||
updateNavColors();
|
updateNavColors();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -203,16 +213,21 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void hide() {
|
public void hide() {
|
||||||
|
final boolean animate = mScreenLifecycle.getScreenState() != ScreenLifecycle.SCREEN_OFF;
|
||||||
if (isShown) {
|
if (isShown) {
|
||||||
MetricsLogger.hidden(getContext(), MetricsProto.MetricsEvent.QS_EDIT);
|
MetricsLogger.hidden(getContext(), MetricsProto.MetricsEvent.QS_EDIT);
|
||||||
isShown = false;
|
isShown = false;
|
||||||
mToolbar.dismissPopupMenus();
|
mToolbar.dismissPopupMenus();
|
||||||
setCustomizing(false);
|
setCustomizing(false);
|
||||||
save();
|
save();
|
||||||
|
if (animate) {
|
||||||
mClipper.animateCircularClip(mX, mY, false, mCollapseAnimationListener);
|
mClipper.animateCircularClip(mX, mY, false, mCollapseAnimationListener);
|
||||||
mNotifQsContainer.setCustomizerAnimating(true);
|
} else {
|
||||||
|
setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
mNotifQsContainer.setCustomizerAnimating(animate);
|
||||||
mNotifQsContainer.setCustomizerShowing(false);
|
mNotifQsContainer.setCustomizerShowing(false);
|
||||||
Dependency.get(KeyguardMonitor.class).removeCallback(mKeyguardCallback);
|
mKeyguardMonitor.removeCallback(mKeyguardCallback);
|
||||||
updateNavColors();
|
updateNavColors();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -268,7 +283,7 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene
|
|||||||
|
|
||||||
public void saveInstanceState(Bundle outState) {
|
public void saveInstanceState(Bundle outState) {
|
||||||
if (isShown) {
|
if (isShown) {
|
||||||
Dependency.get(KeyguardMonitor.class).removeCallback(mKeyguardCallback);
|
mKeyguardMonitor.removeCallback(mKeyguardCallback);
|
||||||
}
|
}
|
||||||
outState.putBoolean(EXTRA_QS_CUSTOMIZING, mCustomizing);
|
outState.putBoolean(EXTRA_QS_CUSTOMIZING, mCustomizing);
|
||||||
}
|
}
|
||||||
@@ -300,7 +315,7 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene
|
|||||||
@Override
|
@Override
|
||||||
public void onKeyguardShowingChanged() {
|
public void onKeyguardShowingChanged() {
|
||||||
if (!isAttachedToWindow()) return;
|
if (!isAttachedToWindow()) return;
|
||||||
if (Dependency.get(KeyguardMonitor.class).isShowing() && !mOpening) {
|
if (mKeyguardMonitor.isShowing() && !mOpening) {
|
||||||
hide();
|
hide();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1738,7 +1738,8 @@ public class NotificationPanelView extends PanelView implements
|
|||||||
private void setQsExpansion(float height) {
|
private void setQsExpansion(float height) {
|
||||||
height = Math.min(Math.max(height, mQsMinExpansionHeight), mQsMaxExpansionHeight);
|
height = Math.min(Math.max(height, mQsMinExpansionHeight), mQsMaxExpansionHeight);
|
||||||
mQsFullyExpanded = height == mQsMaxExpansionHeight && mQsMaxExpansionHeight != 0;
|
mQsFullyExpanded = height == mQsMaxExpansionHeight && mQsMaxExpansionHeight != 0;
|
||||||
if (height > mQsMinExpansionHeight && !mQsExpanded && !mStackScrollerOverscrolling) {
|
if (height > mQsMinExpansionHeight && !mQsExpanded && !mStackScrollerOverscrolling
|
||||||
|
&& !mDozing) {
|
||||||
setQsExpanded(true);
|
setQsExpanded(true);
|
||||||
} else if (height <= mQsMinExpansionHeight && mQsExpanded) {
|
} else if (height <= mQsMinExpansionHeight && mQsExpanded) {
|
||||||
setQsExpanded(false);
|
setQsExpanded(false);
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ import com.android.systemui.qs.QSFooterImpl;
|
|||||||
import com.android.systemui.qs.QSPanel;
|
import com.android.systemui.qs.QSPanel;
|
||||||
import com.android.systemui.qs.QuickQSPanel;
|
import com.android.systemui.qs.QuickQSPanel;
|
||||||
import com.android.systemui.qs.QuickStatusBarHeader;
|
import com.android.systemui.qs.QuickStatusBarHeader;
|
||||||
|
import com.android.systemui.qs.customize.QSCustomizer;
|
||||||
import com.android.systemui.statusbar.NotificationShelf;
|
import com.android.systemui.statusbar.NotificationShelf;
|
||||||
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
|
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
|
||||||
import com.android.systemui.statusbar.phone.LockIcon;
|
import com.android.systemui.statusbar.phone.LockIcon;
|
||||||
@@ -172,6 +173,11 @@ public class InjectionInflationController {
|
|||||||
* Creates the QuickQSPanel.
|
* Creates the QuickQSPanel.
|
||||||
*/
|
*/
|
||||||
QuickQSPanel createQuickQSPanel();
|
QuickQSPanel createQuickQSPanel();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates the QSCustomizer.
|
||||||
|
*/
|
||||||
|
QSCustomizer createQSCustomizer();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user