Skip to content

Commit

Permalink
Make prefs module work
Browse files Browse the repository at this point in the history
  • Loading branch information
alorma committed Dec 15, 2023
1 parent 6cdd397 commit d7bc0c5
Show file tree
Hide file tree
Showing 19 changed files with 141 additions and 113 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.navigation.NavController
import com.alorma.compose.settings.example.ui.Navigation
import base.SettingValueState
import SettingValueState
import base.rememberBooleanSettingState

@OptIn(
Expand All @@ -27,7 +27,7 @@ import base.rememberBooleanSettingState
@Composable
fun AppScaffold(
navController: NavController,
enabledState: base.SettingValueState<Boolean> = base.rememberBooleanSettingState(true),
enabledState: SettingValueState<Boolean> = base.rememberBooleanSettingState(true),
showSettings: Boolean = true,
onBack: (() -> Unit)? = { navController.popBackStack() },
title: @Composable (() -> Unit)? = null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.navigation.NavHostController
import com.alorma.compose.settings.example.demo.AppScaffold
import base.SettingValueState
import SettingValueState
import base.rememberBooleanSettingState
import com.alorma.compose.settings.storage.preferences.rememberPreferenceBooleanSettingState
import com.alorma.compose.settings.ui.SettingsCheckbox
Expand Down Expand Up @@ -102,7 +102,7 @@ fun CheckboxesScreen(navController: NavHostController) {
private fun SnackbarHostState.showChange(
coroutineScope: CoroutineScope,
key: String,
state: base.SettingValueState<Boolean>,
state: SettingValueState<Boolean>,
) {
coroutineScope.launch {
currentSnackbarData?.dismiss()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.navigation.NavHostController
import com.alorma.compose.settings.example.demo.AppScaffold
import base.SettingValueState
import SettingValueState
import base.rememberBooleanSettingState
import com.alorma.compose.settings.storage.preferences.rememberPreferenceBooleanSettingState
import com.alorma.compose.settings.ui.SettingsSwitch
Expand Down Expand Up @@ -80,7 +80,7 @@ fun SwitchesScreen(navController: NavHostController) {
private fun SnackbarHostState.showChange(
coroutineScope: CoroutineScope,
key: String,
state: base.SettingValueState<Boolean>,
state: SettingValueState<Boolean>,
) {
coroutineScope.launch {
currentSnackbarData?.dismiss()
Expand Down
17 changes: 0 additions & 17 deletions compose-settings-storage-base/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -38,26 +38,9 @@ kotlin {
}

sourceSets {
androidMain.dependencies {
implementation(project.dependencies.platform(libs.compose.bom))
implementation(libs.androidx.activity.compose)
}

commonMain.dependencies {
implementation(compose.material3)

implementation(compose.ui)
implementation(compose.runtime)
implementation(compose.foundation)

@OptIn(ExperimentalComposeLibrary::class)
implementation(compose.components.resources)
}

val desktopMain by getting {
dependencies {
implementation(compose.desktop.currentOs)
}
}
}
}
Expand Down
105 changes: 105 additions & 0 deletions compose-settings-storage-disk/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
import org.jetbrains.compose.ExperimentalComposeLibrary
import org.jetbrains.compose.desktop.application.dsl.TargetFormat

plugins {
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.androidLibrary)
alias(libs.plugins.jetbrainsCompose)
}

apply(from = "${rootProject.projectDir}/scripts/publish-module.gradle")

kotlin {
applyDefaultHierarchyTemplate()

withSourcesJar()

androidTarget {
publishLibraryVariants("release")
compilations.all {
kotlinOptions {
jvmTarget = JavaVersion.VERSION_17.toString()
}
}
}

/*
jvm("desktop")
listOf(
iosX64(),
iosArm64(),
iosSimulatorArm64()
).forEach { iosTarget ->
iosTarget.binaries.framework {
baseName = "ComposeApp"
binaryOption("bundleId", libs.versions.namespace.get() + ".disk")
}
}
*/
sourceSets {
androidMain.dependencies {
implementation(libs.androidx.preference.preference)
implementation(libs.androidx.preference.ktx)
}


commonMain.dependencies {
api(projects.composeSettingsStorageBase)

implementation(compose.runtime)
implementation(compose.foundation)
}
}
}

android {
namespace = libs.versions.namespace.get() + ".disk"
compileSdk = libs.versions.android.compileSdk.get().toInt()

sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
sourceSets["main"].res.srcDirs("src/androidMain/res")
sourceSets["main"].resources.srcDirs("src/commonMain/resources")

defaultConfig {
minSdk = libs.versions.android.minSdk.get().toInt()
}
buildFeatures {
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion = libs.versions.compose.compiler.get()
}
packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
}
lint {
checkReleaseBuilds = false
abortOnError = false
}
buildTypes {
getByName("release") {
isMinifyEnabled = false
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
dependencies {
debugImplementation(libs.compose.ui.tooling)
}
}
/*
compose.desktop {
application {
nativeDistributions {
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
packageName = libs.versions.namespace.get() + ".disk"
packageVersion = "1.0.0"
}
}
}
*/
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.alorma.compose.settings.storage.preferences
package com.alorma.compose.settings.storage.disk

import android.content.SharedPreferences
import androidx.compose.runtime.Composable
Expand All @@ -9,7 +9,7 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.platform.LocalContext
import androidx.core.content.edit
import androidx.preference.PreferenceManager
import base.SettingValueState
import com.alorma.compose.settings.storage.base.SettingValueState

@Composable
fun rememberPreferenceBooleanSettingState(
Expand All @@ -30,7 +30,7 @@ class BooleanPreferenceSettingValueState(
private val preferences: SharedPreferences,
val key: String,
val defaultValue: Boolean = false,
) : base.SettingValueState<Boolean> {
) : SettingValueState<Boolean> {

private var _value by mutableStateOf(preferences.getBoolean(key, defaultValue))

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.alorma.compose.settings.storage.preferences
package com.alorma.compose.settings.storage.disk

import android.content.SharedPreferences
import androidx.compose.runtime.Composable
Expand All @@ -9,7 +9,7 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.platform.LocalContext
import androidx.core.content.edit
import androidx.preference.PreferenceManager
import base.SettingValueState
import com.alorma.compose.settings.storage.base.SettingValueState

@Composable
fun rememberPreferenceFloatSettingState(
Expand All @@ -30,7 +30,7 @@ class FloatPreferenceSettingValueState(
private val preferences: SharedPreferences,
val key: String,
val defaultValue: Float = 0f,
) : base.SettingValueState<Float> {
) : SettingValueState<Float> {

private var _value by mutableStateOf(preferences.getFloat(key, defaultValue))

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.alorma.compose.settings.storage.preferences
package com.alorma.compose.settings.storage.disk

import android.content.SharedPreferences
import androidx.compose.runtime.Composable
Expand All @@ -9,7 +9,7 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.platform.LocalContext
import androidx.core.content.edit
import androidx.preference.PreferenceManager
import base.SettingValueState
import com.alorma.compose.settings.storage.base.SettingValueState

@Composable
fun rememberPreferenceIntSettingState(
Expand All @@ -30,7 +30,7 @@ class IntPreferenceSettingValueState(
private val preferences: SharedPreferences,
val key: String,
val defaultValue: Int = 0,
) : base.SettingValueState<Int> {
) : SettingValueState<Int> {

private var _value by mutableStateOf(preferences.getInt(key, defaultValue))

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.alorma.compose.settings.storage.preferences
package com.alorma.compose.settings.storage.disk

import android.content.SharedPreferences
import androidx.compose.runtime.Composable
Expand All @@ -9,7 +9,7 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.platform.LocalContext
import androidx.core.content.edit
import androidx.preference.PreferenceManager
import base.SettingValueState
import com.alorma.compose.settings.storage.base.SettingValueState

@Composable
fun rememberPreferenceIntSetSettingState(
Expand All @@ -33,7 +33,7 @@ class IntSetPreferenceSettingValueState(
val key: String,
val defaultValue: Set<Int> = emptySet(),
val delimiter: String = "|",
) : base.SettingValueState<Set<Int>> {
) : SettingValueState<Set<Int>> {

private var _value by mutableStateOf(
preferences.getString(key, defaultValue.toPrefString(delimiter))
Expand Down
62 changes: 0 additions & 62 deletions compose-settings-storage-preferences/build.gradle.kts

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.semantics.Role
import androidx.compose.ui.tooling.preview.Preview
import base.SettingValueState
import SettingValueState
import base.getValue
import base.rememberBooleanSettingState
import base.setValue
Expand All @@ -27,7 +27,7 @@ import com.alorma.compose.settings.ui.internal.SettingsTileScaffold
fun SettingsCheckbox(
modifier: Modifier = Modifier,
enabled: Boolean = true,
state: base.SettingValueState<Boolean> = base.rememberBooleanSettingState(),
state: SettingValueState<Boolean> = base.rememberBooleanSettingState(),
icon: @Composable (() -> Unit)? = null,
title: @Composable () -> Unit,
subtitle: @Composable (() -> Unit)? = null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.semantics.Role
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import base.SettingValueState
import SettingValueState
import base.rememberIntSettingState
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
Expand All @@ -39,7 +39,7 @@ import kotlinx.coroutines.launch
fun SettingsList(
modifier: Modifier = Modifier,
enabled: Boolean = true,
state: base.SettingValueState<Int> = base.rememberIntSettingState(),
state: SettingValueState<Int> = base.rememberIntSettingState(),
title: @Composable () -> Unit,
items: List<String>,
icon: (@Composable () -> Unit)? = null,
Expand Down
Loading

0 comments on commit d7bc0c5

Please sign in to comment.