@@ -28,9 +28,7 @@ import android.os.Build
2828import androidx.core.app.NotificationCompat
2929import androidx.core.content.ContextCompat
3030import com.farmerbb.appnotifier.models.AppUpdateInfo
31- import com.farmerbb.appnotifier.receivers.InstallNotificationClickedReceiver
3231import com.farmerbb.appnotifier.receivers.InstallNotificationDismissedReceiver
33- import com.farmerbb.appnotifier.receivers.UpdateNotificationClickedReceiver
3432import com.farmerbb.appnotifier.receivers.UpdateNotificationDismissedReceiver
3533import com.farmerbb.appnotifier.room.AppUpdateDAO
3634import dagger.hilt.android.qualifiers.ApplicationContext
@@ -112,15 +110,14 @@ class NotificationController @Inject constructor(
112110 val channelId = " app_updates"
113111 context.createNotificationChannel(channelId)
114112
115- val contentIntent = Intent (context, UpdateNotificationClickedReceiver :: class .java). apply {
116- setPackage( BuildConfig . APPLICATION_ID )
113+ val pendingContentIntent = getAppUpdateContentIntent()?. let { contentIntent ->
114+ PendingIntent .getActivity(context, 0 , contentIntent, FLAGS )
117115 }
118116
119117 val deleteIntent = Intent (context, UpdateNotificationDismissedReceiver ::class .java).apply {
120118 setPackage(BuildConfig .APPLICATION_ID )
121119 }
122120
123- val pendingContentIntent = PendingIntent .getBroadcast(context, 0 , contentIntent, FLAGS )
124121 val pendingDeleteIntent = PendingIntent .getBroadcast(context, 0 , deleteIntent, FLAGS )
125122
126123 val builder = NotificationCompat .Builder (context, channelId)
@@ -140,7 +137,7 @@ class NotificationController @Inject constructor(
140137 }
141138 })
142139 .setColor(ContextCompat .getColor(context, R .color.colorPrimary))
143- .setAutoCancel(true )
140+ // .setAutoCancel(true)
144141 .setDeleteIntent(pendingDeleteIntent)
145142 .setPriority(NotificationCompat .PRIORITY_DEFAULT )
146143
@@ -176,17 +173,15 @@ class NotificationController @Inject constructor(
176173
177174 val code = packageName.hashCode()
178175
179- val contentIntent = Intent (context, InstallNotificationClickedReceiver ::class .java).apply {
180- setPackage(BuildConfig .APPLICATION_ID )
181- putExtra(PACKAGE_NAME , packageName)
176+ val pendingContentIntent = getAppInstallContentIntent(packageName)?.let { contentIntent ->
177+ PendingIntent .getActivity(context, code, contentIntent, FLAGS )
182178 }
183179
184180 val deleteIntent = Intent (context, InstallNotificationDismissedReceiver ::class .java).apply {
185181 setPackage(BuildConfig .APPLICATION_ID )
186182 putExtra(PACKAGE_NAME , packageName)
187183 }
188184
189- val pendingContentIntent = PendingIntent .getBroadcast(context, code, contentIntent, FLAGS )
190185 val pendingDeleteIntent = PendingIntent .getBroadcast(context, code, deleteIntent, FLAGS )
191186
192187 val builder = NotificationCompat .Builder (context, channelId)
@@ -197,7 +192,7 @@ class NotificationController @Inject constructor(
197192 .setStyle(NotificationCompat .BigTextStyle ())
198193 .setLargeIcon(icon)
199194 .setColor(ContextCompat .getColor(context, R .color.colorPrimary))
200- .setAutoCancel(true )
195+ // .setAutoCancel(true)
201196 .setDeleteIntent(pendingDeleteIntent)
202197 .setGroup(APP_INSTALL_GROUP )
203198 .setPriority(NotificationCompat .PRIORITY_LOW )
@@ -278,4 +273,25 @@ class NotificationController @Inject constructor(
278273 }
279274 }
280275 }
276+
277+ fun getAppUpdateContentIntent (): Intent ? {
278+ if (! context.isPlayStoreInstalled()) return null
279+
280+ val intent = Intent (" com.google.android.finsky.VIEW_MY_DOWNLOADS" )
281+ .addFlags(Intent .FLAG_ACTIVITY_NEW_TASK )
282+
283+ with (context.packageManager) {
284+ return intent.resolveActivity(this )?.let { intent }
285+ ? : getLaunchIntentForPackage(PLAY_STORE_PACKAGE )
286+ }
287+ }
288+
289+ fun getAppInstallContentIntent (packageName : String ): Intent ? {
290+ with (context.packageManager) {
291+ val intent = getLaunchIntentForPackage(packageName)
292+ return intent?.resolveActivity(this )?.let { intent }
293+ ? : getPlayStoreLaunchIntent(packageName)
294+ .addFlags(Intent .FLAG_ACTIVITY_NEW_TASK )
295+ }
296+ }
281297}
0 commit comments