summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/WindowManager/Shell/OWNERS2
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/OWNERS1
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/freeform/OWNERS1
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java14
-rw-r--r--media/tests/aidltests/src/com/android/media/AidlConversionUnitTests.java13
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/drawer/CategoryKey.java2
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/media/OWNERS3
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/CategoryKeyTest.java3
-rw-r--r--packages/SystemUI/OWNERS2
-rw-r--r--packages/SystemUI/aconfig/systemui.aconfig7
-rw-r--r--packages/SystemUI/res/drawable/magic_action_button_background.xml21
-rw-r--r--packages/SystemUI/res/layout/magic_action_button.xml33
-rw-r--r--packages/SystemUI/res/values/colors.xml3
-rw-r--r--packages/SystemUI/res/values/dimens.xml11
-rw-r--r--packages/SystemUI/src/com/android/keyguard/ClockEventController.kt4
-rw-r--r--packages/SystemUI/src/com/android/systemui/notetask/OWNERS3
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/OWNERS1
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyStateInflater.kt10
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/notetask/OWNERS3
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/stylus/OWNERS3
-rw-r--r--services/core/java/com/android/server/notification/OWNERS3
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerService.java2
-rw-r--r--services/core/java/com/android/server/wallpaper/WallpaperManagerService.java18
-rw-r--r--services/core/java/com/android/server/wm/DesktopModeHelper.java7
-rw-r--r--services/tests/mockingservicestests/src/com/android/server/wallpaper/WallpaperManagerServiceTests.java5
-rw-r--r--services/tests/ondeviceintelligencetests/OWNERS1
-rw-r--r--tests/SharedLibrary/lib/Android.bp1
-rw-r--r--tests/SharedLibrary/lib/proguard.proguard4
28 files changed, 120 insertions, 61 deletions
diff --git a/libs/WindowManager/Shell/OWNERS b/libs/WindowManager/Shell/OWNERS
index 394093c6ab30..f01e8d665d12 100644
--- a/libs/WindowManager/Shell/OWNERS
+++ b/libs/WindowManager/Shell/OWNERS
@@ -3,5 +3,5 @@ pbdr@google.com
pragyabajoria@google.com
# Give submodule owners in shell resource approval
-per-file res*/*/*.xml = atsjenk@google.com, hwwang@google.com, jorgegil@google.com, lbill@google.com, madym@google.com, vaniadesmonda@google.com, pbdr@google.com, tkachenkoi@google.com, mpodolian@google.com, liranb@google.com, pragyabajoria@google.com, uysalorhan@google.com, gsennton@google.com, mattsziklay@google.com, mdehaini@google.com
+per-file res*/*/*.xml = atsjenk@google.com, hwwang@google.com, jorgegil@google.com, lbill@google.com, madym@google.com, vaniadesmonda@google.com, pbdr@google.com, mpodolian@google.com, liranb@google.com, pragyabajoria@google.com, uysalorhan@google.com, gsennton@google.com, mattsziklay@google.com, mdehaini@google.com
per-file res*/*/tv_*.xml = bronger@google.com
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/OWNERS b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/OWNERS
index afdda8ff865e..47b3ae8fc11b 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/OWNERS
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/OWNERS
@@ -3,7 +3,6 @@ atsjenk@google.com
jorgegil@google.com
madym@google.com
pbdr@google.com
-tkachenkoi@google.com
vaniadesmonda@google.com
pragyabajoria@google.com
uysalorhan@google.com
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/OWNERS b/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/OWNERS
index 83b5bf658459..44d46eea9c55 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/OWNERS
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/OWNERS
@@ -4,7 +4,6 @@ jorgegil@google.com
madym@google.com
nmusgrave@google.com
pbdr@google.com
-tkachenkoi@google.com
vaniadesmonda@google.com
pragyabajoria@google.com
uysalorhan@google.com
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java
index e3a301db4cca..1cc04b421132 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java
@@ -911,7 +911,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel,
private boolean mIsCustomHeaderGesture;
private boolean mIsResizeGesture;
private boolean mIsDragging;
- private boolean mTouchscreenInUse;
+ private boolean mLongClickDisabled;
private int mDragPointerId = -1;
private MotionEvent mMotionEvent;
@@ -997,10 +997,12 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel,
mMotionEvent = e;
final int id = v.getId();
final DesktopModeWindowDecoration decoration = mWindowDecorByTaskId.get(mTaskId);
- if ((e.getSource() & SOURCE_TOUCHSCREEN) == SOURCE_TOUCHSCREEN) {
- mTouchscreenInUse = e.getActionMasked() != ACTION_UP
- && e.getActionMasked() != ACTION_CANCEL;
- }
+ final boolean touchscreenSource =
+ (e.getSource() & SOURCE_TOUCHSCREEN) == SOURCE_TOUCHSCREEN;
+ // Disable long click during events from a non-touchscreen source
+ mLongClickDisabled = !touchscreenSource && e.getActionMasked() != ACTION_UP
+ && e.getActionMasked() != ACTION_CANCEL;
+
if (id != R.id.caption_handle && id != R.id.desktop_mode_caption
&& id != R.id.open_menu_button && id != R.id.close_window
&& id != R.id.maximize_window && id != R.id.minimize_window) {
@@ -1070,7 +1072,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel,
@Override
public boolean onLongClick(View v) {
final int id = v.getId();
- if (id == R.id.maximize_window && mTouchscreenInUse) {
+ if (id == R.id.maximize_window && !mLongClickDisabled) {
final DesktopModeWindowDecoration decoration = mWindowDecorByTaskId.get(mTaskId);
moveTaskToFront(decoration.mTaskInfo);
if (decoration.isMaximizeMenuActive()) {
diff --git a/media/tests/aidltests/src/com/android/media/AidlConversionUnitTests.java b/media/tests/aidltests/src/com/android/media/AidlConversionUnitTests.java
index d9a1221e529c..06cf6096f4e5 100644
--- a/media/tests/aidltests/src/com/android/media/AidlConversionUnitTests.java
+++ b/media/tests/aidltests/src/com/android/media/AidlConversionUnitTests.java
@@ -472,6 +472,19 @@ public final class AidlConversionUnitTests {
}
@Test
+ public void testAudioDeviceAttributesConversion_MultichannelGroup() {
+ AudioDeviceAttributes attributes =
+ new AudioDeviceAttributes(AudioSystem.DEVICE_OUT_MULTICHANNEL_GROUP, "myAddress");
+ AudioPort port = AidlConversion.api2aidl_AudioDeviceAttributes_AudioPort(attributes);
+ assertEquals("", port.name);
+ assertEquals(0, port.extraAudioDescriptors.length);
+ assertEquals("myAddress", port.ext.getDevice().device.address.getId());
+ assertEquals(AudioDeviceDescription.CONNECTION_VIRTUAL,
+ port.ext.getDevice().device.type.connection);
+ assertEquals(AudioDeviceType.OUT_MULTICHANNEL_GROUP, port.ext.getDevice().device.type.type);
+ }
+
+ @Test
public void testAudioDeviceAttributesConversion() {
AudioDescriptor audioDescriptor1 =
AidlConversion.aidl2api_ExtraAudioDescriptor_AudioDescriptor(
diff --git a/packages/SettingsLib/src/com/android/settingslib/drawer/CategoryKey.java b/packages/SettingsLib/src/com/android/settingslib/drawer/CategoryKey.java
index 96e875b9bdcb..fb384ff9fdd0 100644
--- a/packages/SettingsLib/src/com/android/settingslib/drawer/CategoryKey.java
+++ b/packages/SettingsLib/src/com/android/settingslib/drawer/CategoryKey.java
@@ -72,6 +72,8 @@ public final class CategoryKey {
"com.android.settings.category.ia.communal";
public static final String CATEGORY_MORE_SECURITY_PRIVACY_SETTINGS =
"com.android.settings.category.ia.more_security_privacy_settings";
+ public static final String CATEGORY_SUPERVISION =
+ "com.android.settings.category.ia.supervision";
public static final Map<String, String> KEY_COMPAT_MAP;
diff --git a/packages/SettingsLib/src/com/android/settingslib/media/OWNERS b/packages/SettingsLib/src/com/android/settingslib/media/OWNERS
index d58add4bb5eb..a34876dd1e0e 100644
--- a/packages/SettingsLib/src/com/android/settingslib/media/OWNERS
+++ b/packages/SettingsLib/src/com/android/settingslib/media/OWNERS
@@ -3,5 +3,8 @@ ethibodeau@google.com
michaelmikhil@google.com
apotapov@google.com
+# Output Switcher OWNERS
+file:/packages/SystemUI/src/com/android/systemui/media/dialog/OWNERS
+
#Android Media - For minor changes and renames only.
aquilescanta@google.com #{LAST_RESORT_SUGGESTION}
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/CategoryKeyTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/CategoryKeyTest.java
index c9dc1ba5d5d7..c36f32ac5d3c 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/CategoryKeyTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/CategoryKeyTest.java
@@ -61,8 +61,9 @@ public class CategoryKeyTest {
allKeys.add(CategoryKey.CATEGORY_NIGHT_DISPLAY);
allKeys.add(CategoryKey.CATEGORY_SMART_BATTERY_SETTINGS);
allKeys.add(CategoryKey.CATEGORY_COMMUNAL_SETTINGS);
+ allKeys.add(CategoryKey.CATEGORY_SUPERVISION);
// DO NOT REMOVE ANYTHING ABOVE
- assertThat(allKeys.size()).isEqualTo(20);
+ assertThat(allKeys.size()).isEqualTo(21);
}
}
diff --git a/packages/SystemUI/OWNERS b/packages/SystemUI/OWNERS
index 33e9919f06eb..236654deefb5 100644
--- a/packages/SystemUI/OWNERS
+++ b/packages/SystemUI/OWNERS
@@ -13,7 +13,6 @@ alexflo@google.com
andonian@google.com
amiko@google.com
austindelgado@google.com
-aroederer@google.com
arteiro@google.com
asc@google.com
awickham@google.com
@@ -104,7 +103,6 @@ stwu@google.com
syeonlee@google.com
sunnygoyal@google.com
thiruram@google.com
-tkachenkoi@google.com
tracyzhou@google.com
tsuji@google.com
twickham@google.com
diff --git a/packages/SystemUI/aconfig/systemui.aconfig b/packages/SystemUI/aconfig/systemui.aconfig
index f4be41eef9d9..5b989cb6abc4 100644
--- a/packages/SystemUI/aconfig/systemui.aconfig
+++ b/packages/SystemUI/aconfig/systemui.aconfig
@@ -2013,3 +2013,10 @@ flag {
description: "Decouple view and controller in AnimLib."
bug: "393241010"
}
+
+flag {
+ name: "clock_fidget_animation"
+ namespace: "systemui"
+ description: "Enables the clock fidget animation"
+ bug: "364664389"
+}
diff --git a/packages/SystemUI/res/drawable/magic_action_button_background.xml b/packages/SystemUI/res/drawable/magic_action_button_background.xml
new file mode 100644
index 000000000000..7199b2dfbe5a
--- /dev/null
+++ b/packages/SystemUI/res/drawable/magic_action_button_background.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
+ android:color="@color/notification_ripple_untinted_color">
+ <item>
+ <inset
+ android:insetBottom="8dp"
+ android:insetLeft="0dp"
+ android:insetRight="0dp"
+ android:insetTop="8dp">
+ <shape android:shape="rectangle">
+ <corners android:radius="@dimen/magic_action_button_corner_radius" />
+ <solid android:color="@androidprv:color/materialColorPrimaryContainer" />
+ <stroke
+ android:width="@dimen/magic_action_button_outline_stroke_width"
+ android:color="@androidprv:color/materialColorOutlineVariant" />
+ </shape>
+ </inset>
+ </item>
+</ripple>
diff --git a/packages/SystemUI/res/layout/magic_action_button.xml b/packages/SystemUI/res/layout/magic_action_button.xml
index 59392ef0fb33..82d8d7043ff0 100644
--- a/packages/SystemUI/res/layout/magic_action_button.xml
+++ b/packages/SystemUI/res/layout/magic_action_button.xml
@@ -1,19 +1,16 @@
<Button xmlns:android="http://schemas.android.com/apk/res/android"
- style="@android:style/Widget.Material.Button"
- android:stateListAnimator="@null"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:minWidth="0dp"
- android:minHeight="@dimen/smart_reply_button_min_height"
- android:paddingVertical="@dimen/smart_reply_button_padding_vertical"
- android:background="@drawable/smart_reply_button_background"
- android:gravity="center"
- android:fontFamily="roboto-medium"
- android:textSize="@dimen/smart_reply_button_font_size"
- android:lineSpacingExtra="@dimen/smart_reply_button_line_spacing_extra"
- android:textColor="@color/smart_reply_button_text"
- android:paddingStart="@dimen/smart_reply_button_action_padding_left"
- android:paddingEnd="@dimen/smart_reply_button_padding_horizontal"
- android:drawablePadding="@dimen/smart_action_button_icon_padding"
- android:textStyle="normal"
- android:ellipsize="none"/>
+ style="@android:style/Widget.Material.Button"
+ android:layout_width="wrap_content"
+ android:layout_height="@dimen/magic_action_button_touch_target_height"
+ android:background="@drawable/magic_action_button_background"
+ android:drawablePadding="@dimen/magic_action_button_drawable_padding"
+ android:ellipsize="none"
+ android:fontFamily="google-sans-flex"
+ android:gravity="center"
+ android:minWidth="0dp"
+ android:paddingHorizontal="@dimen/magic_action_button_padding_horizontal"
+ android:paddingVertical="@dimen/magic_action_button_inset_vertical"
+ android:stateListAnimator="@null"
+ android:textColor="@color/magic_action_button_text_color"
+ android:textSize="@dimen/magic_action_button_font_size"
+ android:textStyle="normal" />
diff --git a/packages/SystemUI/res/values/colors.xml b/packages/SystemUI/res/values/colors.xml
index 015e0e83e57d..5f8f77993245 100644
--- a/packages/SystemUI/res/values/colors.xml
+++ b/packages/SystemUI/res/values/colors.xml
@@ -145,6 +145,9 @@
<color name="smart_reply_button_background">#ffffffff</color>
<color name="smart_reply_button_stroke">@*android:color/accent_device_default</color>
+ <!-- Magic Action colors -->
+ <color name="magic_action_button_text_color">@androidprv:color/materialColorOnSurfaceVariant</color>
+
<!-- Biometric dialog colors -->
<color name="biometric_dialog_gray">#ff757575</color>
<color name="biometric_dialog_accent">@color/material_dynamic_primary40</color>
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index 220d8a99d130..2d3c07b93cb1 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -1129,6 +1129,17 @@
<dimen name="smart_action_button_icon_padding">8dp</dimen>
<dimen name="smart_action_button_outline_stroke_width">2dp</dimen>
+ <!-- Magic Action params. -->
+ <!-- Corner radius = half of min_height to create rounded sides. -->
+ <dimen name="magic_action_button_corner_radius">16dp</dimen>
+ <dimen name="magic_action_button_icon_size">20dp</dimen>
+ <dimen name="magic_action_button_outline_stroke_width">1dp</dimen>
+ <dimen name="magic_action_button_padding_horizontal">12dp</dimen>
+ <dimen name="magic_action_button_inset_vertical">8dp</dimen>
+ <dimen name="magic_action_button_drawable_padding">8dp</dimen>
+ <dimen name="magic_action_button_touch_target_height">48dp</dimen>
+ <dimen name="magic_action_button_font_size">12sp</dimen>
+
<!-- A reasonable upper bound for the height of the smart reply button. The measuring code
needs to start with a guess for the maximum size. Currently two-line smart reply buttons
add about 88dp of height to the notifications. -->
diff --git a/packages/SystemUI/src/com/android/keyguard/ClockEventController.kt b/packages/SystemUI/src/com/android/keyguard/ClockEventController.kt
index 6753b37bf1ec..1b8282bf9b93 100644
--- a/packages/SystemUI/src/com/android/keyguard/ClockEventController.kt
+++ b/packages/SystemUI/src/com/android/keyguard/ClockEventController.kt
@@ -565,6 +565,10 @@ constructor(
}
fun handleFidgetTap(x: Float, y: Float) {
+ if (!com.android.systemui.Flags.clockFidgetAnimation()) {
+ return
+ }
+
clock?.run {
smallClock.animations.onFidgetTap(x, y)
largeClock.animations.onFidgetTap(x, y)
diff --git a/packages/SystemUI/src/com/android/systemui/notetask/OWNERS b/packages/SystemUI/src/com/android/systemui/notetask/OWNERS
index 0ec996be72de..9b4902a9e7b2 100644
--- a/packages/SystemUI/src/com/android/systemui/notetask/OWNERS
+++ b/packages/SystemUI/src/com/android/systemui/notetask/OWNERS
@@ -6,5 +6,4 @@ madym@google.com
mgalhardo@google.com
petrcermak@google.com
stevenckng@google.com
-tkachenkoi@google.com
-vanjan@google.com \ No newline at end of file
+vanjan@google.com
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/OWNERS b/packages/SystemUI/src/com/android/systemui/statusbar/notification/OWNERS
index 0a7f08d5860b..d06f24fdb81b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/OWNERS
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/OWNERS
@@ -6,7 +6,6 @@ jeffdq@google.com
juliacr@google.com
aioana@google.com
-aroederer@google.com
asc@google.com
iyz@google.com
juliatuttle@google.com
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyStateInflater.kt b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyStateInflater.kt
index 1887db948b5a..d3af1e5b65fe 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyStateInflater.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyStateInflater.kt
@@ -409,16 +409,6 @@ constructor(
as Button)
.apply {
text = action.title
- // TODO: Move the MagicActionBackgroundDrawable to MagicActionButton once
- // MagicActionButton is created.
- if (isMagicAction) {
- background = MagicActionBackgroundDrawable(parent.context)
- val textColor =
- parent.context.getColor(
- com.android.internal.R.color.materialColorOnPrimaryContainer
- )
- setTextColor(textColor)
- }
// We received the Icon from the application - so use the Context of the application
// to
diff --git a/packages/SystemUI/tests/src/com/android/systemui/notetask/OWNERS b/packages/SystemUI/tests/src/com/android/systemui/notetask/OWNERS
index 0ec996be72de..9b4902a9e7b2 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/notetask/OWNERS
+++ b/packages/SystemUI/tests/src/com/android/systemui/notetask/OWNERS
@@ -6,5 +6,4 @@ madym@google.com
mgalhardo@google.com
petrcermak@google.com
stevenckng@google.com
-tkachenkoi@google.com
-vanjan@google.com \ No newline at end of file
+vanjan@google.com
diff --git a/packages/SystemUI/tests/src/com/android/systemui/stylus/OWNERS b/packages/SystemUI/tests/src/com/android/systemui/stylus/OWNERS
index 0ec996be72de..9b4902a9e7b2 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/stylus/OWNERS
+++ b/packages/SystemUI/tests/src/com/android/systemui/stylus/OWNERS
@@ -6,5 +6,4 @@ madym@google.com
mgalhardo@google.com
petrcermak@google.com
stevenckng@google.com
-tkachenkoi@google.com
-vanjan@google.com \ No newline at end of file
+vanjan@google.com
diff --git a/services/core/java/com/android/server/notification/OWNERS b/services/core/java/com/android/server/notification/OWNERS
index 9f16662fd749..43c68d10b3ce 100644
--- a/services/core/java/com/android/server/notification/OWNERS
+++ b/services/core/java/com/android/server/notification/OWNERS
@@ -2,8 +2,7 @@
juliacr@google.com
yurilin@google.com
-aroederer@google.com
matiashe@google.com
valiiftime@google.com
jeffdq@google.com
-dsandler@android.com \ No newline at end of file
+dsandler@android.com
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 61429a41370c..8343935425cd 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -1477,7 +1477,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService
ArchiveState archiveState;
synchronized (mLock) {
PackageSetting ps = mSettings.getPackageLPr(packageName);
- if (ps == null) {
+ if (ps == null || snapshot.shouldFilterApplication(ps, binderUid, userId)) {
return null;
}
var psi = ps.getUserStateOrDefault(userId);
diff --git a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
index d9c79b5c40bb..ef63229f55e2 100644
--- a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
+++ b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
@@ -20,7 +20,6 @@ import static android.Manifest.permission.INTERACT_ACROSS_USERS_FULL;
import static android.Manifest.permission.MANAGE_EXTERNAL_STORAGE;
import static android.Manifest.permission.READ_WALLPAPER_INTERNAL;
import static android.app.ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND;
-import static android.app.Flags.enableConnectedDisplaysWallpaper;
import static android.app.Flags.fixWallpaperChanged;
import static android.app.Flags.liveWallpaperContentHandling;
import static android.app.Flags.removeNextWallpaperComponent;
@@ -46,6 +45,7 @@ import static com.android.server.wallpaper.WallpaperUtils.WALLPAPER_INFO;
import static com.android.server.wallpaper.WallpaperUtils.WALLPAPER_LOCK_ORIG;
import static com.android.server.wallpaper.WallpaperUtils.getWallpaperDir;
import static com.android.server.wallpaper.WallpaperUtils.makeWallpaperIdLocked;
+import static com.android.server.wm.DesktopModeHelper.isDeviceEligibleForDesktopExperienceWallpaper;
import static com.android.window.flags.Flags.avoidRebindingIntentionallyDisconnectedWallpaper;
import static com.android.window.flags.Flags.multiCrop;
import static com.android.window.flags.Flags.offloadColorExtraction;
@@ -756,7 +756,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub
}
// Image wallpaper
- if (enableConnectedDisplaysWallpaper()) {
+ if (isDeviceEligibleForDesktopExperienceWallpaper(mContext)) {
// TODO(b/384519749): check display's resolution and image wallpaper cropped image
// aspect ratio.
return displayId == DEFAULT_DISPLAY
@@ -792,7 +792,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub
return;
}
- if (enableConnectedDisplaysWallpaper()) {
+ if (isDeviceEligibleForDesktopExperienceWallpaper(mContext)) {
mWallpaperDisplayHelper.forEachDisplayData(displayData -> {
int displayId = displayData.mDisplayId;
// If the display is already connected to the desired wallpaper(s), either the
@@ -914,7 +914,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub
return;
}
int which = wallpaper.mWhich;
- if (enableConnectedDisplaysWallpaper()) {
+ if (isDeviceEligibleForDesktopExperienceWallpaper(mContext)) {
which = mWhich;
}
TimingsTraceAndSlog t = new TimingsTraceAndSlog(TAG);
@@ -1438,7 +1438,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub
// changes to currentSystem.mWhich alone won't update the corresponding
// flag in currentSystem.connection.mWallpaper.mWhich. Let's point
// currentSystem.connection.mWallpaper back to currentSystem.
- if (enableConnectedDisplaysWallpaper()
+ if (isDeviceEligibleForDesktopExperienceWallpaper(mContext)
&& currentSystem.connection != null) {
currentSystem.connection.mWallpaper = currentSystem;
}
@@ -1464,7 +1464,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub
WallpaperData currentSystem = mWallpaperMap.get(mNewWallpaper.userId);
if (currentSystem.wallpaperId == mOriginalSystem.wallpaperId) {
// Fixing the reference, see above for more details.
- if (enableConnectedDisplaysWallpaper()
+ if (isDeviceEligibleForDesktopExperienceWallpaper(mContext)
&& currentSystem.connection != null) {
currentSystem.connection.mWallpaper = currentSystem;
}
@@ -1654,7 +1654,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub
mShuttingDown = false;
mImageWallpaper = ComponentName.unflattenFromString(
context.getResources().getString(R.string.image_wallpaper_component));
- if (enableConnectedDisplaysWallpaper()) {
+ if (isDeviceEligibleForDesktopExperienceWallpaper(mContext)) {
mFallbackWallpaperComponent = ComponentName.unflattenFromString(
context.getResources().getString(R.string.fallback_wallpaper_component));
} else {
@@ -4034,7 +4034,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub
return;
}
int useFallbackWallpaperWhich = 0;
- if (enableConnectedDisplaysWallpaper()) {
+ if (isDeviceEligibleForDesktopExperienceWallpaper(mContext)) {
List<WallpaperData> wallpapers = new ArrayList<>();
wallpapers.add(mLastWallpaper);
// If the system and the lock wallpapers are not the same, we should also
@@ -4095,7 +4095,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub
// removed to start mirroring.
private void onDisplayRemovedInternal(int displayId) {
synchronized (mLock) {
- if (enableConnectedDisplaysWallpaper()) {
+ if (isDeviceEligibleForDesktopExperienceWallpaper(mContext)) {
// There could be at most 2 wallpaper connections per display:
// 1. system & lock are the same: mLastWallpaper
// 2. system, lock are different: mLastWallpaper, mLastLockWallpaper
diff --git a/services/core/java/com/android/server/wm/DesktopModeHelper.java b/services/core/java/com/android/server/wm/DesktopModeHelper.java
index 0eea30a29580..a1faa7573a0c 100644
--- a/services/core/java/com/android/server/wm/DesktopModeHelper.java
+++ b/services/core/java/com/android/server/wm/DesktopModeHelper.java
@@ -16,6 +16,8 @@
package com.android.server.wm;
+import static android.app.Flags.enableConnectedDisplaysWallpaper;
+
import android.annotation.NonNull;
import android.content.Context;
import android.os.SystemProperties;
@@ -82,4 +84,9 @@ public final class DesktopModeHelper {
return (isDesktopModeEnabled() && isDeviceEligibleForDesktopMode(context))
|| isDesktopModeEnabledByDevOption(context);
}
+
+ /** Returns {@code true} if desktop experience wallpaper is supported on this device. */
+ public static boolean isDeviceEligibleForDesktopExperienceWallpaper(@NonNull Context context) {
+ return enableConnectedDisplaysWallpaper() && isDeviceEligibleForDesktopMode(context);
+ }
}
diff --git a/services/tests/mockingservicestests/src/com/android/server/wallpaper/WallpaperManagerServiceTests.java b/services/tests/mockingservicestests/src/com/android/server/wallpaper/WallpaperManagerServiceTests.java
index ef77a0ee067f..a5073599b29e 100644
--- a/services/tests/mockingservicestests/src/com/android/server/wallpaper/WallpaperManagerServiceTests.java
+++ b/services/tests/mockingservicestests/src/com/android/server/wallpaper/WallpaperManagerServiceTests.java
@@ -64,6 +64,7 @@ import android.content.pm.IPackageManager;
import android.content.pm.PackageManager;
import android.content.pm.ParceledListSlice;
import android.content.pm.ServiceInfo;
+import android.content.res.Resources;
import android.graphics.Color;
import android.hardware.display.DisplayManager;
import android.hardware.display.DisplayManager.DisplayListener;
@@ -148,6 +149,8 @@ public class WallpaperManagerServiceTests {
private IPackageManager mIpm = AppGlobals.getPackageManager();
+ private Resources mResources = sContext.getResources();
+
@Mock
private DisplayManager mDisplayManager;
@@ -245,6 +248,8 @@ public class WallpaperManagerServiceTests {
doReturn(displays).when(mDisplayManager).getDisplays();
spyOn(mIpm);
+ spyOn(mResources);
+ doReturn(true).when(mResources).getBoolean(eq(R.bool.config_isDesktopModeSupported));
mService = new TestWallpaperManagerService(sContext);
spyOn(mService);
mService.systemReady();
diff --git a/services/tests/ondeviceintelligencetests/OWNERS b/services/tests/ondeviceintelligencetests/OWNERS
index a4fc7582a785..d08d34ad3108 100644
--- a/services/tests/ondeviceintelligencetests/OWNERS
+++ b/services/tests/ondeviceintelligencetests/OWNERS
@@ -1,3 +1,2 @@
shiqing@google.com
sandeepbandaru@google.com
-shivanker@google.com
diff --git a/tests/SharedLibrary/lib/Android.bp b/tests/SharedLibrary/lib/Android.bp
index 0595cb1e116a..abfd0e869b45 100644
--- a/tests/SharedLibrary/lib/Android.bp
+++ b/tests/SharedLibrary/lib/Android.bp
@@ -15,6 +15,7 @@ android_app {
export_package_resources: true,
privileged: true,
optimize: {
+ keep_runtime_invisible_annotations: true,
proguard_flags_files: ["proguard.proguard"],
},
}
diff --git a/tests/SharedLibrary/lib/proguard.proguard b/tests/SharedLibrary/lib/proguard.proguard
index e5dfbe1c453d..699fbdaaadad 100644
--- a/tests/SharedLibrary/lib/proguard.proguard
+++ b/tests/SharedLibrary/lib/proguard.proguard
@@ -1,6 +1,8 @@
-keepparameternames
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,
- SourceFile,LineNumberTable,*Annotation*,EnclosingMethod
+ SourceFile,LineNumberTable,EnclosingMethod,
+ RuntimeVisibleAnnotations,RuntimeVisibleParameterAnnotations,
+ RuntimeVisibleTypeAnnotations,AnnotationDefault
-keep public class * {
public protected *;