当前位置:   article > 正文

高通Android 12/13 Launcher3修改RecentView与屏幕方向保持一致_android 13 launcher最近任务横竖屏

android 13 launcher最近任务横竖屏

1、背景:

最近同事遇到一个需求说,recentview应用预览与屏幕方向不一致问题,于是加了一些系统日志,实现此需求。简单记录下哈。

源码修改路径汇总如下

  1. packages/apps/Launcher3/quickstep/src/com/android/quickstep/util/RecentsOrientedState.java
  2. 修改: packages/apps/Launcher3/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java
  3. 修改: packages/apps/Launcher3/src/com/android/launcher3/settings/SettingsActivity.java
  4. 修改: packages/apps/Launcher3/src/com/android/launcher3/states/RotationHelper.java

2、源码修改diff如下所示 

  1. diff --git a/QSSI12/packages/apps/Launcher3/quickstep/src/com/android/quickstep/util/RecentsOrientedState.java b/QSSI12/packages/app
  2. index 8ccab71..e39c261 100644
  3. --- a/QSSI12/packages/apps/Launcher3/quickstep/src/com/android/quickstep/util/RecentsOrientedState.java
  4. +++ b/QSSI12/packages/apps/Launcher3/quickstep/src/com/android/quickstep/util/RecentsOrientedState.java
  5. @@ -69,7 +69,7 @@ public class RecentsOrientedState implements
  6. SharedPreferences.OnSharedPreferenceChangeListener {
  7. private static final String TAG = "RecentsOrientedState";
  8. - private static final boolean DEBUG = false;
  9. + private static final boolean DEBUG = true;
  10. @Retention(SOURCE)
  11. @IntDef({ROTATION_0, ROTATION_90, ROTATION_180, ROTATION_270})
  12. @@ -288,7 +288,8 @@ public class RecentsOrientedState implements
  13. }
  14. private void updateHomeRotationSetting() {
  15. - boolean homeRotationEnabled = mSharedPrefs.getBoolean(ALLOW_ROTATION_PREFERENCE_KEY, false);
  16. + // boolean homeRotationEnabled = mSharedPrefs.getBoolean(ALLOW_ROTATION_PREFERENCE_KEY, false);
  17. + boolean homeRotationEnabled = true;
  18. setFlag(FLAG_HOME_ROTATION_ALLOWED_IN_PREFS, homeRotationEnabled);
  19. SystemUiProxy.INSTANCE.get(mContext).setHomeRotationEnabled(homeRotationEnabled);
  20. }
  21. diff --git a/QSSI12/packages/apps/Launcher3/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java b/QSSI12/packages/apps/
  22. index d833877..801bfd8 100644
  23. --- a/QSSI12/packages/apps/Launcher3/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java
  24. +++ b/QSSI12/packages/apps/Launcher3/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java
  25. @@ -440,6 +440,7 @@ public class TaskThumbnailView extends View {
  26. int thumbnailRotation = thumbnailData.rotation;
  27. int deltaRotate = getRotationDelta(currentRotation, thumbnailRotation);
  28. + android.util.Log.d("ZM","currentRotation:"+currentRotation+"thumbnailRotation:"+thumbnailRotation+"deltaRot
  29. RectF thumbnailClipHint = new RectF();
  30. if (TaskView.clipLeft(dp)) {
  31. thumbnailClipHint.left = thumbnailData.insets.left;
  32. + boolean homeRotationEnabled = true;
  33. setFlag(FLAG_HOME_ROTATION_ALLOWED_IN_PREFS, homeRotationEnabled);
  34. SystemUiProxy.INSTANCE.get(mContext).setHomeRotationEnabled(homeRotationEnabled);
  35. }
  36. diff --git a/QSSI12/packages/apps/Launcher3/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java b/QSSI12/packages/apps/
  37. index d833877..801bfd8 100644
  38. --- a/QSSI12/packages/apps/Launcher3/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java
  39. +++ b/QSSI12/packages/apps/Launcher3/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java
  40. @@ -440,6 +440,7 @@ public class TaskThumbnailView extends View {
  41. int thumbnailRotation = thumbnailData.rotation;
  42. int deltaRotate = getRotationDelta(currentRotation, thumbnailRotation);
  43. + android.util.Log.d("ZM","currentRotation:"+currentRotation+"thumbnailRotation:"+thumbnailRotation+"deltaRot
  44. RectF thumbnailClipHint = new RectF();
  45. if (TaskView.clipLeft(dp)) {
  46. thumbnailClipHint.left = thumbnailData.insets.left;
  47. @@ -568,7 +569,7 @@ public class TaskThumbnailView extends View {
  48. }
  49. Rect splitScreenInsets = dp.getInsets();
  50. - if (!isRotated) {
  51. + if (!isRotated || deltaRotate == 2) {
  52. // No Rotation
  53. if (dp.isMultiWindowMode) {
  54. mClippedInsets.offsetTo(splitScreenInsets.left * scale,
  55. diff --git a/QSSI12/packages/apps/Launcher3/src/com/android/launcher3/settings/SettingsActivity.java b/QSSI12/packages/apps/Launcher3/src/com/android/launcher3/settings/SettingsActivity.java
  56. index 0c39632..dece103 100644
  57. --- a/QSSI12/packages/apps/Launcher3/src/com/android/launcher3/settings/SettingsActivity.java
  58. +++ b/QSSI12/packages/apps/Launcher3/src/com/android/launcher3/settings/SettingsActivity.java
  59. @@ -254,7 +254,7 @@ public class SettingsActivity extends FragmentActivity
  60. case ALLOW_ROTATION_PREFERENCE_KEY:
  61. DeviceProfile deviceProfile = InvariantDeviceProfile.INSTANCE.get(
  62. getContext()).getDeviceProfile(getContext());
  63. - if (deviceProfile.isTablet) {
  64. + if (true) {
  65. diff --git a/QSSI12/packages/apps/Launcher3/src/com/android/launcher3/states/RotationHelper.java b/QSSI12/packages/apps/Launcher3/src/com/android/launcher3/states/RotationHelper.java
  66. index 867fd99..f5926ec 100644
  67. --- a/QSSI12/packages/apps/Launcher3/src/com/android/launcher3/states/RotationHelper.java
  68. +++ b/QSSI12/packages/apps/Launcher3/src/com/android/launcher3/states/RotationHelper.java
  69. @@ -91,7 +91,7 @@ public class RotationHelper implements OnSharedPreferenceChangeListener,
  70. private void setIgnoreAutoRotateSettings(boolean ignoreAutoRotateSettings) {
  71. // On large devices we do not handle auto-rotate differently.
  72. - mIgnoreAutoRotateSettings = ignoreAutoRotateSettings;
  73. + mIgnoreAutoRotateSettings = true;
  74. if (!mIgnoreAutoRotateSettings) {
  75. if (mSharedPrefs == null) {
  76. mSharedPrefs = Utilities.getPrefs(mActivity);

3、最后展示RecentView与屏幕方向保持一致。转载请注明出处高通Android 12/13 Launcher3修改RecentView与屏幕方向保持一致-CSDN博客,谢谢!

注意事项:

1、修改完之后记得make clean全编,不然可能没生效哈!

2、app应用强制设置竖屏这里暂时不考虑哈!需要可以自行修改app方向(通过配置横竖屏二套布局文件或者在清单文件中默认配置。)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/757826
推荐阅读
相关标签
  

闽ICP备14008679号