[Partial Screensharing] Handle app's name when media projection is called by system apps

Updated permission dialog's app's name for special case (system apps such as Cast)

Bug: 253438807
Test: manual
Change-Id: I0b593c4e604eb4da1df2b22ce709dd7e23093c1c
This commit is contained in:
yyalan
2022-11-23 16:36:13 +00:00
parent 814ef64f49
commit a8bc7683b0
2 changed files with 27 additions and 11 deletions

View File

@@ -109,7 +109,6 @@ public class MediaProjectionPermissionActivity extends Activity
CharSequence dialogTitle = null;
String appName = null;
if (Utils.isHeadlessRemoteDisplayProvider(packageManager, mPackageName)) {
// TODO(b/253438807): handle special app name
dialogText = getString(R.string.media_projection_dialog_service_text);
dialogTitle = getString(R.string.media_projection_dialog_service_title);
} else {

View File

@@ -23,11 +23,15 @@ import com.android.systemui.R
class MediaProjectionPermissionDialog(
context: Context?,
private val onStartRecordingClicked: Runnable,
appName: String?
) : BaseScreenSharePermissionDialog(context, createOptionList(), appName) {
private val appName: String?
) : BaseScreenSharePermissionDialog(context, createOptionList(appName), appName) {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setDialogTitle(R.string.media_projection_permission_dialog_title)
if (appName == null) {
setDialogTitle(R.string.media_projection_permission_dialog_system_service_title)
} else {
setDialogTitle(R.string.media_projection_permission_dialog_title)
}
setStartButtonText(R.string.media_projection_permission_dialog_continue)
setStartButtonOnClickListener {
// Note that it is important to run this callback before dismissing, so that the
@@ -38,17 +42,30 @@ class MediaProjectionPermissionDialog(
}
companion object {
private fun createOptionList(): List<ScreenShareOption> {
private fun createOptionList(appName: String?): List<ScreenShareOption> {
val singleAppWarningText =
if (appName == null) {
R.string.media_projection_permission_dialog_system_service_warning_single_app
} else {
R.string.media_projection_permission_dialog_warning_single_app
}
val entireScreenWarningText =
if (appName == null) {
R.string.media_projection_permission_dialog_system_service_warning_entire_screen
} else {
R.string.media_projection_permission_dialog_warning_entire_screen
}
return listOf(
ScreenShareOption(
ENTIRE_SCREEN,
R.string.media_projection_permission_dialog_option_entire_screen,
R.string.media_projection_permission_dialog_warning_entire_screen
mode = ENTIRE_SCREEN,
spinnerText = R.string.media_projection_permission_dialog_option_entire_screen,
warningText = entireScreenWarningText
),
ScreenShareOption(
SINGLE_APP,
R.string.media_projection_permission_dialog_option_single_app,
R.string.media_projection_permission_dialog_warning_single_app
mode = SINGLE_APP,
spinnerText = R.string.media_projection_permission_dialog_option_single_app,
warningText = singleAppWarningText
)
)
}