Skip to content

Commit 09d137f

Browse files
committed
Add PendingIntent to ErrorUtil.createNotification
1 parent 81f740d commit 09d137f

2 files changed

Lines changed: 26 additions & 5 deletions

File tree

app/src/main/java/org/schabi/newpipe/error/ErrorUtil.kt

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@ package org.schabi.newpipe.error
22

33
import android.app.Activity
44
import android.app.NotificationManager
5+
import android.app.PendingIntent
56
import android.content.Context
67
import android.content.Intent
78
import android.graphics.Color
9+
import android.os.Build
810
import android.view.View
911
import androidx.core.app.NotificationCompat
1012
import androidx.core.content.ContextCompat
@@ -28,10 +30,7 @@ class ErrorUtil {
2830
*/
2931
@JvmStatic
3032
fun openActivity(context: Context, errorInfo: ErrorInfo) {
31-
val intent = Intent(context, ErrorActivity::class.java)
32-
intent.putExtra(ErrorActivity.ERROR_INFO, errorInfo)
33-
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
34-
context.startActivity(intent)
33+
context.startActivity(getErrorActivityIntent(context, errorInfo))
3534
}
3635

3736
@JvmStatic
@@ -68,18 +67,39 @@ class ErrorUtil {
6867
openActivity(context, errorInfo)
6968
}
7069

70+
var pendingIntentFlags = PendingIntent.FLAG_UPDATE_CURRENT
71+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
72+
pendingIntentFlags = pendingIntentFlags or PendingIntent.FLAG_IMMUTABLE
73+
}
74+
7175
val notificationBuilder: NotificationCompat.Builder =
7276
NotificationCompat.Builder(
7377
context,
7478
context.getString(R.string.error_report_channel_id)
7579
)
7680
.setSmallIcon(R.drawable.ic_bug_report)
77-
.setContentTitle(context.getString(R.string.error_report_title))
81+
.setContentTitle(context.getString(R.string.error_report_notification_title))
7882
.setContentText(context.getString(errorInfo.messageStringId))
83+
.setAutoCancel(true)
84+
.setContentIntent(
85+
PendingIntent.getActivity(
86+
context,
87+
0,
88+
getErrorActivityIntent(context, errorInfo),
89+
pendingIntentFlags
90+
)
91+
)
7992

8093
notificationManager!!.notify(ERROR_REPORT_NOTIFICATION_ID, notificationBuilder.build())
8194
}
8295

96+
private fun getErrorActivityIntent(context: Context, errorInfo: ErrorInfo): Intent {
97+
val intent = Intent(context, ErrorActivity::class.java)
98+
intent.putExtra(ErrorActivity.ERROR_INFO, errorInfo)
99+
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
100+
return intent
101+
}
102+
83103
private fun showSnackbar(context: Context, rootView: View?, errorInfo: ErrorInfo) {
84104
if (rootView == null) {
85105
// fallback to showing a notification if no root view is available

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,7 @@
246246
<string name="restore_defaults_confirmation">Do you want to restore defaults?</string>
247247
<string name="permission_display_over_apps">Give permission to display over other apps</string>
248248
<!-- error activity -->
249+
<string name="error_report_notification_title">NewPipe encountered an error, tap to report</string>
249250
<string name="sorry_string">Sorry, that should not have happened.</string>
250251
<string name="guru_meditation" translatable="false">Guru Meditation.</string>
251252
<string name="error_report_button_text">Report this error via e-mail</string>

0 commit comments

Comments
 (0)