Loading packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java +3 −2 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import com.android.systemui.log.LogcatEchoTrackerDebug; import com.android.systemui.log.LogcatEchoTrackerProd; import com.android.systemui.log.table.TableLogBuffer; import com.android.systemui.log.table.TableLogBufferFactory; import com.android.systemui.qs.QSFragmentLegacy; import com.android.systemui.statusbar.notification.NotifPipelineFlags; import com.android.systemui.util.Compile; import com.android.systemui.util.wakelock.WakeLockLog; Loading Loading @@ -229,12 +230,12 @@ public class LogModule { } /** * Provides a logging buffer for logs related to {@link com.android.systemui.qs.QSFragment}'s * Provides a logging buffer for logs related to {@link QSFragmentLegacy}'s * disable flag adjustments. */ @Provides @SysUISingleton @QSFragmentDisableLog @QSDisableLog public static LogBuffer provideQSFragmentDisableLogBuffer(LogBufferFactory factory) { return factory.create("QSFragmentDisableFlagsLog", 10 /* maxSize */, false /* systrace */); Loading packages/SystemUI/src/com/android/systemui/log/dagger/QSFragmentDisableLog.java→packages/SystemUI/src/com/android/systemui/log/dagger/QSDisableLog.java +3 −2 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; import com.android.systemui.log.LogBuffer; import com.android.systemui.qs.QSFragmentLegacy; import java.lang.annotation.Documented; import java.lang.annotation.Retention; Loading @@ -27,10 +28,10 @@ import javax.inject.Qualifier; /** * A {@link LogBuffer} for disable flag adjustments made in * {@link com.android.systemui.qs.QSFragment}. * {@link QSFragmentLegacy}. */ @Qualifier @Documented @Retention(RUNTIME) public @interface QSFragmentDisableLog { public @interface QSDisableLog { } packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java +9 −17 Original line number Diff line number Diff line Loading @@ -28,7 +28,7 @@ import androidx.annotation.Nullable; import com.android.app.animation.Interpolators; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.plugins.qs.QS; import com.android.systemui.dagger.qualifiers.RootView; import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.plugins.qs.QSTileView; import com.android.systemui.qs.QSPanel.QSTileLayout; Loading Loading @@ -86,8 +86,7 @@ public class QSAnimator implements QSHost.Callback, PagedTileLayout.PageListener private final QuickQSPanel mQuickQsPanel; private final QSPanelController mQsPanelController; private final QuickQSPanelController mQuickQSPanelController; private final QuickStatusBarHeader mQuickStatusBarHeader; private final QS mQs; private final View mQsRootView; @Nullable private PagedTileLayout mPagedLayout; Loading Loading @@ -115,8 +114,6 @@ public class QSAnimator implements QSHost.Callback, PagedTileLayout.PageListener // Brightness slider opacity driver. Uses linear interpolator. @Nullable private TouchAnimator mBrightnessOpacityAnimator; // Animator for Footer actions in QQS private TouchAnimator mQQSFooterActionsAnimator; // Height animator for QQS tiles (height changing from QQS size to QS size) @Nullable private HeightExpansionAnimator mQQSTileHeightAnimator; Loading Loading @@ -144,22 +141,21 @@ public class QSAnimator implements QSHost.Callback, PagedTileLayout.PageListener private int[] mTmpLoc2 = new int[2]; @Inject public QSAnimator(QS qs, QuickQSPanel quickPanel, QuickStatusBarHeader quickStatusBarHeader, public QSAnimator(@RootView View rootView, QuickQSPanel quickPanel, QSPanelController qsPanelController, QuickQSPanelController quickQSPanelController, QSHost qsTileHost, @Main Executor executor, TunerService tunerService, QSExpansionPathInterpolator qsExpansionPathInterpolator) { mQs = qs; mQsRootView = rootView; mQuickQsPanel = quickPanel; mQsPanelController = qsPanelController; mQuickQSPanelController = quickQSPanelController; mQuickStatusBarHeader = quickStatusBarHeader; mHost = qsTileHost; mExecutor = executor; mQSExpansionPathInterpolator = qsExpansionPathInterpolator; mHost.addCallback(this); mQsPanelController.addOnAttachStateChangeListener(this); qs.getView().addOnLayoutChangeListener(this); mQsRootView.addOnLayoutChangeListener(this); if (mQsPanelController.isAttachedToWindow()) { onViewAttachedToWindow(null); } Loading Loading @@ -314,8 +310,7 @@ public class QSAnimator implements QSHost.Callback, PagedTileLayout.PageListener break; } final View tileIcon = tileView.getIcon().getIconView(); View view = mQs.getView(); View view = mQsRootView; // This case: less tiles to animate in small displays. if (count < mQuickQSPanelController.getTileLayout().getNumVisibleTiles()) { Loading Loading @@ -480,7 +475,7 @@ public class QSAnimator implements QSHost.Callback, PagedTileLayout.PageListener .setStartDelay(QS_TILE_LABEL_FADE_OUT_START) .setEndDelay(QS_TILE_LABEL_FADE_OUT_END); SideLabelTileLayout qqsLayout = (SideLabelTileLayout) mQuickQsPanel.getTileLayout(); View view = mQs.getView(); View view = mQsRootView; List<String> specs = mPagedLayout.getSpecsForPage(page); if (specs.isEmpty()) { // specs should not be empty in a valid secondary page, as we scrolled to it. Loading Loading @@ -577,7 +572,7 @@ public class QSAnimator implements QSHost.Callback, PagedTileLayout.PageListener // For (1), compute the distance via the vertical distance between QQS and QS tile // layout top. View quickSettingsRootView = mQs.getView(); View quickSettingsRootView = mQsRootView; View qsTileLayout = (View) mQsPanelController.getTileLayout(); View qqsTileLayout = (View) mQuickQSPanelController.getTileLayout(); getRelativePosition(mTmpLoc1, qsTileLayout, quickSettingsRootView); Loading Loading @@ -607,7 +602,7 @@ public class QSAnimator implements QSHost.Callback, PagedTileLayout.PageListener private int getRelativeTranslationY(View view1, View view2) { int[] qsPosition = new int[2]; int[] qqsPosition = new int[2]; View commonView = mQs.getView(); View commonView = mQsRootView; getRelativePositionInt(qsPosition, view1, commonView); getRelativePositionInt(qqsPosition, view2, commonView); return qsPosition[1] - qqsPosition[1]; Loading Loading @@ -690,9 +685,6 @@ public class QSAnimator implements QSHost.Callback, PagedTileLayout.PageListener if (mBrightnessTranslationAnimator != null) { mBrightnessTranslationAnimator.setPosition(position); } if (mQQSFooterActionsAnimator != null) { mQQSFooterActionsAnimator.setPosition(position); } } @Override Loading packages/SystemUI/src/com/android/systemui/qs/QSFragmentDisableFlagsLogger.kt→packages/SystemUI/src/com/android/systemui/qs/QSDisableFlagsLogger.kt +9 −7 Original line number Diff line number Diff line package com.android.systemui.qs import com.android.systemui.log.dagger.QSFragmentDisableLog import com.android.systemui.log.LogBuffer import com.android.systemui.log.core.LogLevel import com.android.systemui.log.dagger.QSDisableLog import com.android.systemui.statusbar.disableflags.DisableFlagsLogger import javax.inject.Inject /** A helper class for logging disable flag changes made in [QSFragment]. */ class QSFragmentDisableFlagsLogger @Inject constructor( @QSFragmentDisableLog private val buffer: LogBuffer, /** A helper class for logging disable flag changes made in [QSImpl]. */ class QSDisableFlagsLogger @Inject constructor( @QSDisableLog private val buffer: LogBuffer, private val disableFlagsLogger: DisableFlagsLogger ) { /** * Logs a string representing the new state received by [QSFragment] and any modifications that * were made to the flags locally. * Logs a string representing the new state received by [QSImpl] and any modifications that were * made to the flags locally. * * @param new see [DisableFlagsLogger.getDisableFlagsString] * @param newAfterLocalModification see [DisableFlagsLogger.getDisableFlagsString] Loading Loading @@ -43,4 +45,4 @@ class QSFragmentDisableFlagsLogger @Inject constructor( } } private const val TAG = "QSFragmentDisableFlagsLog" private const val TAG = "QSDisableFlagsLog" packages/SystemUI/src/com/android/systemui/qs/QSFragmentLegacy.java 0 → 100644 +369 −0 Original line number Diff line number Diff line /* * Copyright (C) 2023 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. */ package com.android.systemui.qs; import android.content.res.Configuration; import android.os.Bundle; import android.os.Trace; import android.view.ContextThemeWrapper; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import androidx.annotation.FloatRange; import androidx.annotation.Nullable; import com.android.systemui.plugins.qs.QS; import com.android.systemui.plugins.qs.QSContainerController; import com.android.systemui.qs.dagger.QSFragmentComponent; import com.android.systemui.res.R; import com.android.systemui.statusbar.policy.BrightnessMirrorController; import com.android.systemui.util.LifecycleFragment; import java.util.function.Consumer; import javax.inject.Inject; import javax.inject.Provider; public class QSFragmentLegacy extends LifecycleFragment implements QS { private final Provider<QSImpl> mQsImplProvider; private final QSFragmentComponent.Factory mQsComponentFactory; @Nullable private QSImpl mQsImpl; @Inject public QSFragmentLegacy( Provider<QSImpl> qsImplProvider, QSFragmentComponent.Factory qsComponentFactory ) { mQsComponentFactory = qsComponentFactory; mQsImplProvider = qsImplProvider; } @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) { try { Trace.beginSection("QSFragment#onCreateView"); inflater = inflater.cloneInContext(new ContextThemeWrapper(getContext(), R.style.Theme_SystemUI_QuickSettings)); return inflater.inflate(R.layout.qs_panel, container, false); } finally { Trace.endSection(); } } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { QSFragmentComponent qsFragmentComponent = mQsComponentFactory.create(this); mQsImpl = mQsImplProvider.get(); mQsImpl.onComponentCreated(qsFragmentComponent, savedInstanceState); } @Override public void setScrollListener(ScrollListener listener) { if (mQsImpl != null) { mQsImpl.setScrollListener(listener); } } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (mQsImpl != null) { mQsImpl.onCreate(savedInstanceState); } } @Override public void onDestroy() { super.onDestroy(); if (mQsImpl != null) { mQsImpl.onDestroy(); } } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); if (mQsImpl != null) { mQsImpl.onSaveInstanceState(outState); } } @Override public View getHeader() { if (mQsImpl != null) { return mQsImpl.getHeader(); } else { return null; } } @Override public void setHasNotifications(boolean hasNotifications) { if (mQsImpl != null) { mQsImpl.setHasNotifications(hasNotifications); } } @Override public void setPanelView(HeightListener panelView) { if (mQsImpl != null) { mQsImpl.setPanelView(panelView); } } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); if (mQsImpl != null) { mQsImpl.onConfigurationChanged(newConfig); } } @Override public void setFancyClipping(int leftInset, int top, int rightInset, int bottom, int cornerRadius, boolean visible, boolean fullWidth) { if (mQsImpl != null) { mQsImpl.setFancyClipping(leftInset, top, rightInset, bottom, cornerRadius, visible, fullWidth); } } @Override public boolean isFullyCollapsed() { if (mQsImpl != null) { return mQsImpl.isFullyCollapsed(); } else { return true; } } @Override public void setCollapsedMediaVisibilityChangedListener(Consumer<Boolean> listener) { if (mQsImpl != null) { mQsImpl.setCollapsedMediaVisibilityChangedListener(listener); } } @Override public void setContainerController(QSContainerController controller) { if (mQsImpl != null) { mQsImpl.setContainerController(controller); } } @Override public boolean isCustomizing() { if (mQsImpl != null) { return mQsImpl.isCustomizing(); } else { return false; } } public QSPanelController getQSPanelController() { if (mQsImpl != null) { return mQsImpl.getQSPanelController(); } else { return null; } } public void setBrightnessMirrorController( BrightnessMirrorController brightnessMirrorController) { if (mQsImpl != null) { mQsImpl.setBrightnessMirrorController(brightnessMirrorController); } } @Override public boolean isShowingDetail() { if (mQsImpl != null) { return mQsImpl.isShowingDetail(); } else { return false; } } @Override public void setHeaderClickable(boolean clickable) { if (mQsImpl != null) { mQsImpl.setHeaderClickable(clickable); } } @Override public void setExpanded(boolean expanded) { if (mQsImpl != null) { mQsImpl.setExpanded(expanded); } } @Override public void setOverscrolling(boolean stackScrollerOverscrolling) { if (mQsImpl != null) { mQsImpl.setOverscrolling(stackScrollerOverscrolling); } } @Override public void setListening(boolean listening) { if (mQsImpl != null) { mQsImpl.setListening(listening); } } @Override public void setQsVisible(boolean visible) { if (mQsImpl != null) { mQsImpl.setQsVisible(visible); } } @Override public void setHeaderListening(boolean listening) { if (mQsImpl != null) { mQsImpl.setHeaderListening(listening); } } @Override public void notifyCustomizeChanged() { if (mQsImpl != null) { mQsImpl.notifyCustomizeChanged(); } } @Override public void setInSplitShade(boolean inSplitShade) { if (mQsImpl != null) { mQsImpl.setInSplitShade(inSplitShade); } } @Override public void setTransitionToFullShadeProgress( boolean isTransitioningToFullShade, @FloatRange(from = 0.0, to = 1.0) float qsTransitionFraction, @FloatRange(from = 0.0, to = 1.0) float qsSquishinessFraction) { if (mQsImpl != null) { mQsImpl.setTransitionToFullShadeProgress(isTransitioningToFullShade, qsTransitionFraction, qsSquishinessFraction); } } @Override public void setOverScrollAmount(int overScrollAmount) { if (mQsImpl != null) { mQsImpl.setOverScrollAmount(overScrollAmount); } } @Override public int getHeightDiff() { if (mQsImpl != null) { return mQsImpl.getHeightDiff(); } else { return 0; } } @Override public void setIsNotificationPanelFullWidth(boolean isFullWidth) { if (mQsImpl != null) { mQsImpl.setIsNotificationPanelFullWidth(isFullWidth); } } @Override public void setQsExpansion(float expansion, float panelExpansionFraction, float proposedTranslation, float squishinessFraction) { if (mQsImpl != null) { mQsImpl.setQsExpansion(expansion, panelExpansionFraction, proposedTranslation, squishinessFraction); } } @Override public void animateHeaderSlidingOut() { if (mQsImpl != null) { mQsImpl.animateHeaderSlidingOut(); } } @Override public void setCollapseExpandAction(Runnable action) { if (mQsImpl != null) { mQsImpl.setCollapseExpandAction(action); } } @Override public void closeDetail() { if (mQsImpl != null) { mQsImpl.closeDetail(); } } @Override public void closeCustomizer() { if (mQsImpl != null) { mQsImpl.closeDetail(); } } /** * The height this view wants to be. This is different from {@link View#getMeasuredHeight} such * that during closing the detail panel, this already returns the smaller height. */ @Override public int getDesiredHeight() { if (mQsImpl != null) { return mQsImpl.getDesiredHeight(); } else { return 0; } } @Override public void setHeightOverride(int desiredHeight) { if (mQsImpl != null) { mQsImpl.setHeightOverride(desiredHeight); } } @Override public int getQsMinExpansionHeight() { if (mQsImpl != null) { return mQsImpl.getQsMinExpansionHeight(); } else { return 0; } } @Override public void hideImmediately() { if (mQsImpl != null) { mQsImpl.hideImmediately(); } } } Loading
packages/SystemUI/src/com/android/systemui/log/dagger/LogModule.java +3 −2 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import com.android.systemui.log.LogcatEchoTrackerDebug; import com.android.systemui.log.LogcatEchoTrackerProd; import com.android.systemui.log.table.TableLogBuffer; import com.android.systemui.log.table.TableLogBufferFactory; import com.android.systemui.qs.QSFragmentLegacy; import com.android.systemui.statusbar.notification.NotifPipelineFlags; import com.android.systemui.util.Compile; import com.android.systemui.util.wakelock.WakeLockLog; Loading Loading @@ -229,12 +230,12 @@ public class LogModule { } /** * Provides a logging buffer for logs related to {@link com.android.systemui.qs.QSFragment}'s * Provides a logging buffer for logs related to {@link QSFragmentLegacy}'s * disable flag adjustments. */ @Provides @SysUISingleton @QSFragmentDisableLog @QSDisableLog public static LogBuffer provideQSFragmentDisableLogBuffer(LogBufferFactory factory) { return factory.create("QSFragmentDisableFlagsLog", 10 /* maxSize */, false /* systrace */); Loading
packages/SystemUI/src/com/android/systemui/log/dagger/QSFragmentDisableLog.java→packages/SystemUI/src/com/android/systemui/log/dagger/QSDisableLog.java +3 −2 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.systemui.log.dagger; import static java.lang.annotation.RetentionPolicy.RUNTIME; import com.android.systemui.log.LogBuffer; import com.android.systemui.qs.QSFragmentLegacy; import java.lang.annotation.Documented; import java.lang.annotation.Retention; Loading @@ -27,10 +28,10 @@ import javax.inject.Qualifier; /** * A {@link LogBuffer} for disable flag adjustments made in * {@link com.android.systemui.qs.QSFragment}. * {@link QSFragmentLegacy}. */ @Qualifier @Documented @Retention(RUNTIME) public @interface QSFragmentDisableLog { public @interface QSDisableLog { }
packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java +9 −17 Original line number Diff line number Diff line Loading @@ -28,7 +28,7 @@ import androidx.annotation.Nullable; import com.android.app.animation.Interpolators; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.plugins.qs.QS; import com.android.systemui.dagger.qualifiers.RootView; import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.plugins.qs.QSTileView; import com.android.systemui.qs.QSPanel.QSTileLayout; Loading Loading @@ -86,8 +86,7 @@ public class QSAnimator implements QSHost.Callback, PagedTileLayout.PageListener private final QuickQSPanel mQuickQsPanel; private final QSPanelController mQsPanelController; private final QuickQSPanelController mQuickQSPanelController; private final QuickStatusBarHeader mQuickStatusBarHeader; private final QS mQs; private final View mQsRootView; @Nullable private PagedTileLayout mPagedLayout; Loading Loading @@ -115,8 +114,6 @@ public class QSAnimator implements QSHost.Callback, PagedTileLayout.PageListener // Brightness slider opacity driver. Uses linear interpolator. @Nullable private TouchAnimator mBrightnessOpacityAnimator; // Animator for Footer actions in QQS private TouchAnimator mQQSFooterActionsAnimator; // Height animator for QQS tiles (height changing from QQS size to QS size) @Nullable private HeightExpansionAnimator mQQSTileHeightAnimator; Loading Loading @@ -144,22 +141,21 @@ public class QSAnimator implements QSHost.Callback, PagedTileLayout.PageListener private int[] mTmpLoc2 = new int[2]; @Inject public QSAnimator(QS qs, QuickQSPanel quickPanel, QuickStatusBarHeader quickStatusBarHeader, public QSAnimator(@RootView View rootView, QuickQSPanel quickPanel, QSPanelController qsPanelController, QuickQSPanelController quickQSPanelController, QSHost qsTileHost, @Main Executor executor, TunerService tunerService, QSExpansionPathInterpolator qsExpansionPathInterpolator) { mQs = qs; mQsRootView = rootView; mQuickQsPanel = quickPanel; mQsPanelController = qsPanelController; mQuickQSPanelController = quickQSPanelController; mQuickStatusBarHeader = quickStatusBarHeader; mHost = qsTileHost; mExecutor = executor; mQSExpansionPathInterpolator = qsExpansionPathInterpolator; mHost.addCallback(this); mQsPanelController.addOnAttachStateChangeListener(this); qs.getView().addOnLayoutChangeListener(this); mQsRootView.addOnLayoutChangeListener(this); if (mQsPanelController.isAttachedToWindow()) { onViewAttachedToWindow(null); } Loading Loading @@ -314,8 +310,7 @@ public class QSAnimator implements QSHost.Callback, PagedTileLayout.PageListener break; } final View tileIcon = tileView.getIcon().getIconView(); View view = mQs.getView(); View view = mQsRootView; // This case: less tiles to animate in small displays. if (count < mQuickQSPanelController.getTileLayout().getNumVisibleTiles()) { Loading Loading @@ -480,7 +475,7 @@ public class QSAnimator implements QSHost.Callback, PagedTileLayout.PageListener .setStartDelay(QS_TILE_LABEL_FADE_OUT_START) .setEndDelay(QS_TILE_LABEL_FADE_OUT_END); SideLabelTileLayout qqsLayout = (SideLabelTileLayout) mQuickQsPanel.getTileLayout(); View view = mQs.getView(); View view = mQsRootView; List<String> specs = mPagedLayout.getSpecsForPage(page); if (specs.isEmpty()) { // specs should not be empty in a valid secondary page, as we scrolled to it. Loading Loading @@ -577,7 +572,7 @@ public class QSAnimator implements QSHost.Callback, PagedTileLayout.PageListener // For (1), compute the distance via the vertical distance between QQS and QS tile // layout top. View quickSettingsRootView = mQs.getView(); View quickSettingsRootView = mQsRootView; View qsTileLayout = (View) mQsPanelController.getTileLayout(); View qqsTileLayout = (View) mQuickQSPanelController.getTileLayout(); getRelativePosition(mTmpLoc1, qsTileLayout, quickSettingsRootView); Loading Loading @@ -607,7 +602,7 @@ public class QSAnimator implements QSHost.Callback, PagedTileLayout.PageListener private int getRelativeTranslationY(View view1, View view2) { int[] qsPosition = new int[2]; int[] qqsPosition = new int[2]; View commonView = mQs.getView(); View commonView = mQsRootView; getRelativePositionInt(qsPosition, view1, commonView); getRelativePositionInt(qqsPosition, view2, commonView); return qsPosition[1] - qqsPosition[1]; Loading Loading @@ -690,9 +685,6 @@ public class QSAnimator implements QSHost.Callback, PagedTileLayout.PageListener if (mBrightnessTranslationAnimator != null) { mBrightnessTranslationAnimator.setPosition(position); } if (mQQSFooterActionsAnimator != null) { mQQSFooterActionsAnimator.setPosition(position); } } @Override Loading
packages/SystemUI/src/com/android/systemui/qs/QSFragmentDisableFlagsLogger.kt→packages/SystemUI/src/com/android/systemui/qs/QSDisableFlagsLogger.kt +9 −7 Original line number Diff line number Diff line package com.android.systemui.qs import com.android.systemui.log.dagger.QSFragmentDisableLog import com.android.systemui.log.LogBuffer import com.android.systemui.log.core.LogLevel import com.android.systemui.log.dagger.QSDisableLog import com.android.systemui.statusbar.disableflags.DisableFlagsLogger import javax.inject.Inject /** A helper class for logging disable flag changes made in [QSFragment]. */ class QSFragmentDisableFlagsLogger @Inject constructor( @QSFragmentDisableLog private val buffer: LogBuffer, /** A helper class for logging disable flag changes made in [QSImpl]. */ class QSDisableFlagsLogger @Inject constructor( @QSDisableLog private val buffer: LogBuffer, private val disableFlagsLogger: DisableFlagsLogger ) { /** * Logs a string representing the new state received by [QSFragment] and any modifications that * were made to the flags locally. * Logs a string representing the new state received by [QSImpl] and any modifications that were * made to the flags locally. * * @param new see [DisableFlagsLogger.getDisableFlagsString] * @param newAfterLocalModification see [DisableFlagsLogger.getDisableFlagsString] Loading Loading @@ -43,4 +45,4 @@ class QSFragmentDisableFlagsLogger @Inject constructor( } } private const val TAG = "QSFragmentDisableFlagsLog" private const val TAG = "QSDisableFlagsLog"
packages/SystemUI/src/com/android/systemui/qs/QSFragmentLegacy.java 0 → 100644 +369 −0 Original line number Diff line number Diff line /* * Copyright (C) 2023 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. */ package com.android.systemui.qs; import android.content.res.Configuration; import android.os.Bundle; import android.os.Trace; import android.view.ContextThemeWrapper; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import androidx.annotation.FloatRange; import androidx.annotation.Nullable; import com.android.systemui.plugins.qs.QS; import com.android.systemui.plugins.qs.QSContainerController; import com.android.systemui.qs.dagger.QSFragmentComponent; import com.android.systemui.res.R; import com.android.systemui.statusbar.policy.BrightnessMirrorController; import com.android.systemui.util.LifecycleFragment; import java.util.function.Consumer; import javax.inject.Inject; import javax.inject.Provider; public class QSFragmentLegacy extends LifecycleFragment implements QS { private final Provider<QSImpl> mQsImplProvider; private final QSFragmentComponent.Factory mQsComponentFactory; @Nullable private QSImpl mQsImpl; @Inject public QSFragmentLegacy( Provider<QSImpl> qsImplProvider, QSFragmentComponent.Factory qsComponentFactory ) { mQsComponentFactory = qsComponentFactory; mQsImplProvider = qsImplProvider; } @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) { try { Trace.beginSection("QSFragment#onCreateView"); inflater = inflater.cloneInContext(new ContextThemeWrapper(getContext(), R.style.Theme_SystemUI_QuickSettings)); return inflater.inflate(R.layout.qs_panel, container, false); } finally { Trace.endSection(); } } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { QSFragmentComponent qsFragmentComponent = mQsComponentFactory.create(this); mQsImpl = mQsImplProvider.get(); mQsImpl.onComponentCreated(qsFragmentComponent, savedInstanceState); } @Override public void setScrollListener(ScrollListener listener) { if (mQsImpl != null) { mQsImpl.setScrollListener(listener); } } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (mQsImpl != null) { mQsImpl.onCreate(savedInstanceState); } } @Override public void onDestroy() { super.onDestroy(); if (mQsImpl != null) { mQsImpl.onDestroy(); } } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); if (mQsImpl != null) { mQsImpl.onSaveInstanceState(outState); } } @Override public View getHeader() { if (mQsImpl != null) { return mQsImpl.getHeader(); } else { return null; } } @Override public void setHasNotifications(boolean hasNotifications) { if (mQsImpl != null) { mQsImpl.setHasNotifications(hasNotifications); } } @Override public void setPanelView(HeightListener panelView) { if (mQsImpl != null) { mQsImpl.setPanelView(panelView); } } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); if (mQsImpl != null) { mQsImpl.onConfigurationChanged(newConfig); } } @Override public void setFancyClipping(int leftInset, int top, int rightInset, int bottom, int cornerRadius, boolean visible, boolean fullWidth) { if (mQsImpl != null) { mQsImpl.setFancyClipping(leftInset, top, rightInset, bottom, cornerRadius, visible, fullWidth); } } @Override public boolean isFullyCollapsed() { if (mQsImpl != null) { return mQsImpl.isFullyCollapsed(); } else { return true; } } @Override public void setCollapsedMediaVisibilityChangedListener(Consumer<Boolean> listener) { if (mQsImpl != null) { mQsImpl.setCollapsedMediaVisibilityChangedListener(listener); } } @Override public void setContainerController(QSContainerController controller) { if (mQsImpl != null) { mQsImpl.setContainerController(controller); } } @Override public boolean isCustomizing() { if (mQsImpl != null) { return mQsImpl.isCustomizing(); } else { return false; } } public QSPanelController getQSPanelController() { if (mQsImpl != null) { return mQsImpl.getQSPanelController(); } else { return null; } } public void setBrightnessMirrorController( BrightnessMirrorController brightnessMirrorController) { if (mQsImpl != null) { mQsImpl.setBrightnessMirrorController(brightnessMirrorController); } } @Override public boolean isShowingDetail() { if (mQsImpl != null) { return mQsImpl.isShowingDetail(); } else { return false; } } @Override public void setHeaderClickable(boolean clickable) { if (mQsImpl != null) { mQsImpl.setHeaderClickable(clickable); } } @Override public void setExpanded(boolean expanded) { if (mQsImpl != null) { mQsImpl.setExpanded(expanded); } } @Override public void setOverscrolling(boolean stackScrollerOverscrolling) { if (mQsImpl != null) { mQsImpl.setOverscrolling(stackScrollerOverscrolling); } } @Override public void setListening(boolean listening) { if (mQsImpl != null) { mQsImpl.setListening(listening); } } @Override public void setQsVisible(boolean visible) { if (mQsImpl != null) { mQsImpl.setQsVisible(visible); } } @Override public void setHeaderListening(boolean listening) { if (mQsImpl != null) { mQsImpl.setHeaderListening(listening); } } @Override public void notifyCustomizeChanged() { if (mQsImpl != null) { mQsImpl.notifyCustomizeChanged(); } } @Override public void setInSplitShade(boolean inSplitShade) { if (mQsImpl != null) { mQsImpl.setInSplitShade(inSplitShade); } } @Override public void setTransitionToFullShadeProgress( boolean isTransitioningToFullShade, @FloatRange(from = 0.0, to = 1.0) float qsTransitionFraction, @FloatRange(from = 0.0, to = 1.0) float qsSquishinessFraction) { if (mQsImpl != null) { mQsImpl.setTransitionToFullShadeProgress(isTransitioningToFullShade, qsTransitionFraction, qsSquishinessFraction); } } @Override public void setOverScrollAmount(int overScrollAmount) { if (mQsImpl != null) { mQsImpl.setOverScrollAmount(overScrollAmount); } } @Override public int getHeightDiff() { if (mQsImpl != null) { return mQsImpl.getHeightDiff(); } else { return 0; } } @Override public void setIsNotificationPanelFullWidth(boolean isFullWidth) { if (mQsImpl != null) { mQsImpl.setIsNotificationPanelFullWidth(isFullWidth); } } @Override public void setQsExpansion(float expansion, float panelExpansionFraction, float proposedTranslation, float squishinessFraction) { if (mQsImpl != null) { mQsImpl.setQsExpansion(expansion, panelExpansionFraction, proposedTranslation, squishinessFraction); } } @Override public void animateHeaderSlidingOut() { if (mQsImpl != null) { mQsImpl.animateHeaderSlidingOut(); } } @Override public void setCollapseExpandAction(Runnable action) { if (mQsImpl != null) { mQsImpl.setCollapseExpandAction(action); } } @Override public void closeDetail() { if (mQsImpl != null) { mQsImpl.closeDetail(); } } @Override public void closeCustomizer() { if (mQsImpl != null) { mQsImpl.closeDetail(); } } /** * The height this view wants to be. This is different from {@link View#getMeasuredHeight} such * that during closing the detail panel, this already returns the smaller height. */ @Override public int getDesiredHeight() { if (mQsImpl != null) { return mQsImpl.getDesiredHeight(); } else { return 0; } } @Override public void setHeightOverride(int desiredHeight) { if (mQsImpl != null) { mQsImpl.setHeightOverride(desiredHeight); } } @Override public int getQsMinExpansionHeight() { if (mQsImpl != null) { return mQsImpl.getQsMinExpansionHeight(); } else { return 0; } } @Override public void hideImmediately() { if (mQsImpl != null) { mQsImpl.hideImmediately(); } } }