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

Commit cc3d1d8b authored by Rohan Shah's avatar Rohan Shah
Browse files

[QS] Update landscape UI

Rolling forward the landscape UI changes (To not break taimen with a
notch this time!). OG CL: ag/3717677

Shorten status bar height in landscape and update colors to use
wallpaperTextColor when in landscape mode.

Additionally modified scrim opacity for the QS panel to provide more
contrast/focus on content.

Test: Visually
Bug: 73808887
Change-Id: I249579d2898b9915868bb584661864d10ed88de2
parent 1e617f5c
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -29,7 +29,10 @@

    <!-- Height of the status bar -->
    <dimen name="status_bar_height">@dimen/status_bar_height_landscape</dimen>

    <!-- Height of area above QQS where battery/time go -->
    <dimen name="quick_qs_offset_height">@dimen/status_bar_height_landscape</dimen>
    <!-- Total height of QQS in landscape, this is effectively status_bar_height_landscape + 128 -->
    <dimen name="quick_qs_total_height">152dp</dimen>
    <!-- Default height of an action bar. -->
    <dimen name="action_bar_default_height">40dip</dimen>
    <!-- Vertical padding around action bar icons. -->
+1 −0
Original line number Diff line number Diff line
@@ -1671,6 +1671,7 @@
  <java-symbol type="dimen" name="navigation_bar_height_landscape_car_mode" />
  <java-symbol type="dimen" name="navigation_bar_width_car_mode" />
  <java-symbol type="dimen" name="status_bar_height" />
  <java-symbol type="dimen" name="quick_qs_offset_height" />
  <java-symbol type="dimen" name="quick_qs_total_height" />
  <java-symbol type="drawable" name="ic_jog_dial_sound_off" />
  <java-symbol type="drawable" name="ic_jog_dial_sound_on" />
+9 −12
Original line number Diff line number Diff line
@@ -31,25 +31,23 @@

    <com.android.systemui.statusbar.policy.Clock
        android:id="@+id/clock"
        android:textAppearance="@style/TextAppearance.StatusBar.Clock"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:singleLine="true"
        android:gravity="center_vertical|start"
        android:paddingStart="@dimen/status_bar_left_clock_starting_padding"
        android:paddingEnd="@dimen/status_bar_left_clock_end_padding"
        android:gravity="center_vertical|start"
        systemui:showDark="false"
    />
        android:singleLine="true"
        android:textAppearance="@style/TextAppearance.StatusBar.Clock"
        systemui:showDark="false" />

    <com.android.systemui.statusbar.policy.DateView
        android:id="@+id/date"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="4dp"
        android:gravity="center_vertical"
        android:singleLine="true"
        android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Date"
        android:textSize="@dimen/qs_time_collapsed_size"
        android:gravity="center_vertical"
        systemui:datePattern="@string/abbrev_wday_month_day_no_year_alarm" />

    <android.widget.Space
@@ -57,12 +55,11 @@
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center_vertical|center_horizontal"
    />
        android:gravity="center_vertical|center_horizontal" />

    <com.android.systemui.BatteryMeterView android:id="@+id/battery"
    <com.android.systemui.BatteryMeterView
        android:id="@+id/battery"
        android:layout_height="match_parent"
        android:layout_width="wrap_content"
        android:gravity="center_vertical|end"
        />
        android:gravity="center_vertical|end" />
</LinearLayout>
+46 −10
Original line number Diff line number Diff line
@@ -81,6 +81,14 @@ public class BatteryMeterView extends LinearLayout implements
    private float mDarkIntensity;
    private int mUser;

    /**
     * Whether we should use colors that adapt based on wallpaper/the scrim behind quick settings.
     */
    private boolean mUseWallpaperTextColors;

    private int mNonAdaptedForegroundColor;
    private int mNonAdaptedBackgroundColor;

    public BatteryMeterView(Context context) {
        this(context, null, 0);
    }
@@ -140,6 +148,29 @@ public class BatteryMeterView extends LinearLayout implements
        updateShowPercent();
    }

    /**
     * Sets whether the battery meter view uses the wallpaperTextColor. If we're not using it, we'll
     * revert back to dark-mode-based/tinted colors.
     *
     * @param shouldUseWallpaperTextColor whether we should use wallpaperTextColor for all
     *                                    components
     */
    public void useWallpaperTextColor(boolean shouldUseWallpaperTextColor) {
        if (shouldUseWallpaperTextColor == mUseWallpaperTextColors) {
            return;
        }

        mUseWallpaperTextColors = shouldUseWallpaperTextColor;

        if (mUseWallpaperTextColors) {
            updateColors(
                    Utils.getColorAttr(mContext, R.attr.wallpaperTextColor),
                    Utils.getColorAttr(mContext, R.attr.wallpaperTextColorSecondary));
        } else {
            updateColors(mNonAdaptedForegroundColor, mNonAdaptedBackgroundColor);
        }
    }

    public void setColorsFromContext(Context context) {
        if (context == null) {
            return;
@@ -179,7 +210,8 @@ public class BatteryMeterView extends LinearLayout implements
        getContext().getContentResolver().registerContentObserver(
                Settings.System.getUriFor(SHOW_BATTERY_PERCENT), false, mSettingObserver, mUser);
        updateShowPercent();
        Dependency.get(TunerService.class).addTunable(this, StatusBarIconController.ICON_BLACKLIST);
        Dependency.get(TunerService.class)
                .addTunable(this, StatusBarIconController.ICON_BLACKLIST);
        Dependency.get(ConfigurationController.class).addCallback(this);
        mUserTracker.startTracking();
    }
@@ -273,19 +305,23 @@ public class BatteryMeterView extends LinearLayout implements
    @Override
    public void onDarkChanged(Rect area, float darkIntensity, int tint) {
        mDarkIntensity = darkIntensity;

        float intensity = DarkIconDispatcher.isInArea(area, this) ? darkIntensity : 0;
        int foreground = getColorForDarkIntensity(intensity, mLightModeFillColor,
                mDarkModeFillColor);
        int background = getColorForDarkIntensity(intensity, mLightModeBackgroundColor,
                mDarkModeBackgroundColor);
        mDrawable.setColors(foreground, background);
        setTextColor(foreground);
        mNonAdaptedForegroundColor = getColorForDarkIntensity(
                intensity, mLightModeFillColor, mDarkModeFillColor);
        mNonAdaptedBackgroundColor = getColorForDarkIntensity(
                intensity, mLightModeBackgroundColor,mDarkModeBackgroundColor);

        if (!mUseWallpaperTextColors) {
            updateColors(mNonAdaptedForegroundColor, mNonAdaptedBackgroundColor);
        }
    }

    public void setTextColor(int color) {
        mTextColor = color;
    private void updateColors(int foregroundColor, int backgroundColor) {
        mDrawable.setColors(foregroundColor, backgroundColor);
        mTextColor = foregroundColor;
        if (mBatteryPercentView != null) {
            mBatteryPercentView.setTextColor(color);
            mBatteryPercentView.setTextColor(foregroundColor);
        }
    }

+31 −3
Original line number Diff line number Diff line
@@ -18,17 +18,15 @@ package com.android.systemui.qs;

import android.content.Context;
import android.content.res.Configuration;
import android.graphics.Canvas;
import android.graphics.Path;
import android.graphics.Point;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.widget.FrameLayout;

import com.android.settingslib.Utils;
import com.android.systemui.R;
import com.android.systemui.qs.customize.QSCustomizer;
import com.android.systemui.statusbar.ExpandableOutlineView;

/**
 * Wrapper view with background which contains {@link QSPanel} and {@link BaseStatusBarHeader}
@@ -44,7 +42,11 @@ public class QSContainerImpl extends FrameLayout {
    protected float mQsExpansion;
    private QSCustomizer mQSCustomizer;
    private View mQSFooter;

    private View mBackground;
    private View mBackgroundGradient;
    private View mStatusBarBackground;

    private int mSideMargins;

    public QSContainerImpl(Context context, AttributeSet attrs) {
@@ -60,6 +62,8 @@ public class QSContainerImpl extends FrameLayout {
        mQSCustomizer = findViewById(R.id.qs_customize);
        mQSFooter = findViewById(R.id.qs_footer);
        mBackground = findViewById(R.id.quick_settings_background);
        mStatusBarBackground = findViewById(R.id.quick_settings_status_bar_background);
        mBackgroundGradient = findViewById(R.id.quick_settings_gradient_view);
        mSideMargins = getResources().getDimensionPixelSize(R.dimen.notification_side_paddings);

        setClickable(true);
@@ -67,6 +71,22 @@ public class QSContainerImpl extends FrameLayout {
        setMargins();
    }

    @Override
    protected void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);

        // Hide the backgrounds when in landscape mode.
        if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
            mBackgroundGradient.setVisibility(View.INVISIBLE);
            mStatusBarBackground.setVisibility(View.INVISIBLE);
        } else {
            mBackgroundGradient.setVisibility(View.VISIBLE);
            mStatusBarBackground.setVisibility(View.VISIBLE);
        }

        updateResources();
    }

    @Override
    public boolean performClick() {
        // Want to receive clicks so missing QQS tiles doesn't cause collapse, but
@@ -101,6 +121,14 @@ public class QSContainerImpl extends FrameLayout {
        updateExpansion();
    }

    private void updateResources() {
        LayoutParams layoutParams = (LayoutParams) mQSPanel.getLayoutParams();
        layoutParams.topMargin = mContext.getResources().getDimensionPixelSize(
                com.android.internal.R.dimen.quick_qs_offset_height);

        mQSPanel.setLayoutParams(layoutParams);
    }

    /**
     * Overrides the height of this view (post-layout), so that the content is clipped to that
     * height and the background is set to that height.
Loading