Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fe2fa338 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Remove legacy calls to StatusBarWindowView for layouts" into sc-v2-dev am: 4948c6a1

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16066748

Change-Id: I04bad33874cf0c3329c4dd35360431b2c09cf61d
parents 4a02bacc 4948c6a1
Loading
Loading
Loading
Loading
+15 −14
Original line number Original line Diff line number Diff line
@@ -39,11 +39,11 @@ import com.android.settingslib.Utils;
import com.android.systemui.R;
import com.android.systemui.R;
import com.android.systemui.battery.BatteryMeterView;
import com.android.systemui.battery.BatteryMeterView;
import com.android.systemui.qs.QSDetail.Callback;
import com.android.systemui.qs.QSDetail.Callback;
import com.android.systemui.statusbar.phone.StatusBarContentInsetsProvider;
import com.android.systemui.statusbar.phone.StatusBarIconController.TintedIconManager;
import com.android.systemui.statusbar.phone.StatusBarIconController.TintedIconManager;
import com.android.systemui.statusbar.phone.StatusIconContainer;
import com.android.systemui.statusbar.phone.StatusIconContainer;
import com.android.systemui.statusbar.policy.Clock;
import com.android.systemui.statusbar.policy.Clock;
import com.android.systemui.statusbar.policy.VariableDateView;
import com.android.systemui.statusbar.policy.VariableDateView;
import com.android.systemui.statusbar.window.StatusBarWindowView;


import java.util.List;
import java.util.List;


@@ -86,6 +86,7 @@ public class QuickStatusBarHeader extends FrameLayout {


    private TintedIconManager mTintedIconManager;
    private TintedIconManager mTintedIconManager;
    private QSExpansionPathInterpolator mQSExpansionPathInterpolator;
    private QSExpansionPathInterpolator mQSExpansionPathInterpolator;
    private StatusBarContentInsetsProvider mInsetsProvider;


    private int mRoundedCornerPadding = 0;
    private int mRoundedCornerPadding = 0;
    private int mWaterfallTopInset;
    private int mWaterfallTopInset;
@@ -161,10 +162,12 @@ public class QuickStatusBarHeader extends FrameLayout {
    void onAttach(TintedIconManager iconManager,
    void onAttach(TintedIconManager iconManager,
            QSExpansionPathInterpolator qsExpansionPathInterpolator,
            QSExpansionPathInterpolator qsExpansionPathInterpolator,
            List<String> rssiIgnoredSlots,
            List<String> rssiIgnoredSlots,
            boolean useCombinedQSHeader) {
            boolean useCombinedQSHeader,
            StatusBarContentInsetsProvider insetsProvider) {
        mUseCombinedQSHeader = useCombinedQSHeader;
        mUseCombinedQSHeader = useCombinedQSHeader;
        mTintedIconManager = iconManager;
        mTintedIconManager = iconManager;
        mRssiIgnoredSlots = rssiIgnoredSlots;
        mRssiIgnoredSlots = rssiIgnoredSlots;
        mInsetsProvider = insetsProvider;
        int fillColor = Utils.getColorAttrDefaultColor(getContext(),
        int fillColor = Utils.getColorAttrDefaultColor(getContext(),
                android.R.attr.textColorPrimary);
                android.R.attr.textColorPrimary);


@@ -436,22 +439,20 @@ public class QuickStatusBarHeader extends FrameLayout {
    public WindowInsets onApplyWindowInsets(WindowInsets insets) {
    public WindowInsets onApplyWindowInsets(WindowInsets insets) {
        // Handle padding of the views
        // Handle padding of the views
        DisplayCutout cutout = insets.getDisplayCutout();
        DisplayCutout cutout = insets.getDisplayCutout();
        Pair<Integer, Integer> cornerCutoutPadding = StatusBarWindowView.cornerCutoutMargins(

                cutout, getDisplay());
        Pair<Integer, Integer> sbInsets = mInsetsProvider
        Pair<Integer, Integer> padding =
                .getStatusBarContentInsetsForCurrentRotation();
                StatusBarWindowView.paddingNeededForCutoutAndRoundedCorner(
        boolean hasCornerCutout = mInsetsProvider.currentRotationHasCornerCutout();
                        cutout, cornerCutoutPadding, -1);

        mDatePrivacyView.setPadding(padding.first, 0, padding.second, 0);
        mDatePrivacyView.setPadding(sbInsets.first, 0, sbInsets.second, 0);
        mStatusIconsView.setPadding(padding.first, 0, padding.second, 0);
        mStatusIconsView.setPadding(sbInsets.first, 0, sbInsets.second, 0);
        LinearLayout.LayoutParams datePrivacySeparatorLayoutParams =
        LinearLayout.LayoutParams datePrivacySeparatorLayoutParams =
                (LinearLayout.LayoutParams) mDatePrivacySeparator.getLayoutParams();
                (LinearLayout.LayoutParams) mDatePrivacySeparator.getLayoutParams();
        LinearLayout.LayoutParams mClockIconsSeparatorLayoutParams =
        LinearLayout.LayoutParams mClockIconsSeparatorLayoutParams =
                (LinearLayout.LayoutParams) mClockIconsSeparator.getLayoutParams();
                (LinearLayout.LayoutParams) mClockIconsSeparator.getLayoutParams();
        boolean cornerCutout = cornerCutoutPadding != null
                && (cornerCutoutPadding.first == 0 || cornerCutoutPadding.second == 0);
        if (cutout != null) {
        if (cutout != null) {
            Rect topCutout = cutout.getBoundingRectTop();
            Rect topCutout = cutout.getBoundingRectTop();
            if (topCutout.isEmpty() || cornerCutout) {
            if (topCutout.isEmpty() || hasCornerCutout) {
                datePrivacySeparatorLayoutParams.width = 0;
                datePrivacySeparatorLayoutParams.width = 0;
                mDatePrivacySeparator.setVisibility(View.GONE);
                mDatePrivacySeparator.setVisibility(View.GONE);
                mClockIconsSeparatorLayoutParams.width = 0;
                mClockIconsSeparatorLayoutParams.width = 0;
@@ -469,8 +470,8 @@ public class QuickStatusBarHeader extends FrameLayout {
        }
        }
        mDatePrivacySeparator.setLayoutParams(datePrivacySeparatorLayoutParams);
        mDatePrivacySeparator.setLayoutParams(datePrivacySeparatorLayoutParams);
        mClockIconsSeparator.setLayoutParams(mClockIconsSeparatorLayoutParams);
        mClockIconsSeparator.setLayoutParams(mClockIconsSeparatorLayoutParams);
        mCutOutPaddingLeft = padding.first;
        mCutOutPaddingLeft = sbInsets.first;
        mCutOutPaddingRight = padding.second;
        mCutOutPaddingRight = sbInsets.second;
        mWaterfallTopInset = cutout == null ? 0 : cutout.getWaterfallInsets().top;
        mWaterfallTopInset = cutout == null ? 0 : cutout.getWaterfallInsets().top;


        updateBatteryMode();
        updateBatteryMode();
+6 −2
Original line number Original line Diff line number Diff line
@@ -39,6 +39,7 @@ import com.android.systemui.privacy.PrivacyItemController;
import com.android.systemui.privacy.logging.PrivacyLogger;
import com.android.systemui.privacy.logging.PrivacyLogger;
import com.android.systemui.qs.carrier.QSCarrierGroupController;
import com.android.systemui.qs.carrier.QSCarrierGroupController;
import com.android.systemui.qs.dagger.QSScope;
import com.android.systemui.qs.dagger.QSScope;
import com.android.systemui.statusbar.phone.StatusBarContentInsetsProvider;
import com.android.systemui.statusbar.phone.StatusBarIconController;
import com.android.systemui.statusbar.phone.StatusBarIconController;
import com.android.systemui.statusbar.phone.StatusIconContainer;
import com.android.systemui.statusbar.phone.StatusIconContainer;
import com.android.systemui.statusbar.policy.Clock;
import com.android.systemui.statusbar.policy.Clock;
@@ -73,6 +74,7 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader
    private final QSExpansionPathInterpolator mQSExpansionPathInterpolator;
    private final QSExpansionPathInterpolator mQSExpansionPathInterpolator;
    private final BatteryMeterViewController mBatteryMeterViewController;
    private final BatteryMeterViewController mBatteryMeterViewController;
    private final FeatureFlags mFeatureFlags;
    private final FeatureFlags mFeatureFlags;
    private final StatusBarContentInsetsProvider mInsetsProvider;


    private final VariableDateViewController mVariableDateViewControllerDateView;
    private final VariableDateViewController mVariableDateViewControllerDateView;
    private final VariableDateViewController mVariableDateViewControllerClockDateView;
    private final VariableDateViewController mVariableDateViewControllerClockDateView;
@@ -142,7 +144,8 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader
            QSExpansionPathInterpolator qsExpansionPathInterpolator,
            QSExpansionPathInterpolator qsExpansionPathInterpolator,
            BatteryMeterViewController batteryMeterViewController,
            BatteryMeterViewController batteryMeterViewController,
            FeatureFlags featureFlags,
            FeatureFlags featureFlags,
            VariableDateViewController.Factory variableDateViewControllerFactory) {
            VariableDateViewController.Factory variableDateViewControllerFactory,
            StatusBarContentInsetsProvider statusBarContentInsetsProvider) {
        super(view);
        super(view);
        mPrivacyItemController = privacyItemController;
        mPrivacyItemController = privacyItemController;
        mActivityStarter = activityStarter;
        mActivityStarter = activityStarter;
@@ -155,6 +158,7 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader
        mQSExpansionPathInterpolator = qsExpansionPathInterpolator;
        mQSExpansionPathInterpolator = qsExpansionPathInterpolator;
        mBatteryMeterViewController = batteryMeterViewController;
        mBatteryMeterViewController = batteryMeterViewController;
        mFeatureFlags = featureFlags;
        mFeatureFlags = featureFlags;
        mInsetsProvider = statusBarContentInsetsProvider;


        mQSCarrierGroupController = qsCarrierGroupControllerBuilder
        mQSCarrierGroupController = qsCarrierGroupControllerBuilder
                .setQSCarrierGroup(mView.findViewById(R.id.carrier_group))
                .setQSCarrierGroup(mView.findViewById(R.id.carrier_group))
@@ -226,7 +230,7 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader
        }
        }


        mView.onAttach(mIconManager, mQSExpansionPathInterpolator, rssiIgnoredSlots,
        mView.onAttach(mIconManager, mQSExpansionPathInterpolator, rssiIgnoredSlots,
                mFeatureFlags.useCombinedQSHeaders());
                mFeatureFlags.useCombinedQSHeaders(), mInsetsProvider);


        mDemoModeController.addCallback(mDemoModeReceiver);
        mDemoModeController.addCallback(mDemoModeReceiver);


+8 −8
Original line number Original line Diff line number Diff line
@@ -393,11 +393,11 @@ class PrivacyDotViewController @Inject constructor(
            animationScheduler.addCallback(systemStatusAnimationCallback)
            animationScheduler.addCallback(systemStatusAnimationCallback)
        }
        }


        val left = contentInsetsProvider.getStatusBarContentInsetsForRotation(ROTATION_SEASCAPE)
        val left = contentInsetsProvider.getStatusBarContentAreaForRotation(ROTATION_SEASCAPE)
        val top = contentInsetsProvider.getStatusBarContentInsetsForRotation(ROTATION_NONE)
        val top = contentInsetsProvider.getStatusBarContentAreaForRotation(ROTATION_NONE)
        val right = contentInsetsProvider.getStatusBarContentInsetsForRotation(ROTATION_LANDSCAPE)
        val right = contentInsetsProvider.getStatusBarContentAreaForRotation(ROTATION_LANDSCAPE)
        val bottom = contentInsetsProvider
        val bottom = contentInsetsProvider
                .getStatusBarContentInsetsForRotation(ROTATION_UPSIDE_DOWN)
                .getStatusBarContentAreaForRotation(ROTATION_UPSIDE_DOWN)
        val paddingTop = contentInsetsProvider.getStatusBarPaddingTop()
        val paddingTop = contentInsetsProvider.getStatusBarPaddingTop()


        synchronized(lock) {
        synchronized(lock) {
@@ -528,11 +528,11 @@ class PrivacyDotViewController @Inject constructor(


    // Returns [left, top, right, bottom] aka [seascape, none, landscape, upside-down]
    // Returns [left, top, right, bottom] aka [seascape, none, landscape, upside-down]
    private fun getLayoutRects(): List<Rect> {
    private fun getLayoutRects(): List<Rect> {
        val left = contentInsetsProvider.getStatusBarContentInsetsForRotation(ROTATION_SEASCAPE)
        val left = contentInsetsProvider.getStatusBarContentAreaForRotation(ROTATION_SEASCAPE)
        val top = contentInsetsProvider.getStatusBarContentInsetsForRotation(ROTATION_NONE)
        val top = contentInsetsProvider.getStatusBarContentAreaForRotation(ROTATION_NONE)
        val right = contentInsetsProvider.getStatusBarContentInsetsForRotation(ROTATION_LANDSCAPE)
        val right = contentInsetsProvider.getStatusBarContentAreaForRotation(ROTATION_LANDSCAPE)
        val bottom = contentInsetsProvider
        val bottom = contentInsetsProvider
                .getStatusBarContentInsetsForRotation(ROTATION_UPSIDE_DOWN)
                .getStatusBarContentAreaForRotation(ROTATION_UPSIDE_DOWN)


        return listOf(left, top, right, bottom)
        return listOf(left, top, right, bottom)
    }
    }
+10 −14
Original line number Original line Diff line number Diff line
@@ -47,7 +47,6 @@ import com.android.systemui.R;
import com.android.systemui.animation.Interpolators;
import com.android.systemui.animation.Interpolators;
import com.android.systemui.battery.BatteryMeterView;
import com.android.systemui.battery.BatteryMeterView;
import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver;
import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver;
import com.android.systemui.statusbar.window.StatusBarWindowView;


import java.io.FileDescriptor;
import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.io.PrintWriter;
@@ -239,35 +238,32 @@ public class KeyguardStatusBarView extends RelativeLayout {
        }
        }
    }
    }


    @Override
    /** Should only be called from {@link KeyguardStatusBarViewController}. */
    public WindowInsets onApplyWindowInsets(WindowInsets insets) {
    WindowInsets updateWindowInsets(
            WindowInsets insets,
            StatusBarContentInsetsProvider insetsProvider) {
        mLayoutState = LAYOUT_NONE;
        mLayoutState = LAYOUT_NONE;
        if (updateLayoutConsideringCutout()) {
        if (updateLayoutConsideringCutout(insetsProvider)) {
            requestLayout();
            requestLayout();
        }
        }
        return super.onApplyWindowInsets(insets);
        return super.onApplyWindowInsets(insets);
    }
    }


    private boolean updateLayoutConsideringCutout() {
    private boolean updateLayoutConsideringCutout(StatusBarContentInsetsProvider insetsProvider) {
        mDisplayCutout = getRootWindowInsets().getDisplayCutout();
        mDisplayCutout = getRootWindowInsets().getDisplayCutout();
        updateKeyguardStatusBarHeight();
        updateKeyguardStatusBarHeight();

        updatePadding(insetsProvider);
        Pair<Integer, Integer> cornerCutoutMargins =
        if (mDisplayCutout == null || insetsProvider.currentRotationHasCornerCutout()) {
                StatusBarWindowView.cornerCutoutMargins(mDisplayCutout, getDisplay());
        updatePadding(cornerCutoutMargins);
        if (mDisplayCutout == null || cornerCutoutMargins != null) {
            return updateLayoutParamsNoCutout();
            return updateLayoutParamsNoCutout();
        } else {
        } else {
            return updateLayoutParamsForCutout();
            return updateLayoutParamsForCutout();
        }
        }
    }
    }


    private void updatePadding(Pair<Integer, Integer> cornerCutoutMargins) {
    private void updatePadding(StatusBarContentInsetsProvider insetsProvider) {
        final int waterfallTop =
        final int waterfallTop =
                mDisplayCutout == null ? 0 : mDisplayCutout.getWaterfallInsets().top;
                mDisplayCutout == null ? 0 : mDisplayCutout.getWaterfallInsets().top;
        mPadding =
        mPadding = insetsProvider.getStatusBarContentInsetsForCurrentRotation();
                StatusBarWindowView.paddingNeededForCutoutAndRoundedCorner(
                        mDisplayCutout, cornerCutoutMargins, mRoundedCornerPadding);


        // consider privacy dot space
        // consider privacy dot space
        final int minLeft = (isLayoutRtl() && mIsPrivacyDotEnabled)
        final int minLeft = (isLayoutRtl() && mIsPrivacyDotEnabled)
+8 −1
Original line number Original line Diff line number Diff line
@@ -91,6 +91,7 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat
    private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
    private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
    private final BiometricUnlockController mBiometricUnlockController;
    private final BiometricUnlockController mBiometricUnlockController;
    private final SysuiStatusBarStateController mStatusBarStateController;
    private final SysuiStatusBarStateController mStatusBarStateController;
    private final StatusBarContentInsetsProvider mInsetsProvider;


    private final ConfigurationController.ConfigurationListener mConfigurationListener =
    private final ConfigurationController.ConfigurationListener mConfigurationListener =
            new ConfigurationController.ConfigurationListener() {
            new ConfigurationController.ConfigurationListener() {
@@ -228,7 +229,9 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat
            KeyguardBypassController bypassController,
            KeyguardBypassController bypassController,
            KeyguardUpdateMonitor keyguardUpdateMonitor,
            KeyguardUpdateMonitor keyguardUpdateMonitor,
            BiometricUnlockController biometricUnlockController,
            BiometricUnlockController biometricUnlockController,
            SysuiStatusBarStateController statusBarStateController) {
            SysuiStatusBarStateController statusBarStateController,
            StatusBarContentInsetsProvider statusBarContentInsetsProvider
    ) {
        super(view);
        super(view);
        mCarrierTextController = carrierTextController;
        mCarrierTextController = carrierTextController;
        mConfigurationController = configurationController;
        mConfigurationController = configurationController;
@@ -244,6 +247,7 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat
        mKeyguardUpdateMonitor = keyguardUpdateMonitor;
        mKeyguardUpdateMonitor = keyguardUpdateMonitor;
        mBiometricUnlockController = biometricUnlockController;
        mBiometricUnlockController = biometricUnlockController;
        mStatusBarStateController = statusBarStateController;
        mStatusBarStateController = statusBarStateController;
        mInsetsProvider = statusBarContentInsetsProvider;


        mFirstBypassAttempt = mKeyguardBypassController.getBypassEnabled();
        mFirstBypassAttempt = mKeyguardBypassController.getBypassEnabled();
        mKeyguardStateController.addCallback(
        mKeyguardStateController.addCallback(
@@ -287,6 +291,9 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat
            mTintedIconManager.setBlockList(mBlockedIcons);
            mTintedIconManager.setBlockList(mBlockedIcons);
            mStatusBarIconController.addIconGroup(mTintedIconManager);
            mStatusBarIconController.addIconGroup(mTintedIconManager);
        }
        }
        mView.setOnApplyWindowInsetsListener(
                (view, windowInsets) -> mView.updateWindowInsets(windowInsets, mInsetsProvider));

        onThemeChanged();
        onThemeChanged();
    }
    }


Loading