Skip to content

Commit

Permalink
ADS: Mic and Camera permissions dialogs migration (#2649)
Browse files Browse the repository at this point in the history
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)|
  • Loading branch information
nalcalag authored and malmstein committed Jan 12, 2023
1 parent fc6e1f6 commit 0f44537
Showing 1 changed file with 34 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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() {
Expand Down Expand Up @@ -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()
}
}

Expand Down

0 comments on commit 0f44537

Please sign in to comment.