From 54cf11a78bb4a0bd466e2339dff1fa9eed388c1d Mon Sep 17 00:00:00 2001 From: Nicholas Tinsley Date: Mon, 22 Jan 2024 10:18:32 -0500 Subject: [PATCH] Request notification permissions for video sample app. --- .../app/transcode/TranscodeTestActivity.kt | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/video/app/src/main/java/org/thoughtcrime/video/app/transcode/TranscodeTestActivity.kt b/video/app/src/main/java/org/thoughtcrime/video/app/transcode/TranscodeTestActivity.kt index ea42055184..59fd1cae66 100644 --- a/video/app/src/main/java/org/thoughtcrime/video/app/transcode/TranscodeTestActivity.kt +++ b/video/app/src/main/java/org/thoughtcrime/video/app/transcode/TranscodeTestActivity.kt @@ -5,9 +5,11 @@ package org.thoughtcrime.video.app.transcode +import android.Manifest import android.app.NotificationChannel import android.app.NotificationManager import android.content.Intent +import android.content.pm.PackageManager import android.net.Uri import android.os.Build import android.os.Bundle @@ -24,6 +26,7 @@ import androidx.compose.material3.Surface import androidx.compose.runtime.collectAsState import androidx.compose.ui.Modifier import androidx.compose.ui.platform.ComposeView +import androidx.core.content.ContextCompat import org.thoughtcrime.video.app.R import org.thoughtcrime.video.app.transcode.composables.ConfigureEncodingParameters import org.thoughtcrime.video.app.transcode.composables.SelectInput @@ -35,6 +38,7 @@ import org.thoughtcrime.video.app.ui.theme.SignalTheme * Visual entry point for testing transcoding in the video sample app. */ class TranscodeTestActivity : AppCompatActivity() { + private val TAG = "TranscodeTestActivity" private val viewModel: TranscodeTestViewModel by viewModels() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -81,6 +85,9 @@ class TranscodeTestActivity : AppCompatActivity() { } } getComposeView()?.keepScreenOn = true + if (Build.VERSION.SDK_INT >= 33 && ContextCompat.checkSelfPermission(this, Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED) { + requestPermissionLauncher.launch(Manifest.permission.POST_NOTIFICATIONS) + } } /** @@ -88,11 +95,11 @@ class TranscodeTestActivity : AppCompatActivity() { */ private val pickMedia = registerForActivityResult(ActivityResultContracts.PickMultipleVisualMedia()) { uris: List -> if (uris.isNotEmpty()) { - Log.d("VideoPicker", "Selected URI: $uris") + Log.d(TAG, "Selected URI: $uris") viewModel.selectedVideos = uris viewModel.resetOutputDirectory() } else { - Log.d("VideoPicker", "No media selected") + Log.d(TAG, "No media selected") } } @@ -103,6 +110,13 @@ class TranscodeTestActivity : AppCompatActivity() { } } + private val requestPermissionLauncher = + registerForActivityResult( + ActivityResultContracts.RequestPermission() + ) { isGranted: Boolean -> + Log.d(TAG, "Notification permission allowed: $isGranted") + } + private fun getComposeView(): ComposeView? { return window.decorView .findViewById(android.R.id.content)