Refactors RotationUtils to be independent from device width.

Currently the RotationUtils class checks for the device orientation
AND the device width to figure out the current orientation. This CL
moves the device width checks to the caller class so that Util class
is free of special cases.

Test: Manual
Bug: 171918213
Change-Id: Ide67ee35394f48f3312e5ece1228e450fbdf30b4
This commit is contained in:
Himanshu Jaju
2020-11-30 13:49:40 +00:00
parent 685eca7077
commit 7dba1da1fa
2 changed files with 28 additions and 22 deletions

View File

@@ -17,6 +17,7 @@
package com.android.systemui.recents;
import static com.android.systemui.util.leak.RotationUtils.ROTATION_LANDSCAPE;
import static com.android.systemui.util.leak.RotationUtils.ROTATION_NONE;
import static com.android.systemui.util.leak.RotationUtils.ROTATION_SEASCAPE;
import android.animation.ArgbEvaluator;
@@ -27,6 +28,7 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.res.Configuration;
import android.graphics.PixelFormat;
import android.graphics.drawable.ColorDrawable;
import android.os.Binder;
@@ -186,7 +188,7 @@ public class ScreenPinningRequest implements View.OnClickListener,
DisplayMetrics metrics = new DisplayMetrics();
mWindowManager.getDefaultDisplay().getMetrics(metrics);
float density = metrics.density;
int rotation = RotationUtils.getRotation(mContext);
int rotation = getRotation(mContext);
inflateView(rotation);
int bgColor = mContext.getColor(
@@ -342,14 +344,23 @@ public class ScreenPinningRequest implements View.OnClickListener,
protected void onConfigurationChanged() {
removeAllViews();
inflateView(RotationUtils.getRotation(mContext));
inflateView(getRotation(mContext));
}
private int getRotation(Context context) {
Configuration config = context.getResources().getConfiguration();
if (config.smallestScreenWidthDp >= 600) {
return ROTATION_NONE;
}
return RotationUtils.getRotation(context);
}
private final Runnable mUpdateLayoutRunnable = new Runnable() {
@Override
public void run() {
if (mLayout != null && mLayout.getParent() != null) {
mLayout.setLayoutParams(getRequestLayoutParams(RotationUtils.getRotation(mContext)));
mLayout.setLayoutParams(getRequestLayoutParams(getRotation(mContext)));
}
}
};

View File

@@ -15,7 +15,6 @@
package com.android.systemui.util.leak;
import android.content.Context;
import android.content.res.Configuration;
import android.view.Surface;
public class RotationUtils {
@@ -26,30 +25,26 @@ public class RotationUtils {
public static final int ROTATION_UPSIDE_DOWN = 3;
public static int getRotation(Context context) {
Configuration config = context.getResources().getConfiguration();
int rot = context.getDisplay().getRotation();
if (config.smallestScreenWidthDp < 600) {
if (rot == Surface.ROTATION_90) {
return ROTATION_LANDSCAPE;
} else if (rot == Surface.ROTATION_270) {
return ROTATION_SEASCAPE;
}
if (rot == Surface.ROTATION_90) {
return ROTATION_LANDSCAPE;
} else if (rot == Surface.ROTATION_270) {
return ROTATION_SEASCAPE;
} else {
return ROTATION_NONE;
}
return ROTATION_NONE;
}
public static int getExactRotation(Context context) {
Configuration config = context.getResources().getConfiguration();
int rot = context.getDisplay().getRotation();
if (config.smallestScreenWidthDp < 600) {
if (rot == Surface.ROTATION_90) {
return ROTATION_LANDSCAPE;
} else if (rot == Surface.ROTATION_270) {
return ROTATION_SEASCAPE;
} else if (rot == Surface.ROTATION_180) {
return ROTATION_UPSIDE_DOWN;
}
if (rot == Surface.ROTATION_90) {
return ROTATION_LANDSCAPE;
} else if (rot == Surface.ROTATION_270) {
return ROTATION_SEASCAPE;
} else if (rot == Surface.ROTATION_180) {
return ROTATION_UPSIDE_DOWN;
} else {
return ROTATION_NONE;
}
return ROTATION_NONE;
}
}