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 f223eb7edaf79..2a0e64abf7525 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -1167,7 +1167,7 @@
18dp
- 26dp
+ 30dp
24dp
14sp
@@ -1175,6 +1175,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,