Loading src/com/android/launcher3/util/DefaultDisplay.java +12 −8 Original line number Diff line number Diff line Loading @@ -49,20 +49,25 @@ public class DefaultDisplay implements DisplayListener { public static final int CHANGE_ALL = CHANGE_SIZE | CHANGE_ROTATION | CHANGE_FRAME_DELAY; private final Context mContext; private final Context mDisplayContext; private final int mId; private final ArrayList<DisplayInfoChangeListener> mListeners = new ArrayList<>(); private final Handler mChangeHandler; private Info mInfo; private DefaultDisplay(Context context) { mContext = context; mInfo = new Info(context); DisplayManager dm = context.getSystemService(DisplayManager.class); // Use application context to create display context so that it can have its own Resources. mDisplayContext = context.getApplicationContext().createDisplayContext( dm.getDisplay(DEFAULT_DISPLAY)); // Note that the Display object must be obtained from DisplayManager which is associated to // the display context, so the Display is isolated from Activity and Application to provide // the actual state of device that excludes the additional adjustment and override. mInfo = new Info(mDisplayContext); mId = mInfo.id; mChangeHandler = new Handler(this::onChange); context.getSystemService(DisplayManager.class) .registerDisplayListener(this, UI_HELPER_EXECUTOR.getHandler()); dm.registerDisplayListener(this, UI_HELPER_EXECUTOR.getHandler()); } @Override Loading @@ -78,7 +83,7 @@ public class DefaultDisplay implements DisplayListener { } Info oldInfo = mInfo; Info info = new Info(mContext); Info info = new Info(mDisplayContext); int change = 0; if (info.hasDifferentSize(oldInfo)) { Loading Loading @@ -162,8 +167,7 @@ public class DefaultDisplay implements DisplayListener { display.getRealSize(realSize); display.getCurrentSizeRange(smallestSize, largestSize); Context defaultDisplayContext = context.createDisplayContext(display); metrics = defaultDisplayContext.getResources().getDisplayMetrics(); metrics = context.getResources().getDisplayMetrics(); } private boolean hasDifferentSize(Info info) { Loading Loading
src/com/android/launcher3/util/DefaultDisplay.java +12 −8 Original line number Diff line number Diff line Loading @@ -49,20 +49,25 @@ public class DefaultDisplay implements DisplayListener { public static final int CHANGE_ALL = CHANGE_SIZE | CHANGE_ROTATION | CHANGE_FRAME_DELAY; private final Context mContext; private final Context mDisplayContext; private final int mId; private final ArrayList<DisplayInfoChangeListener> mListeners = new ArrayList<>(); private final Handler mChangeHandler; private Info mInfo; private DefaultDisplay(Context context) { mContext = context; mInfo = new Info(context); DisplayManager dm = context.getSystemService(DisplayManager.class); // Use application context to create display context so that it can have its own Resources. mDisplayContext = context.getApplicationContext().createDisplayContext( dm.getDisplay(DEFAULT_DISPLAY)); // Note that the Display object must be obtained from DisplayManager which is associated to // the display context, so the Display is isolated from Activity and Application to provide // the actual state of device that excludes the additional adjustment and override. mInfo = new Info(mDisplayContext); mId = mInfo.id; mChangeHandler = new Handler(this::onChange); context.getSystemService(DisplayManager.class) .registerDisplayListener(this, UI_HELPER_EXECUTOR.getHandler()); dm.registerDisplayListener(this, UI_HELPER_EXECUTOR.getHandler()); } @Override Loading @@ -78,7 +83,7 @@ public class DefaultDisplay implements DisplayListener { } Info oldInfo = mInfo; Info info = new Info(mContext); Info info = new Info(mDisplayContext); int change = 0; if (info.hasDifferentSize(oldInfo)) { Loading Loading @@ -162,8 +167,7 @@ public class DefaultDisplay implements DisplayListener { display.getRealSize(realSize); display.getCurrentSizeRange(smallestSize, largestSize); Context defaultDisplayContext = context.createDisplayContext(display); metrics = defaultDisplayContext.getResources().getDisplayMetrics(); metrics = context.getResources().getDisplayMetrics(); } private boolean hasDifferentSize(Info info) { Loading