Correct AppWidget layout when WP is off
When the work profile (WP) is off, the layout of the widget is provided
by the system.
The layout must have a background with android:id/background as view id
and clip its outline, or it will be considered "legacy" and have the
wrong outline when moved.
Bug: 187907544
Test: Add a widget for the WP and turn the WP off.
Change-Id: Ibee31f5f0e510313ae7f8dc78c208c45a4d0e1fd
diff --git a/core/res/res/layout/work_widget_mask_view.xml b/core/res/res/layout/work_widget_mask_view.xml
index 86c5d13..a6fb17a 100644
--- a/core/res/res/layout/work_widget_mask_view.xml
+++ b/core/res/res/layout/work_widget_mask_view.xml
@@ -15,12 +15,13 @@
limitations under the License.
-->
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/work_widget_mask_frame"
+ android:id="@android:id/background"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/work_widget_mask_view_background"
android:importantForAccessibility="noHideDescendants"
- android:clickable="true">
+ android:clickable="true"
+ android:clipToOutline="true">
<com.android.internal.widget.DisableImageView
android:id="@+id/work_widget_app_icon"
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index f2328567..5bbe415 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -2962,7 +2962,6 @@
<java-symbol type="string" name="importance_from_person" />
<java-symbol type="layout" name="work_widget_mask_view" />
- <java-symbol type="id" name="work_widget_mask_frame" />
<java-symbol type="id" name="work_widget_app_icon" />
<java-symbol type="id" name="work_widget_badge_icon" />
diff --git a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
index 85084f4..13340ba 100644
--- a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
+++ b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
@@ -554,7 +554,7 @@
}
if (onClickIntent != null) {
- views.setOnClickPendingIntent(R.id.work_widget_mask_frame,
+ views.setOnClickPendingIntent(android.R.id.background,
PendingIntent.getActivity(mContext, 0, onClickIntent,
PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE));
}