diff --git a/packages/SystemUI/res/drawable/screenrecord_options_spinner_popup_background.xml b/packages/SystemUI/res/drawable/screenrecord_options_spinner_popup_background.xml new file mode 100644 index 0000000000000..9a022960d1e31 --- /dev/null +++ b/packages/SystemUI/res/drawable/screenrecord_options_spinner_popup_background.xml @@ -0,0 +1,21 @@ + + + + + \ No newline at end of file diff --git a/packages/SystemUI/res/drawable/screenshare_options_spinner_background.xml b/packages/SystemUI/res/drawable/screenshare_options_spinner_background.xml new file mode 100644 index 0000000000000..34e7d0afcd978 --- /dev/null +++ b/packages/SystemUI/res/drawable/screenshare_options_spinner_background.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/packages/SystemUI/res/layout/screen_record_options.xml b/packages/SystemUI/res/layout/screen_record_options.xml index d6c9e98d8b4d5..3f0eea9004a68 100644 --- a/packages/SystemUI/res/layout/screen_record_options.xml +++ b/packages/SystemUI/res/layout/screen_record_options.xml @@ -16,7 +16,8 @@ + android:orientation="vertical" + android:paddingBottom="@dimen/screenrecord_options_padding_bottom"> @@ -32,10 +32,11 @@ android:gravity="center_horizontal"> + android:layout_marginTop="@dimen/screenrecord_title_margin_top" + android:gravity="center"/> + android:layout_width="match_parent" + android:layout_height="@dimen/screenrecord_spinner_height" + android:layout_marginTop="@dimen/screenrecord_spinner_margin" + android:layout_marginBottom="@dimen/screenrecord_spinner_margin" + android:gravity="center_vertical" + android:background="@drawable/screenshare_options_spinner_background" + android:popupBackground="@drawable/screenrecord_options_spinner_popup_background"/> + android:lineHeight="@dimen/screenrecord_warning_line_height"/> + android:layout_marginTop="@dimen/screenrecord_buttons_margin_top"> + \ No newline at end of file diff --git a/packages/SystemUI/res/layout/screen_share_dialog_spinner_text.xml b/packages/SystemUI/res/layout/screen_share_dialog_spinner_text.xml new file mode 100644 index 0000000000000..4cc4cbae3569c --- /dev/null +++ b/packages/SystemUI/res/layout/screen_share_dialog_spinner_text.xml @@ -0,0 +1,26 @@ + + \ No newline at end of file diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index e8ae929a67824..34db282441b39 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -1161,7 +1161,7 @@ 18dp - 26dp + 30dp 24dp 14sp @@ -1169,6 +1169,18 @@ 21dp 17.5dp 8dp + + 72dp + 24dp + 20dp + 80dp + 24dp + 28dp + + 20dp + 20dp + 16dp + 20dp 16sp diff --git a/packages/SystemUI/src/com/android/systemui/screenrecord/BaseScreenSharePermissionDialog.kt b/packages/SystemUI/src/com/android/systemui/screenrecord/BaseScreenSharePermissionDialog.kt index f4d59a8dd6a6e..db0052a4d99ef 100644 --- a/packages/SystemUI/src/com/android/systemui/screenrecord/BaseScreenSharePermissionDialog.kt +++ b/packages/SystemUI/src/com/android/systemui/screenrecord/BaseScreenSharePermissionDialog.kt @@ -23,8 +23,11 @@ import android.view.ViewStub import android.view.WindowManager import android.widget.AdapterView import android.widget.ArrayAdapter +import android.widget.ImageView import android.widget.Spinner import android.widget.TextView +import androidx.annotation.ColorRes +import androidx.annotation.DrawableRes import androidx.annotation.LayoutRes import androidx.annotation.StringRes import com.android.systemui.R @@ -34,7 +37,9 @@ import com.android.systemui.statusbar.phone.SystemUIDialog open class BaseScreenSharePermissionDialog( context: Context?, private val screenShareOptions: List, - private val appName: String? + private val appName: String?, + @DrawableRes private val dialogIconDrawable: Int? = null, + @ColorRes private val dialogIconTint: Int? = null ) : SystemUIDialog(context), AdapterView.OnItemSelectedListener { private lateinit var dialogTitle: TextView private lateinit var startButton: TextView @@ -53,10 +58,21 @@ open class BaseScreenSharePermissionDialog( warning = findViewById(R.id.text_warning) startButton = findViewById(R.id.button_start) findViewById(R.id.button_cancel).setOnClickListener { dismiss() } + updateIcon() initScreenShareOptions() createOptionsView(getOptionsViewLayoutId()) } + private fun updateIcon() { + val icon = findViewById(R.id.screen_share_dialog_icon) + if (dialogIconTint != null) { + icon.setColorFilter(context.getColor(dialogIconTint)) + } + if (dialogIconDrawable != null) { + icon.setImageDrawable(context.getDrawable(dialogIconDrawable)) + } + } + protected fun initScreenShareOptions() { selectedScreenShareOption = screenShareOptions.first() warning.text = warningText @@ -69,8 +85,12 @@ open class BaseScreenSharePermissionDialog( private fun initScreenShareSpinner() { val options = screenShareOptions.map { context.getString(it.spinnerText) }.toTypedArray() val adapter = - ArrayAdapter(context.applicationContext, android.R.layout.simple_spinner_item, options) - adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) + ArrayAdapter( + context.applicationContext, + R.layout.screen_share_dialog_spinner_text, + options + ) + adapter.setDropDownViewResource(R.layout.screen_share_dialog_spinner_item_text) screenShareModeSpinner = findViewById(R.id.screen_share_mode_spinner) screenShareModeSpinner.adapter = adapter screenShareModeSpinner.onItemSelectedListener = this diff --git a/packages/SystemUI/src/com/android/systemui/screenrecord/MediaProjectionPermissionDialog.kt b/packages/SystemUI/src/com/android/systemui/screenrecord/MediaProjectionPermissionDialog.kt index 15b0bc4a356a2..e56ab997e6059 100644 --- a/packages/SystemUI/src/com/android/systemui/screenrecord/MediaProjectionPermissionDialog.kt +++ b/packages/SystemUI/src/com/android/systemui/screenrecord/MediaProjectionPermissionDialog.kt @@ -40,15 +40,15 @@ class MediaProjectionPermissionDialog( companion object { private fun createOptionList(): List { return listOf( - ScreenShareOption( - SINGLE_APP, - R.string.media_projection_permission_dialog_option_single_app, - R.string.media_projection_permission_dialog_warning_single_app - ), ScreenShareOption( ENTIRE_SCREEN, R.string.media_projection_permission_dialog_option_entire_screen, R.string.media_projection_permission_dialog_warning_entire_screen + ), + ScreenShareOption( + SINGLE_APP, + R.string.media_projection_permission_dialog_option_single_app, + R.string.media_projection_permission_dialog_warning_single_app ) ) } diff --git a/packages/SystemUI/src/com/android/systemui/screenrecord/ScreenRecordPermissionDialog.kt b/packages/SystemUI/src/com/android/systemui/screenrecord/ScreenRecordPermissionDialog.kt index 19bb15a5c2d8c..44b18ec4639b0 100644 --- a/packages/SystemUI/src/com/android/systemui/screenrecord/ScreenRecordPermissionDialog.kt +++ b/packages/SystemUI/src/com/android/systemui/screenrecord/ScreenRecordPermissionDialog.kt @@ -46,7 +46,14 @@ class ScreenRecordPermissionDialog( private val dialogLaunchAnimator: DialogLaunchAnimator, private val userContextProvider: UserContextProvider, private val onStartRecordingClicked: Runnable? -) : BaseScreenSharePermissionDialog(context, createOptionList(), null) { +) : + BaseScreenSharePermissionDialog( + context, + createOptionList(), + null, + R.drawable.ic_screenrecord, + R.color.screenrecord_icon_color + ) { private lateinit var tapsSwitch: Switch private lateinit var tapsView: View private lateinit var audioSwitch: Switch @@ -168,15 +175,15 @@ class ScreenRecordPermissionDialog( private const val INTERVAL_MS: Long = 1000 private fun createOptionList(): List { return listOf( - ScreenShareOption( - SINGLE_APP, - R.string.screenrecord_option_single_app, - R.string.screenrecord_warning_single_app - ), ScreenShareOption( ENTIRE_SCREEN, R.string.screenrecord_option_entire_screen, R.string.screenrecord_warning_entire_screen + ), + ScreenShareOption( + SINGLE_APP, + R.string.screenrecord_option_single_app, + R.string.screenrecord_warning_single_app ) ) } diff --git a/packages/SystemUI/src/com/android/systemui/screenrecord/ScreenShareOption.kt b/packages/SystemUI/src/com/android/systemui/screenrecord/ScreenShareOption.kt index 914d29a52b539..3d39fd82ac633 100644 --- a/packages/SystemUI/src/com/android/systemui/screenrecord/ScreenShareOption.kt +++ b/packages/SystemUI/src/com/android/systemui/screenrecord/ScreenShareOption.kt @@ -20,11 +20,11 @@ import androidx.annotation.StringRes import kotlin.annotation.Retention @Retention(AnnotationRetention.SOURCE) -@IntDef(SINGLE_APP, ENTIRE_SCREEN) +@IntDef(ENTIRE_SCREEN, SINGLE_APP) annotation class ScreenShareMode -const val SINGLE_APP = 0 -const val ENTIRE_SCREEN = 1 +const val ENTIRE_SCREEN = 0 +const val SINGLE_APP = 1 class ScreenShareOption( @ScreenShareMode val mode: Int,