am 78244c83: am 32293469: Merge "Fix issue where transport control shows up off-screen on tablets" into klp-dev
* commit '78244c83fb633895c95f3c93ab874be979cf42e3': Fix issue where transport control shows up off-screen on tablets
This commit is contained in:
@@ -218,7 +218,7 @@ public class KeyguardHostView extends KeyguardViewBase {
|
|||||||
mTransportState = (dcs.clearing ? TRANSPORT_GONE :
|
mTransportState = (dcs.clearing ? TRANSPORT_GONE :
|
||||||
(isMusicPlaying(dcs.playbackState) ? TRANSPORT_VISIBLE : TRANSPORT_INVISIBLE));
|
(isMusicPlaying(dcs.playbackState) ? TRANSPORT_VISIBLE : TRANSPORT_INVISIBLE));
|
||||||
|
|
||||||
if (DEBUG) Log.v(TAG, "Initial transport state: "
|
if (DEBUGXPORT) Log.v(TAG, "Initial transport state: "
|
||||||
+ mTransportState + ", pbstate=" + dcs.playbackState);
|
+ mTransportState + ", pbstate=" + dcs.playbackState);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1369,7 +1369,7 @@ public class KeyguardHostView extends KeyguardViewBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Runnable mSwitchPageRunnable = new Runnable() {
|
private final Runnable mSwitchPageRunnable = new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
showAppropriateWidgetPage();
|
showAppropriateWidgetPage();
|
||||||
@@ -1438,7 +1438,7 @@ public class KeyguardHostView extends KeyguardViewBase {
|
|||||||
mAppWidgetToShow = ss.appWidgetToShow;
|
mAppWidgetToShow = ss.appWidgetToShow;
|
||||||
setInsets(ss.insets);
|
setInsets(ss.insets);
|
||||||
if (DEBUG) Log.d(TAG, "onRestoreInstanceState, transport=" + mTransportState);
|
if (DEBUG) Log.d(TAG, "onRestoreInstanceState, transport=" + mTransportState);
|
||||||
post(mSwitchPageRunnable);
|
mSwitchPageRunnable.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -1472,10 +1472,21 @@ public class KeyguardHostView extends KeyguardViewBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void showAppropriateWidgetPage() {
|
private void showAppropriateWidgetPage() {
|
||||||
int state = mTransportState;
|
final int state = mTransportState;
|
||||||
ensureTransportPresentOrRemoved(state);
|
final boolean transportAdded = ensureTransportPresentOrRemoved(state);
|
||||||
int pageToShow = getAppropriateWidgetPage(state);
|
final int pageToShow = getAppropriateWidgetPage(state);
|
||||||
mAppWidgetContainer.setCurrentPage(pageToShow);
|
if (!transportAdded) {
|
||||||
|
mAppWidgetContainer.setCurrentPage(pageToShow);
|
||||||
|
} else if (state == TRANSPORT_VISIBLE) {
|
||||||
|
// If the transport was just added, we need to wait for layout to happen before
|
||||||
|
// we can set the current page.
|
||||||
|
post(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
mAppWidgetContainer.setCurrentPage(pageToShow);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1499,12 +1510,11 @@ public class KeyguardHostView extends KeyguardViewBase {
|
|||||||
*
|
*
|
||||||
* @param state
|
* @param state
|
||||||
*/
|
*/
|
||||||
private void ensureTransportPresentOrRemoved(int state) {
|
private boolean ensureTransportPresentOrRemoved(int state) {
|
||||||
final boolean showing = getWidgetPosition(R.id.keyguard_transport_control) != -1;
|
final boolean showing = getWidgetPosition(R.id.keyguard_transport_control) != -1;
|
||||||
final boolean visible = state == TRANSPORT_VISIBLE;
|
final boolean visible = state == TRANSPORT_VISIBLE;
|
||||||
final boolean shouldBeVisible = state == TRANSPORT_INVISIBLE && isMusicPlaying(state);
|
final boolean shouldBeVisible = state == TRANSPORT_INVISIBLE && isMusicPlaying(state);
|
||||||
if (!showing && (visible || shouldBeVisible)) {
|
if (!showing && (visible || shouldBeVisible)) {
|
||||||
if (DEBUGXPORT) Log.v(TAG, "add transport");
|
|
||||||
// insert to left of camera if it exists, otherwise after right-most widget
|
// insert to left of camera if it exists, otherwise after right-most widget
|
||||||
int lastWidget = mAppWidgetContainer.getChildCount() - 1;
|
int lastWidget = mAppWidgetContainer.getChildCount() - 1;
|
||||||
int position = 0; // handle no widget case
|
int position = 0; // handle no widget case
|
||||||
@@ -1512,13 +1522,16 @@ public class KeyguardHostView extends KeyguardViewBase {
|
|||||||
position = mAppWidgetContainer.isCameraPage(lastWidget) ?
|
position = mAppWidgetContainer.isCameraPage(lastWidget) ?
|
||||||
lastWidget : lastWidget + 1;
|
lastWidget : lastWidget + 1;
|
||||||
}
|
}
|
||||||
|
if (DEBUGXPORT) Log.v(TAG, "add transport at " + position);
|
||||||
mAppWidgetContainer.addWidget(getOrCreateTransportControl(), position);
|
mAppWidgetContainer.addWidget(getOrCreateTransportControl(), position);
|
||||||
|
return true;
|
||||||
} else if (showing && state == TRANSPORT_GONE) {
|
} else if (showing && state == TRANSPORT_GONE) {
|
||||||
if (DEBUGXPORT) Log.v(TAG, "remove transport");
|
if (DEBUGXPORT) Log.v(TAG, "remove transport");
|
||||||
mAppWidgetContainer.removeWidget(getOrCreateTransportControl());
|
mAppWidgetContainer.removeWidget(getOrCreateTransportControl());
|
||||||
mTransportControl = null;
|
mTransportControl = null;
|
||||||
KeyguardUpdateMonitor.getInstance(getContext()).dispatchSetBackground(null);
|
KeyguardUpdateMonitor.getInstance(getContext()).dispatchSetBackground(null);
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private CameraWidgetFrame findCameraPage() {
|
private CameraWidgetFrame findCameraPage() {
|
||||||
|
|||||||
Reference in New Issue
Block a user