Bimba.git

commit b999e2e1acecf0498e23f1810fb49722a7878940

Author: Adam Pioterek <adam.pioterek@protonmail.ch>

refreshing favourites every 15s

 app/src/main/java/ml/adamsprogs/bimba/activities/DashActivity.kt | 26 +


diff --git a/app/src/main/java/ml/adamsprogs/bimba/activities/DashActivity.kt b/app/src/main/java/ml/adamsprogs/bimba/activities/DashActivity.kt
index 18315812aebef80b22dca777641dc3e7e92cebe9..fd6cd1849e48c5ed36074842dce2b727c58b0129 100644
--- a/app/src/main/java/ml/adamsprogs/bimba/activities/DashActivity.kt
+++ b/app/src/main/java/ml/adamsprogs/bimba/activities/DashActivity.kt
@@ -18,8 +18,8 @@ import android.view.Menu
 import android.view.MenuItem
 import android.view.inputmethod.InputMethodManager
 import ml.adamsprogs.bimba.*
+import java.util.*
 
-//todo refresh every 15s
 class DashActivity : AppCompatActivity(), MessageReceiver.OnTimetableDownloadListener, SwipeRefreshLayout.OnRefreshListener, FavouritesAdapter.OnMenuItemClickListener {
     val context: Context = this
     val receiver = MessageReceiver()
@@ -29,6 +29,8 @@     lateinit var swipeRefreshLayout: SwipeRefreshLayout
     lateinit var favouritesList: RecyclerView
     lateinit var searchView: FloatingSearchView
     lateinit var favourites: FavouriteStorage
+    var timer = Timer()
+    private lateinit var timerTask: TimerTask
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
@@ -40,12 +42,16 @@         supportActionBar?.title = getString(R.string.merge_favourites)
 
         prepareSwipeLayout()
 
+        createTimerTask()
+
         prepareOnDownloadListener()
         startDownloaderService()
 
         getStops()
 
         prepareFavourites()
+
+        scheduleRefresh()
 
         searchView = findViewById(R.id.search_view) as FloatingSearchView
 
@@ -114,6 +120,24 @@         val layoutManager = LinearLayoutManager(context)
         favouritesList = findViewById(R.id.favouritesList) as RecyclerView
         favouritesList.adapter = FavouritesAdapter(context, favourites.favouritesList, this)
         favouritesList.layoutManager = layoutManager
+    }
+
+    private fun scheduleRefresh() {
+        timer.cancel()
+        timer = Timer()
+        createTimerTask()
+        timer.scheduleAtFixedRate(timerTask, 0, 15000)
+    }
+
+    private fun createTimerTask() {
+        timerTask = object : TimerTask() {
+            override fun run() {
+                runOnUiThread {
+                    favouritesList.adapter.notifyDataSetChanged()
+                    //todo vm
+                }
+            }
+        }
     }
 
     private fun getStops() {