@@ -8,7 +8,15 @@ import androidx.lifecycle.LiveData
88import androidx.lifecycle.ViewModel
99import androidx.lifecycle.ViewModelProvider
1010import androidx.lifecycle.viewModelScope
11- import androidx.room.*
11+ import androidx.room.ColumnInfo
12+ import androidx.room.Dao
13+ import androidx.room.Database
14+ import androidx.room.Entity
15+ import androidx.room.PrimaryKey
16+ import androidx.room.Query
17+ import androidx.room.Room
18+ import androidx.room.RoomDatabase
19+ import androidx.room.Update
1220import androidx.room.migration.Migration
1321import androidx.sqlite.db.SupportSQLiteDatabase
1422import kotlinx.coroutines.launch
@@ -37,89 +45,89 @@ data class AppSettings(
3745 @PrimaryKey(autoGenerate = true ) val id : Int ,
3846 @ColumnInfo(
3947 name = " key_size" ,
40- defaultValue = DEFAULT_KEY_SIZE .toString()
48+ defaultValue = DEFAULT_KEY_SIZE .toString(),
4149 )
4250 val keySize : Int ,
4351 @ColumnInfo(
4452 name = " animation_speed" ,
45- defaultValue = DEFAULT_ANIMATION_SPEED .toString()
53+ defaultValue = DEFAULT_ANIMATION_SPEED .toString(),
4654 )
4755 val animationSpeed : Int ,
4856 @ColumnInfo(
4957 name = " animation_helper_speed" ,
50- defaultValue = DEFAULT_ANIMATION_HELPER_SPEED .toString()
58+ defaultValue = DEFAULT_ANIMATION_HELPER_SPEED .toString(),
5159 )
5260 val animationHelperSpeed : Int ,
5361 @ColumnInfo(
5462 name = " position" ,
55- defaultValue = DEFAULT_POSITION .toString()
63+ defaultValue = DEFAULT_POSITION .toString(),
5664 )
5765 val position : Int ,
5866 @ColumnInfo(
5967 name = " auto_capitalize" ,
60- defaultValue = DEFAULT_AUTO_CAPITALIZE .toString()
68+ defaultValue = DEFAULT_AUTO_CAPITALIZE .toString(),
6169 )
6270 val autoCapitalize : Int ,
6371 @ColumnInfo(
6472 name = " keyboard_layout" ,
65- defaultValue = DEFAULT_KEYBOARD_LAYOUT .toString()
73+ defaultValue = DEFAULT_KEYBOARD_LAYOUT .toString(),
6674 )
6775 val keyboardLayout : Int ,
6876 @ColumnInfo(
6977 name = " vibrate_on_tap" ,
70- defaultValue = DEFAULT_VIBRATE_ON_TAP .toString()
78+ defaultValue = DEFAULT_VIBRATE_ON_TAP .toString(),
7179 )
7280 val vibrateOnTap : Int ,
7381 @ColumnInfo(
7482 name = " sound_on_tap" ,
75- defaultValue = DEFAULT_SOUND_ON_TAP .toString()
83+ defaultValue = DEFAULT_SOUND_ON_TAP .toString(),
7684 )
7785 val soundOnTap : Int ,
7886 @ColumnInfo(
7987 name = " theme" ,
80- defaultValue = DEFAULT_THEME .toString()
88+ defaultValue = DEFAULT_THEME .toString(),
8189 )
8290 val theme : Int ,
8391 @ColumnInfo(
8492 name = " theme_color" ,
85- defaultValue = DEFAULT_THEME_COLOR .toString()
93+ defaultValue = DEFAULT_THEME_COLOR .toString(),
8694 )
8795 val themeColor : Int ,
8896 @ColumnInfo(
8997 name = " viewed_changelog" ,
90- defaultValue = " 0"
98+ defaultValue = " 0" ,
9199 )
92100 val viewedChangelog : Int ,
93101 @ColumnInfo(
94102 name = " min_swipe_length" ,
95- defaultValue = DEFAULT_MIN_SWIPE_LENGTH .toString()
103+ defaultValue = DEFAULT_MIN_SWIPE_LENGTH .toString(),
96104 )
97105 val minSwipeLength : Int ,
98106 @ColumnInfo(
99107 name = " pushup_size" ,
100- defaultValue = DEFAULT_PUSHUP_SIZE .toString()
108+ defaultValue = DEFAULT_PUSHUP_SIZE .toString(),
101109 )
102110 val pushupSize : Int ,
103111 @ColumnInfo(
104112 name = " hide_letters" ,
105- defaultValue = DEFAULT_HIDE_LETTERS .toString()
113+ defaultValue = DEFAULT_HIDE_LETTERS .toString(),
106114 )
107115 val hideLetters : Int ,
108116 @ColumnInfo(
109117 name = " keyboard_layouts" ,
110- defaultValue = " $DEFAULT_KEYBOARD_LAYOUT "
118+ defaultValue = " $DEFAULT_KEYBOARD_LAYOUT " ,
111119 )
112120 val keyboardLayouts : String ,
113121 @ColumnInfo(
114122 name = " key_borders" ,
115- defaultValue = DEFAULT_KEY_BORDERS .toString()
123+ defaultValue = DEFAULT_KEY_BORDERS .toString(),
116124 )
117125 val keyBorders : Int ,
118126 @ColumnInfo(
119127 name = " spacebar_multitaps" ,
120- defaultValue = DEFAULT_SPACEBAR_MULTITAPS .toString()
128+ defaultValue = DEFAULT_SPACEBAR_MULTITAPS .toString(),
121129 )
122- val spacebarMultiTaps : Int
130+ val spacebarMultiTaps : Int ,
123131)
124132
125133@Dao
@@ -156,55 +164,55 @@ class AppSettingsRepository(private val appSettingsDao: AppSettingsDao) {
156164val MIGRATION_1_2 = object : Migration (1 , 2 ) {
157165 override fun migrate (database : SupportSQLiteDatabase ) {
158166 database.execSQL(
159- " alter table AppSettings add column min_swipe_length INTEGER NOT NULL default $DEFAULT_MIN_SWIPE_LENGTH "
167+ " alter table AppSettings add column min_swipe_length INTEGER NOT NULL default $DEFAULT_MIN_SWIPE_LENGTH " ,
160168 )
161169 }
162170}
163171
164172val MIGRATION_2_3 = object : Migration (2 , 3 ) {
165173 override fun migrate (database : SupportSQLiteDatabase ) {
166174 database.execSQL(
167- " alter table AppSettings add column pushup_size INTEGER NOT NULL default $DEFAULT_PUSHUP_SIZE "
175+ " alter table AppSettings add column pushup_size INTEGER NOT NULL default $DEFAULT_PUSHUP_SIZE " ,
168176 )
169177 }
170178}
171179
172180val MIGRATION_3_4 = object : Migration (3 , 4 ) {
173181 override fun migrate (database : SupportSQLiteDatabase ) {
174182 database.execSQL(
175- " alter table AppSettings add column hide_letters INTEGER NOT NULL default $DEFAULT_HIDE_LETTERS "
183+ " alter table AppSettings add column hide_letters INTEGER NOT NULL default $DEFAULT_HIDE_LETTERS " ,
176184 )
177185 }
178186}
179187
180188val MIGRATION_4_5 = object : Migration (4 , 5 ) {
181189 override fun migrate (database : SupportSQLiteDatabase ) {
182190 database.execSQL(
183- " alter table AppSettings add column keyboard_layouts TEXT NOT NULL default '$DEFAULT_KEYBOARD_LAYOUT '"
191+ " alter table AppSettings add column keyboard_layouts TEXT NOT NULL default '$DEFAULT_KEYBOARD_LAYOUT '" ,
184192 )
185193 }
186194}
187195
188196val MIGRATION_5_6 = object : Migration (5 , 6 ) {
189197 override fun migrate (database : SupportSQLiteDatabase ) {
190198 database.execSQL(
191- " alter table AppSettings add column key_borders INTEGER NOT NULL default $DEFAULT_KEY_BORDERS "
199+ " alter table AppSettings add column key_borders INTEGER NOT NULL default $DEFAULT_KEY_BORDERS " ,
192200 )
193201 }
194202}
195203
196204val MIGRATION_6_7 = object : Migration (6 , 7 ) {
197205 override fun migrate (database : SupportSQLiteDatabase ) {
198206 database.execSQL(
199- " alter table AppSettings add column spacebar_multitaps INTEGER NOT NULL default $DEFAULT_SPACEBAR_MULTITAPS "
207+ " alter table AppSettings add column spacebar_multitaps INTEGER NOT NULL default $DEFAULT_SPACEBAR_MULTITAPS " ,
200208 )
201209 }
202210}
203211
204212@Database(
205213 version = 7 ,
206214 entities = [AppSettings ::class ],
207- exportSchema = true
215+ exportSchema = true ,
208216)
209217abstract class AppDB : RoomDatabase () {
210218 abstract fun appSettingsDao (): AppSettingsDao
@@ -214,15 +222,15 @@ abstract class AppDB : RoomDatabase() {
214222 private var INSTANCE : AppDB ? = null
215223
216224 fun getDatabase (
217- context : Context
225+ context : Context ,
218226 ): AppDB {
219227 // if the INSTANCE is not null, then return it,
220228 // if it is, then create the database
221229 return INSTANCE ? : synchronized(this ) {
222230 val instance = Room .databaseBuilder(
223231 context.applicationContext,
224232 AppDB ::class .java,
225- " thumbkey"
233+ " thumbkey" ,
226234 )
227235 .allowMainThreadQueries()
228236 .addMigrations(
@@ -231,7 +239,7 @@ abstract class AppDB : RoomDatabase() {
231239 MIGRATION_3_4 ,
232240 MIGRATION_4_5 ,
233241 MIGRATION_5_6 ,
234- MIGRATION_6_7
242+ MIGRATION_6_7 ,
235243 )
236244 // Necessary because it can't insert data on creation
237245 .addCallback(object : Callback () {
@@ -243,7 +251,7 @@ abstract class AppDB : RoomDatabase() {
243251 CONFLICT_IGNORE , // Ensures it won't overwrite the existing data
244252 ContentValues (2 ).apply {
245253 put(" id" , 1 )
246- }
254+ },
247255 )
248256 }
249257 }
0 commit comments