From d0e731fcb72e579a3b2579d7f6ad4dc4ef5f6922 Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 7 Nov 2018 12:25:47 +0100 Subject: [PATCH] create a table for widgets --- .../pro/activities/WidgetConfigureActivity.kt | 2 +- .../notes/pro/databases/NotesDatabase.kt | 6 +++++- .../notes/pro/extensions/Context.kt | 3 +++ .../notes/pro/helpers/DBHelper.kt | 2 +- .../notes/pro/interfaces/WidgetsDao.kt | 16 ++++++++++++++++ .../simplemobiletools/notes/pro/models/Widget.kt | 11 ++++++++++- 6 files changed, 36 insertions(+), 4 deletions(-) create mode 100644 app/src/main/kotlin/com/simplemobiletools/notes/pro/interfaces/WidgetsDao.kt diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/activities/WidgetConfigureActivity.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/activities/WidgetConfigureActivity.kt index 88f36898..6c8c471d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/activities/WidgetConfigureActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/activities/WidgetConfigureActivity.kt @@ -109,7 +109,7 @@ class WidgetConfigureActivity : SimpleActivity() { val views = RemoteViews(packageName, R.layout.activity_main) views.setBackgroundColor(R.id.notes_view, mBgColor) AppWidgetManager.getInstance(this).updateAppWidget(mWidgetId, views) - val widget = Widget(mWidgetId, mCurrentNoteId) + val widget = Widget(null, mWidgetId, mCurrentNoteId) dbHelper.insertWidget(widget) storeWidgetBackground() diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/databases/NotesDatabase.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/databases/NotesDatabase.kt index f62fa771..63c71b80 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/databases/NotesDatabase.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/databases/NotesDatabase.kt @@ -6,15 +6,19 @@ import androidx.room.Room import androidx.room.RoomDatabase import androidx.sqlite.db.SupportSQLiteDatabase import com.simplemobiletools.notes.pro.interfaces.NotesDao +import com.simplemobiletools.notes.pro.interfaces.WidgetsDao import com.simplemobiletools.notes.pro.models.Note +import com.simplemobiletools.notes.pro.models.Widget import com.simplemobiletools.notes.pro.objects.MyExecutor import java.util.concurrent.Executors -@Database(entities = [Note::class], version = 1) +@Database(entities = [Note::class, Widget::class], version = 1) abstract class NotesDatabase : RoomDatabase() { abstract fun NotesDao(): NotesDao + abstract fun WidgetsDao(): WidgetsDao + companion object { private var db: NotesDatabase? = null diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/extensions/Context.kt index 44d2df28..8eba3b81 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/extensions/Context.kt @@ -8,6 +8,7 @@ import com.simplemobiletools.notes.pro.R import com.simplemobiletools.notes.pro.databases.NotesDatabase import com.simplemobiletools.notes.pro.helpers.* import com.simplemobiletools.notes.pro.interfaces.NotesDao +import com.simplemobiletools.notes.pro.interfaces.WidgetsDao val Context.config: Config get() = Config.newInstance(applicationContext) @@ -15,6 +16,8 @@ val Context.dbHelper: DBHelper get() = DBHelper.newInstance(applicationContext) val Context.notesDB: NotesDao get() = NotesDatabase.getInstance(applicationContext).NotesDao() +val Context.widgetsDB: WidgetsDao get() = NotesDatabase.getInstance(applicationContext).WidgetsDao() + fun Context.getTextSize() = when (config.fontSize) { FONT_SIZE_SMALL -> resources.getDimension(R.dimen.smaller_text_size) FONT_SIZE_LARGE -> resources.getDimension(R.dimen.big_text_size) diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/helpers/DBHelper.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/helpers/DBHelper.kt index bffd276b..6745f990 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/helpers/DBHelper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/helpers/DBHelper.kt @@ -201,7 +201,7 @@ class DBHelper private constructor(private val mContext: Context) : SQLiteOpenHe do { val widgetId = cursor.getIntValue(COL_WIDGET_ID) val noteId = cursor.getIntValue(COL_NOTE_ID) - val widget = Widget(widgetId, noteId) + val widget = Widget(0, widgetId, noteId) widgets.add(widget) } while (cursor.moveToNext()) } diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/interfaces/WidgetsDao.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/interfaces/WidgetsDao.kt new file mode 100644 index 00000000..103cbb7d --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/interfaces/WidgetsDao.kt @@ -0,0 +1,16 @@ +package com.simplemobiletools.notes.pro.interfaces + +import androidx.room.Dao +import androidx.room.Insert +import androidx.room.OnConflictStrategy +import androidx.room.Query +import com.simplemobiletools.notes.pro.models.Widget + +@Dao +interface WidgetsDao { + @Query("SELECT * FROM widgets") + fun getWidgets(): List + + @Insert(onConflict = OnConflictStrategy.REPLACE) + fun insertOrUpdate(widget: Widget): Long +} diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/models/Widget.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/models/Widget.kt index 34eff9c2..6aab5522 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/models/Widget.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/models/Widget.kt @@ -1,3 +1,12 @@ package com.simplemobiletools.notes.pro.models -data class Widget(var widgetId: Int, var noteId: Int) +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.Index +import androidx.room.PrimaryKey + +@Entity(tableName = "widgets", indices = [(Index(value = ["widget_id"], unique = true))]) +data class Widget( + @PrimaryKey(autoGenerate = true) var id: Int?, + @ColumnInfo(name = "widget_id") var widgetId: Int, + @ColumnInfo(name = "note_id") var noteId: Int)