Merge "Send update config change when letterbox is moved" into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
e0128e1b14
@@ -36,6 +36,7 @@ import static android.view.Display.INVALID_DISPLAY;
|
|||||||
import static android.window.ConfigurationHelper.freeTextLayoutCachesIfNeeded;
|
import static android.window.ConfigurationHelper.freeTextLayoutCachesIfNeeded;
|
||||||
import static android.window.ConfigurationHelper.isDifferentDisplay;
|
import static android.window.ConfigurationHelper.isDifferentDisplay;
|
||||||
import static android.window.ConfigurationHelper.shouldUpdateResources;
|
import static android.window.ConfigurationHelper.shouldUpdateResources;
|
||||||
|
import static android.window.ConfigurationHelper.shouldUpdateWindowMetricsBounds;
|
||||||
|
|
||||||
import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE;
|
import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE;
|
||||||
|
|
||||||
@@ -5987,6 +5988,11 @@ public final class ActivityThread extends ClientTransactionHandler
|
|||||||
public static boolean shouldReportChange(@Nullable Configuration currentConfig,
|
public static boolean shouldReportChange(@Nullable Configuration currentConfig,
|
||||||
@NonNull Configuration newConfig, @Nullable SizeConfigurationBuckets sizeBuckets,
|
@NonNull Configuration newConfig, @Nullable SizeConfigurationBuckets sizeBuckets,
|
||||||
int handledConfigChanges) {
|
int handledConfigChanges) {
|
||||||
|
// Always report changes in window configuration bounds
|
||||||
|
if (shouldUpdateWindowMetricsBounds(currentConfig, newConfig)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
final int publicDiff = currentConfig.diffPublicOnly(newConfig);
|
final int publicDiff = currentConfig.diffPublicOnly(newConfig);
|
||||||
// Don't report the change if there's no public diff between current and new config.
|
// Don't report the change if there's no public diff between current and new config.
|
||||||
if (publicDiff == 0) {
|
if (publicDiff == 0) {
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ public class ConfigurationHelper {
|
|||||||
* @see WindowManager#getCurrentWindowMetrics()
|
* @see WindowManager#getCurrentWindowMetrics()
|
||||||
* @see WindowManager#getMaximumWindowMetrics()
|
* @see WindowManager#getMaximumWindowMetrics()
|
||||||
*/
|
*/
|
||||||
private static boolean shouldUpdateWindowMetricsBounds(@NonNull Configuration currentConfig,
|
public static boolean shouldUpdateWindowMetricsBounds(@NonNull Configuration currentConfig,
|
||||||
@NonNull Configuration newConfig) {
|
@NonNull Configuration newConfig) {
|
||||||
final Rect currentBounds = currentConfig.windowConfiguration.getBounds();
|
final Rect currentBounds = currentConfig.windowConfiguration.getBounds();
|
||||||
final Rect newBounds = newConfig.windowConfiguration.getBounds();
|
final Rect newBounds = newConfig.windowConfiguration.getBounds();
|
||||||
|
|||||||
@@ -351,10 +351,8 @@ public class ActivityThreadTest {
|
|||||||
final Rect bounds = activity.getWindowManager().getCurrentWindowMetrics().getBounds();
|
final Rect bounds = activity.getWindowManager().getCurrentWindowMetrics().getBounds();
|
||||||
assertEquals(activityConfigPortrait.windowConfiguration.getBounds(), bounds);
|
assertEquals(activityConfigPortrait.windowConfiguration.getBounds(), bounds);
|
||||||
|
|
||||||
// Ensure that Activity#onConfigurationChanged() not be called because the changes in
|
// Ensure changes in window configuration bounds are reported
|
||||||
// WindowConfiguration shouldn't be reported, and we only apply the latest Configuration
|
assertEquals(numOfConfig + 1, activity.mNumOfConfigChanges);
|
||||||
// update in transaction.
|
|
||||||
assertEquals(numOfConfig, activity.mNumOfConfigChanges);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
Reference in New Issue
Block a user