diff --git a/app/src/main/java/com/sameerasw/essentials/data/model/DeviceSpecs.kt b/app/src/main/java/com/sameerasw/essentials/data/model/DeviceSpecs.kt index 0cfb84da1..05b1d0c6a 100644 --- a/app/src/main/java/com/sameerasw/essentials/data/model/DeviceSpecs.kt +++ b/app/src/main/java/com/sameerasw/essentials/data/model/DeviceSpecs.kt @@ -1,19 +1,25 @@ package com.sameerasw.essentials.data.model +import androidx.annotation.Keep +import com.google.gson.annotations.SerializedName + +@Keep data class DeviceSpecItem( - val name: String, - val value: String + @SerializedName("name") val name: String, + @SerializedName("value") val value: String ) +@Keep data class DeviceSpecCategory( - val category: String, - val specifications: List + @SerializedName("category") val category: String, + @SerializedName("specifications") val specifications: List ) +@Keep data class DeviceSpecs( - val deviceName: String, - val detailSpec: List, - val imageUrls: List = emptyList(), - val localImagePaths: List = emptyList(), - val lastUpdated: Long = System.currentTimeMillis() + @SerializedName("deviceName") val deviceName: String, + @SerializedName("detailSpec") val detailSpec: List, + @SerializedName("imageUrls") val imageUrls: List = emptyList(), + @SerializedName("localImagePaths") val localImagePaths: List = emptyList(), + @SerializedName("lastUpdated") val lastUpdated: Long = System.currentTimeMillis() ) diff --git a/app/src/main/java/com/sameerasw/essentials/domain/diy/Action.kt b/app/src/main/java/com/sameerasw/essentials/domain/diy/Action.kt index 22e28fee7..c376b13ae 100644 --- a/app/src/main/java/com/sameerasw/essentials/domain/diy/Action.kt +++ b/app/src/main/java/com/sameerasw/essentials/domain/diy/Action.kt @@ -1,9 +1,12 @@ package com.sameerasw.essentials.domain.diy import androidx.annotation.DrawableRes +import androidx.annotation.Keep import androidx.annotation.StringRes +import com.google.gson.annotations.SerializedName import com.sameerasw.essentials.R +@Keep sealed interface Action { @get:StringRes val title: Int @@ -15,49 +18,59 @@ sealed interface Action { val isConfigurable: Boolean get() = false + @Keep data object HapticVibration : Action { override val title: Int = R.string.diy_action_haptic override val icon: Int = R.drawable.rounded_mobile_vibrate_24 } + @Keep data object ShowNotification : Action { override val title: Int = R.string.diy_action_notification override val icon: Int = R.drawable.rounded_notifications_unread_24 } + @Keep data object RemoveNotification : Action { override val title: Int = R.string.diy_action_remove_notification override val icon: Int = R.drawable.rounded_notifications_off_24 } + @Keep data object TurnOnFlashlight : Action { override val title: Int = R.string.diy_action_flashlight_on override val icon: Int = R.drawable.round_flashlight_on_24 } + @Keep data object TurnOffFlashlight : Action { override val title: Int = R.string.diy_action_flashlight_off override val icon: Int = R.drawable.rounded_flashlight_on_24 } + @Keep data object ToggleFlashlight : Action { override val title: Int = R.string.diy_action_flashlight_toggle override val icon: Int = R.drawable.rounded_flashlight_on_24 } - data class DimWallpaper(val dimAmount: Float = 0f) : Action { + @Keep + data class DimWallpaper( + @SerializedName("dimAmount") val dimAmount: Float = 0f + ) : Action { override val title: Int get() = R.string.diy_action_dim_wallpaper override val icon: Int get() = R.drawable.rounded_mobile_screensaver_24 override val permissions: List = listOf("shizuku", "root") override val isConfigurable: Boolean = true } + @Keep data class DeviceEffects( - val enabled: Boolean = true, - val grayscale: Boolean = false, - val suppressAmbient: Boolean = false, - val dimWallpaper: Boolean = false, - val nightMode: Boolean = false + @SerializedName("enabled") val enabled: Boolean = true, + @SerializedName("grayscale") val grayscale: Boolean = false, + @SerializedName("suppressAmbient") val suppressAmbient: Boolean = false, + @SerializedName("dimWallpaper") val dimWallpaper: Boolean = false, + @SerializedName("nightMode") val nightMode: Boolean = false ) : Action { override val title: Int get() = R.string.diy_action_device_effects override val icon: Int get() = R.drawable.rounded_bed_24 @@ -65,11 +78,17 @@ sealed interface Action { override val isConfigurable: Boolean = true } + @Keep enum class SoundModeType { - SOUND, VIBRATE, SILENT + @SerializedName("SOUND") SOUND, + @SerializedName("VIBRATE") VIBRATE, + @SerializedName("SILENT") SILENT } - data class SoundMode(val mode: SoundModeType = SoundModeType.SOUND) : Action { + @Keep + data class SoundMode( + @SerializedName("mode") val mode: SoundModeType = SoundModeType.SOUND + ) : Action { override val title: Int get() = R.string.diy_action_sound_mode override val icon: Int get() = when (mode) { SoundModeType.SOUND -> R.drawable.rounded_volume_up_24 @@ -80,11 +99,13 @@ sealed interface Action { override val isConfigurable: Boolean = true } + @Keep data object TurnOnLowPower : Action { override val title: Int = R.string.diy_action_low_power_on override val icon: Int = R.drawable.rounded_battery_android_frame_shield_24 } + @Keep data object TurnOffLowPower : Action { override val title: Int = R.string.diy_action_low_power_off override val icon: Int = R.drawable.rounded_battery_android_frame_shield_24 diff --git a/app/src/main/java/com/sameerasw/essentials/domain/diy/Automation.kt b/app/src/main/java/com/sameerasw/essentials/domain/diy/Automation.kt index b2ef49ee3..f120491aa 100644 --- a/app/src/main/java/com/sameerasw/essentials/domain/diy/Automation.kt +++ b/app/src/main/java/com/sameerasw/essentials/domain/diy/Automation.kt @@ -1,19 +1,24 @@ package com.sameerasw.essentials.domain.diy +import androidx.annotation.Keep +import com.google.gson.annotations.SerializedName + +@Keep data class Automation( - val id: String, - val type: Type, - val trigger: Trigger? = null, - val state: State? = null, - val actions: List = emptyList(), - val entryAction: Action? = null, - val exitAction: Action? = null, - val isEnabled: Boolean = true, - val selectedApps: List = emptyList() + @SerializedName("id") val id: String, + @SerializedName("type") val type: Type, + @SerializedName("trigger") val trigger: Trigger? = null, + @SerializedName("state") val state: State? = null, + @SerializedName("actions") val actions: List = emptyList(), + @SerializedName("entryAction") val entryAction: Action? = null, + @SerializedName("exitAction") val exitAction: Action? = null, + @SerializedName("isEnabled") val isEnabled: Boolean = true, + @SerializedName("selectedApps") val selectedApps: List = emptyList() ) { + @Keep enum class Type { - TRIGGER, - STATE, - APP + @SerializedName("TRIGGER") TRIGGER, + @SerializedName("STATE") STATE, + @SerializedName("APP") APP } } diff --git a/app/src/main/java/com/sameerasw/essentials/domain/diy/State.kt b/app/src/main/java/com/sameerasw/essentials/domain/diy/State.kt index ed04f37b3..431e9cc1d 100644 --- a/app/src/main/java/com/sameerasw/essentials/domain/diy/State.kt +++ b/app/src/main/java/com/sameerasw/essentials/domain/diy/State.kt @@ -1,9 +1,12 @@ package com.sameerasw.essentials.domain.diy import androidx.annotation.DrawableRes +import androidx.annotation.Keep import androidx.annotation.StringRes +import com.google.gson.annotations.SerializedName import com.sameerasw.essentials.R +@Keep sealed interface State { @get:StringRes val title: Int @@ -11,22 +14,25 @@ sealed interface State { @get:DrawableRes val icon: Int + @Keep data object Charging : State { override val title: Int = R.string.diy_state_charging override val icon: Int = R.drawable.rounded_charger_24 } + @Keep data object ScreenOn : State { override val title: Int = R.string.diy_state_screen_on override val icon: Int = R.drawable.rounded_mobile_text_2_24 } + @Keep data class TimePeriod( - val startHour: Int = 0, - val startMinute: Int = 0, - val endHour: Int = 0, - val endMinute: Int = 0, - val days: Set = emptySet() + @SerializedName("startHour") val startHour: Int = 0, + @SerializedName("startMinute") val startMinute: Int = 0, + @SerializedName("endHour") val endHour: Int = 0, + @SerializedName("endMinute") val endMinute: Int = 0, + @SerializedName("days") val days: Set = emptySet() ) : State { override val title: Int get() = R.string.diy_state_time_period override val icon: Int get() = R.drawable.rounded_timelapse_24 diff --git a/app/src/main/java/com/sameerasw/essentials/domain/diy/Trigger.kt b/app/src/main/java/com/sameerasw/essentials/domain/diy/Trigger.kt index ac8f717bc..68200c0c2 100644 --- a/app/src/main/java/com/sameerasw/essentials/domain/diy/Trigger.kt +++ b/app/src/main/java/com/sameerasw/essentials/domain/diy/Trigger.kt @@ -1,7 +1,10 @@ package com.sameerasw.essentials.domain.diy +import androidx.annotation.Keep +import com.google.gson.annotations.SerializedName import com.sameerasw.essentials.R +@Keep sealed interface Trigger { val title: Int val icon: Int @@ -10,35 +13,41 @@ sealed interface Trigger { val isConfigurable: Boolean get() = false + @Keep data object ScreenOff : Trigger { override val title: Int = R.string.diy_trigger_screen_off override val icon: Int = R.drawable.rounded_mobile_lock_portrait_24 } + @Keep data object ScreenOn : Trigger { override val title: Int = R.string.diy_trigger_screen_on override val icon: Int = R.drawable.rounded_mobile_text_2_24 } + @Keep data object DeviceUnlock : Trigger { override val title: Int = R.string.diy_trigger_device_unlock override val icon: Int = R.drawable.rounded_mobile_unlock_24 } + @Keep data object ChargerConnected : Trigger { override val title: Int = R.string.diy_trigger_charger_connected override val icon: Int = R.drawable.rounded_battery_charging_60_24 } + @Keep data object ChargerDisconnected : Trigger { override val title: Int = R.string.diy_trigger_charger_disconnected override val icon: Int = R.drawable.rounded_battery_android_frame_3_24 } + @Keep data class Schedule( - val hour: Int = 0, - val minute: Int = 0, - val days: Set = emptySet() + @SerializedName("hour") val hour: Int = 0, + @SerializedName("minute") val minute: Int = 0, + @SerializedName("days") val days: Set = emptySet() ) : Trigger { override val title: Int get() = R.string.diy_trigger_schedule override val icon: Int get() = R.drawable.rounded_nest_clock_farsight_analog_24 diff --git a/app/src/main/java/com/sameerasw/essentials/domain/model/AppSelection.kt b/app/src/main/java/com/sameerasw/essentials/domain/model/AppSelection.kt index dd7f68e4b..86f83304a 100644 --- a/app/src/main/java/com/sameerasw/essentials/domain/model/AppSelection.kt +++ b/app/src/main/java/com/sameerasw/essentials/domain/model/AppSelection.kt @@ -1,6 +1,10 @@ package com.sameerasw.essentials.domain.model +import androidx.annotation.Keep +import com.google.gson.annotations.SerializedName + +@Keep data class AppSelection( - val packageName: String, - val isEnabled: Boolean + @SerializedName("packageName") val packageName: String, + @SerializedName("isEnabled") val isEnabled: Boolean ) diff --git a/app/src/main/java/com/sameerasw/essentials/domain/model/DnsPreset.kt b/app/src/main/java/com/sameerasw/essentials/domain/model/DnsPreset.kt index 9f05839c1..6042f562d 100644 --- a/app/src/main/java/com/sameerasw/essentials/domain/model/DnsPreset.kt +++ b/app/src/main/java/com/sameerasw/essentials/domain/model/DnsPreset.kt @@ -1,8 +1,12 @@ package com.sameerasw.essentials.domain.model +import androidx.annotation.Keep +import com.google.gson.annotations.SerializedName + +@Keep data class DnsPreset( - val id: String = java.util.UUID.randomUUID().toString(), - val name: String, - val hostname: String, - val isDefault: Boolean = false + @SerializedName("id") val id: String = java.util.UUID.randomUUID().toString(), + @SerializedName("name") val name: String, + @SerializedName("hostname") val hostname: String, + @SerializedName("isDefault") val isDefault: Boolean = false ) diff --git a/app/src/main/java/com/sameerasw/essentials/domain/model/LocationAlarm.kt b/app/src/main/java/com/sameerasw/essentials/domain/model/LocationAlarm.kt index 90e8bbf69..f94969473 100644 --- a/app/src/main/java/com/sameerasw/essentials/domain/model/LocationAlarm.kt +++ b/app/src/main/java/com/sameerasw/essentials/domain/model/LocationAlarm.kt @@ -1,8 +1,12 @@ package com.sameerasw.essentials.domain.model +import androidx.annotation.Keep +import com.google.gson.annotations.SerializedName + +@Keep data class LocationAlarm( - val latitude: Double = 0.0, - val longitude: Double = 0.0, - val radius: Int = 1000, // in meters - val isEnabled: Boolean = false + @SerializedName("latitude") val latitude: Double = 0.0, + @SerializedName("longitude") val longitude: Double = 0.0, + @SerializedName("radius") val radius: Int = 1000, // in meters + @SerializedName("isEnabled") val isEnabled: Boolean = false ) diff --git a/app/src/main/java/com/sameerasw/essentials/domain/model/MapsChannel.kt b/app/src/main/java/com/sameerasw/essentials/domain/model/MapsChannel.kt index 5bbc89c9f..b1bc65ada 100644 --- a/app/src/main/java/com/sameerasw/essentials/domain/model/MapsChannel.kt +++ b/app/src/main/java/com/sameerasw/essentials/domain/model/MapsChannel.kt @@ -1,7 +1,11 @@ package com.sameerasw.essentials.domain.model +import androidx.annotation.Keep +import com.google.gson.annotations.SerializedName + +@Keep data class MapsChannel( - val id: String, - val name: String, - val isEnabled: Boolean = false + @SerializedName("id") val id: String, + @SerializedName("name") val name: String, + @SerializedName("isEnabled") val isEnabled: Boolean = false ) diff --git a/app/src/main/java/com/sameerasw/essentials/domain/model/SnoozeChannel.kt b/app/src/main/java/com/sameerasw/essentials/domain/model/SnoozeChannel.kt index 8ece27be2..e0695cebd 100644 --- a/app/src/main/java/com/sameerasw/essentials/domain/model/SnoozeChannel.kt +++ b/app/src/main/java/com/sameerasw/essentials/domain/model/SnoozeChannel.kt @@ -1,7 +1,11 @@ package com.sameerasw.essentials.domain.model +import androidx.annotation.Keep +import com.google.gson.annotations.SerializedName + +@Keep data class SnoozeChannel( - val id: String, - val name: String, - val isBlocked: Boolean = false + @SerializedName("id") val id: String, + @SerializedName("name") val name: String, + @SerializedName("isBlocked") val isBlocked: Boolean = false ) diff --git a/app/src/main/java/com/sameerasw/essentials/domain/model/TrackedRepo.kt b/app/src/main/java/com/sameerasw/essentials/domain/model/TrackedRepo.kt index 37baab981..f022fcfaa 100644 --- a/app/src/main/java/com/sameerasw/essentials/domain/model/TrackedRepo.kt +++ b/app/src/main/java/com/sameerasw/essentials/domain/model/TrackedRepo.kt @@ -1,24 +1,28 @@ package com.sameerasw.essentials.domain.model +import androidx.annotation.Keep +import com.google.gson.annotations.SerializedName + +@Keep data class TrackedRepo( - val owner: String, - val name: String, - val fullName: String, - val description: String?, - val stars: Int, - val avatarUrl: String, - val latestTagName: String, - val latestReleaseName: String?, - val latestReleaseBody: String?, - val latestReleaseUrl: String?, - val downloadUrl: String?, - val publishedAt: String, - val selectedApkName: String, // "Auto" or actual name - val mappedPackageName: String?, // Linked local app - val mappedAppName: String?, - val isUpdateAvailable: Boolean = false, - val allowPreReleases: Boolean = false, - val notificationsEnabled: Boolean = true, - val lastETag: String? = null, - val addedAt: Long = System.currentTimeMillis() + @SerializedName("owner") val owner: String, + @SerializedName("name") val name: String, + @SerializedName("fullName") val fullName: String, + @SerializedName("description") val description: String?, + @SerializedName("stars") val stars: Int, + @SerializedName("avatarUrl") val avatarUrl: String, + @SerializedName("latestTagName") val latestTagName: String, + @SerializedName("latestReleaseName") val latestReleaseName: String?, + @SerializedName("latestReleaseBody") val latestReleaseBody: String?, + @SerializedName("latestReleaseUrl") val latestReleaseUrl: String?, + @SerializedName("downloadUrl") val downloadUrl: String?, + @SerializedName("publishedAt") val publishedAt: String, + @SerializedName("selectedApkName") val selectedApkName: String, // "Auto" or actual name + @SerializedName("mappedPackageName") val mappedPackageName: String?, // Linked local app + @SerializedName("mappedAppName") val mappedAppName: String?, + @SerializedName("isUpdateAvailable") val isUpdateAvailable: Boolean = false, + @SerializedName("allowPreReleases") val allowPreReleases: Boolean = false, + @SerializedName("notificationsEnabled") val notificationsEnabled: Boolean = true, + @SerializedName("lastETag") val lastETag: String? = null, + @SerializedName("addedAt") val addedAt: Long = System.currentTimeMillis() ) diff --git a/app/src/main/java/com/sameerasw/essentials/domain/model/UpdateInfo.kt b/app/src/main/java/com/sameerasw/essentials/domain/model/UpdateInfo.kt index 302ad41d8..ef030bc3b 100644 --- a/app/src/main/java/com/sameerasw/essentials/domain/model/UpdateInfo.kt +++ b/app/src/main/java/com/sameerasw/essentials/domain/model/UpdateInfo.kt @@ -1,9 +1,13 @@ package com.sameerasw.essentials.domain.model +import androidx.annotation.Keep +import com.google.gson.annotations.SerializedName + +@Keep data class UpdateInfo( - val versionName: String, - val releaseNotes: String, - val downloadUrl: String, - val releaseUrl: String = "", - val isUpdateAvailable: Boolean = false + @SerializedName("versionName") val versionName: String, + @SerializedName("releaseNotes") val releaseNotes: String, + @SerializedName("downloadUrl") val downloadUrl: String, + @SerializedName("releaseUrl") val releaseUrl: String = "", + @SerializedName("isUpdateAvailable") val isUpdateAvailable: Boolean = false ) diff --git a/app/src/main/java/com/sameerasw/essentials/domain/model/github/GitHubModels.kt b/app/src/main/java/com/sameerasw/essentials/domain/model/github/GitHubModels.kt index 0f7d0bea8..bfa33e5f2 100644 --- a/app/src/main/java/com/sameerasw/essentials/domain/model/github/GitHubModels.kt +++ b/app/src/main/java/com/sameerasw/essentials/domain/model/github/GitHubModels.kt @@ -1,47 +1,54 @@ package com.sameerasw.essentials.domain.model.github +import androidx.annotation.Keep import com.google.gson.annotations.SerializedName +@Keep data class GitHubRepo( - val id: Long, - val name: String, + @SerializedName("id") val id: Long, + @SerializedName("name") val name: String, @SerializedName("full_name") val fullName: String, - val description: String?, + @SerializedName("description") val description: String?, @SerializedName("stargazers_count") val stars: Int, - val owner: GitHubOwner + @SerializedName("owner") val owner: GitHubOwner ) +@Keep data class GitHubOwner( - val login: String, + @SerializedName("login") val login: String, @SerializedName("avatar_url") val avatarUrl: String ) +@Keep data class GitHubRelease( @SerializedName("tag_name") val tagName: String, - val name: String?, - val body: String?, + @SerializedName("name") val name: String?, + @SerializedName("body") val body: String?, @SerializedName("published_at") val publishedAt: String, @SerializedName("html_url") val htmlUrl: String, - val prerelease: Boolean = false, - val assets: List + @SerializedName("prerelease") val prerelease: Boolean = false, + @SerializedName("assets") val assets: List ) +@Keep data class GitHubAsset( - val name: String, + @SerializedName("name") val name: String, @SerializedName("browser_download_url") val downloadUrl: String ) +@Keep data class DeviceCodeResponse( @SerializedName("device_code") val deviceCode: String, @SerializedName("user_code") val userCode: String, @SerializedName("verification_uri") val verificationUri: String, @SerializedName("expires_in") val expiresIn: Int, - val interval: Int + @SerializedName("interval") val interval: Int ) +@Keep data class TokenResponse( @SerializedName("access_token") val accessToken: String?, @SerializedName("token_type") val tokenType: String?, @SerializedName("scope") val scope: String?, - val error: String? + @SerializedName("error") val error: String? ) diff --git a/app/src/main/java/com/sameerasw/essentials/domain/model/github/GitHubUser.kt b/app/src/main/java/com/sameerasw/essentials/domain/model/github/GitHubUser.kt index f55d5ad18..f6ce9b1f0 100644 --- a/app/src/main/java/com/sameerasw/essentials/domain/model/github/GitHubUser.kt +++ b/app/src/main/java/com/sameerasw/essentials/domain/model/github/GitHubUser.kt @@ -1,11 +1,13 @@ package com.sameerasw.essentials.domain.model.github +import androidx.annotation.Keep import com.google.gson.annotations.SerializedName +@Keep data class GitHubUser( - val login: String, - val id: Long, + @SerializedName("login") val login: String, + @SerializedName("id") val id: Long, @SerializedName("avatar_url") val avatarUrl: String, - val name: String?, - val bio: String? + @SerializedName("name") val name: String?, + @SerializedName("bio") val bio: String? )