Skip to content

Commit ac16af0

Browse files
committed
Improve app permissions requests
1 parent 1eafa09 commit ac16af0

File tree

4 files changed

+20
-14
lines changed

4 files changed

+20
-14
lines changed

app/src/main/java/com/addev/listaspam/MainActivity.kt

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import androidx.activity.result.ActivityResultLauncher
1919
import androidx.activity.result.contract.ActivityResultContracts
2020
import androidx.annotation.RequiresApi
2121
import androidx.appcompat.app.AppCompatActivity
22+
import androidx.core.app.ActivityCompat
2223
import androidx.core.content.ContextCompat
2324
import androidx.core.view.ViewCompat
2425
import androidx.core.view.WindowInsetsCompat
@@ -39,6 +40,7 @@ class MainActivity : AppCompatActivity(), CallLogAdapter.OnItemChangedListener {
3940
private var permissionDeniedDialog: AlertDialog? = null
4041
private var callLogAdapter: CallLogAdapter? =null
4142
private var recyclerView: RecyclerView? = null
43+
private val REQUEST_CODE_PERMISSIONS = 1
4244

4345
override fun onCreate(savedInstanceState: Bundle?) {
4446
super.onCreate(savedInstanceState)
@@ -155,9 +157,21 @@ class MainActivity : AppCompatActivity(), CallLogAdapter.OnItemChangedListener {
155157
}
156158
val missingPermissions = permissions.filter {
157159
ContextCompat.checkSelfPermission(this, it) != PackageManager.PERMISSION_GRANTED
160+
&& ActivityCompat.shouldShowRequestPermissionRationale(this, it)
161+
}
162+
val deniedPermissions = permissions.filter {
163+
ContextCompat.checkSelfPermission(this, it) != PackageManager.PERMISSION_GRANTED
164+
&& !ActivityCompat.shouldShowRequestPermissionRationale(this, it)
158165
}
159166
if (missingPermissions.isNotEmpty()) {
160-
showPermissionToastAndRequest(missingPermissions)
167+
ActivityCompat.requestPermissions(
168+
this,
169+
missingPermissions.toTypedArray(),
170+
REQUEST_CODE_PERMISSIONS
171+
)
172+
}
173+
if (deniedPermissions.isNotEmpty()) {
174+
showPermissionToastAndRequest(deniedPermissions)
161175
}
162176
}
163177

@@ -177,6 +191,7 @@ class MainActivity : AppCompatActivity(), CallLogAdapter.OnItemChangedListener {
177191
}
178192

179193
permissionDeniedDialog = AlertDialog.Builder(this)
194+
.setCancelable(false)
180195
.setTitle(R.string.permissions_required_title)
181196
.setMessage(message)
182197
.setPositiveButton(R.string.go_to_settings) { _, _ ->

app/src/main/java/com/addev/listaspam/util/ExportImportUtils.kt

Lines changed: 0 additions & 9 deletions
This file was deleted.

app/src/main/res/values-es/strings.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,10 @@
4141
<string name="pref_show_notification_summary">Recibe una notificación cuando una llamada es bloqueada</string>
4242

4343
<!-- Preferences -->
44-
<string name="report_in_listaspam_com">Reportar en listaspam.com</string>
44+
<string name="report_in_listaspam_com">Reportar en ListaSpam</string>
4545
<string name="search_in_google">Buscar en Google</string>
4646
<string name="block">Bloquear</string>
4747
<string name="add_to_whitelist">Añadir a lista blanca</string>
48-
<string name="unblock">Unblock</string>
49-
<string name="remove_from_whitelist">Remove from whitelist</string>
48+
<string name="unblock">Desbloquear</string>
49+
<string name="remove_from_whitelist">Eliminar de la lista blanca</string>
5050
</resources>

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
<string name="pref_show_notification_summary">Receive a notification when a call is blocked</string>
4242

4343
<!-- item_actions -->
44-
<string name="report_in_listaspam_com">Report in listaspam.com</string>
44+
<string name="report_in_listaspam_com">Report in ListaSpam</string>
4545
<string name="search_in_google">Search in Google</string>
4646
<string name="block">Block</string>
4747
<string name="add_to_whitelist">Add to whitelist</string>

0 commit comments

Comments
 (0)