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

Commit 92cd6093 authored by Beth Thibodeau's avatar Beth Thibodeau
Browse files

Initialize horizontal panel as GONE and add logs

The horizontal layout view should only be visible when the configuration
has changed to landscape, so it should be initialized as GONE normally.
Also add more logs to help debug if/when this layout changes.

Bug: 198319256
Test: manual, verify correct behavior when rotating

Change-Id: Ic338a0c7772410bdb0964e4686ac0283947e657c
Merged-In: Ic338a0c7772410bdb0964e4686ac0283947e657c
(cherry picked from commit 09855a11)
parent 945f5b88
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -128,6 +128,8 @@ public class QSPanel extends LinearLayout implements Tunable {
        if (mUsingMediaPlayer) {
            mHorizontalLinearLayout = new RemeasuringLinearLayout(mContext);
            mHorizontalLinearLayout.setOrientation(LinearLayout.HORIZONTAL);
            mHorizontalLinearLayout.setVisibility(
                    mUsingHorizontalLayout ? View.VISIBLE : View.GONE);
            mHorizontalLinearLayout.setClipChildren(false);
            mHorizontalLinearLayout.setClipToPadding(false);

@@ -445,6 +447,8 @@ public class QSPanel extends LinearLayout implements Tunable {
        mMediaHostView = hostView;
        ViewGroup newParent = horizontal ? mHorizontalLinearLayout : this;
        ViewGroup currentParent = (ViewGroup) hostView.getParent();
        Log.d(getDumpableTag(), "Reattaching media host: " + horizontal
                + ", current " + currentParent + ", new " + newParent);
        if (currentParent != newParent) {
            if (currentParent != null) {
                currentParent.removeView(hostView);
@@ -589,6 +593,7 @@ public class QSPanel extends LinearLayout implements Tunable {

    void setUsingHorizontalLayout(boolean horizontal, ViewGroup mediaHostView, boolean force) {
        if (horizontal != mUsingHorizontalLayout || force) {
            Log.d(getDumpableTag(), "setUsingHorizontalLayout: " + horizontal + ", " + force);
            mUsingHorizontalLayout = horizontal;
            ViewGroup newParent = horizontal ? mHorizontalContentContainer : this;
            switchAllContentToParent(newParent, mTileLayout);
+6 −0
Original line number Diff line number Diff line
@@ -88,6 +88,8 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
                public void onConfigurationChange(Configuration newConfig) {
                    mShouldUseSplitNotificationShade =
                            LargeScreenUtils.shouldUseSplitNotificationShade(getResources());
                    mQSLogger.logOnConfigurationChanged(mLastOrientation, newConfig.orientation,
                            mView.getDumpableTag());
                    onConfigurationChanged();
                    if (newConfig.orientation != mLastOrientation) {
                        mLastOrientation = newConfig.orientation;
@@ -164,6 +166,7 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
        mHost.addCallback(mQSHostCallback);
        setTiles();
        mLastOrientation = getResources().getConfiguration().orientation;
        mQSLogger.logOnViewAttached(mLastOrientation, mView.getDumpableTag());
        switchTileLayout(true);

        mDumpManager.registerDumpable(mView.getDumpableTag(), this);
@@ -171,6 +174,7 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr

    @Override
    protected void onViewDetached() {
        mQSLogger.logOnViewDetached(mLastOrientation, mView.getDumpableTag());
        mView.removeOnConfigurationChangedListener(mOnConfigurationChangedListener);
        mHost.removeCallback(mQSHostCallback);

@@ -325,6 +329,8 @@ public abstract class QSPanelControllerBase<T extends QSPanel> extends ViewContr
        /* Whether or not the panel currently contains a media player. */
        boolean horizontal = shouldUseHorizontalLayout();
        if (horizontal != mUsingHorizontalLayout || force) {
            mQSLogger.logSwitchTileLayout(horizontal, mUsingHorizontalLayout, force,
                    mView.getDumpableTag());
            mUsingHorizontalLayout = horizontal;
            mView.setUsingHorizontalLayout(mUsingHorizontalLayout, mMediaHost.getHostView(), force);
            updateMediaDisappearParameters();
+48 −0
Original line number Diff line number Diff line
@@ -128,6 +128,54 @@ class QSLogger @Inject constructor(
        })
    }

    fun logOnViewAttached(orientation: Int, containerName: String) {
        log(DEBUG, {
            str1 = containerName
            int1 = orientation
        }, {
            "onViewAttached: $str1 orientation $int1"
        })
    }

    fun logOnViewDetached(orientation: Int, containerName: String) {
        log(DEBUG, {
            str1 = containerName
            int1 = orientation
        }, {
            "onViewDetached: $str1 orientation $int1"
        })
    }

    fun logOnConfigurationChanged(
        lastOrientation: Int,
        newOrientation: Int,
        containerName: String
    ) {
        log(DEBUG, {
            str1 = containerName
            int1 = lastOrientation
            int2 = newOrientation
        }, {
            "configuration change: $str1 orientation was $int1, now $int2"
        })
    }

    fun logSwitchTileLayout(
        after: Boolean,
        before: Boolean,
        force: Boolean,
        containerName: String
    ) {
        log(DEBUG, {
            str1 = containerName
            bool1 = after
            bool2 = before
            bool3 = force
        }, {
            "change tile layout: $str1 horizontal=$bool1 (was $bool2), force? $bool3"
        })
    }

    private fun toStateString(state: Int): String {
        return when (state) {
            Tile.STATE_ACTIVE -> "active"