Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1ccc6e6e authored by William Leshner's avatar William Leshner Committed by Android (Google) Code Review
Browse files

Merge "Several tweaks to communal's temporary widget picker." into main

parents 104a8754 ac112964
Loading
Loading
Loading
Loading
+11 −7
Original line number Diff line number Diff line
@@ -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">

    <LinearLayout
        android:id="@+id/widgets_container"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
    android:padding="64dp"
        android:gravity="center_vertical"
        android:orientation="horizontal">

    </LinearLayout>

</HorizontalScrollView>
+37 −19
Original line number Diff line number Diff line
@@ -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({
                        (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)
                                                Intent()
                                                    .putExtra(
                                                        EditWidgetsActivity.ADD_WIDGET_INFO,
                                                        widgetInfo
                                                    )
                                            )
                                            finish()
                        })

                        addView(widgetView)
                                        }
                                    }
                                )
                            }
                    }
            } 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"
    }
}