Bläddra i källkod

chore: I don't remember everyting but I upgraded the database schema

beautusg 7 år sedan
förälder
incheckning
866e247273
23 ändrade filer med 167 tillägg och 76 borttagningar
  1. 1 1
      app/src/main/java/com/sduduzog/slimlauncher/adapters/HomeAdapter.kt
  2. 39 0
      app/src/main/java/com/sduduzog/slimlauncher/adapters/NotesAdapter.kt
  3. 1 15
      app/src/main/java/com/sduduzog/slimlauncher/data/AppDao.kt
  4. 1 1
      app/src/main/java/com/sduduzog/slimlauncher/data/AppRepository.kt
  5. 0 6
      app/src/main/java/com/sduduzog/slimlauncher/data/DataRepository.kt
  6. 8 3
      app/src/main/java/com/sduduzog/slimlauncher/data/DataRoomDatabase.kt
  7. 4 0
      app/src/main/java/com/sduduzog/slimlauncher/data/MainViewModel.kt
  8. 15 0
      app/src/main/java/com/sduduzog/slimlauncher/data/NoteRepository.kt
  9. 0 9
      app/src/main/java/com/sduduzog/slimlauncher/data/model/App.kt
  10. 1 1
      app/src/main/java/com/sduduzog/slimlauncher/ui/main/HomeFragment.kt
  11. 33 0
      app/src/main/java/com/sduduzog/slimlauncher/ui/main/NotesFragment.kt
  12. 1 1
      app/src/main/java/com/sduduzog/slimlauncher/ui/main/notes/NoteFragment.kt
  13. 1 1
      app/src/main/java/com/sduduzog/slimlauncher/ui/main/notes/NotesListAdapter.kt
  14. 1 1
      app/src/main/java/com/sduduzog/slimlauncher/ui/main/notes/NotesListFragment.kt
  15. 0 19
      app/src/main/java/com/sduduzog/slimlauncher/ui/notes/NotesFragment.kt
  16. 0 1
      app/src/main/java/com/sduduzog/slimlauncher/ui/options/CustomiseAppsFragment.kt
  17. 1 1
      app/src/main/java/com/sduduzog/slimlauncher/utils/DoubleClickListener.kt
  18. 1 1
      app/src/main/res/layout/customise_apps_fragment.xml
  19. 1 1
      app/src/main/res/layout/main_fragment_list_item.xml
  20. 27 3
      app/src/main/res/layout/notes_fragment.xml
  21. 19 0
      app/src/main/res/layout/notes_fragment_list_item.xml
  22. 11 11
      app/src/main/res/navigation/nav_graph.xml
  23. 1 0
      app/src/main/res/values/strings.xml

+ 1 - 1
app/src/main/java/com/sduduzog/slimlauncher/adapters/HomeAdapter.kt

@@ -38,7 +38,7 @@ class HomeAdapter(private val listener: OnLaunchAppListener)
 
 
     inner class ViewHolder(mView: View) : RecyclerView.ViewHolder(mView) {
-        val mLabelView: TextView = mView.findViewById(R.id.main_label)
+        val mLabelView: TextView = mView.findViewById(R.id.home_fragment_list_item_app_name)
 
         override fun toString(): String {
             return super.toString() + " '" + mLabelView.text + "'"

+ 39 - 0
app/src/main/java/com/sduduzog/slimlauncher/adapters/NotesAdapter.kt

@@ -0,0 +1,39 @@
+package com.sduduzog.slimlauncher.adapters
+
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.sduduzog.slimlauncher.R
+import com.sduduzog.slimlauncher.data.model.Note
+
+class NotesAdapter : RecyclerView.Adapter<NotesAdapter.ViewHolder>() {
+
+    private var notes: List<Note> = listOf()
+
+    override fun getItemCount(): Int = notes.size
+
+    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
+        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    }
+
+    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
+        val view = LayoutInflater.from(parent.context).inflate(R.layout.notes_fragment_list_item, parent, false)
+        return ViewHolder(view)
+    }
+
+    fun setItems(list: List<Note>) {
+        this.notes = list
+        notifyDataSetChanged()
+    }
+
+    inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
+        val itemTitle: TextView = itemView.findViewById(R.id.notes_fragment_list_item_title)
+        val itemSnippet: TextView = itemView.findViewById(R.id.notes_fragment_list_item_snippet)
+
+        override fun toString(): String {
+            return super.toString() + " '${itemTitle.text}'"
+        }
+    }
+}

+ 1 - 15
app/src/main/java/com/sduduzog/slimlauncher/data/AppDao.kt

@@ -2,21 +2,13 @@ package com.sduduzog.slimlauncher.data
 
 import androidx.lifecycle.LiveData
 import androidx.room.*
-import com.sduduzog.slimlauncher.data.model.App
 import com.sduduzog.slimlauncher.data.model.HomeApp
 
 @Dao
 interface AppDao {
 
-
-    @get:Query("SELECT * FROM apps WHERE package_name NOT IN (SELECT apps.package_name from apps JOIN home_apps ON home_apps.package_name=apps.package_name) ORDER BY app_name ASC")
-    val apps: LiveData<List<App>>
-
     @get:Query("SELECT * FROM home_apps ORDER BY sorting_index ASC")
-    val homeApps: LiveData<List<HomeApp>>
-
-    @Insert(onConflict = OnConflictStrategy.IGNORE)
-    fun insert(app: App)
+    val apps: LiveData<List<HomeApp>>
 
     @Update(onConflict = OnConflictStrategy.REPLACE)
     fun update(vararg apps: HomeApp)
@@ -24,12 +16,6 @@ interface AppDao {
     @Insert(onConflict = OnConflictStrategy.REPLACE)
     fun add(app: HomeApp)
 
-    @Update(onConflict = OnConflictStrategy.REPLACE)
-    fun updateHomeApp(app: HomeApp)
-
-    @Query("DELETE FROM apps")
-    fun deleteAll()
-
     @Query("DELETE FROM home_apps")
     fun clearHomeApps()
 

+ 1 - 1
app/src/main/java/com/sduduzog/slimlauncher/data/AppRepository.kt

@@ -9,7 +9,7 @@ class AppRepository(application: Application) {
     private val db: DataRoomDatabase = DataRoomDatabase.getDatabase(application)!!
     private val appDao: AppDao = db.appDao()
 
-    private val _apps = appDao.homeApps
+    private val _apps = appDao.apps
 
     val apps: LiveData<List<HomeApp>>
         get() = _apps

+ 0 - 6
app/src/main/java/com/sduduzog/slimlauncher/data/DataRepository.kt

@@ -3,20 +3,14 @@ package com.sduduzog.slimlauncher.data
 import android.app.Application
 import android.os.AsyncTask
 import androidx.lifecycle.LiveData
-import com.sduduzog.slimlauncher.data.model.App
 import com.sduduzog.slimlauncher.data.model.Note
 
 class DataRepository(application: Application) {
 
     private val db: DataRoomDatabase = DataRoomDatabase.getDatabase(application)!!
-    private val appDao: AppDao = db.appDao()
     private val noteDao: NoteDao = db.noteDao()
-    private var _apps: LiveData<List<App>> = appDao.apps
     private var _notes: LiveData<List<Note>> = noteDao.notes
 
-    val apps: LiveData<List<App>>
-        get() = _apps
-
     val notes: LiveData<List<Note>>
         get() = _notes
 

+ 8 - 3
app/src/main/java/com/sduduzog/slimlauncher/data/DataRoomDatabase.kt

@@ -6,12 +6,11 @@ import androidx.room.Room
 import androidx.room.RoomDatabase
 import androidx.room.migration.Migration
 import androidx.sqlite.db.SupportSQLiteDatabase
-import com.sduduzog.slimlauncher.data.model.App
 import com.sduduzog.slimlauncher.data.model.HomeApp
 import com.sduduzog.slimlauncher.data.model.Note
 
 
-@Database(entities = [App::class, HomeApp::class, Note::class], version = 3, exportSchema = false)
+@Database(entities = [HomeApp::class, Note::class], version = 4, exportSchema = false)
 abstract class DataRoomDatabase : RoomDatabase() {
 
     abstract fun appDao(): AppDao
@@ -28,7 +27,7 @@ abstract class DataRoomDatabase : RoomDatabase() {
                 if (INSTANCE == null) {
                     INSTANCE = Room.databaseBuilder(context.applicationContext,
                             DataRoomDatabase::class.java, "app_database")
-                            .addMigrations(MIGRATION_1_2, MIGRATION_2_3)
+                            .addMigrations(MIGRATION_1_2, MIGRATION_2_3, MIGRATION_3_4)
                             .build()
                 }
                 return INSTANCE
@@ -55,5 +54,11 @@ abstract class DataRoomDatabase : RoomDatabase() {
                 database.execSQL("CREATE TABLE IF NOT EXISTS `notes` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `title` TEXT, `body` TEXT NOT NULL, `edited` INTEGER NOT NULL)")
             }
         }
+
+        private val MIGRATION_3_4 = object : Migration(3, 4){
+            override fun migrate(database: SupportSQLiteDatabase) {
+                database.execSQL("DROP TABLE IF EXISTS `apps`")
+            }
+        }
     }
 }

+ 4 - 0
app/src/main/java/com/sduduzog/slimlauncher/data/MainViewModel.kt

@@ -6,15 +6,19 @@ import androidx.lifecycle.LiveData
 import androidx.lifecycle.MutableLiveData
 import com.sduduzog.slimlauncher.data.model.App
 import com.sduduzog.slimlauncher.data.model.HomeApp
+import com.sduduzog.slimlauncher.data.model.Note
 
 class MainViewModel(application: Application) : AndroidViewModel(application) {
 
     private val _appRepository = AppRepository(application)
+    private val _noteRepository  = NoteRepository(application)
 
     private var _apps: LiveData<List<HomeApp>>
+    private var _notes: LiveData<List<Note>>
 
     init {
         _apps = _appRepository.apps
+        _notes = _noteRepository.notes
     }
 
     val apps: LiveData<List<HomeApp>>

+ 15 - 0
app/src/main/java/com/sduduzog/slimlauncher/data/NoteRepository.kt

@@ -0,0 +1,15 @@
+package com.sduduzog.slimlauncher.data
+
+import android.app.Application
+import androidx.lifecycle.LiveData
+import com.sduduzog.slimlauncher.data.model.Note
+
+class NoteRepository(application: Application) {
+    private val db: DataRoomDatabase = DataRoomDatabase.getDatabase(application)!!
+    private val noteDao: NoteDao = db.noteDao()
+
+    private val _notes = noteDao.notes
+
+    val notes: LiveData<List<Note>>
+        get() = _notes
+}

+ 0 - 9
app/src/main/java/com/sduduzog/slimlauncher/data/model/App.kt

@@ -1,16 +1,7 @@
 package com.sduduzog.slimlauncher.data.model
 
-import androidx.room.ColumnInfo
-import androidx.room.Entity
-import androidx.room.PrimaryKey
-
-@Entity(tableName = "apps")
 data class App(
-        @field:ColumnInfo(name = "app_name")
         var appName: String,
-        @PrimaryKey
-        @field:ColumnInfo(name = "package_name")
         var packageName: String,
-        @field:ColumnInfo(name = "activity_name")
         var activityName: String
 )

+ 1 - 1
app/src/main/java/com/sduduzog/slimlauncher/ui/main/HomeFragment.kt

@@ -56,7 +56,7 @@ class HomeFragment : BaseFragment(), OnLaunchAppListener {
 
         setEventListeners()
         home_fragment_options.setOnClickListener(Navigation.createNavigateOnClickListener(R.id.action_homeFragment_to_optionsFragment))
-        home_fragment_notes.setOnClickListener(Navigation.createNavigateOnClickListener(R.id.action_homeFragment_to_notesListFragment))
+        home_fragment_notes.setOnClickListener(Navigation.createNavigateOnClickListener(R.id.action_homeFragment_to_notesFragment))
     }
 
     override fun onStart() {

+ 33 - 0
app/src/main/java/com/sduduzog/slimlauncher/ui/main/NotesFragment.kt

@@ -0,0 +1,33 @@
+package com.sduduzog.slimlauncher.ui.main
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.lifecycle.ViewModelProviders
+import com.sduduzog.slimlauncher.R
+import com.sduduzog.slimlauncher.adapters.NotesAdapter
+import com.sduduzog.slimlauncher.data.MainViewModel
+import com.sduduzog.slimlauncher.ui.BaseFragment
+import kotlinx.android.synthetic.main.notes_fragment.*
+
+class NotesFragment : BaseFragment(){
+
+    override fun getFragmentView(): View = notes_fragment
+
+    private lateinit var viewModel: MainViewModel
+
+    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
+        return inflater.inflate(R.layout.notes_fragment, container, false)
+    }
+
+
+    override fun onActivityCreated(savedInstanceState: Bundle?) {
+        super.onActivityCreated(savedInstanceState)
+        val adapter = NotesAdapter()
+        activity?.let {
+            viewModel = ViewModelProviders.of(it).get(MainViewModel::class.java)
+        } ?: throw Error("Activity null, something here is fucked up")
+        notes_fragment_list.adapter = adapter
+    }
+}

+ 1 - 1
app/src/main/java/com/sduduzog/slimlauncher/ui/main/notes/NoteFragment.kt

@@ -11,7 +11,7 @@ import androidx.lifecycle.ViewModelProviders
 import com.sduduzog.slimlauncher.R
 import com.sduduzog.slimlauncher.data.model.Note
 import com.sduduzog.slimlauncher.ui.BaseFragment
-import com.sduduzog.slimlauncher.ui.main.DoubleClickListener
+import com.sduduzog.slimlauncher.utils.DoubleClickListener
 import kotlinx.android.synthetic.main.note_fragment.*
 import java.security.MessageDigest
 import java.util.*

+ 1 - 1
app/src/main/java/com/sduduzog/slimlauncher/ui/main/notes/NotesListAdapter.kt

@@ -51,7 +51,7 @@ class NotesListAdapter(private val fragment: NotesListFragment) : RecyclerView.A
         holder.edited.text = fragment.getString(R.string.notes_date_placeholder, fWatchDate.format(note.edited))
         val bundle = Bundle()
         bundle.putSerializable("note", note)
-        holder.itemView.setOnClickListener(Navigation.createNavigateOnClickListener(R.id.action_notesListFragment_to_noteFragment, bundle))
+        holder.itemView.setOnClickListener(Navigation.createNavigateOnClickListener(R.id.action_notesFragment_to_noteFragment, bundle))
     }
 
     override fun getItemCount() = notes.size

+ 1 - 1
app/src/main/java/com/sduduzog/slimlauncher/ui/main/notes/NotesListFragment.kt

@@ -25,7 +25,7 @@ class NotesListFragment : Fragment() {
 
     override fun onActivityCreated(savedInstanceState: Bundle?) {
         super.onActivityCreated(savedInstanceState)
-        fab_add_note.setOnClickListener(Navigation.createNavigateOnClickListener(R.id.action_notesListFragment_to_noteFragment))
+        fab_add_note.setOnClickListener(Navigation.createNavigateOnClickListener(R.id.action_notesFragment_to_noteFragment))
         fab_add_note.setOnLongClickListener {
             Log.d("NoteListFragment", "Long press")
             true

+ 0 - 19
app/src/main/java/com/sduduzog/slimlauncher/ui/notes/NotesFragment.kt

@@ -1,19 +0,0 @@
-package com.sduduzog.slimlauncher.ui.notes
-
-import android.os.Bundle
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import android.widget.TextView
-import com.sduduzog.slimlauncher.R
-import com.sduduzog.slimlauncher.ui.BaseFragment
-
-class NotesFragment : BaseFragment(){
-    override fun getFragmentView(): View {
-        return TextView(context)
-    }
-
-    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
-        return inflater.inflate(R.layout.notes_fragment, container, false)
-    }
-}

+ 0 - 1
app/src/main/java/com/sduduzog/slimlauncher/ui/options/CustomiseAppsFragment.kt

@@ -56,7 +56,6 @@ class CustomiseAppsFragment : BaseFragment(), OnShitDoneToAppsListener {
             } ?: adapter.setItems(listOf())
         })
 
-
         customise_apps_fragment_list.adapter = adapter
         val listener: OnItemActionListener = adapter
         val simpleItemTouchCallback = object : ItemTouchHelper.Callback() {

+ 1 - 1
app/src/main/java/com/sduduzog/slimlauncher/ui/main/DoubleClickListener.kt → app/src/main/java/com/sduduzog/slimlauncher/utils/DoubleClickListener.kt

@@ -1,4 +1,4 @@
-package com.sduduzog.slimlauncher.ui.main
+package com.sduduzog.slimlauncher.utils
 
 import android.view.View
 

+ 1 - 1
app/src/main/res/layout/customise_apps_fragment.xml

@@ -13,7 +13,7 @@
         android:layout_height="wrap_content"
         android:layout_marginStart="16dp"
         android:layout_marginLeft="16dp"
-        android:layout_marginTop="32dp"
+        android:layout_marginTop="@dimen/_32sdp"
         android:text="@string/options_fragment_customise_apps"
         android:textAppearance="@style/TextAppearance.AppCompat"
         android:textSize="@dimen/_36ssp"

+ 1 - 1
app/src/main/res/layout/main_fragment_list_item.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <TextView xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/main_label"
+    android:id="@+id/home_fragment_list_item_app_name"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_marginTop="4dp"

+ 27 - 3
app/src/main/res/layout/notes_fragment.xml

@@ -5,19 +5,43 @@
     android:id="@+id/notes_fragment"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    tools:context=".ui.notes.NotesFragment">
+    tools:context=".ui.main.NotesFragment">
 
     <TextView
-        android:id="@+id/textView"
+        android:id="@+id/notes_fragment_title"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginStart="16dp"
         android:layout_marginLeft="16dp"
-        android:layout_marginTop="32dp"
+        android:layout_marginTop="@dimen/_32sdp"
         android:text="@string/main_fragment_notes"
         android:textAppearance="@style/TextAppearance.AppCompat"
         android:textSize="@dimen/_36ssp"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent" />
 
+    <TextView
+        android:id="@+id/notes_fragment_create_note"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/_8sdp"
+        android:padding="@dimen/_12sdp"
+        android:text="@string/notes_fragment_create_new_note"
+        android:textAppearance="@style/TextAppearance.AppCompat"
+        android:textSize="@dimen/_18ssp"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/notes_fragment_title" />
+
+    <androidx.recyclerview.widget.RecyclerView
+        android:id="@+id/notes_fragment_list"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/_8sdp"
+        app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/notes_fragment_create_note"
+        tools:listitem="@layout/notes_fragment_list_item" />
+
 </androidx.constraintlayout.widget.ConstraintLayout>

+ 19 - 0
app/src/main/res/layout/notes_fragment_list_item.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical"
+    android:padding="@dimen/_12sdp">
+
+    <TextView
+        android:id="@+id/notes_fragment_list_item_title"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:textAppearance="@style/TextAppearance.AppCompat"
+        android:textSize="@dimen/_18ssp" />
+
+    <TextView
+        android:id="@+id/notes_fragment_list_item_snippet"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content" />
+</LinearLayout>

+ 11 - 11
app/src/main/res/navigation/nav_graph.xml

@@ -14,8 +14,8 @@
             android:id="@+id/action_homeFragment_to_optionsFragment"
             app:destination="@id/optionsFragment" />
         <action
-            android:id="@+id/action_homeFragment_to_notesListFragment"
-            app:destination="@id/notesListFragment" />
+            android:id="@+id/action_homeFragment_to_notesFragment"
+            app:destination="@id/notesFragment" />
     </fragment>
     <fragment
         android:id="@+id/optionsFragment"
@@ -40,19 +40,19 @@
         android:name="com.sduduzog.slimlauncher.ui.options.AddAppFragment"
         android:label="add_app_fragment"
         tools:layout="@layout/add_app_fragment" />
-    <fragment
-        android:id="@+id/notesListFragment"
-        android:name="com.sduduzog.slimlauncher.ui.main.notes.NotesListFragment"
-        android:label="notes_list_fragment"
-        tools:layout="@layout/notes_list_fragment" >
-        <action
-            android:id="@+id/action_notesListFragment_to_noteFragment"
-            app:destination="@id/noteFragment" />
-    </fragment>
     <fragment
         android:id="@+id/noteFragment"
         android:name="com.sduduzog.slimlauncher.ui.main.notes.NoteFragment"
         android:label="note_fragment"
         tools:layout="@layout/note_fragment" />
+    <fragment
+        android:id="@+id/notesFragment"
+        android:name="com.sduduzog.slimlauncher.ui.main.NotesFragment"
+        android:label="notes_fragment"
+        tools:layout="@layout/notes_fragment" >
+        <action
+            android:id="@+id/action_notesFragment_to_noteFragment"
+            app:destination="@id/noteFragment" />
+    </fragment>
 
 </navigation>

+ 1 - 0
app/src/main/res/values/strings.xml

@@ -53,6 +53,7 @@
     <string name="customise_apps_fragment_counter">%d slot(s) left</string>
     <string name="choose_theme_dialog_title">Choose Theme</string>
     <string name="home_fragment_tasks">Tasks</string>
+    <string name="notes_fragment_create_new_note">Create New Note</string>
 
 
 </resources>