Request permission to send notifications

This commit is contained in:
Stypox 2022-11-28 18:49:11 +01:00
parent f07886fc5e
commit 9d01d88eed
No known key found for this signature in database
GPG Key ID: 4BDF1B40A49FDD23
2 changed files with 23 additions and 5 deletions

View File

@ -157,9 +157,12 @@ public class MainActivity extends AppCompatActivity {
} }
openMiniPlayerUponPlayerStarted(); openMiniPlayerUponPlayerStarted();
// Schedule worker for checking for new streams and creating corresponding notifications if (PermissionHelper.checkPostNotificationsPermission(this,
// if this is enabled by the user. PermissionHelper.POST_NOTIFICATIONS_REQUEST_CODE)) {
NotificationWorker.initialize(this); // Schedule worker for checking for new streams and creating corresponding notifications
// if this is enabled by the user.
NotificationWorker.initialize(this);
}
} }
@Override @Override
@ -599,6 +602,9 @@ public class MainActivity extends AppCompatActivity {
((VideoDetailFragment) fragment).openDownloadDialog(); ((VideoDetailFragment) fragment).openDownloadDialog();
} }
break; break;
case PermissionHelper.POST_NOTIFICATIONS_REQUEST_CODE:
NotificationWorker.initialize(this);
break;
} }
} }

View File

@ -21,6 +21,7 @@ import org.schabi.newpipe.R;
import org.schabi.newpipe.settings.NewPipeSettings; import org.schabi.newpipe.settings.NewPipeSettings;
public final class PermissionHelper { public final class PermissionHelper {
public static final int POST_NOTIFICATIONS_REQUEST_CODE = 779;
public static final int DOWNLOAD_DIALOG_REQUEST_CODE = 778; public static final int DOWNLOAD_DIALOG_REQUEST_CODE = 778;
public static final int DOWNLOADS_REQUEST_CODE = 777; public static final int DOWNLOADS_REQUEST_CODE = 777;
@ -71,8 +72,7 @@ public final class PermissionHelper {
// No explanation needed, we can request the permission. // No explanation needed, we can request the permission.
ActivityCompat.requestPermissions(activity, ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, requestCode);
requestCode);
// PERMISSION_WRITE_STORAGE is an // PERMISSION_WRITE_STORAGE is an
// app-defined int constant. The callback method gets the // app-defined int constant. The callback method gets the
@ -83,6 +83,18 @@ public final class PermissionHelper {
return true; return true;
} }
public static boolean checkPostNotificationsPermission(final Activity activity,
final int requestCode) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU
&& ContextCompat.checkSelfPermission(activity,
Manifest.permission.POST_NOTIFICATIONS)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(activity,
new String[] {Manifest.permission.POST_NOTIFICATIONS}, requestCode);
return false;
}
return true;
}
/** /**
* In order to be able to draw over other apps, * In order to be able to draw over other apps,