Bimba.git

commit 715015a7a17304687161a8f13eb241295a8fd9f2

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
+}