Use WindowManagerProxy.getRotation to determine if rotation has changed

- Follow-up of http://ag/19559863 as Config diff on windowConfiguration does not work on 3P Launcher, so diff WindowManagerProxy.getRotation instead
- Also centralized Configuration diff logic into StatefulActivity

Bug: 240730723
Test: manual on 90/180 degree rotation in Launcher, RecentsActivity and 3P Launcher
Change-Id: Ib368ed5d749841a6873a03e2644608ff68885922
This commit is contained in:
Alex Chau
2022-08-10 16:11:42 +01:00
parent 92b4a88f78
commit 360ec033ac
4 changed files with 41 additions and 73 deletions
@@ -15,9 +15,6 @@
*/
package com.android.launcher3;
import static android.app.WindowConfiguration.WINDOW_CONFIG_ROTATION;
import static android.content.pm.ActivityInfo.CONFIG_WINDOW_CONFIGURATION;
import static com.android.launcher3.AbstractFloatingView.TYPE_ALL;
import static com.android.launcher3.AbstractFloatingView.TYPE_HIDE_BACK_BUTTON;
import static com.android.launcher3.LauncherState.FLAG_HIDE_BACK_BUTTON;
@@ -46,7 +43,6 @@ import android.app.ActivityOptions;
import android.content.Context;
import android.content.Intent;
import android.content.IntentSender;
import android.content.res.Configuration;
import android.hardware.SensorManager;
import android.hardware.devicestate.DeviceStateManager;
import android.os.Bundle;
@@ -653,20 +649,6 @@ public abstract class BaseQuickstepLauncher extends Launcher {
}
}
@Override
protected boolean compareConfiguration(Configuration oldConfig, Configuration newConfig) {
int diff = newConfig.diff(oldConfig);
if ((diff & CONFIG_WINDOW_CONFIGURATION) != 0) {
long windowDiff =
newConfig.windowConfiguration.diff(oldConfig.windowConfiguration, false);
if ((windowDiff & WINDOW_CONFIG_ROTATION) != 0) {
return true;
}
}
return super.compareConfiguration(oldConfig, newConfig);
}
@Override
public void dump(String prefix, FileDescriptor fd, PrintWriter writer, String[] args) {
super.dump(prefix, fd, writer, args);