From 0f44537bec14a3e98821f21faba0296db37b5bf8 Mon Sep 17 00:00:00 2001 From: Noelia Alcala Date: Fri, 16 Dec 2022 14:39:42 +0000 Subject: [PATCH] ADS: Mic and Camera permissions dialogs migration (#2649) Task/Issue URL: https://app.asana.com/0/0/1203553010470144/f ### Description Migrate camera and microphone permission request dialogs to new components ### Steps to test this PR - Install from this branch - Go to a website which requests mic, camera or both permissions - [ ] Check dialog looks as expected - Go to Apps > DDG > Permissions and disable microphone permission - Go back to a website which requests microphone permission and allow it - [ ] Check Settings dialog look as expected ### UI changes | Before | After | | ------ | ----- | ![Screenshot_20221215_105042_DuckDuckGo](https://user-images.githubusercontent.com/20798495/207844534-5409bae5-f954-4e88-aae0-bb35a6e4aac6.jpg)|![Screenshot_20221215_105631_DuckDuckGo](https://user-images.githubusercontent.com/20798495/207844480-779e7b23-3c12-451e-98f2-ecee718a8286.jpg)| ![Screenshot_20221215_105136_DuckDuckGo](https://user-images.githubusercontent.com/20798495/207844545-c1c09176-6932-49c3-b7c7-64b7f02c0ddc.jpg)|![Screenshot_20221215_105649_DuckDuckGo](https://user-images.githubusercontent.com/20798495/207844497-a2f2c435-b83c-4373-b545-ce1a72eeff04.jpg)| --- .../SitePermissionsDialogActivityLauncher.kt | 60 +++++++++++-------- 1 file changed, 34 insertions(+), 26 deletions(-) diff --git a/site-permissions/site-permissions-impl/src/main/java/com/duckduckgo/site/permissions/impl/SitePermissionsDialogActivityLauncher.kt b/site-permissions/site-permissions-impl/src/main/java/com/duckduckgo/site/permissions/impl/SitePermissionsDialogActivityLauncher.kt index 5457d2e18fc0..ba07cef25408 100644 --- a/site-permissions/site-permissions-impl/src/main/java/com/duckduckgo/site/permissions/impl/SitePermissionsDialogActivityLauncher.kt +++ b/site-permissions/site-permissions-impl/src/main/java/com/duckduckgo/site/permissions/impl/SitePermissionsDialogActivityLauncher.kt @@ -18,7 +18,6 @@ package com.duckduckgo.site.permissions.impl import android.Manifest import android.app.Activity -import android.app.AlertDialog import android.content.Intent import android.content.res.Configuration import android.net.Uri @@ -28,6 +27,7 @@ import androidx.activity.result.ActivityResultCaller import androidx.annotation.StringRes import com.duckduckgo.app.global.extractDomain import com.duckduckgo.di.scopes.FragmentScope +import com.duckduckgo.mobile.android.ui.view.dialog.TextAlertDialogBuilder import com.duckduckgo.mobile.android.ui.view.toPx import com.duckduckgo.site.permissions.api.SitePermissionsDialogLauncher import com.duckduckgo.site.permissions.api.SitePermissionsGrantedListener @@ -91,17 +91,22 @@ class SitePermissionsDialogActivityLauncher @Inject constructor( url: String, onPermissionAllowed: () -> Unit, ) { - AlertDialog.Builder(activity).apply { - setTitle(String.format(activity.getString(titleRes), url.websiteFromGeoLocationsApiOrigin())) - setPositiveButton(R.string.sitePermissionsDialogAllowButton) { _, _ -> - onPermissionAllowed() - } - setNegativeButton(R.string.sitePermissionsDialogDenyButton) { _, _ -> - sitePermissionRequest.deny() - } - setCancelable(false) - show() - } + TextAlertDialogBuilder(activity) + .setTitle(String.format(activity.getString(titleRes), url.websiteFromGeoLocationsApiOrigin())) + .setPositiveButton(R.string.sitePermissionsDialogAllowButton) + .setNegativeButton(R.string.sitePermissionsDialogDenyButton) + .addEventListener( + object : TextAlertDialogBuilder.EventListener() { + override fun onPositiveButtonClicked() { + onPermissionAllowed() + } + + override fun onNegativeButtonClicked() { + sitePermissionRequest.deny() + } + }, + ) + .show() } private fun askForMicAndCameraPermissions() { @@ -243,20 +248,23 @@ class SitePermissionsDialogActivityLauncher @Inject constructor( SitePermissionsRequestedType.AUDIO -> R.string.systemPermissionDialogAudioDeniedContent SitePermissionsRequestedType.CAMERA_AND_AUDIO -> R.string.systemPermissionDialogCameraAndAudioDeniedContent } - - AlertDialog.Builder(activity).apply { - setTitle(titleRes) - setMessage(contentRes) - setPositiveButton(R.string.systemPermissionsDeniedDialogPositiveButton) { _, _ -> - val intent = Intent() - intent.action = Settings.ACTION_APPLICATION_DETAILS_SETTINGS - val uri = Uri.fromParts("package", activity.packageName, null) - intent.data = uri - context.startActivity(intent) - } - setNegativeButton(R.string.systemPermissionsDeniedDialogNegativeButton) { _, _ -> } - show() - } + TextAlertDialogBuilder(activity) + .setTitle(titleRes) + .setMessage(contentRes) + .setPositiveButton(R.string.systemPermissionsDeniedDialogPositiveButton) + .setNegativeButton(R.string.systemPermissionsDeniedDialogNegativeButton) + .addEventListener( + object : TextAlertDialogBuilder.EventListener() { + override fun onPositiveButtonClicked() { + val intent = Intent() + intent.action = Settings.ACTION_APPLICATION_DETAILS_SETTINGS + val uri = Uri.fromParts("package", activity.packageName, null) + intent.data = uri + activity.startActivity(intent) + } + }, + ) + .show() } }