restore download toast and permission check

fix overflow button background to solid
This commit is contained in:
davotoula
2026-03-02 18:00:58 +00:00
parent 87bf52b59e
commit 08f389230e
2 changed files with 31 additions and 2 deletions
@@ -120,7 +120,7 @@ fun OverflowMenuButton(
.clip(CircleShape)
.fillMaxSize(0.7f)
.align(Alignment.Center)
.background(Color.Black.copy(alpha = 0.4f)),
.background(MaterialTheme.colorScheme.background),
)
IconButton(
@@ -20,7 +20,10 @@
*/
package com.vitorpamplona.amethyst.service.playback.composable.controls
import android.Manifest
import android.content.pm.PackageManager
import android.os.Build
import android.widget.Toast
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Row
@@ -29,9 +32,14 @@ import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.MutableState
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.tooling.preview.Preview
import com.google.accompanist.permissions.ExperimentalPermissionsApi
import com.google.accompanist.permissions.isGranted
import com.google.accompanist.permissions.rememberPermissionState
import com.vitorpamplona.amethyst.R
import com.vitorpamplona.amethyst.commons.richtext.MediaUrlVideo
import com.vitorpamplona.amethyst.service.playback.composable.DEFAULT_MUTED_SETTING
import com.vitorpamplona.amethyst.service.playback.composable.MediaControllerState
@@ -42,8 +50,10 @@ import com.vitorpamplona.amethyst.ui.components.ShareMediaAction
import com.vitorpamplona.amethyst.ui.components.getActivity
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
import com.vitorpamplona.amethyst.ui.screen.loggedIn.mockAccountViewModel
import com.vitorpamplona.amethyst.ui.stringRes
import com.vitorpamplona.amethyst.ui.theme.BitcoinOrange
import com.vitorpamplona.amethyst.ui.theme.ThemeComparisonColumn
import kotlinx.coroutines.launch
@Preview
@Composable
@@ -108,6 +118,7 @@ fun RenderTopButtons(
)
}
@OptIn(ExperimentalPermissionsApi::class)
@Composable
fun RenderTopButtons(
mediaData: MediaItemData,
@@ -122,8 +133,14 @@ fun RenderTopButtons(
accountViewModel: AccountViewModel,
) {
val context = LocalContext.current
val scope = rememberCoroutineScope()
val shareDialogVisible = remember { mutableStateOf(false) }
val writeStoragePermission =
rememberPermissionState(Manifest.permission.WRITE_EXTERNAL_STORAGE) {
if (it) accountViewModel.saveMediaToGallery(mediaData.videoUri, mediaData.mimeType, context)
}
LaunchedEffect(controllerVisible.value) {
if (!controllerVisible.value) shareDialogVisible.value = false
}
@@ -150,7 +167,19 @@ fun RenderTopButtons(
showPip = pipSupported,
onShareClick = { shareDialogVisible.value = true },
onSaveClick = {
accountViewModel.saveMediaToGallery(mediaData.videoUri, mediaData.mimeType, context)
scope.launch {
Toast
.makeText(
context,
stringRes(context, R.string.video_download_has_started_toast),
Toast.LENGTH_SHORT,
).show()
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q || writeStoragePermission.status.isGranted) {
accountViewModel.saveMediaToGallery(mediaData.videoUri, mediaData.mimeType, context)
} else {
writeStoragePermission.launchPermissionRequest()
}
},
onPipClick = onPictureInPictureClick,
)