Author: Adam Evyčędo <git@apiote.xyz>
request departures filtered by line name and ID for forwards and backwards compatibility
%!v(PANIC=String method: strings: negative Repeat count)
diff --git a/app/src/main/java/xyz/apiote/bimba/czwek/api/Api.kt b/app/src/main/java/xyz/apiote/bimba/czwek/api/Api.kt index 0c2b7baf7602f3d9a497acf4a57d8edbab02a171..636f8584c92045afa348235cdcbff875bd403eec 100644 --- a/app/src/main/java/xyz/apiote/bimba/czwek/api/Api.kt +++ b/app/src/main/java/xyz/apiote/bimba/czwek/api/Api.kt @@ -136,15 +136,11 @@ server: Server, feedID: String, stop: String, date: LocalDate?, - line: String? = null, limit: Int? = null ): Result { val params = mutableMapOf("code" to stop) if (date != null) { params["date"] = date.format(DateTimeFormatter.ISO_LOCAL_DATE) - } - if (line != null) { - params["line"] = line } if (limit != null) { params["limit"] = limit.toString(10) diff --git a/app/src/main/java/xyz/apiote/bimba/czwek/departures/DeparturesActivity.kt b/app/src/main/java/xyz/apiote/bimba/czwek/departures/DeparturesActivity.kt index a789633381d740d379762612eee71a79baeeb69d..99c53d9f59c726de2f0dd60fc24eb13c8d44d69d 100644 --- a/app/src/main/java/xyz/apiote/bimba/czwek/departures/DeparturesActivity.kt +++ b/app/src/main/java/xyz/apiote/bimba/czwek/departures/DeparturesActivity.kt @@ -263,6 +263,14 @@ connectivityManager.registerNetworkCallback(request, networkCallback) } } + override fun onStart() { + super.onStart() + linesFilter.clear() + getLine()?.let { + linesFilter[it] = true + } + } + override fun onResume() { super.onResume() getDepartures() @@ -291,7 +299,7 @@ fun getDepartures() { adapter.refreshItems() setupSnackbar() - viewModel.getDepartures(this, getLine(), date) + viewModel.getDepartures(this, date) handler.removeCallbacks(runnable) runnable = Runnable { getDepartures() } handler.postDelayed(runnable, 30 * 1000) diff --git a/app/src/main/java/xyz/apiote/bimba/czwek/departures/DeparturesViewModel.kt b/app/src/main/java/xyz/apiote/bimba/czwek/departures/DeparturesViewModel.kt index e5a198517744559aa0d6cf9e64bb0231b01f4230..a93eb3aba06721748653ce20bd6b35e591997495 100644 --- a/app/src/main/java/xyz/apiote/bimba/czwek/departures/DeparturesViewModel.kt +++ b/app/src/main/java/xyz/apiote/bimba/czwek/departures/DeparturesViewModel.kt @@ -34,7 +34,7 @@ var allItemsRequested = false private var feed: FeedInfo? = null private lateinit var code: String - fun getDepartures(context: Context, line: String?, date: LocalDate?) { + fun getDepartures(context: Context, date: LocalDate?) { MainScope().launch { try { if (feed == null) { @@ -47,7 +47,6 @@ val stopDepartures = repository.getDepartures( feed!!.id, code, - line, date, context, requestedItemsNumber diff --git a/app/src/main/java/xyz/apiote/bimba/czwek/repo/Interfaces.kt b/app/src/main/java/xyz/apiote/bimba/czwek/repo/Interfaces.kt index 71db491df3d7eaaa4ffa9aa2352b61ab497257e1..7d70dbc8aa3e2cedc903e6e19ea399841623f2a1 100644 --- a/app/src/main/java/xyz/apiote/bimba/czwek/repo/Interfaces.kt +++ b/app/src/main/java/xyz/apiote/bimba/czwek/repo/Interfaces.kt @@ -25,7 +25,6 @@ suspend fun getDepartures( feedID: String, stop: String, - line: String?, date: LocalDate?, context: Context, limit: Int? diff --git a/app/src/main/java/xyz/apiote/bimba/czwek/repo/OfflineRepository.kt b/app/src/main/java/xyz/apiote/bimba/czwek/repo/OfflineRepository.kt index 4674bcdff37fd253355aa83b084806947a9249bb..060a5e8b409d2253e46f0193a99e0536234e3435 100644 --- a/app/src/main/java/xyz/apiote/bimba/czwek/repo/OfflineRepository.kt +++ b/app/src/main/java/xyz/apiote/bimba/czwek/repo/OfflineRepository.kt @@ -58,7 +58,6 @@ override suspend fun getDepartures( feedID: String, stop: String, - line: String?, date: LocalDate?, context: Context, limit: Int? diff --git a/app/src/main/java/xyz/apiote/bimba/czwek/repo/OnlineRepository.kt b/app/src/main/java/xyz/apiote/bimba/czwek/repo/OnlineRepository.kt index 28a2769f3f25f94b3ef2ed695f4d5ac08b528eb8..46c1285469207349ce1535a492aef6d7b1fb8a30 100644 --- a/app/src/main/java/xyz/apiote/bimba/czwek/repo/OnlineRepository.kt +++ b/app/src/main/java/xyz/apiote/bimba/czwek/repo/OnlineRepository.kt @@ -89,7 +89,6 @@ override suspend fun getDepartures( feedID: String, stop: String, - line: String?, date: LocalDate?, context: Context, limit: Int? @@ -101,7 +100,6 @@ Server.get(context), feedID, stop, date, - line, limit ) if (result.error != null) { diff --git a/app/src/main/java/xyz/apiote/bimba/czwek/search/ui/LineGraphFragment.kt b/app/src/main/java/xyz/apiote/bimba/czwek/search/ui/LineGraphFragment.kt index 88c8d402f9f5bd10433e93faf71794962ea269a3..84c6285e11884e3a4ff364dbe0b27f128f519785 100644 --- a/app/src/main/java/xyz/apiote/bimba/czwek/search/ui/LineGraphFragment.kt +++ b/app/src/main/java/xyz/apiote/bimba/czwek/search/ui/LineGraphFragment.kt @@ -38,6 +38,7 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) adapter = LineGraphAdapter( + arguments?.getString("lineID", "") ?: "", arguments?.getString("lineName", "") ?: "", arguments?.getString("feedID", "") ?: "" ) @@ -87,10 +88,16 @@ } companion object { @JvmStatic - fun newInstance(lineGraph: LineGraph, lineName: String, feedID: String): LineGraphFragment { + fun newInstance( + lineGraph: LineGraph, + lineID: String, + lineName: String, + feedID: String + ): LineGraphFragment { return LineGraphFragment().apply { arguments = Bundle().apply { putParcelable("graph", lineGraph) + putString("lineID", lineID) putString("lineName", lineName) putString("feedID", feedID) } @@ -104,7 +111,11 @@ _binding = null } } -class LineGraphAdapter(private val lineName: String, private val feedID: String) : +class LineGraphAdapter( + private val lineID: String, + private val lineName: String, + private val feedID: String +) : AbstractGraphAdapter<BimbaViewHolder>() { private lateinit var context: Context override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BimbaViewHolder { @@ -120,9 +131,10 @@ val intent = Intent(context, DeparturesActivity::class.java).apply { putExtra("code", it.code) putExtra("name", it.name) putExtra("line", lineName) + putExtra("lineID", lineID) putExtra("feedID", feedID) } context.startActivity(intent) } } -} \ No newline at end of file +} diff --git a/app/src/main/java/xyz/apiote/bimba/czwek/search/ui/SectionsPagerAdapter.kt b/app/src/main/java/xyz/apiote/bimba/czwek/search/ui/SectionsPagerAdapter.kt index 5ade64c86bcdc7d0b0eff9b8b1d98e92db24f46e..ec1c7b9130af99eef56553f45c9014948f705c95 100644 --- a/app/src/main/java/xyz/apiote/bimba/czwek/search/ui/SectionsPagerAdapter.kt +++ b/app/src/main/java/xyz/apiote/bimba/czwek/search/ui/SectionsPagerAdapter.kt @@ -13,7 +13,7 @@ class SectionsPagerAdapter(fm: FragmentManager, val line: Line) : FragmentPagerAdapter(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT) { override fun getItem(position: Int): Fragment { - return LineGraphFragment.newInstance(line.graphs[position], line.name, line.feedID) + return LineGraphFragment.newInstance(line.graphs[position], line.id, line.name, line.feedID) } override fun getPageTitle(position: Int): CharSequence { @@ -23,4 +23,4 @@ override fun getCount(): Int { return line.headsigns.size } -} \ No newline at end of file +}