Skip to content

Commit

Permalink
Checkbox -> Switch
Browse files Browse the repository at this point in the history
  • Loading branch information
Animeboynz committed Sep 21, 2024
1 parent 0a33026 commit 071e6ea
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,13 @@ import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.padding
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Check
import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.Icon
import androidx.compose.material3.ListItem
import androidx.compose.material3.ListItemDefaults
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedButton
import androidx.compose.material3.Switch
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
Expand Down Expand Up @@ -79,7 +81,7 @@ internal class PermissionStep : OnboardingStep {
}

Column {
PermissionItem(
PermissionCheckbox(
title = stringResource(MR.strings.onboarding_permission_install_apps),
subtitle = stringResource(MR.strings.onboarding_permission_install_apps_description),
granted = installGranted,
Expand All @@ -95,15 +97,15 @@ internal class PermissionStep : OnboardingStep {
// no-op. resulting checks is being done on resume
},
)
PermissionItem(
PermissionCheckbox(
title = stringResource(MR.strings.onboarding_permission_notifications),
subtitle = stringResource(MR.strings.onboarding_permission_notifications_description),
granted = notificationGranted,
onButtonClick = { permissionRequester.launch(Manifest.permission.POST_NOTIFICATIONS) },
)
}

PermissionItem(
PermissionCheckbox(
title = stringResource(MR.strings.onboarding_permission_ignore_battery_opts),
subtitle = stringResource(MR.strings.onboarding_permission_ignore_battery_opts_description),
granted = batteryGranted,
Expand All @@ -116,26 +118,33 @@ internal class PermissionStep : OnboardingStep {
},
)

PermissionItem(
HorizontalDivider(
modifier = Modifier.padding(vertical = 8.dp),
color = MaterialTheme.colorScheme.onPrimaryContainer,
)

PermissionSwitch(
title = stringResource(MR.strings.onboarding_permission_crashlytics),
subtitle = stringResource(MR.strings.onboarding_permission_crashlytics_description),
granted = allowCrashLogs,
onButtonClick = {
allowCrashLogs = !allowCrashLogs
onToggleChange = {
allowCrashLogs = it
securityPreferences.crashlytics().set(allowCrashLogs)
},
)

PermissionItem(
PermissionSwitch(
title = stringResource(MR.strings.onboarding_permission_analytics),
subtitle = stringResource(MR.strings.onboarding_permission_analytics_description),
granted = allowAnalytics,
onButtonClick = {
allowAnalytics = !allowAnalytics
onToggleChange = {
allowAnalytics = it
securityPreferences.analytics().set(allowAnalytics)
},
)

}

}

@Composable
Expand All @@ -153,7 +162,7 @@ internal class PermissionStep : OnboardingStep {
}

@Composable
private fun PermissionItem(
private fun PermissionCheckbox(
title: String,
subtitle: String,
granted: Boolean,
Expand All @@ -166,6 +175,7 @@ internal class PermissionStep : OnboardingStep {
supportingContent = { Text(text = subtitle) },
trailingContent = {
OutlinedButton(
enabled = !granted,
onClick = onButtonClick,
) {
if (granted) {
Expand All @@ -182,4 +192,27 @@ internal class PermissionStep : OnboardingStep {
colors = ListItemDefaults.colors(containerColor = Color.Transparent),
)
}

@Composable
private fun PermissionSwitch(
title: String,
subtitle: String,
granted: Boolean,
modifier: Modifier = Modifier,
onToggleChange: (Boolean) -> Unit,
) {
ListItem(
modifier = modifier,
headlineContent = { Text(text = title) },
supportingContent = { Text(text = subtitle) },
trailingContent = {
Switch(
checked = granted,
onCheckedChange = onToggleChange,
)
},
colors = ListItemDefaults.colors(containerColor = Color.Transparent),
)
}

}
3 changes: 2 additions & 1 deletion app/src/main/java/eu/kanade/tachiyomi/App.kt
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,6 @@ class App : Application(), DefaultLifecycleObserver, SingletonImageLoader.Factor
override fun onCreate() {
super<Application>.onCreate()
patchInjekt()
Firebase.setup(applicationContext, securityPreferences)

GlobalExceptionHandler.initialize(applicationContext, CrashActivity::class.java)

Expand All @@ -97,6 +96,8 @@ class App : Application(), DefaultLifecycleObserver, SingletonImageLoader.Factor
Injekt.importModule(AppModule(this))
Injekt.importModule(DomainModule())

Firebase.setup(applicationContext, securityPreferences, ProcessLifecycleOwner.get().lifecycleScope)

setupNotificationChannels()

ProcessLifecycleOwner.get().lifecycle.addObserver(this)
Expand Down
8 changes: 5 additions & 3 deletions app/src/standard/java/mihon/core/firebase/Firebase.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,16 @@ import com.google.firebase.analytics.FirebaseAnalytics
import com.google.firebase.crashlytics.FirebaseCrashlytics
import eu.kanade.tachiyomi.core.security.SecurityPreferences
import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.CoroutineScope

object Firebase {
fun setup(context: Context, preference: SecurityPreferences) {
fun setup(context: Context, preference: SecurityPreferences, scope: CoroutineScope) {
preference.analytics().changes().onEach { enabled ->
FirebaseAnalytics.getInstance(context).setAnalyticsCollectionEnabled(enabled)
}
}.launchIn(scope)
preference.crashlytics().changes().onEach { enabled ->
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(enabled)
}
}.launchIn(scope)
}
}

0 comments on commit 071e6ea

Please sign in to comment.