Fix DozeBanner dismissal and button tint.

Resolves #14001
This commit is contained in:
Sagar
2025-02-20 23:31:12 +05:30
committed by Michelle Tang
parent a53bd29553
commit 6a773730b8
3 changed files with 15 additions and 5 deletions

View File

@@ -24,7 +24,7 @@ import org.thoughtcrime.securesms.util.PowerManagerCompat
import org.thoughtcrime.securesms.util.ServiceUtil
import org.thoughtcrime.securesms.util.TextSecurePreferences
class DozeBanner(private val context: Context) : Banner<Unit>() {
class DozeBanner(private val context: Context, private val onDismissListener: () -> Unit) : Banner<Unit>() {
override val enabled: Boolean
get() = Build.VERSION.SDK_INT >= 23 && !SignalStore.account.fcmEnabled && !TextSecurePreferences.hasPromptedOptimizeDoze(context) && !ServiceUtil.getPowerManager(context).isIgnoringBatteryOptimizations(context.packageName)
@@ -42,6 +42,7 @@ class DozeBanner(private val context: Context) : Banner<Unit>() {
contentPadding = contentPadding,
onDismissListener = {
TextSecurePreferences.setPromptedOptimizeDoze(context, true)
onDismissListener.invoke()
},
onOkListener = {
TextSecurePreferences.setPromptedOptimizeDoze(context, true)

View File

@@ -28,10 +28,11 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.colorResource
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.pluralStringResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.unit.dp
import org.signal.core.ui.Previews
import org.signal.core.ui.SignalPreview
@@ -147,8 +148,12 @@ fun DefaultBanner(
modifier = Modifier.size(48.dp)
) {
Icon(
painter = painterResource(id = R.drawable.symbol_x_24),
contentDescription = stringResource(id = R.string.InviteActivity_cancel)
imageVector = ImageVector.vectorResource(id = R.drawable.symbol_x_24),
contentDescription = stringResource(id = R.string.InviteActivity_cancel),
tint = when (importance) {
Importance.NORMAL -> MaterialTheme.colorScheme.onSurfaceVariant
Importance.ERROR -> colorResource(id = R.color.signal_light_colorOnSurface)
}
)
}
}
@@ -200,6 +205,7 @@ private fun BubblesOptOutPreview() {
Action(R.string.BubbleOptOutTooltip__turn_off) {},
Action(R.string.BubbleOptOutTooltip__not_now) {}
),
onDismissListener = { },
paddingValues = PaddingValues(horizontal = 12.dp, vertical = 8.dp)
)
}

View File

@@ -903,7 +903,10 @@ public class ConversationListFragment extends MainFragment implements ActionMode
new UnauthorizedBanner(requireContext()),
new ServiceOutageBanner(requireContext()),
new OutdatedBuildBanner(),
new DozeBanner(requireContext()),
new DozeBanner(requireContext(), () -> {
bannerManager.updateContent(bannerView.get());
return Unit.INSTANCE;
}),
new CdsTemporaryErrorBanner(getChildFragmentManager()),
new CdsPermanentErrorBanner(getChildFragmentManager()),
new UsernameOutOfSyncBanner((usernameSyncState) -> {