@@ -7,7 +7,6 @@ import androidx.appcompat.app.AppCompatActivity
7
7
import android.os.Bundle
8
8
import android.os.Handler
9
9
import android.preference.PreferenceManager
10
- import android.util.Log
11
10
import android.view.*
12
11
import android.widget.*
13
12
import androidx.appcompat.widget.SearchView
@@ -36,21 +35,23 @@ class MainActivity : AppCompatActivity(), PopupMenu.OnMenuItemClickListener {
36
35
private lateinit var mDbWorkerThread: DbWorkerThread
37
36
private lateinit var pLayout : String
38
37
39
- private val mUiHandler = Handler ()
38
+ private val mUiHandler = Handler () // UI хэндлер для удобной работы с потоком БД
40
39
41
40
override fun onCreate (savedInstanceState : Bundle ? ) {
42
41
super .onCreate(savedInstanceState)
43
42
setContentView(R .layout.activity_main)
44
43
setSupportActionBar(findViewById(R .id.toolbar))
44
+
45
45
mFab = findViewById(R .id.fab)
46
- mDbWorkerThread = DbWorkerThread (" dbWorkerThread" )
46
+ mDbWorkerThread = DbWorkerThread (" dbWorkerThread" ) // Создание дб Воркера
47
47
mDbWorkerThread.start()
48
+
48
49
getPref()
49
50
recyclerView = findViewById(R .id.recycleView)
50
51
setViewManager()
51
52
recyclerView.layoutManager = viewManager
52
53
53
- mDb = NotesDataBase .getInstance(this )
54
+ mDb = NotesDataBase .getInstance(this ) // Получение инстанса БД
54
55
loadDataInListView()
55
56
56
57
mFab.setOnClickListener { view ->
@@ -64,9 +65,11 @@ class MainActivity : AppCompatActivity(), PopupMenu.OnMenuItemClickListener {
64
65
getPref()
65
66
super .onStart()
66
67
}
67
- private fun setViewManager (){
68
- Log .d(" setView" , pLayout.toString())
69
68
69
+ /* *
70
+ * Изменение интефейса в зависимости от настроек приложения
71
+ */
72
+ private fun setViewManager (){
70
73
when (pLayout){
71
74
72
75
" 0" -> viewManager = LinearLayoutManager (this )
@@ -81,11 +84,18 @@ class MainActivity : AppCompatActivity(), PopupMenu.OnMenuItemClickListener {
81
84
setViewManager()
82
85
super .onRestart()
83
86
}
84
- private fun getPref (){
87
+
88
+ /* *
89
+ * Получение настроек приложения
90
+ */
91
+ private fun getPref (){
85
92
val mySharedPref: SharedPreferences = PreferenceManager .getDefaultSharedPreferences(this )
86
93
pLayout = mySharedPref.getString(" layout_list" , " 0" )!!
87
- Log .d(" TEST" , pLayout.toString())
88
94
}
95
+
96
+ /* *
97
+ * Назначение листенера на RecyclerView, создание кэлбэка на свайпы
98
+ */
89
99
private fun setRecyclerViewItemTouchListener () {
90
100
val itemTouchCallback = object : ItemTouchHelper .SimpleCallback (0 ,
91
101
ItemTouchHelper .LEFT or ItemTouchHelper .RIGHT ) {
@@ -106,10 +116,10 @@ class MainActivity : AppCompatActivity(), PopupMenu.OnMenuItemClickListener {
106
116
itemTouchHelper.attachToRecyclerView(recyclerView)
107
117
}
108
118
119
+ /* *
120
+ * Удаление Note с БД
121
+ */
109
122
private fun toDeleteElementFromDb (position : Int ) {
110
- val id = mItems[position].noteId
111
- val size = mItems.size
112
- Log .d(" test" , " $size , $position $" )
113
123
mDbWorkerThread.postTask(Runnable {
114
124
mDb?.notesDataDao()?.deleteNote(mItems[position])
115
125
mUiHandler.post(Runnable {
@@ -123,6 +133,9 @@ class MainActivity : AppCompatActivity(), PopupMenu.OnMenuItemClickListener {
123
133
super .onResume()
124
134
loadDataInListView()
125
135
}
136
+ /* *
137
+ * Подключение к туллбару меню
138
+ */
126
139
override fun onCreateOptionsMenu (menu : Menu ): Boolean {
127
140
val inflater: MenuInflater = menuInflater
128
141
inflater.inflate(R .menu.appbar_menu, menu)
@@ -143,6 +156,9 @@ class MainActivity : AppCompatActivity(), PopupMenu.OnMenuItemClickListener {
143
156
}
144
157
}
145
158
159
+ /* *
160
+ * Назначение листенера на поисковик
161
+ */
146
162
private fun searchQueryTextListener (searchView : SearchView ): Boolean {
147
163
searchView.queryHint = " Search notes"
148
164
searchView.setOnQueryTextListener(object : SearchView .OnQueryTextListener {
@@ -160,6 +176,9 @@ class MainActivity : AppCompatActivity(), PopupMenu.OnMenuItemClickListener {
160
176
return true
161
177
}
162
178
179
+ /* *
180
+ * Поиск заметки в БД, достать и положить в адаптер
181
+ */
163
182
fun getNotesFromDb (query : String ){
164
183
val searchTextQuery = " %$query %"
165
184
mDb!! .notesDataDao().getNotesForQuery(searchTextQuery)
@@ -172,7 +191,7 @@ class MainActivity : AppCompatActivity(), PopupMenu.OnMenuItemClickListener {
172
191
}
173
192
174
193
175
- private fun showPopup (v : View ): Boolean {
194
+ private fun showPopup (v : View ): Boolean {
176
195
PopupMenu (this , v, Gravity .END ).apply {
177
196
// MainActivity implements OnMenuItemClickListener
178
197
setOnMenuItemClickListener(this @MainActivity)
@@ -191,11 +210,14 @@ private fun showPopup(v: View): Boolean{
191
210
}
192
211
}
193
212
213
+ /* *
214
+ * Выгрузить с БД все заметки, достать и положить в адаптер
215
+ */
194
216
private fun loadDataInListView (){
195
217
val task = Runnable {
196
218
val notesData = mDb?.notesDataDao()?.getAll()
197
219
mUiHandler.post {
198
- if (notesData == null || notesData.size == 0 ){
220
+ if (notesData == null || notesData.isEmpty() ){
199
221
showToast(this , " NoData in Cashe..." )
200
222
} else {
201
223
mItems = ArrayList (notesData)
0 commit comments