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 09855a1123)
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user