diff --git a/app/src/main/java/com/eipsaferoad/owl/MainActivity.kt b/app/src/main/java/com/eipsaferoad/owl/MainActivity.kt index 941781c..3efbfb8 100644 --- a/app/src/main/java/com/eipsaferoad/owl/MainActivity.kt +++ b/app/src/main/java/com/eipsaferoad/owl/MainActivity.kt @@ -51,8 +51,10 @@ import com.eipsaferoad.owl.presentation.login.Login import com.eipsaferoad.owl.presentation.settings.Settings import com.eipsaferoad.owl.presentation.theme.OwlTheme import com.eipsaferoad.owl.utils.EnvEnum +import com.eipsaferoad.owl.utils.KeysEnum import com.eipsaferoad.owl.utils.LocalStorage import com.eipsaferoad.owl.utils.ReadEnvVar +import com.eipsaferoad.owl.utils.initAlarms import com.google.android.gms.wearable.CapabilityClient import com.google.android.gms.wearable.CapabilityInfo import com.google.android.gms.wearable.DataClient diff --git a/app/src/main/java/com/eipsaferoad/owl/core/Authentication.kt b/app/src/main/java/com/eipsaferoad/owl/core/Authentication.kt index 6896cbb..9c181d9 100644 --- a/app/src/main/java/com/eipsaferoad/owl/core/Authentication.kt +++ b/app/src/main/java/com/eipsaferoad/owl/core/Authentication.kt @@ -5,6 +5,7 @@ import androidx.navigation.NavHostController import com.eipsaferoad.owl.api.Request import com.eipsaferoad.owl.presentation.PagesEnum import com.eipsaferoad.owl.utils.EnvEnum +import com.eipsaferoad.owl.utils.KeysEnum import com.eipsaferoad.owl.utils.LocalStorage import okhttp3.FormBody import okhttp3.Headers diff --git a/app/src/main/java/com/eipsaferoad/owl/models/AlarmType.kt b/app/src/main/java/com/eipsaferoad/owl/models/AlarmType.kt index 3f5ff41..042aee9 100644 --- a/app/src/main/java/com/eipsaferoad/owl/models/AlarmType.kt +++ b/app/src/main/java/com/eipsaferoad/owl/models/AlarmType.kt @@ -14,4 +14,13 @@ open class AlarmType( } return 0 } -} \ No newline at end of file + + fun compress(): String { + return if (isActivate) "1$actual" else "0$actual" + } + + fun decompress(compressStr: String) { + isActivate = (compressStr[0] == '1') + actual = compressStr.substring(1).toFloat() + } +} diff --git a/app/src/main/java/com/eipsaferoad/owl/presentation/home/Home.kt b/app/src/main/java/com/eipsaferoad/owl/presentation/home/Home.kt index 9e5a825..d2cf905 100644 --- a/app/src/main/java/com/eipsaferoad/owl/presentation/home/Home.kt +++ b/app/src/main/java/com/eipsaferoad/owl/presentation/home/Home.kt @@ -56,9 +56,12 @@ import androidx.wear.compose.material.Text import androidx.wear.compose.navigation.rememberSwipeDismissableNavController import com.eipsaferoad.owl.R import com.eipsaferoad.owl.models.Alarm +import com.eipsaferoad.owl.models.SoundAlarm +import com.eipsaferoad.owl.models.VibrationAlarm import com.eipsaferoad.owl.presentation.PagesEnum import com.eipsaferoad.owl.presentation.theme.OwlTheme import com.eipsaferoad.owl.utils.EnvEnum +import com.eipsaferoad.owl.utils.KeysEnum import com.eipsaferoad.owl.utils.LocalStorage import com.eipsaferoad.owl.utils.getVibrationEffects import com.eipsaferoad.owl.utils.soundPlayer diff --git a/app/src/main/java/com/eipsaferoad/owl/presentation/settings/Settings.kt b/app/src/main/java/com/eipsaferoad/owl/presentation/settings/Settings.kt index 3407cad..d0cc09b 100644 --- a/app/src/main/java/com/eipsaferoad/owl/presentation/settings/Settings.kt +++ b/app/src/main/java/com/eipsaferoad/owl/presentation/settings/Settings.kt @@ -34,11 +34,9 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color -import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.tooling.preview.Devices import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import androidx.core.content.ContextCompat.getSystemService import androidx.wear.compose.material.Button import androidx.wear.compose.material.ButtonDefaults import androidx.wear.compose.material.Switch @@ -50,6 +48,7 @@ import com.eipsaferoad.owl.models.Alarm import com.eipsaferoad.owl.models.AlarmType import com.eipsaferoad.owl.presentation.theme.OwlTheme import com.eipsaferoad.owl.utils.EnvEnum +import com.eipsaferoad.owl.utils.KeysEnum import com.eipsaferoad.owl.utils.LocalStorage import com.eipsaferoad.owl.utils.getVibrationEffects import com.eipsaferoad.owl.utils.soundPlayer @@ -59,7 +58,6 @@ import org.json.JSONObject @Composable fun Settings(context: Context, alarms: MutableState, mVibrator: Vibrator, apiUrl: String, accessToken: String?) { - LazyColumn( modifier = Modifier .padding(top = 40.dp, bottom = 40.dp) diff --git a/app/src/main/java/com/eipsaferoad/owl/utils/LocalStorage.kt b/app/src/main/java/com/eipsaferoad/owl/utils/LocalStorage.kt index af59a4e..9e988f6 100644 --- a/app/src/main/java/com/eipsaferoad/owl/utils/LocalStorage.kt +++ b/app/src/main/java/com/eipsaferoad/owl/utils/LocalStorage.kt @@ -1,9 +1,14 @@ package com.eipsaferoad.owl.utils import android.content.Context -import java.security.KeyStore -import javax.crypto.Cipher -import javax.crypto.spec.SecretKeySpec + +enum class KeysEnum(val value: String) { + ALARM_VIBRATION("alarm_vibration"), + ALARM_SOUND("alarm_sound"), + ALARM_ACTIVATE("alarm_activate"), + EMAIL("email"), + PASSWORD("password") +} enum class EnvEnum(val value: String) { EMAIL("email"), diff --git a/app/src/main/java/com/eipsaferoad/owl/utils/initAlarms.kt b/app/src/main/java/com/eipsaferoad/owl/utils/initAlarms.kt new file mode 100644 index 0000000..376c13c --- /dev/null +++ b/app/src/main/java/com/eipsaferoad/owl/utils/initAlarms.kt @@ -0,0 +1,20 @@ +package com.eipsaferoad.owl.utils + +import android.content.Context +import androidx.compose.runtime.MutableState +import com.eipsaferoad.owl.models.Alarm + +fun initAlarms(context: Context, alarms: MutableState) { + val vibration = LocalStorage.getData(context, KeysEnum.ALARM_VIBRATION.value) + val sound = LocalStorage.getData(context, KeysEnum.ALARM_SOUND.value) + val activate = LocalStorage.getData(context, KeysEnum.ALARM_ACTIVATE.value) + if (activate != null) { + alarms.value.isAlarmActivate = activate == "1" + } + if (!vibration.isNullOrEmpty()) { + alarms.value.vibration.decompress(vibration) + } + if (!sound.isNullOrEmpty()) { + alarms.value.sound.decompress(sound) + } +} \ No newline at end of file diff --git a/app/src/test/java/com/eipsaferoad/owl/OwlTest.kt b/app/src/test/java/com/eipsaferoad/owl/OwlTest.kt index 812da1d..2939887 100644 --- a/app/src/test/java/com/eipsaferoad/owl/OwlTest.kt +++ b/app/src/test/java/com/eipsaferoad/owl/OwlTest.kt @@ -1,6 +1,10 @@ package com.eipsaferoad.owl import android.os.VibrationEffect +import androidx.compose.runtime.MutableState +import androidx.compose.runtime.mutableStateOf +import com.eipsaferoad.owl.models.Alarm +import com.eipsaferoad.owl.models.SoundAlarm import com.eipsaferoad.owl.models.VibrationAlarm import org.junit.Assert.assertEquals import org.junit.Test @@ -53,6 +57,5 @@ class OwlTest { alarm.updateAlarm() alarm.updateAlarm() alarm.updateAlarm() - } }