NotificationUtil: Use download object available from parcel

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2024-05-21 18:06:25 +05:30
parent e338146e9e
commit a655358e47
2 changed files with 18 additions and 21 deletions

View File

@@ -26,7 +26,6 @@ import android.content.pm.PackageInstaller
import android.util.Log import android.util.Log
import androidx.core.content.IntentCompat import androidx.core.content.IntentCompat
import com.aurora.extensions.runOnUiThread import com.aurora.extensions.runOnUiThread
import com.aurora.gplayapi.data.models.App
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.data.event.InstallerEvent import com.aurora.store.data.event.InstallerEvent
import com.aurora.store.data.installer.AppInstaller import com.aurora.store.data.installer.AppInstaller
@@ -58,10 +57,10 @@ class InstallerStatusReceiver : BroadcastReceiver() {
val extra = intent.getStringExtra(PackageInstaller.EXTRA_STATUS_MESSAGE) val extra = intent.getStringExtra(PackageInstaller.EXTRA_STATUS_MESSAGE)
val download = IntentCompat.getParcelableExtra( val download = IntentCompat.getParcelableExtra(
intent, EXTRA_DOWNLOAD, Download::class.java intent, EXTRA_DOWNLOAD, Download::class.java
) )!!
// If package was successfully installed, exit after notifying user and doing cleanup // If package was successfully installed, exit after notifying user and doing cleanup
if (status == PackageInstaller.STATUS_SUCCESS && download != null) { if (status == PackageInstaller.STATUS_SUCCESS) {
// No post-install steps for shared libraries // No post-install steps for shared libraries
if (PackageUtil.isSharedLibrary(context, packageName)) return if (PackageUtil.isSharedLibrary(context, packageName)) return
@@ -77,20 +76,20 @@ class InstallerStatusReceiver : BroadcastReceiver() {
promptUser(intent, context) promptUser(intent, context)
} else { } else {
postStatus(status, packageName, extra, context) postStatus(status, packageName, extra, context)
notifyUser(context, packageName, status) notifyUser(context, download, status)
} }
} }
} }
private fun notifyUser(context: Context, packageName: String, status: Int) { private fun notifyUser(context: Context, download: Download, status: Int) {
val notificationManager = val notificationManager =
context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
val notification = NotificationUtil.getInstallerStatusNotification( val notification = NotificationUtil.getInstallerStatusNotification(
context, context,
App(packageName), download,
AppInstaller.getErrorString(context, status) AppInstaller.getErrorString(context, status)
) )
notificationManager.notify(packageName.hashCode(), notification) notificationManager.notify(download.packageName.hashCode(), notification)
} }
private fun promptUser(intent: Intent, context: Context) { private fun promptUser(intent: Intent, context: Context) {

View File

@@ -8,10 +8,8 @@ import android.app.PendingIntent
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.graphics.Bitmap import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.graphics.Color import android.graphics.Color
import android.os.Build import android.os.Build
import android.util.Log
import androidx.core.app.NotificationCompat import androidx.core.app.NotificationCompat
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.os.bundleOf import androidx.core.os.bundleOf
@@ -27,7 +25,6 @@ import com.aurora.store.R
import com.aurora.store.data.activity.InstallActivity import com.aurora.store.data.activity.InstallActivity
import com.aurora.store.data.model.DownloadStatus import com.aurora.store.data.model.DownloadStatus
import com.aurora.store.data.room.download.Download import com.aurora.store.data.room.download.Download
import java.net.URL
import java.util.UUID import java.util.UUID
object NotificationUtil { object NotificationUtil {
@@ -170,17 +167,18 @@ object NotificationUtil {
.build() .build()
} }
fun getInstallerStatusNotification(context: Context, app: App, content: String?): Notification { fun getInstallerStatusNotification(
val builder = context: Context,
NotificationCompat.Builder(context, Constants.NOTIFICATION_CHANNEL_ALERT).apply { download: Download,
color = context.getStyledAttributeColor(R.color.colorAccent) content: String?
setSmallIcon(R.drawable.ic_install) ): Notification {
setContentTitle(app.displayName) return NotificationCompat.Builder(context, Constants.NOTIFICATION_CHANNEL_ALERT)
setContentText(content) .setSmallIcon(R.drawable.ic_install)
setContentIntent(getContentIntentForDetails(context, app.packageName)) .setColor(context.getStyledAttributeColor(R.color.colorAccent))
setSubText(app.packageName) .setContentTitle(download.displayName)
} .setContentText(content)
return builder.build() .setContentIntent(getContentIntentForDetails(context, download.packageName))
.build()
} }
fun getOngoingUpdateNotification(context: Context): Notification { fun getOngoingUpdateNotification(context: Context): Notification {