diff --git a/app/src/main/java/com/aurora/extensions/Context.kt b/app/src/main/java/com/aurora/extensions/Context.kt index d6f3a0a24..aeca95063 100644 --- a/app/src/main/java/com/aurora/extensions/Context.kt +++ b/app/src/main/java/com/aurora/extensions/Context.kt @@ -34,6 +34,7 @@ import android.util.TypedValue import android.view.LayoutInflater import androidx.browser.customtabs.CustomTabsIntent import androidx.core.app.ActivityOptionsCompat +import androidx.core.app.PendingIntentCompat import androidx.core.content.ContextCompat import androidx.core.graphics.drawable.toBitmap import com.aurora.Constants @@ -56,16 +57,17 @@ fun Context.browse(url: String, showOpenInAuroraAction: Boolean = false) { if (showOpenInAuroraAction) { val icon = ContextCompat.getDrawable(this, R.drawable.ic_open_in_new)?.toBitmap() - val pendingIntent = PendingIntent.getActivity( + val pendingIntent = PendingIntentCompat.getActivity( this, 0, Intent(this, MainActivity::class.java), - PendingIntent.FLAG_MUTABLE + 0, + false ) customTabsIntent.setActionButton( icon!!, this.getString(R.string.open_in_aurora), - pendingIntent, + pendingIntent!!, true ) } diff --git a/app/src/main/java/com/aurora/store/data/installer/SessionInstaller.kt b/app/src/main/java/com/aurora/store/data/installer/SessionInstaller.kt index 3d9ba258c..6b63be2c4 100644 --- a/app/src/main/java/com/aurora/store/data/installer/SessionInstaller.kt +++ b/app/src/main/java/com/aurora/store/data/installer/SessionInstaller.kt @@ -29,6 +29,7 @@ import android.content.pm.PackageInstaller.PACKAGE_SOURCE_STORE import android.content.pm.PackageInstaller.SessionParams import android.content.pm.PackageManager import android.os.Process +import androidx.core.app.PendingIntentCompat import com.aurora.extensions.isNAndAbove import com.aurora.extensions.isOAndAbove import com.aurora.extensions.isSAndAbove @@ -188,11 +189,11 @@ class SessionInstaller @Inject constructor( private fun commitInstall(packageName: String, sessionId: Int) { Log.i("Starting install session for $packageName") val session = packageInstaller.openSession(sessionId) - session.commit(getCallBackIntent(packageName, sessionId).intentSender) + session.commit(getCallBackIntent(packageName, sessionId)!!.intentSender) session.close() } - private fun getCallBackIntent(packageName: String, sessionId: Int): PendingIntent { + private fun getCallBackIntent(packageName: String, sessionId: Int): PendingIntent? { val callBackIntent = Intent(context, InstallerStatusReceiver::class.java).apply { action = InstallerStatusReceiver.ACTION_INSTALL_STATUS setPackage(context.packageName) @@ -200,12 +201,13 @@ class SessionInstaller @Inject constructor( putExtra(EXTRA_DOWNLOAD, download) addFlags(Intent.FLAG_RECEIVER_FOREGROUND) } - val flags = if (isSAndAbove()) { - PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_MUTABLE - } else { - PendingIntent.FLAG_UPDATE_CURRENT - } - return PendingIntent.getBroadcast(context, sessionId, callBackIntent, flags) + return PendingIntentCompat.getBroadcast( + context, + sessionId, + callBackIntent, + PendingIntent.FLAG_UPDATE_CURRENT, + true + ) } } diff --git a/app/src/main/java/com/aurora/store/data/installer/ShizukuInstaller.kt b/app/src/main/java/com/aurora/store/data/installer/ShizukuInstaller.kt index f8c998c0c..6eb9b3adb 100644 --- a/app/src/main/java/com/aurora/store/data/installer/ShizukuInstaller.kt +++ b/app/src/main/java/com/aurora/store/data/installer/ShizukuInstaller.kt @@ -28,6 +28,7 @@ import android.os.Build import android.os.IBinder import android.os.IInterface import androidx.annotation.RequiresApi +import androidx.core.app.PendingIntentCompat import com.aurora.extensions.isOAndAbove import com.aurora.extensions.isSAndAbove import com.aurora.store.R @@ -153,21 +154,17 @@ class ShizukuInstaller @Inject constructor( putExtra(PackageInstaller.EXTRA_PACKAGE_NAME, sharedLibPkgName.ifBlank { packageName }) putExtra(EXTRA_DOWNLOAD, download) } - val flags = if (isSAndAbove()) { - PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_MUTABLE - } else { - PendingIntent.FLAG_UPDATE_CURRENT - } - val pendingIntent = PendingIntent.getBroadcast( + val pendingIntent = PendingIntentCompat.getBroadcast( context, sessionId, callBackIntent, - flags + PendingIntent.FLAG_UPDATE_CURRENT, + true ) Log.i("Starting install session for $packageName") - session.commit(pendingIntent.intentSender) + session.commit(pendingIntent!!.intentSender) session.close() } catch (exception: Exception) { session.abandon() diff --git a/app/src/main/java/com/aurora/store/util/NotificationUtil.kt b/app/src/main/java/com/aurora/store/util/NotificationUtil.kt index 755a36d0b..8b9bf6cb2 100644 --- a/app/src/main/java/com/aurora/store/util/NotificationUtil.kt +++ b/app/src/main/java/com/aurora/store/util/NotificationUtil.kt @@ -11,13 +11,13 @@ import android.graphics.Bitmap import android.graphics.Color import android.os.Build import androidx.core.app.NotificationCompat +import androidx.core.app.PendingIntentCompat import androidx.core.content.ContextCompat import androidx.core.os.bundleOf import androidx.navigation.NavDeepLinkBuilder import androidx.work.WorkManager import com.aurora.Constants import com.aurora.extensions.getStyledAttributeColor -import com.aurora.extensions.isMAndAbove import com.aurora.gplayapi.data.models.App import com.aurora.store.MainActivity import com.aurora.store.data.room.download.Download as AuroraDownload @@ -262,17 +262,16 @@ object NotificationUtil { .createPendingIntent() } - private fun getInstallIntent(context: Context, download: Download): PendingIntent { + private fun getInstallIntent(context: Context, download: Download): PendingIntent? { val intent = Intent(context, InstallActivity::class.java).apply { putExtra(Constants.PARCEL_DOWNLOAD, download) } - val flags = if (isMAndAbove()) { - PendingIntent.FLAG_CANCEL_CURRENT or PendingIntent.FLAG_IMMUTABLE - } else { - PendingIntent.FLAG_CANCEL_CURRENT - } - return PendingIntent.getActivity( - context, download.packageName.hashCode(), intent, flags + return PendingIntentCompat.getActivity( + context, + download.packageName.hashCode(), + intent, + PendingIntent.FLAG_CANCEL_CURRENT, + false ) } }