Merge "Logging when QSFragment becomes visible/invisible" into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
f16d022a17
@@ -51,9 +51,7 @@ import com.android.systemui.animation.Interpolators;
|
|||||||
import com.android.systemui.animation.ShadeInterpolation;
|
import com.android.systemui.animation.ShadeInterpolation;
|
||||||
import com.android.systemui.compose.ComposeFacade;
|
import com.android.systemui.compose.ComposeFacade;
|
||||||
import com.android.systemui.dump.DumpManager;
|
import com.android.systemui.dump.DumpManager;
|
||||||
import com.android.systemui.flags.FeatureFlags;
|
|
||||||
import com.android.systemui.media.controls.ui.MediaHost;
|
import com.android.systemui.media.controls.ui.MediaHost;
|
||||||
import com.android.systemui.plugins.FalsingManager;
|
|
||||||
import com.android.systemui.plugins.qs.QS;
|
import com.android.systemui.plugins.qs.QS;
|
||||||
import com.android.systemui.plugins.qs.QSContainerController;
|
import com.android.systemui.plugins.qs.QSContainerController;
|
||||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||||
@@ -61,6 +59,7 @@ import com.android.systemui.qs.customize.QSCustomizerController;
|
|||||||
import com.android.systemui.qs.dagger.QSFragmentComponent;
|
import com.android.systemui.qs.dagger.QSFragmentComponent;
|
||||||
import com.android.systemui.qs.footer.ui.binder.FooterActionsViewBinder;
|
import com.android.systemui.qs.footer.ui.binder.FooterActionsViewBinder;
|
||||||
import com.android.systemui.qs.footer.ui.viewmodel.FooterActionsViewModel;
|
import com.android.systemui.qs.footer.ui.viewmodel.FooterActionsViewModel;
|
||||||
|
import com.android.systemui.qs.logging.QSLogger;
|
||||||
import com.android.systemui.statusbar.CommandQueue;
|
import com.android.systemui.statusbar.CommandQueue;
|
||||||
import com.android.systemui.statusbar.StatusBarState;
|
import com.android.systemui.statusbar.StatusBarState;
|
||||||
import com.android.systemui.statusbar.SysuiStatusBarStateController;
|
import com.android.systemui.statusbar.SysuiStatusBarStateController;
|
||||||
@@ -88,14 +87,11 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
|
|||||||
|
|
||||||
private final Rect mQsBounds = new Rect();
|
private final Rect mQsBounds = new Rect();
|
||||||
private final SysuiStatusBarStateController mStatusBarStateController;
|
private final SysuiStatusBarStateController mStatusBarStateController;
|
||||||
private final FalsingManager mFalsingManager;
|
|
||||||
private final KeyguardBypassController mBypassController;
|
private final KeyguardBypassController mBypassController;
|
||||||
private boolean mQsExpanded;
|
private boolean mQsExpanded;
|
||||||
private boolean mHeaderAnimating;
|
private boolean mHeaderAnimating;
|
||||||
private boolean mStackScrollerOverscrolling;
|
private boolean mStackScrollerOverscrolling;
|
||||||
|
|
||||||
private long mDelay;
|
|
||||||
|
|
||||||
private QSAnimator mQSAnimator;
|
private QSAnimator mQSAnimator;
|
||||||
private HeightListener mPanelView;
|
private HeightListener mPanelView;
|
||||||
private QSSquishinessController mQSSquishinessController;
|
private QSSquishinessController mQSSquishinessController;
|
||||||
@@ -116,8 +112,7 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
|
|||||||
private final MediaHost mQqsMediaHost;
|
private final MediaHost mQqsMediaHost;
|
||||||
private final QSFragmentComponent.Factory mQsComponentFactory;
|
private final QSFragmentComponent.Factory mQsComponentFactory;
|
||||||
private final QSFragmentDisableFlagsLogger mQsFragmentDisableFlagsLogger;
|
private final QSFragmentDisableFlagsLogger mQsFragmentDisableFlagsLogger;
|
||||||
private final QSTileHost mHost;
|
private final QSLogger mLogger;
|
||||||
private final FeatureFlags mFeatureFlags;
|
|
||||||
private final FooterActionsController mFooterActionsController;
|
private final FooterActionsController mFooterActionsController;
|
||||||
private final FooterActionsViewModel.Factory mFooterActionsViewModelFactory;
|
private final FooterActionsViewModel.Factory mFooterActionsViewModelFactory;
|
||||||
private final ListeningAndVisibilityLifecycleOwner mListeningAndVisibilityLifecycleOwner;
|
private final ListeningAndVisibilityLifecycleOwner mListeningAndVisibilityLifecycleOwner;
|
||||||
@@ -150,11 +145,6 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
|
|||||||
*/
|
*/
|
||||||
private boolean mTransitioningToFullShade;
|
private boolean mTransitioningToFullShade;
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether the next Quick settings
|
|
||||||
*/
|
|
||||||
private boolean mAnimateNextQsUpdate;
|
|
||||||
|
|
||||||
private final DumpManager mDumpManager;
|
private final DumpManager mDumpManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -178,14 +168,13 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
|
|||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public QSFragment(RemoteInputQuickSettingsDisabler remoteInputQsDisabler,
|
public QSFragment(RemoteInputQuickSettingsDisabler remoteInputQsDisabler,
|
||||||
QSTileHost qsTileHost,
|
|
||||||
SysuiStatusBarStateController statusBarStateController, CommandQueue commandQueue,
|
SysuiStatusBarStateController statusBarStateController, CommandQueue commandQueue,
|
||||||
@Named(QS_PANEL) MediaHost qsMediaHost,
|
@Named(QS_PANEL) MediaHost qsMediaHost,
|
||||||
@Named(QUICK_QS_PANEL) MediaHost qqsMediaHost,
|
@Named(QUICK_QS_PANEL) MediaHost qqsMediaHost,
|
||||||
KeyguardBypassController keyguardBypassController,
|
KeyguardBypassController keyguardBypassController,
|
||||||
QSFragmentComponent.Factory qsComponentFactory,
|
QSFragmentComponent.Factory qsComponentFactory,
|
||||||
QSFragmentDisableFlagsLogger qsFragmentDisableFlagsLogger,
|
QSFragmentDisableFlagsLogger qsFragmentDisableFlagsLogger,
|
||||||
FalsingManager falsingManager, DumpManager dumpManager, FeatureFlags featureFlags,
|
DumpManager dumpManager, QSLogger qsLogger,
|
||||||
FooterActionsController footerActionsController,
|
FooterActionsController footerActionsController,
|
||||||
FooterActionsViewModel.Factory footerActionsViewModelFactory) {
|
FooterActionsViewModel.Factory footerActionsViewModelFactory) {
|
||||||
mRemoteInputQuickSettingsDisabler = remoteInputQsDisabler;
|
mRemoteInputQuickSettingsDisabler = remoteInputQsDisabler;
|
||||||
@@ -193,13 +182,11 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
|
|||||||
mQqsMediaHost = qqsMediaHost;
|
mQqsMediaHost = qqsMediaHost;
|
||||||
mQsComponentFactory = qsComponentFactory;
|
mQsComponentFactory = qsComponentFactory;
|
||||||
mQsFragmentDisableFlagsLogger = qsFragmentDisableFlagsLogger;
|
mQsFragmentDisableFlagsLogger = qsFragmentDisableFlagsLogger;
|
||||||
|
mLogger = qsLogger;
|
||||||
commandQueue.observe(getLifecycle(), this);
|
commandQueue.observe(getLifecycle(), this);
|
||||||
mHost = qsTileHost;
|
|
||||||
mFalsingManager = falsingManager;
|
|
||||||
mBypassController = keyguardBypassController;
|
mBypassController = keyguardBypassController;
|
||||||
mStatusBarStateController = statusBarStateController;
|
mStatusBarStateController = statusBarStateController;
|
||||||
mDumpManager = dumpManager;
|
mDumpManager = dumpManager;
|
||||||
mFeatureFlags = featureFlags;
|
|
||||||
mFooterActionsController = footerActionsController;
|
mFooterActionsController = footerActionsController;
|
||||||
mFooterActionsViewModelFactory = footerActionsViewModelFactory;
|
mFooterActionsViewModelFactory = footerActionsViewModelFactory;
|
||||||
mListeningAndVisibilityLifecycleOwner = new ListeningAndVisibilityLifecycleOwner();
|
mListeningAndVisibilityLifecycleOwner = new ListeningAndVisibilityLifecycleOwner();
|
||||||
@@ -716,8 +703,10 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
|
|||||||
private void setAlphaAnimationProgress(float progress) {
|
private void setAlphaAnimationProgress(float progress) {
|
||||||
final View view = getView();
|
final View view = getView();
|
||||||
if (progress == 0 && view.getVisibility() != View.INVISIBLE) {
|
if (progress == 0 && view.getVisibility() != View.INVISIBLE) {
|
||||||
|
mLogger.logVisibility("QS fragment", View.INVISIBLE);
|
||||||
view.setVisibility(View.INVISIBLE);
|
view.setVisibility(View.INVISIBLE);
|
||||||
} else if (progress > 0 && view.getVisibility() != View.VISIBLE) {
|
} else if (progress > 0 && view.getVisibility() != View.VISIBLE) {
|
||||||
|
mLogger.logVisibility("QS fragment", View.VISIBLE);
|
||||||
view.setVisibility((View.VISIBLE));
|
view.setVisibility((View.VISIBLE));
|
||||||
}
|
}
|
||||||
view.setAlpha(interpolateAlphaAnimationProgress(progress));
|
view.setAlpha(interpolateAlphaAnimationProgress(progress));
|
||||||
@@ -914,7 +903,6 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
|
|||||||
getView().getViewTreeObserver().removeOnPreDrawListener(this);
|
getView().getViewTreeObserver().removeOnPreDrawListener(this);
|
||||||
getView().animate()
|
getView().animate()
|
||||||
.translationY(0f)
|
.translationY(0f)
|
||||||
.setStartDelay(mDelay)
|
|
||||||
.setDuration(StackStateAnimator.ANIMATION_DURATION_GO_TO_FULL_SHADE)
|
.setDuration(StackStateAnimator.ANIMATION_DURATION_GO_TO_FULL_SHADE)
|
||||||
.setInterpolator(Interpolators.FAST_OUT_SLOW_IN)
|
.setInterpolator(Interpolators.FAST_OUT_SLOW_IN)
|
||||||
.setListener(mAnimateHeaderSlidingInListener)
|
.setListener(mAnimateHeaderSlidingInListener)
|
||||||
|
|||||||
@@ -17,15 +17,14 @@
|
|||||||
package com.android.systemui.qs.logging
|
package com.android.systemui.qs.logging
|
||||||
|
|
||||||
import android.service.quicksettings.Tile
|
import android.service.quicksettings.Tile
|
||||||
|
import android.view.View
|
||||||
import com.android.systemui.log.dagger.QSLog
|
import com.android.systemui.log.dagger.QSLog
|
||||||
import com.android.systemui.plugins.log.ConstantStringsLogger
|
import com.android.systemui.plugins.log.ConstantStringsLogger
|
||||||
import com.android.systemui.plugins.log.ConstantStringsLoggerImpl
|
import com.android.systemui.plugins.log.ConstantStringsLoggerImpl
|
||||||
import com.android.systemui.plugins.log.LogBuffer
|
import com.android.systemui.plugins.log.LogBuffer
|
||||||
import com.android.systemui.plugins.log.LogLevel
|
|
||||||
import com.android.systemui.plugins.log.LogLevel.DEBUG
|
import com.android.systemui.plugins.log.LogLevel.DEBUG
|
||||||
import com.android.systemui.plugins.log.LogLevel.ERROR
|
import com.android.systemui.plugins.log.LogLevel.ERROR
|
||||||
import com.android.systemui.plugins.log.LogLevel.VERBOSE
|
import com.android.systemui.plugins.log.LogLevel.VERBOSE
|
||||||
import com.android.systemui.plugins.log.LogMessage
|
|
||||||
import com.android.systemui.plugins.qs.QSTile
|
import com.android.systemui.plugins.qs.QSTile
|
||||||
import com.android.systemui.statusbar.StatusBarState
|
import com.android.systemui.statusbar.StatusBarState
|
||||||
import com.google.errorprone.annotations.CompileTimeConstant
|
import com.google.errorprone.annotations.CompileTimeConstant
|
||||||
@@ -332,4 +331,25 @@ class QSLogger @Inject constructor(@QSLog private val buffer: LogBuffer) :
|
|||||||
else -> "wrong state"
|
else -> "wrong state"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun logVisibility(viewName: String, @View.Visibility visibility: Int) {
|
||||||
|
buffer.log(
|
||||||
|
TAG,
|
||||||
|
DEBUG,
|
||||||
|
{
|
||||||
|
str1 = viewName
|
||||||
|
str2 = toVisibilityString(visibility)
|
||||||
|
},
|
||||||
|
{ "$str1 visibility: $str2" }
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun toVisibilityString(visibility: Int): String {
|
||||||
|
return when (visibility) {
|
||||||
|
View.VISIBLE -> "VISIBLE"
|
||||||
|
View.INVISIBLE -> "INVISIBLE"
|
||||||
|
View.GONE -> "GONE"
|
||||||
|
else -> "undefined"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,14 +52,13 @@ import com.android.systemui.R;
|
|||||||
import com.android.systemui.SysuiBaseFragmentTest;
|
import com.android.systemui.SysuiBaseFragmentTest;
|
||||||
import com.android.systemui.animation.ShadeInterpolation;
|
import com.android.systemui.animation.ShadeInterpolation;
|
||||||
import com.android.systemui.dump.DumpManager;
|
import com.android.systemui.dump.DumpManager;
|
||||||
import com.android.systemui.flags.FakeFeatureFlags;
|
|
||||||
import com.android.systemui.media.controls.ui.MediaHost;
|
import com.android.systemui.media.controls.ui.MediaHost;
|
||||||
import com.android.systemui.plugins.FalsingManager;
|
|
||||||
import com.android.systemui.qs.customize.QSCustomizerController;
|
import com.android.systemui.qs.customize.QSCustomizerController;
|
||||||
import com.android.systemui.qs.dagger.QSFragmentComponent;
|
import com.android.systemui.qs.dagger.QSFragmentComponent;
|
||||||
import com.android.systemui.qs.external.TileServiceRequestController;
|
import com.android.systemui.qs.external.TileServiceRequestController;
|
||||||
import com.android.systemui.qs.footer.ui.binder.FooterActionsViewBinder;
|
import com.android.systemui.qs.footer.ui.binder.FooterActionsViewBinder;
|
||||||
import com.android.systemui.qs.footer.ui.viewmodel.FooterActionsViewModel;
|
import com.android.systemui.qs.footer.ui.viewmodel.FooterActionsViewModel;
|
||||||
|
import com.android.systemui.qs.logging.QSLogger;
|
||||||
import com.android.systemui.settings.FakeDisplayTracker;
|
import com.android.systemui.settings.FakeDisplayTracker;
|
||||||
import com.android.systemui.statusbar.CommandQueue;
|
import com.android.systemui.statusbar.CommandQueue;
|
||||||
import com.android.systemui.statusbar.StatusBarState;
|
import com.android.systemui.statusbar.StatusBarState;
|
||||||
@@ -86,7 +85,6 @@ public class QSFragmentTest extends SysuiBaseFragmentTest {
|
|||||||
@Mock private MediaHost mQSMediaHost;
|
@Mock private MediaHost mQSMediaHost;
|
||||||
@Mock private MediaHost mQQSMediaHost;
|
@Mock private MediaHost mQQSMediaHost;
|
||||||
@Mock private KeyguardBypassController mBypassController;
|
@Mock private KeyguardBypassController mBypassController;
|
||||||
@Mock private FalsingManager mFalsingManager;
|
|
||||||
@Mock private TileServiceRequestController.Builder mTileServiceRequestControllerBuilder;
|
@Mock private TileServiceRequestController.Builder mTileServiceRequestControllerBuilder;
|
||||||
@Mock private TileServiceRequestController mTileServiceRequestController;
|
@Mock private TileServiceRequestController mTileServiceRequestController;
|
||||||
@Mock private QSCustomizerController mQsCustomizerController;
|
@Mock private QSCustomizerController mQsCustomizerController;
|
||||||
@@ -503,11 +501,9 @@ public class QSFragmentTest extends SysuiBaseFragmentTest {
|
|||||||
setUpMedia();
|
setUpMedia();
|
||||||
setUpOther();
|
setUpOther();
|
||||||
|
|
||||||
FakeFeatureFlags featureFlags = new FakeFeatureFlags();
|
|
||||||
return new QSFragment(
|
return new QSFragment(
|
||||||
new RemoteInputQuickSettingsDisabler(
|
new RemoteInputQuickSettingsDisabler(
|
||||||
context, commandQueue, mock(ConfigurationController.class)),
|
context, commandQueue, mock(ConfigurationController.class)),
|
||||||
mock(QSTileHost.class),
|
|
||||||
mStatusBarStateController,
|
mStatusBarStateController,
|
||||||
commandQueue,
|
commandQueue,
|
||||||
mQSMediaHost,
|
mQSMediaHost,
|
||||||
@@ -515,9 +511,8 @@ public class QSFragmentTest extends SysuiBaseFragmentTest {
|
|||||||
mBypassController,
|
mBypassController,
|
||||||
mQsComponentFactory,
|
mQsComponentFactory,
|
||||||
mock(QSFragmentDisableFlagsLogger.class),
|
mock(QSFragmentDisableFlagsLogger.class),
|
||||||
mFalsingManager,
|
|
||||||
mock(DumpManager.class),
|
mock(DumpManager.class),
|
||||||
featureFlags,
|
mock(QSLogger.class),
|
||||||
mock(FooterActionsController.class),
|
mock(FooterActionsController.class),
|
||||||
mFooterActionsViewModelFactory);
|
mFooterActionsViewModelFactory);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user