summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/res/layout/widget_picker.xml18
-rw-r--r--packages/SystemUI/src/com/android/systemui/communal/widgets/WidgetPickerActivity.kt56
2 files changed, 48 insertions, 26 deletions
diff --git a/packages/SystemUI/res/layout/widget_picker.xml b/packages/SystemUI/res/layout/widget_picker.xml
index 827bd5d2e0b1..21dc224a6f14 100644
--- a/packages/SystemUI/res/layout/widget_picker.xml
+++ b/packages/SystemUI/res/layout/widget_picker.xml
@@ -14,13 +14,17 @@
~ limitations under the License.
-->
-<LinearLayout
+<HorizontalScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/widgets_container"
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:padding="64dp"
- android:gravity="center_vertical"
- android:orientation="horizontal">
+ android:layout_height="match_parent">
-</LinearLayout>
+ <LinearLayout
+ android:id="@+id/widgets_container"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:gravity="center_vertical"
+ android:orientation="horizontal">
+ </LinearLayout>
+
+</HorizontalScrollView>
diff --git a/packages/SystemUI/src/com/android/systemui/communal/widgets/WidgetPickerActivity.kt b/packages/SystemUI/src/com/android/systemui/communal/widgets/WidgetPickerActivity.kt
index a2765486bf2d..a26afc86aa2e 100644
--- a/packages/SystemUI/src/com/android/systemui/communal/widgets/WidgetPickerActivity.kt
+++ b/packages/SystemUI/src/com/android/systemui/communal/widgets/WidgetPickerActivity.kt
@@ -19,13 +19,15 @@ package com.android.systemui.communal.widgets
import android.appwidget.AppWidgetManager
import android.appwidget.AppWidgetProviderInfo
import android.content.Intent
+import android.graphics.Color
import android.os.Bundle
-import android.util.DisplayMetrics
import android.util.Log
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.LinearLayout
import androidx.activity.ComponentActivity
+import androidx.core.view.setMargins
+import androidx.core.view.setPadding
import com.android.systemui.res.R
import javax.inject.Inject
@@ -43,7 +45,6 @@ constructor(
super.onCreate(savedInstanceState)
setContentView(R.layout.widget_picker)
-
loadWidgets()
}
@@ -54,24 +55,38 @@ constructor(
appWidgetManager
.getInstalledProviders(AppWidgetProviderInfo.WIDGET_CATEGORY_KEYGUARD)
?.stream()
- ?.limit(5)
?.forEach { widgetInfo ->
val activity = this@WidgetPickerActivity
- val widgetPreview =
- widgetInfo.loadPreviewImage(activity, DisplayMetrics.DENSITY_HIGH)
- val widgetView = ImageView(activity)
- val lp = LinearLayout.LayoutParams(WIDGET_PREVIEW_SIZE, WIDGET_PREVIEW_SIZE)
- widgetView.setLayoutParams(lp)
- widgetView.setImageDrawable(widgetPreview)
- widgetView.setOnClickListener({
- setResult(
- RESULT_OK,
- Intent().putExtra(EditWidgetsActivity.ADD_WIDGET_INFO, widgetInfo)
- )
- finish()
- })
-
- addView(widgetView)
+ (widgetInfo.loadPreviewImage(activity, 0)
+ ?: widgetInfo.loadIcon(activity, 0))
+ ?.let {
+ addView(
+ ImageView(activity).also { v ->
+ v.setImageDrawable(it)
+ v.setBackgroundColor(WIDGET_PREVIEW_BACKGROUND_COLOR)
+ v.setPadding(WIDGET_PREVIEW_PADDING)
+ v.layoutParams =
+ LinearLayout.LayoutParams(
+ WIDGET_PREVIEW_SIZE,
+ WIDGET_PREVIEW_SIZE
+ )
+ .also { lp ->
+ lp.setMargins(WIDGET_PREVIEW_MARGINS)
+ }
+ v.setOnClickListener {
+ setResult(
+ RESULT_OK,
+ Intent()
+ .putExtra(
+ EditWidgetsActivity.ADD_WIDGET_INFO,
+ widgetInfo
+ )
+ )
+ finish()
+ }
+ }
+ )
+ }
}
} catch (e: RuntimeException) {
Log.e(TAG, "Exception fetching widget providers", e)
@@ -80,7 +95,10 @@ constructor(
}
companion object {
- private const val WIDGET_PREVIEW_SIZE = 400
+ private const val WIDGET_PREVIEW_SIZE = 600
+ private const val WIDGET_PREVIEW_MARGINS = 32
+ private const val WIDGET_PREVIEW_PADDING = 32
+ private val WIDGET_PREVIEW_BACKGROUND_COLOR = Color.rgb(216, 225, 220)
private const val TAG = "WidgetPickerActivity"
}
}