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

Commit feec2ab2 authored by Evan Laird's avatar Evan Laird
Browse files

Fix DemoMode icon spacing

- Use the same margin on the left of Wi-Fi (2.5dp)
- DemoMode uses the padding of the view it's replacing, and WRAP_CONTENT
for the width of its children
- Fix DemoMode etc dot color
- Don't constrain number of icons if DemoMode is replacing an
unconstrained container

Test: visual;
adb shell settings put global sysui_demo_allowed 1 && \
adb shell am broadcast -a com.android.systemui.demo -e command clock -e hhmm 0900 && \
adb shell am broadcast -a com.android.systemui.demo -e command network -e wifi show -e level 4 && \
adb shell am broadcast -a com.android.systemui.demo -e command network -e mobile show -e datatype none -e level 4 && \
adb shell am broadcast -a com.android.systemui.demo -e command status -e bluetooth disconnected && \
adb shell am broadcast -a com.android.systemui.demo -e command battery -e level 100 -e plugged false

Change-Id: I1d1389f9c6d6cb7d6078af5bbe4bc21e42771560
Fixes: 79094455
parent 5685dffd
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -28,8 +28,8 @@
        android:id="@+id/wifi_group"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:paddingStart="2dp"
        android:gravity="center_vertical"
        android:layout_marginStart="2.5dp"
    >
        <FrameLayout
                android:id="@+id/inout_container"
+12 −2
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;

import com.android.internal.statusbar.StatusBarIcon;
@@ -56,7 +57,14 @@ public class DemoStatusIcons extends StatusIconContainer implements DemoMode, Da
        mIconSize = iconSize;
        mColor = DarkIconDispatcher.DEFAULT_ICON_TINT;

        if (statusIcons instanceof StatusIconContainer) {
            setShouldRestrictIcons(((StatusIconContainer) statusIcons).isRestrictingIcons());
        } else {
            setShouldRestrictIcons(false);
        }
        setLayoutParams(mStatusIcons.getLayoutParams());
        setPadding(mStatusIcons.getPaddingLeft(),mStatusIcons.getPaddingTop(),
                mStatusIcons.getPaddingRight(), mStatusIcons.getPaddingBottom());
        setOrientation(mStatusIcons.getOrientation());
        setGravity(Gravity.CENTER_VERTICAL); // no LL.getGravity()
        ViewGroup p = (ViewGroup) mStatusIcons.getParent();
@@ -77,6 +85,7 @@ public class DemoStatusIcons extends StatusIconContainer implements DemoMode, Da
        for (int i = 0; i < getChildCount(); i++) {
            StatusIconDisplayable child = (StatusIconDisplayable) getChildAt(i);
            child.setStaticDrawableColor(mColor);
            child.setDecorColor(mColor);
        }
    }

@@ -189,11 +198,12 @@ public class DemoStatusIcons extends StatusIconContainer implements DemoMode, Da
        }
        StatusBarIcon icon = new StatusBarIcon(iconPkg, UserHandle.SYSTEM, iconId, 0, 0, "Demo");
        icon.visible = true;
        StatusBarIconView v = new StatusBarIconView(getContext(), null, null);
        StatusBarIconView v = new StatusBarIconView(getContext(), slot, null, false);
        v.setTag(slot);
        v.set(icon);
        v.setStaticDrawableColor(mColor);
        addView(v, 0, new LinearLayout.LayoutParams(mIconSize, mIconSize));
        v.setDecorColor(mColor);
        addView(v, 0, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, mIconSize));
    }

    public void addDemoWifiView(WifiIconState state) {
+8 −4
Original line number Diff line number Diff line
@@ -73,19 +73,23 @@ public class StatusIconContainer extends AlphaOptimizedLinearLayout {

    public StatusIconContainer(Context context, AttributeSet attrs) {
        super(context, attrs);
        initDimens();
        setWillNotDraw(!DEBUG_OVERFLOW);
    }

    @Override
    protected void onFinishInflate() {
        super.onFinishInflate();
        setWillNotDraw(!DEBUG_OVERFLOW);
        initDimens();
    }

    public void setShouldRestrictIcons(boolean should) {
        mShouldRestrictIcons = should;
    }

    public boolean isRestrictingIcons() {
        return mShouldRestrictIcons;
    }

    private void initDimens() {
        // This is the same value that StatusBarIconView uses
        mIconDotFrameWidth = getResources().getDimensionPixelSize(
@@ -209,8 +213,8 @@ public class StatusIconContainer extends AlphaOptimizedLinearLayout {
        int childCount = getChildCount();
        // Underflow === don't show content until that index
        int firstUnderflowIndex = -1;
        if (DEBUG) android.util.Log.d(TAG, "calculateIconTransitions: start=" + translationX
                + " width=" + width);
        if (DEBUG) android.util.Log.d(TAG, "calculateIconTranslations: start=" + translationX
                + " width=" + width + " underflow=" + mNeedsUnderflow);

        // Collect all of the states which want to be visible
        for (int i = childCount - 1; i >= 0; i--) {