diff options
| -rw-r--r-- | packages/SystemUI/res/layout/widget_picker.xml | 18 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/communal/widgets/WidgetPickerActivity.kt | 56 |
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" } } |