Skip to content

Commit 9d01d88

Browse files
committed
Request permission to send notifications
1 parent f07886f commit 9d01d88

2 files changed

Lines changed: 23 additions & 5 deletions

File tree

app/src/main/java/org/schabi/newpipe/MainActivity.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -157,9 +157,12 @@ protected void onCreate(final Bundle savedInstanceState) {
157157
}
158158
openMiniPlayerUponPlayerStarted();
159159

160-
// Schedule worker for checking for new streams and creating corresponding notifications
161-
// if this is enabled by the user.
162-
NotificationWorker.initialize(this);
160+
if (PermissionHelper.checkPostNotificationsPermission(this,
161+
PermissionHelper.POST_NOTIFICATIONS_REQUEST_CODE)) {
162+
// Schedule worker for checking for new streams and creating corresponding notifications
163+
// if this is enabled by the user.
164+
NotificationWorker.initialize(this);
165+
}
163166
}
164167

165168
@Override
@@ -599,6 +602,9 @@ public void onRequestPermissionsResult(final int requestCode,
599602
((VideoDetailFragment) fragment).openDownloadDialog();
600603
}
601604
break;
605+
case PermissionHelper.POST_NOTIFICATIONS_REQUEST_CODE:
606+
NotificationWorker.initialize(this);
607+
break;
602608
}
603609
}
604610

app/src/main/java/org/schabi/newpipe/util/PermissionHelper.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.schabi.newpipe.settings.NewPipeSettings;
2222

2323
public final class PermissionHelper {
24+
public static final int POST_NOTIFICATIONS_REQUEST_CODE = 779;
2425
public static final int DOWNLOAD_DIALOG_REQUEST_CODE = 778;
2526
public static final int DOWNLOADS_REQUEST_CODE = 777;
2627

@@ -71,8 +72,7 @@ public static boolean checkWriteStoragePermissions(final Activity activity,
7172

7273
// No explanation needed, we can request the permission.
7374
ActivityCompat.requestPermissions(activity,
74-
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
75-
requestCode);
75+
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, requestCode);
7676

7777
// PERMISSION_WRITE_STORAGE is an
7878
// app-defined int constant. The callback method gets the
@@ -83,6 +83,18 @@ public static boolean checkWriteStoragePermissions(final Activity activity,
8383
return true;
8484
}
8585

86+
public static boolean checkPostNotificationsPermission(final Activity activity,
87+
final int requestCode) {
88+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU
89+
&& ContextCompat.checkSelfPermission(activity,
90+
Manifest.permission.POST_NOTIFICATIONS)
91+
!= PackageManager.PERMISSION_GRANTED) {
92+
ActivityCompat.requestPermissions(activity,
93+
new String[] {Manifest.permission.POST_NOTIFICATIONS}, requestCode);
94+
return false;
95+
}
96+
return true;
97+
}
8698

8799
/**
88100
* In order to be able to draw over other apps,

0 commit comments

Comments
 (0)