@@ -8,21 +8,27 @@ import android.provider.ContactsContract
88import android.telecom.PhoneAccount
99import android.telecom.PhoneAccountHandle
1010import android.telecom.TelecomManager
11+ import org.fossify.commons.R
1112import org.fossify.commons.activities.BaseSimpleActivity
1213import org.fossify.commons.dialogs.CallConfirmationDialog
14+ import org.fossify.commons.dialogs.PermissionRequiredDialog
15+ import org.fossify.commons.extensions.canUseFullScreenIntent
1316import org.fossify.commons.extensions.initiateCall
1417import org.fossify.commons.extensions.isDefaultDialer
1518import org.fossify.commons.extensions.isPackageInstalled
1619import org.fossify.commons.extensions.launchActivityIntent
1720import org.fossify.commons.extensions.launchCallIntent
1821import org.fossify.commons.extensions.launchViewContactIntent
22+ import org.fossify.commons.extensions.openFullScreenIntentSettings
23+ import org.fossify.commons.extensions.openNotificationSettings
1924import org.fossify.commons.extensions.telecomManager
2025import org.fossify.commons.helpers.CONTACT_ID
2126import org.fossify.commons.helpers.IS_PRIVATE
2227import org.fossify.commons.helpers.PERMISSION_READ_PHONE_STATE
2328import org.fossify.commons.helpers.SimpleContactsHelper
2429import org.fossify.commons.helpers.ensureBackgroundThread
2530import org.fossify.commons.models.contacts.Contact
31+ import org.fossify.phone.BuildConfig
2632import org.fossify.phone.activities.DialerActivity
2733import org.fossify.phone.activities.SimpleActivity
2834import org.fossify.phone.dialogs.SelectSIMDialog
@@ -181,3 +187,36 @@ fun SimpleActivity.showSelectSimDialog(
181187) { handle ->
182188 callback(handle)
183189}
190+
191+ fun SimpleActivity.handleFullScreenNotificationsPermission (callback : (granted: Boolean ) -> Unit ) {
192+ handleNotificationPermission { granted ->
193+ if (granted) {
194+ if (canUseFullScreenIntent()) {
195+ callback(true )
196+ } else {
197+ PermissionRequiredDialog (
198+ activity = this ,
199+ textId = R .string.allow_full_screen_notifications_incoming_calls,
200+ positiveActionCallback = {
201+ @SuppressLint(" NewApi" )
202+ openFullScreenIntentSettings(BuildConfig .APPLICATION_ID )
203+ },
204+ negativeActionCallback = {
205+ callback(false )
206+ }
207+ )
208+ }
209+ } else {
210+ PermissionRequiredDialog (
211+ activity = this ,
212+ textId = R .string.allow_notifications_incoming_calls,
213+ positiveActionCallback = {
214+ openNotificationSettings()
215+ },
216+ negativeActionCallback = {
217+ callback(false )
218+ }
219+ )
220+ }
221+ }
222+ }
0 commit comments