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

Commit cedcb945 authored by Jason Monk's avatar Jason Monk
Browse files

QS: Fix brightness/edit disappearing with too few tiles

 - Make sure the tile layout doesn't have negative height

Test: runtest systemui
Fixes: 34593873
Change-Id: I392aa925cde1b2147a86cda63cd9e84cd3026a90
parent 0355dccc
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -99,8 +99,9 @@ public class TileLayout extends ViewGroup implements QSTileLayout {
            record.tileView.measure(exactly(mCellWidth), exactly(mCellHeight));
            previousView = record.tileView.updateAccessibilityOrder(previousView);
        }
        setMeasuredDimension(width,
                (mCellHeight + mCellMargin) * rows + (mCellMarginTop - mCellMargin));
        int height = (mCellHeight + mCellMargin) * rows + (mCellMarginTop - mCellMargin);
        if (height < 0) height = 0;
        setMeasuredDimension(width, height);
    }

    private static int exactly(int size) {
+3 −20
Original line number Diff line number Diff line
@@ -15,11 +15,6 @@
package com.android.systemui.qs;

import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import android.os.Handler;
import android.os.Looper;
import android.support.test.runner.AndroidJUnit4;

import com.android.systemui.Dependency;
import com.android.systemui.FragmentTestCase;
@@ -27,28 +22,16 @@ import com.android.systemui.R;
import com.android.systemui.statusbar.phone.QSTileHost;
import com.android.systemui.statusbar.phone.QuickStatusBarHeader;
import com.android.systemui.statusbar.phone.StatusBarIconController;
import com.android.systemui.statusbar.policy.BatteryController;
import com.android.systemui.statusbar.policy.BluetoothController;
import com.android.systemui.statusbar.policy.CastController;
import com.android.systemui.statusbar.policy.FlashlightController;
import com.android.systemui.statusbar.policy.HotspotController;
import com.android.systemui.statusbar.policy.KeyguardMonitor;
import com.android.systemui.statusbar.policy.LocationController;
import com.android.systemui.statusbar.policy.NetworkController;
import com.android.systemui.statusbar.policy.NextAlarmController;
import com.android.systemui.statusbar.policy.RotationLockController;
import com.android.systemui.statusbar.policy.SecurityController;
import com.android.systemui.statusbar.policy.UserInfoController;
import com.android.systemui.statusbar.policy.UserSwitcherController;
import com.android.systemui.statusbar.policy.ZenModeController;
import com.android.systemui.tuner.TunerService;
import com.android.systemui.utils.leaks.LeakCheckedTest;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;

import java.util.ArrayList;
import android.os.Handler;
import android.os.Looper;
import android.support.test.runner.AndroidJUnit4;

@RunWith(AndroidJUnit4.class)
public class QSFragmentTest extends FragmentTestCase {
+6 −0
Original line number Diff line number Diff line
@@ -161,4 +161,10 @@ public class TileLayoutTest extends SysuiTestCase {
        assertEquals(top1.getValue().intValue(), top2.getValue().intValue());
        assertEquals(bottom1.getValue().intValue(), bottom2.getValue().intValue());
    }

    @Test
    public void testEmptyHeight() {
        mTileLayout.measure(mLayoutSizeForOneTile, mLayoutSizeForOneTile);
        assertEquals(0, mTileLayout.getMeasuredHeight());
    }
}
+1 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ public class FakeTunerService extends TunerService {
    public FakeTunerService(Context context, LeakCheckedTest test) {
        super(context);
        mBaseLeakChecker = new BaseLeakChecker<>(test, "tunable");
        destroy();
    }

    @Override