diff --git a/app/schemas/com.jerboa.db.AppDB/32.json b/app/schemas/com.jerboa.db.AppDB/32.json new file mode 100644 index 000000000..8b277d60d --- /dev/null +++ b/app/schemas/com.jerboa.db.AppDB/32.json @@ -0,0 +1,272 @@ +{ + "formatVersion": 1, + "database": { + "version": 32, + "identityHash": "99bc8f49ded581785ce3c6aba1422623", + "entities": [ + { + "tableName": "Account", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `current` INTEGER NOT NULL, `instance` TEXT NOT NULL, `name` TEXT NOT NULL, `jwt` TEXT NOT NULL, `default_listing_type` INTEGER NOT NULL DEFAULT 0, `default_sort_type` INTEGER NOT NULL DEFAULT 0, `verification_state` INTEGER NOT NULL DEFAULT 0, `is_admin` INTEGER NOT NULL, `is_mod` INTEGER NOT NULL, PRIMARY KEY(`id`))", + "fields": [ + { + "fieldPath": "id", + "columnName": "id", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "current", + "columnName": "current", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "instance", + "columnName": "instance", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "name", + "columnName": "name", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "jwt", + "columnName": "jwt", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "defaultListingType", + "columnName": "default_listing_type", + "affinity": "INTEGER", + "notNull": true, + "defaultValue": "0" + }, + { + "fieldPath": "defaultSortType", + "columnName": "default_sort_type", + "affinity": "INTEGER", + "notNull": true, + "defaultValue": "0" + }, + { + "fieldPath": "verificationState", + "columnName": "verification_state", + "affinity": "INTEGER", + "notNull": true, + "defaultValue": "0" + }, + { + "fieldPath": "isAdmin", + "columnName": "is_admin", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "isMod", + "columnName": "is_mod", + "affinity": "INTEGER", + "notNull": true + } + ], + "primaryKey": { + "autoGenerate": false, + "columnNames": [ + "id" + ] + }, + "indices": [], + "foreignKeys": [] + }, + { + "tableName": "AppSettings", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `font_size` INTEGER NOT NULL DEFAULT 16, `theme` INTEGER NOT NULL DEFAULT 0, `theme_color` INTEGER NOT NULL DEFAULT 0, `post_view_mode` INTEGER NOT NULL DEFAULT 0, `show_bottom_nav` INTEGER NOT NULL DEFAULT 1, `post_navigation_gesture_mode` INTEGER NOT NULL DEFAULT 0, `show_collapsed_comment_content` INTEGER NOT NULL DEFAULT 0, `show_comment_action_bar_by_default` INTEGER NOT NULL DEFAULT 1, `show_voting_arrows_in_list_view` INTEGER NOT NULL DEFAULT 1, `show_parent_comment_navigation_buttons` INTEGER NOT NULL DEFAULT 0, `navigate_parent_comments_with_volume_buttons` INTEGER NOT NULL DEFAULT 0, `use_custom_tabs` INTEGER NOT NULL DEFAULT 1, `use_private_tabs` INTEGER NOT NULL DEFAULT 0, `secure_window` INTEGER NOT NULL DEFAULT 0, `blur_nsfw` INTEGER NOT NULL DEFAULT 1, `show_text_descriptions_in_navbar` INTEGER NOT NULL DEFAULT 1, `markAsReadOnScroll` INTEGER NOT NULL DEFAULT 0, `backConfirmationMode` INTEGER NOT NULL DEFAULT 1, `show_post_link_previews` INTEGER NOT NULL DEFAULT 1, `post_actionbar_mode` INTEGER NOT NULL DEFAULT 0, `auto_play_gifs` INTEGER NOT NULL DEFAULT 0, `swipe_to_action_preset` INTEGER NOT NULL DEFAULT 0, `last_version_code_viewed` INTEGER NOT NULL DEFAULT 0)", + "fields": [ + { + "fieldPath": "id", + "columnName": "id", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "fontSize", + "columnName": "font_size", + "affinity": "INTEGER", + "notNull": true, + "defaultValue": "16" + }, + { + "fieldPath": "theme", + "columnName": "theme", + "affinity": "INTEGER", + "notNull": true, + "defaultValue": "0" + }, + { + "fieldPath": "themeColor", + "columnName": "theme_color", + "affinity": "INTEGER", + "notNull": true, + "defaultValue": "0" + }, + { + "fieldPath": "postViewMode", + "columnName": "post_view_mode", + "affinity": "INTEGER", + "notNull": true, + "defaultValue": "0" + }, + { + "fieldPath": "showBottomNav", + "columnName": "show_bottom_nav", + "affinity": "INTEGER", + "notNull": true, + "defaultValue": "1" + }, + { + "fieldPath": "postNavigationGestureMode", + "columnName": "post_navigation_gesture_mode", + "affinity": "INTEGER", + "notNull": true, + "defaultValue": "0" + }, + { + "fieldPath": "showCollapsedCommentContent", + "columnName": "show_collapsed_comment_content", + "affinity": "INTEGER", + "notNull": true, + "defaultValue": "0" + }, + { + "fieldPath": "showCommentActionBarByDefault", + "columnName": "show_comment_action_bar_by_default", + "affinity": "INTEGER", + "notNull": true, + "defaultValue": "1" + }, + { + "fieldPath": "showVotingArrowsInListView", + "columnName": "show_voting_arrows_in_list_view", + "affinity": "INTEGER", + "notNull": true, + "defaultValue": "1" + }, + { + "fieldPath": "showParentCommentNavigationButtons", + "columnName": "show_parent_comment_navigation_buttons", + "affinity": "INTEGER", + "notNull": true, + "defaultValue": "0" + }, + { + "fieldPath": "navigateParentCommentsWithVolumeButtons", + "columnName": "navigate_parent_comments_with_volume_buttons", + "affinity": "INTEGER", + "notNull": true, + "defaultValue": "0" + }, + { + "fieldPath": "useCustomTabs", + "columnName": "use_custom_tabs", + "affinity": "INTEGER", + "notNull": true, + "defaultValue": "1" + }, + { + "fieldPath": "usePrivateTabs", + "columnName": "use_private_tabs", + "affinity": "INTEGER", + "notNull": true, + "defaultValue": "0" + }, + { + "fieldPath": "secureWindow", + "columnName": "secure_window", + "affinity": "INTEGER", + "notNull": true, + "defaultValue": "0" + }, + { + "fieldPath": "blurNSFW", + "columnName": "blur_nsfw", + "affinity": "INTEGER", + "notNull": true, + "defaultValue": "1" + }, + { + "fieldPath": "showTextDescriptionsInNavbar", + "columnName": "show_text_descriptions_in_navbar", + "affinity": "INTEGER", + "notNull": true, + "defaultValue": "1" + }, + { + "fieldPath": "markAsReadOnScroll", + "columnName": "markAsReadOnScroll", + "affinity": "INTEGER", + "notNull": true, + "defaultValue": "0" + }, + { + "fieldPath": "backConfirmationMode", + "columnName": "backConfirmationMode", + "affinity": "INTEGER", + "notNull": true, + "defaultValue": "1" + }, + { + "fieldPath": "showPostLinkPreviews", + "columnName": "show_post_link_previews", + "affinity": "INTEGER", + "notNull": true, + "defaultValue": "1" + }, + { + "fieldPath": "postActionBarMode", + "columnName": "post_actionbar_mode", + "affinity": "INTEGER", + "notNull": true, + "defaultValue": "0" + }, + { + "fieldPath": "autoPlayGifs", + "columnName": "auto_play_gifs", + "affinity": "INTEGER", + "notNull": true, + "defaultValue": "0" + }, + { + "fieldPath": "swipeToActionPreset", + "columnName": "swipe_to_action_preset", + "affinity": "INTEGER", + "notNull": true, + "defaultValue": "0" + }, + { + "fieldPath": "lastVersionCodeViewed", + "columnName": "last_version_code_viewed", + "affinity": "INTEGER", + "notNull": true, + "defaultValue": "0" + } + ], + "primaryKey": { + "autoGenerate": true, + "columnNames": [ + "id" + ] + }, + "indices": [], + "foreignKeys": [] + } + ], + "views": [], + "setupQueries": [ + "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)", + "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '99bc8f49ded581785ce3c6aba1422623')" + ] + } +} \ No newline at end of file diff --git a/app/src/main/java/com/jerboa/Utils.kt b/app/src/main/java/com/jerboa/Utils.kt index 5b6674bce..5e2380b4a 100644 --- a/app/src/main/java/com/jerboa/Utils.kt +++ b/app/src/main/java/com/jerboa/Utils.kt @@ -1544,3 +1544,5 @@ fun Context.getVersionCode(): Int = @Suppress("DEPRECATION") getPackageInfo().versionCode } + +fun Int.toBool() = if (this > 0) true else false diff --git a/app/src/main/java/com/jerboa/db/AppDB.kt b/app/src/main/java/com/jerboa/db/AppDB.kt index 5b5b03c55..1a1f15ec8 100644 --- a/app/src/main/java/com/jerboa/db/AppDB.kt +++ b/app/src/main/java/com/jerboa/db/AppDB.kt @@ -11,41 +11,69 @@ import com.jerboa.db.dao.AccountDao import com.jerboa.db.dao.AppSettingsDao import com.jerboa.db.entity.Account import com.jerboa.db.entity.AppSettings -import com.jerboa.feat.SwipeToActionPreset +import com.jerboa.toBool import com.jerboa.ui.theme.DEFAULT_FONT_SIZE import java.util.concurrent.Executors +// Warning: Be careful about changing any of these defaults, as it will mean you'll need to +// regenerate the database +// Unfortunately can't use enum ordinals here, because Room's compile time annotations +// don't allow it +// +// Use Int for Bools +const val DEFAULT_THEME = 0 +const val DEFAULT_THEME_COLOR = 0 +const val DEFAULT_LAST_VERSION_CODE_VIEWED = 0 +const val DEFAULT_POST_VIEW_MODE = 0 +const val DEFAULT_POST_NAVIGATION_GESTURE_MODE = 0 +const val DEFAULT_SHOW_BOTTOM_NAV = 1 +const val DEFAULT_SHOW_COLLAPSED_COMMENT_CONTENT = 0 +const val DEFAULT_SHOW_COMMENT_ACTION_BAR_BY_DEFAULT = 1 +const val DEFAULT_SHOW_VOTING_ARROWS_IN_LIST_VIEW = 1 +const val DEFAULT_SHOW_PARENT_COMMENT_NAVIGATION_BUTTONS = 0 +const val DEFAULT_NAVIGATE_PARENT_COMMENTS_WITH_VOLUME_BUTTONS = 0 +const val DEFAULT_USE_CUSTOM_TABS = 1 +const val DEFAULT_USE_PRIVATE_TABS = 0 +const val DEFAULT_SECURE_WINDOW = 0 +const val DEFAULT_BLUR_NSFW = 1 +const val DEFAULT_SHOW_TEXT_DESCRIPTIONS_IN_NAVBAR = 1 +const val DEFAULT_BACK_CONFIRMATION_MODE = 1 +const val DEFAULT_MARK_AS_READ_ON_SCROLL = 0 +const val DEFAULT_SHOW_POST_LINK_PREVIEWS = 1 +const val DEFAULT_POST_ACTION_BAR_MODE = 0 +const val DEFAULT_AUTO_PLAY_GIFS = 0 +const val DEFAULT_SWIPE_TO_ACTION_PRESET = 0 + val APP_SETTINGS_DEFAULT = AppSettings( id = 1, fontSize = DEFAULT_FONT_SIZE, - theme = 0, - themeColor = 0, - viewedChangelog = 0, - lastVersionCodeViewed = 0, - postViewMode = 0, - postNavigationGestureMode = 0, - showBottomNav = true, - showCollapsedCommentContent = false, - showCommentActionBarByDefault = true, - showVotingArrowsInListView = true, - showParentCommentNavigationButtons = false, - navigateParentCommentsWithVolumeButtons = false, - useCustomTabs = true, - usePrivateTabs = false, - secureWindow = false, - blurNSFW = 1, - showTextDescriptionsInNavbar = true, - backConfirmationMode = 1, - markAsReadOnScroll = false, - showPostLinkPreviews = true, - postActionBarMode = 0, - autoPlayGifs = false, - swipeToActionPreset = SwipeToActionPreset.DISABLED.ordinal, + theme = DEFAULT_THEME, + themeColor = DEFAULT_THEME_COLOR, + lastVersionCodeViewed = DEFAULT_LAST_VERSION_CODE_VIEWED, + postViewMode = DEFAULT_POST_VIEW_MODE, + postNavigationGestureMode = DEFAULT_POST_NAVIGATION_GESTURE_MODE, + showBottomNav = DEFAULT_SHOW_BOTTOM_NAV.toBool(), + showCollapsedCommentContent = DEFAULT_SHOW_COLLAPSED_COMMENT_CONTENT.toBool(), + showCommentActionBarByDefault = DEFAULT_SHOW_COMMENT_ACTION_BAR_BY_DEFAULT.toBool(), + showVotingArrowsInListView = DEFAULT_SHOW_VOTING_ARROWS_IN_LIST_VIEW.toBool(), + showParentCommentNavigationButtons = DEFAULT_SHOW_PARENT_COMMENT_NAVIGATION_BUTTONS.toBool(), + navigateParentCommentsWithVolumeButtons = DEFAULT_NAVIGATE_PARENT_COMMENTS_WITH_VOLUME_BUTTONS.toBool(), + useCustomTabs = DEFAULT_USE_CUSTOM_TABS.toBool(), + usePrivateTabs = DEFAULT_USE_PRIVATE_TABS.toBool(), + secureWindow = DEFAULT_SECURE_WINDOW.toBool(), + blurNSFW = DEFAULT_BLUR_NSFW, + showTextDescriptionsInNavbar = DEFAULT_SHOW_TEXT_DESCRIPTIONS_IN_NAVBAR.toBool(), + backConfirmationMode = DEFAULT_BACK_CONFIRMATION_MODE, + markAsReadOnScroll = DEFAULT_MARK_AS_READ_ON_SCROLL.toBool(), + showPostLinkPreviews = DEFAULT_SHOW_POST_LINK_PREVIEWS.toBool(), + postActionBarMode = DEFAULT_POST_ACTION_BAR_MODE, + autoPlayGifs = DEFAULT_AUTO_PLAY_GIFS.toBool(), + swipeToActionPreset = DEFAULT_SWIPE_TO_ACTION_PRESET, ) @Database( - version = 31, + version = 32, entities = [Account::class, AppSettings::class], exportSchema = true, ) diff --git a/app/src/main/java/com/jerboa/db/AppDBMigrations.kt b/app/src/main/java/com/jerboa/db/AppDBMigrations.kt index 57c555868..9af2f49a0 100644 --- a/app/src/main/java/com/jerboa/db/AppDBMigrations.kt +++ b/app/src/main/java/com/jerboa/db/AppDBMigrations.kt @@ -469,6 +469,81 @@ val MIGRATION_30_31 = } } +val MIGRATION_31_32 = + object : Migration(31, 32) { + override fun migrate(db: SupportSQLiteDatabase) { + // Fix wrong ordering and defaults in previous migration + + db.execSQL( + """ + CREATE TABLE IF NOT EXISTS AppSettingsBackup ( + `id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, + `font_size` INTEGER NOT NULL DEFAULT 16, + `theme` INTEGER NOT NULL DEFAULT 0, + `theme_color` INTEGER NOT NULL DEFAULT 0, + `post_view_mode` INTEGER NOT NULL DEFAULT 0, + `show_bottom_nav` INTEGER NOT NULL DEFAULT 1, + `post_navigation_gesture_mode` INTEGER NOT NULL DEFAULT 0, + `show_collapsed_comment_content` INTEGER NOT NULL DEFAULT 0, + `show_comment_action_bar_by_default` INTEGER NOT NULL DEFAULT 1, + `show_voting_arrows_in_list_view` INTEGER NOT NULL DEFAULT 1, + `show_parent_comment_navigation_buttons` INTEGER NOT NULL DEFAULT 0, + `navigate_parent_comments_with_volume_buttons` INTEGER NOT NULL DEFAULT 0, + `use_custom_tabs` INTEGER NOT NULL DEFAULT 1, + `use_private_tabs` INTEGER NOT NULL DEFAULT 0, + `secure_window` INTEGER NOT NULL DEFAULT 0, + `blur_nsfw` INTEGER NOT NULL DEFAULT 1, + `show_text_descriptions_in_navbar` INTEGER NOT NULL DEFAULT 1, + `markAsReadOnScroll` INTEGER NOT NULL DEFAULT 0, + `backConfirmationMode` INTEGER NOT NULL DEFAULT 1, + `show_post_link_previews` INTEGER NOT NULL DEFAULT 1, + `post_actionbar_mode` INTEGER NOT NULL DEFAULT 0, + `auto_play_gifs` INTEGER NOT NULL DEFAULT 0, + `swipe_to_action_preset` INTEGER NOT NULL DEFAULT 0, + `last_version_code_viewed` INTEGER NOT NULL DEFAULT 0 + ) + """.trimIndent(), + ) + + // Need to select explicitly, because mark_changelog_viewed was dropped + db.execSQL( + """ + INSERT INTO AppSettingsBackup SELECT + `id`, + `font_size`, + `theme`, + `theme_color`, + `post_view_mode`, + `show_bottom_nav`, + `post_navigation_gesture_mode`, + `show_collapsed_comment_content`, + `show_comment_action_bar_by_default`, + `show_voting_arrows_in_list_view`, + `show_parent_comment_navigation_buttons`, + `navigate_parent_comments_with_volume_buttons`, + `use_custom_tabs`, + `use_private_tabs`, + `secure_window`, + `blur_nsfw`, + `show_text_descriptions_in_navbar`, + `markAsReadOnScroll`, + `backConfirmationMode`, + `show_post_link_previews`, + `post_actionbar_mode`, + `auto_play_gifs`, + `swipe_to_action_preset`, + `last_version_code_viewed` + FROM AppSettings + """, + ) + db.execSQL("DROP TABLE AppSettings") + db.execSQL("ALTER TABLE AppSettingsBackup RENAME to AppSettings") + + // Reset a few messups to default + db.execSQL("UPDATE AppSettings SET post_actionbar_mode = 0") + } + } + // Don't forget to test your migration with `./gradlew app:connectAndroidTest` val MIGRATIONS_LIST = arrayOf( @@ -502,4 +577,5 @@ val MIGRATIONS_LIST = MIGRATION_28_29, MIGRATION_29_30, MIGRATION_30_31, + MIGRATION_31_32, ) diff --git a/app/src/main/java/com/jerboa/db/entity/AppSettings.kt b/app/src/main/java/com/jerboa/db/entity/AppSettings.kt index 2f26c53e9..b2f73047e 100644 --- a/app/src/main/java/com/jerboa/db/entity/AppSettings.kt +++ b/app/src/main/java/com/jerboa/db/entity/AppSettings.kt @@ -3,6 +3,28 @@ package com.jerboa.db.entity import androidx.room.ColumnInfo import androidx.room.Entity import androidx.room.PrimaryKey +import com.jerboa.db.DEFAULT_AUTO_PLAY_GIFS +import com.jerboa.db.DEFAULT_BACK_CONFIRMATION_MODE +import com.jerboa.db.DEFAULT_BLUR_NSFW +import com.jerboa.db.DEFAULT_LAST_VERSION_CODE_VIEWED +import com.jerboa.db.DEFAULT_MARK_AS_READ_ON_SCROLL +import com.jerboa.db.DEFAULT_NAVIGATE_PARENT_COMMENTS_WITH_VOLUME_BUTTONS +import com.jerboa.db.DEFAULT_POST_ACTION_BAR_MODE +import com.jerboa.db.DEFAULT_POST_NAVIGATION_GESTURE_MODE +import com.jerboa.db.DEFAULT_POST_VIEW_MODE +import com.jerboa.db.DEFAULT_SECURE_WINDOW +import com.jerboa.db.DEFAULT_SHOW_BOTTOM_NAV +import com.jerboa.db.DEFAULT_SHOW_COLLAPSED_COMMENT_CONTENT +import com.jerboa.db.DEFAULT_SHOW_COMMENT_ACTION_BAR_BY_DEFAULT +import com.jerboa.db.DEFAULT_SHOW_PARENT_COMMENT_NAVIGATION_BUTTONS +import com.jerboa.db.DEFAULT_SHOW_POST_LINK_PREVIEWS +import com.jerboa.db.DEFAULT_SHOW_TEXT_DESCRIPTIONS_IN_NAVBAR +import com.jerboa.db.DEFAULT_SHOW_VOTING_ARROWS_IN_LIST_VIEW +import com.jerboa.db.DEFAULT_SWIPE_TO_ACTION_PRESET +import com.jerboa.db.DEFAULT_THEME +import com.jerboa.db.DEFAULT_THEME_COLOR +import com.jerboa.db.DEFAULT_USE_CUSTOM_TABS +import com.jerboa.db.DEFAULT_USE_PRIVATE_TABS import com.jerboa.ui.theme.DEFAULT_FONT_SIZE @Entity @@ -16,118 +38,112 @@ data class AppSettings( val fontSize: Int, @ColumnInfo( name = "theme", - defaultValue = "0", + defaultValue = DEFAULT_THEME.toString(), ) val theme: Int, @ColumnInfo( name = "theme_color", - defaultValue = "0", + defaultValue = DEFAULT_THEME_COLOR.toString(), ) val themeColor: Int, - // TODO get rid of this column next time you regenerate the app - @ColumnInfo( - name = "viewed_changelog", - defaultValue = "0", - ) - val viewedChangelog: Int, @ColumnInfo( name = "post_view_mode", - defaultValue = "0", + defaultValue = DEFAULT_POST_VIEW_MODE.toString(), ) val postViewMode: Int, @ColumnInfo( name = "show_bottom_nav", - defaultValue = "1", + defaultValue = DEFAULT_SHOW_BOTTOM_NAV.toString(), ) val showBottomNav: Boolean, @ColumnInfo( name = "post_navigation_gesture_mode", - defaultValue = "0", + defaultValue = DEFAULT_POST_NAVIGATION_GESTURE_MODE.toString(), ) val postNavigationGestureMode: Int, @ColumnInfo( name = "show_collapsed_comment_content", - defaultValue = "0", + defaultValue = DEFAULT_SHOW_COLLAPSED_COMMENT_CONTENT.toString(), ) val showCollapsedCommentContent: Boolean, @ColumnInfo( name = "show_comment_action_bar_by_default", - defaultValue = "1", + defaultValue = DEFAULT_SHOW_COMMENT_ACTION_BAR_BY_DEFAULT.toString(), ) val showCommentActionBarByDefault: Boolean, @ColumnInfo( name = "show_voting_arrows_in_list_view", - defaultValue = "1", + defaultValue = DEFAULT_SHOW_VOTING_ARROWS_IN_LIST_VIEW.toString(), ) val showVotingArrowsInListView: Boolean, @ColumnInfo( name = "show_parent_comment_navigation_buttons", - defaultValue = "0", + defaultValue = DEFAULT_SHOW_PARENT_COMMENT_NAVIGATION_BUTTONS.toString(), ) val showParentCommentNavigationButtons: Boolean, @ColumnInfo( name = "navigate_parent_comments_with_volume_buttons", - defaultValue = "0", + defaultValue = DEFAULT_NAVIGATE_PARENT_COMMENTS_WITH_VOLUME_BUTTONS.toString(), ) val navigateParentCommentsWithVolumeButtons: Boolean, @ColumnInfo( name = "use_custom_tabs", - defaultValue = "1", + defaultValue = DEFAULT_USE_CUSTOM_TABS.toString(), ) val useCustomTabs: Boolean, @ColumnInfo( name = "use_private_tabs", - defaultValue = "0", + defaultValue = DEFAULT_USE_PRIVATE_TABS.toString(), ) val usePrivateTabs: Boolean, @ColumnInfo( name = "secure_window", - defaultValue = "0", + defaultValue = DEFAULT_SECURE_WINDOW.toString(), ) val secureWindow: Boolean, @ColumnInfo( name = "blur_nsfw", - defaultValue = "1", + defaultValue = DEFAULT_BLUR_NSFW.toString(), ) val blurNSFW: Int, @ColumnInfo( name = "show_text_descriptions_in_navbar", - defaultValue = "1", + defaultValue = DEFAULT_SHOW_TEXT_DESCRIPTIONS_IN_NAVBAR.toString(), ) val showTextDescriptionsInNavbar: Boolean, @ColumnInfo( name = "markAsReadOnScroll", - defaultValue = "0", + defaultValue = DEFAULT_MARK_AS_READ_ON_SCROLL.toString(), ) val markAsReadOnScroll: Boolean, @ColumnInfo( name = "backConfirmationMode", - defaultValue = "1", + defaultValue = DEFAULT_BACK_CONFIRMATION_MODE.toString(), ) val backConfirmationMode: Int, @ColumnInfo( name = "show_post_link_previews", - defaultValue = "1", + defaultValue = DEFAULT_SHOW_POST_LINK_PREVIEWS.toString(), ) val showPostLinkPreviews: Boolean, @ColumnInfo( name = "post_actionbar_mode", - defaultValue = "0", + defaultValue = DEFAULT_POST_ACTION_BAR_MODE.toString(), ) val postActionBarMode: Int, @ColumnInfo( name = "auto_play_gifs", - defaultValue = "0", + defaultValue = DEFAULT_AUTO_PLAY_GIFS.toString(), ) val autoPlayGifs: Boolean, @ColumnInfo( name = "swipe_to_action_preset", - defaultValue = "0", + defaultValue = DEFAULT_SWIPE_TO_ACTION_PRESET.toString(), ) val swipeToActionPreset: Int, @ColumnInfo( name = "last_version_code_viewed", - defaultValue = "0", + defaultValue = DEFAULT_LAST_VERSION_CODE_VIEWED.toString(), ) val lastVersionCodeViewed: Int, ) diff --git a/app/src/main/java/com/jerboa/feat/SwipeToAction.kt b/app/src/main/java/com/jerboa/feat/SwipeToAction.kt index 5747a5170..4d2feccce 100644 --- a/app/src/main/java/com/jerboa/feat/SwipeToAction.kt +++ b/app/src/main/java/com/jerboa/feat/SwipeToAction.kt @@ -73,18 +73,18 @@ enum class SwipeToActionPreset( val rightActions: List, val resId: Int, ) { - DISABLED(emptyList(), emptyList(), R.string.swipe_action_preset_disabled), - TWO_SIDES( + Disabled(emptyList(), emptyList(), R.string.swipe_action_preset_disabled), + TwoSides( listOf(SwipeToActionType.Reply, SwipeToActionType.Save), listOf(SwipeToActionType.Upvote, SwipeToActionType.Downvote), R.string.swipe_action_preset_default, ), - LEFT_DOWNVOTE_RIGHT_UPVOTE( + LeftDownvoteRightUpvote( listOf(SwipeToActionType.Upvote, SwipeToActionType.Reply), listOf(SwipeToActionType.Downvote, SwipeToActionType.Save), R.string.swipe_action_preset_downvote_on_left_upvote_on_right, ), - ONLY_RIGHT( + OnlyRight( listOf( SwipeToActionType.Upvote, SwipeToActionType.Downvote, @@ -94,7 +94,7 @@ enum class SwipeToActionPreset( emptyList(), R.string.only_right_swipe_action_preset, ), - ONLY_LEFT( + OnlyLeft( emptyList(), listOf( SwipeToActionType.Upvote, @@ -104,12 +104,12 @@ enum class SwipeToActionPreset( ), R.string.only_left_swipe_action_preset, ), - ONLY_VOTES_MIRRORED( + OnlyVotesMirrored( listOf(SwipeToActionType.Downvote), listOf(SwipeToActionType.Upvote), R.string.swipe_action_preset_only_votes_mirrored, ), - ONLY_VOTES( + OnlyVotes( listOf(SwipeToActionType.Upvote), listOf(SwipeToActionType.Downvote), R.string.swipe_action_preset_only_votes, diff --git a/app/src/main/java/com/jerboa/ui/components/comment/CommentNode.kt b/app/src/main/java/com/jerboa/ui/components/comment/CommentNode.kt index f6401ba8c..92b29d2fb 100644 --- a/app/src/main/java/com/jerboa/ui/components/comment/CommentNode.kt +++ b/app/src/main/java/com/jerboa/ui/components/comment/CommentNode.kt @@ -415,7 +415,7 @@ fun LazyListScope.commentNodeItem( } } - if (swipeToActionPreset != SwipeToActionPreset.DISABLED) { + if (swipeToActionPreset != SwipeToActionPreset.Disabled) { SwipeToAction( swipeToActionPreset = swipeToActionPreset, enableDownVotes = enableDownVotes, @@ -918,7 +918,7 @@ fun CommentNodesPreview() { blurNSFW = BlurNSFW.NSFW, account = AnonAccount, voteDisplayMode = VoteDisplayMode.Full, - swipeToActionPreset = SwipeToActionPreset.TWO_SIDES, + swipeToActionPreset = SwipeToActionPreset.TwoSides, ) } diff --git a/app/src/main/java/com/jerboa/ui/components/post/PostListing.kt b/app/src/main/java/com/jerboa/ui/components/post/PostListing.kt index d2bae8d77..3f1fbf403 100644 --- a/app/src/main/java/com/jerboa/ui/components/post/PostListing.kt +++ b/app/src/main/java/com/jerboa/ui/components/post/PostListing.kt @@ -870,7 +870,7 @@ fun PreviewPostListingCard() { showIfRead = true, voteDisplayMode = VoteDisplayMode.Full, postActionBarMode = PostActionBarMode.Long, - swipeToActionPreset = SwipeToActionPreset.TWO_SIDES, + swipeToActionPreset = SwipeToActionPreset.TwoSides, ) } @@ -911,7 +911,7 @@ fun PreviewLinkPostListing() { showIfRead = true, voteDisplayMode = VoteDisplayMode.Full, postActionBarMode = PostActionBarMode.Long, - swipeToActionPreset = SwipeToActionPreset.TWO_SIDES, + swipeToActionPreset = SwipeToActionPreset.TwoSides, ) } @@ -952,7 +952,7 @@ fun PreviewImagePostListingCard() { showIfRead = true, voteDisplayMode = VoteDisplayMode.Full, postActionBarMode = PostActionBarMode.Long, - swipeToActionPreset = SwipeToActionPreset.TWO_SIDES, + swipeToActionPreset = SwipeToActionPreset.TwoSides, ) } @@ -993,7 +993,7 @@ fun PreviewImagePostListingSmallCard() { showIfRead = true, voteDisplayMode = VoteDisplayMode.Full, postActionBarMode = PostActionBarMode.Long, - swipeToActionPreset = SwipeToActionPreset.TWO_SIDES, + swipeToActionPreset = SwipeToActionPreset.TwoSides, ) } @@ -1034,7 +1034,7 @@ fun PreviewLinkNoThumbnailPostListing() { showIfRead = true, voteDisplayMode = VoteDisplayMode.Full, postActionBarMode = PostActionBarMode.Long, - swipeToActionPreset = SwipeToActionPreset.TWO_SIDES, + swipeToActionPreset = SwipeToActionPreset.TwoSides, ) } @@ -1257,7 +1257,7 @@ fun PostListing( } } - if (swipeToActionPreset != SwipeToActionPreset.DISABLED) { + if (swipeToActionPreset != SwipeToActionPreset.Disabled) { SwipeToAction( swipeToActionPreset = swipeToActionPreset, enableDownVotes = enableDownVotes, diff --git a/app/src/main/java/com/jerboa/ui/components/post/PostListings.kt b/app/src/main/java/com/jerboa/ui/components/post/PostListings.kt index 5f3e7ebe3..b8642eea6 100644 --- a/app/src/main/java/com/jerboa/ui/components/post/PostListings.kt +++ b/app/src/main/java/com/jerboa/ui/components/post/PostListings.kt @@ -212,7 +212,7 @@ fun PreviewPostListings() { voteDisplayMode = VoteDisplayMode.Full, postActionBarMode = PostActionBarMode.Long, showPostAppendRetry = false, - swipeToActionPreset = SwipeToActionPreset.TWO_SIDES, + swipeToActionPreset = SwipeToActionPreset.TwoSides, onReplyClick = {}, ) } diff --git a/app/src/main/java/com/jerboa/ui/components/settings/lookandfeel/LookAndFeelActivity.kt b/app/src/main/java/com/jerboa/ui/components/settings/lookandfeel/LookAndFeelActivity.kt index 847cc9aae..17b78e985 100644 --- a/app/src/main/java/com/jerboa/ui/components/settings/lookandfeel/LookAndFeelActivity.kt +++ b/app/src/main/java/com/jerboa/ui/components/settings/lookandfeel/LookAndFeelActivity.kt @@ -116,7 +116,6 @@ fun LookAndFeelActivity( appSettingsViewModel.update( AppSettings( id = 1, - viewedChangelog = settings.viewedChangelog, lastVersionCodeViewed = settings.lastVersionCodeViewed, theme = themeState.value, themeColor = themeColorState.value,