From 4cb0150595c478f001366dcd6cfd0b255e5230ad Mon Sep 17 00:00:00 2001 From: Karn Saheb Date: Sun, 8 Nov 2020 21:42:50 -0500 Subject: [PATCH 1/2] Use generics to allow for different activity types and resolution --- library/src/main/java/io/karn/sentry/Sentry.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/library/src/main/java/io/karn/sentry/Sentry.kt b/library/src/main/java/io/karn/sentry/Sentry.kt index 1f81ad4..533a7bb 100644 --- a/library/src/main/java/io/karn/sentry/Sentry.kt +++ b/library/src/main/java/io/karn/sentry/Sentry.kt @@ -25,17 +25,19 @@ package io.karn.sentry import android.Manifest +import android.app.Activity import android.os.Build import androidx.appcompat.app.AppCompatActivity import androidx.core.app.ActivityCompat import androidx.core.content.PermissionChecker +import androidx.fragment.app.FragmentActivity import java.lang.ref.WeakReference /** * A lightweight class which makes requesting permissions a breeze. */ -class Sentry internal constructor(activity: AppCompatActivity, private val permissionHelper: IPermissionHelper) : ActivityCompat.OnRequestPermissionsResultCallback by activity { +class Sentry internal constructor(activity: T, private val permissionHelper: IPermissionHelper) : ActivityCompat.OnRequestPermissionsResultCallback by activity { companion object { /** @@ -44,14 +46,14 @@ class Sentry internal constructor(activity: AppCompatActivity, private val permi * @param activity A reference to an activity. * @return An instance of the Sentry object. */ - fun with(activity: AppCompatActivity): Sentry { + fun with(activity: T): Sentry { return Sentry(activity, PermissionHelper) } } private val requestCode: Int = this.hashCode() private lateinit var callback: ((Boolean) -> Unit) - private val activity: WeakReference = WeakReference(activity) + private val activity: WeakReference = WeakReference(activity) override fun onRequestPermissionsResult(requestCode: Int, permissions: Array, grantResults: IntArray) { if (grantResults.isEmpty()) { From 0e3fdc75941048a3e48f93d3e71e3ad1c7caf10b Mon Sep 17 00:00:00 2001 From: Karn Saheb Date: Sat, 12 Dec 2020 22:34:16 -0500 Subject: [PATCH 2/2] sync --- library/src/main/java/io/karn/sentry/Sentry.kt | 5 ++++- .../java/io/karn/sentry/SentryEnabledActivity.kt | 12 ++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 library/src/main/java/io/karn/sentry/SentryEnabledActivity.kt diff --git a/library/src/main/java/io/karn/sentry/Sentry.kt b/library/src/main/java/io/karn/sentry/Sentry.kt index 533a7bb..32b44fc 100644 --- a/library/src/main/java/io/karn/sentry/Sentry.kt +++ b/library/src/main/java/io/karn/sentry/Sentry.kt @@ -26,9 +26,11 @@ package io.karn.sentry import android.Manifest import android.app.Activity +import android.content.Intent import android.os.Build import androidx.appcompat.app.AppCompatActivity import androidx.core.app.ActivityCompat +import androidx.core.app.ActivityCompat.PermissionCompatDelegate import androidx.core.content.PermissionChecker import androidx.fragment.app.FragmentActivity import java.lang.ref.WeakReference @@ -86,7 +88,8 @@ class Sentry internal constructor(activity: T, private val } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - return@with this.requestPermissions(arrayOf(permission), requestCode) + this.packageManager.buildRequestPermissionsIntent + return@with requestPermissions(arrayOf(permission), requestCode) } callback(true) diff --git a/library/src/main/java/io/karn/sentry/SentryEnabledActivity.kt b/library/src/main/java/io/karn/sentry/SentryEnabledActivity.kt new file mode 100644 index 0000000..0105a7d --- /dev/null +++ b/library/src/main/java/io/karn/sentry/SentryEnabledActivity.kt @@ -0,0 +1,12 @@ +package io.karn.sentry + +import androidx.appcompat.app.AppCompatActivity + +class SentryEnabledActivity : AppCompatActivity() { + + override fun onRequestPermissionsResult(requestCode: Int, permissions: Array, grantResults: IntArray) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults) + + + } +} \ No newline at end of file