From a1bc2b6090f7a3bc6b2d62fad60aa37a4b4feb55 Mon Sep 17 00:00:00 2001 From: Altonss <66519591+Altonss@users.noreply.github.com> Date: Sat, 25 May 2024 22:00:22 +0200 Subject: [PATCH 1/2] UI improvements --- .../departures/DepartureViewHolder.kt | 4 +- .../transportr/locations/LineAdapter.kt | 7 +++- .../grobox/transportr/trips/BaseViewHolder.kt | 9 ++-- .../transportr/trips/detail/LegViewHolder.kt | 27 ++++++------ .../transportr/trips/detail/StopViewHolder.kt | 3 +- .../transportr/trips/detail/TripDrawer.kt | 22 ++-------- .../transportr/trips/detail/TripUtils.kt | 4 +- .../transportr/trips/search/TripViewHolder.kt | 3 +- .../java/de/grobox/transportr/ui/LineView.kt | 8 ++-- .../de/grobox/transportr/utils/Constants.java | 3 ++ .../transportr/utils/TransportrUtils.kt | 42 +++++++++++++++++++ app/src/main/res/drawable/platform_box.xml | 17 ++++++++ .../res/drawable/platform_box_secondary.xml | 21 ++++++++++ app/src/main/res/layout/list_item_leg.xml | 40 +++++++++++++++--- app/src/main/res/layout/list_item_stop.xml | 31 ++++++++++---- app/src/main/res/values-ca/strings.xml | 2 +- app/src/main/res/values-cs/strings.xml | 2 +- app/src/main/res/values-da/strings.xml | 2 +- app/src/main/res/values-de/strings.xml | 2 +- app/src/main/res/values-el/strings.xml | 2 +- app/src/main/res/values-eo/strings.xml | 2 +- app/src/main/res/values-es/strings.xml | 2 +- app/src/main/res/values-eu/strings.xml | 2 +- app/src/main/res/values-fa/strings.xml | 2 +- app/src/main/res/values-fr/strings.xml | 2 +- app/src/main/res/values-hu/strings.xml | 2 +- app/src/main/res/values-it/strings.xml | 2 +- app/src/main/res/values-ja/strings.xml | 2 +- app/src/main/res/values-nb/strings.xml | 2 +- app/src/main/res/values-nl/strings.xml | 2 +- app/src/main/res/values-pl/strings.xml | 2 +- app/src/main/res/values-pt-rBR/strings.xml | 2 +- app/src/main/res/values-ro/strings.xml | 2 +- app/src/main/res/values-ru/strings.xml | 2 +- app/src/main/res/values-sv/strings.xml | 2 +- app/src/main/res/values-zh-rTW/strings.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- 37 files changed, 202 insertions(+), 83 deletions(-) create mode 100644 app/src/main/res/drawable/platform_box.xml create mode 100644 app/src/main/res/drawable/platform_box_secondary.xml diff --git a/app/src/main/java/de/grobox/transportr/departures/DepartureViewHolder.kt b/app/src/main/java/de/grobox/transportr/departures/DepartureViewHolder.kt index 0c3f1221f..cb3e196ee 100644 --- a/app/src/main/java/de/grobox/transportr/departures/DepartureViewHolder.kt +++ b/app/src/main/java/de/grobox/transportr/departures/DepartureViewHolder.kt @@ -31,6 +31,7 @@ import de.grobox.transportr.ui.LineView import de.grobox.transportr.utils.DateUtils.formatDelay import de.grobox.transportr.utils.DateUtils.formatTime import de.grobox.transportr.utils.DateUtils.formatRelativeTime +import de.grobox.transportr.utils.TransportrUtils.getLineColor import de.grobox.transportr.utils.TransportrUtils.getLocationName import de.schildbach.pte.dto.Departure import kotlinx.android.synthetic.main.list_item_departure.view.* @@ -77,8 +78,9 @@ internal class DepartureViewHolder(v: View) : RecyclerView.ViewHolder(v) { } } ?: run { delay.visibility = GONE } + val lineColor = getLineColor(line.context, dep.line) // line icon and name - line.setLine(dep.line) + line.setLine(dep.line, lineColor) lineName.text = dep.line.name // line destination diff --git a/app/src/main/java/de/grobox/transportr/locations/LineAdapter.kt b/app/src/main/java/de/grobox/transportr/locations/LineAdapter.kt index de0a253ab..f77a7cee2 100644 --- a/app/src/main/java/de/grobox/transportr/locations/LineAdapter.kt +++ b/app/src/main/java/de/grobox/transportr/locations/LineAdapter.kt @@ -24,6 +24,7 @@ import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import de.grobox.transportr.R import de.grobox.transportr.ui.LineView +import de.grobox.transportr.utils.TransportrUtils import de.schildbach.pte.dto.Line @@ -51,7 +52,9 @@ internal class LineAdapter : RecyclerView.Adapter() { } internal class LineViewHolder(private val lineView: LineView) : RecyclerView.ViewHolder(lineView) { - - fun bind(line: Line) = lineView.setLine(line) + fun bind(line: Line) { + val lineColor = TransportrUtils.getLineColor(lineView.context, line) + lineView.setLine(line, lineColor) + } } diff --git a/app/src/main/java/de/grobox/transportr/trips/BaseViewHolder.kt b/app/src/main/java/de/grobox/transportr/trips/BaseViewHolder.kt index f012eddc3..158785673 100644 --- a/app/src/main/java/de/grobox/transportr/trips/BaseViewHolder.kt +++ b/app/src/main/java/de/grobox/transportr/trips/BaseViewHolder.kt @@ -86,8 +86,11 @@ internal abstract class BaseViewHolder(v: View) : RecyclerView.ViewHolder(v) { @SuppressLint("SetTextI18n") protected fun TextView.addPlatform(position: Position?) { - if (position == null) return - text = "$text ${context.getString(R.string.platform, position.toString())}" + if (position == null) { + visibility = GONE + } else { + text = "${context.getString(R.string.platform, position.toString())}" + visibility = VISIBLE + } } - } diff --git a/app/src/main/java/de/grobox/transportr/trips/detail/LegViewHolder.kt b/app/src/main/java/de/grobox/transportr/trips/detail/LegViewHolder.kt index 212520845..36a8e94ba 100644 --- a/app/src/main/java/de/grobox/transportr/trips/detail/LegViewHolder.kt +++ b/app/src/main/java/de/grobox/transportr/trips/detail/LegViewHolder.kt @@ -26,7 +26,6 @@ import android.view.View.VISIBLE import android.widget.ImageButton import android.widget.ImageView import android.widget.TextView -import androidx.annotation.ColorInt import androidx.core.content.ContextCompat.getColor import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView @@ -38,6 +37,7 @@ import de.grobox.transportr.trips.detail.LegViewHolder.LegType.* import de.grobox.transportr.ui.LineView import de.grobox.transportr.utils.DateUtils import de.grobox.transportr.utils.DateUtils.formatDuration +import de.grobox.transportr.utils.TransportrUtils.getLineColor import de.grobox.transportr.utils.TransportrUtils.getLocationName import de.schildbach.pte.dto.Line import de.schildbach.pte.dto.Stop @@ -58,6 +58,7 @@ internal class LegViewHolder(v: View, private val listener: LegClickListener, pr private val fromCircle: ImageView = v.fromCircle private val fromLocation: TextView = v.fromLocation + private val fromPlatform: TextView = v.fromPlatform private val fromButton: ImageButton = v.fromButton private val lineBar: ImageView = v.lineBar @@ -71,14 +72,17 @@ internal class LegViewHolder(v: View, private val listener: LegClickListener, pr private val toCircle: ImageView = v.toCircle private val toLocation: TextView = v.toLocation + private val toPlatform: TextView = v.toPlatform private val toButton: ImageButton = v.toButton private val adapter = StopAdapter(listener) - fun bind(leg: Leg, legType: LegType) { // Locations fromLocation.text = getLocationName(leg.departure) toLocation.text = getLocationName(leg.arrival) + // Hide platforms by default + fromPlatform.visibility = GONE + toPlatform.visibility = GONE fromLocation.setOnClickListener { listener.onLocationClick(leg.departure) } toLocation.setOnClickListener { listener.onLocationClick(leg.arrival) } @@ -119,11 +123,14 @@ internal class LegViewHolder(v: View, private val listener: LegClickListener, pr setArrivalTimes(toTime, toDelay, leg.arrivalStop) // Departure and Arrival Platform - fromLocation.addPlatform(leg.departurePosition) - toLocation.addPlatform(leg.arrivalPosition) + fromPlatform.addPlatform(leg.departurePosition) + toPlatform.addPlatform(leg.arrivalPosition) + + // Get Line color + val lineColor = getLineColor(lineBar.context, leg.line) // Line - lineView.setLine(leg.line) + lineView.setLine(leg.line, lineColor) if (showLineName && !isNullOrEmpty(leg.line.name)) { lineDestination.text = leg.line.name } else if (leg.destination != null) { @@ -133,7 +140,6 @@ internal class LegViewHolder(v: View, private val listener: LegClickListener, pr } // Line bar - val lineColor = getLineColor(leg.line) fromCircle.setColorFilter(lineColor) lineBar.setColorFilter(lineColor) toCircle.setColorFilter(lineColor) @@ -212,13 +218,4 @@ internal class LegViewHolder(v: View, private val listener: LegClickListener, pr stopsList.visibility = GONE } - @ColorInt - private fun getLineColor(line: Line): Int { - if (line.style == null) return DEFAULT_LINE_COLOR - if (line.style!!.backgroundColor != 0) return line.style!!.backgroundColor - if (line.style!!.backgroundColor2 != 0) return line.style!!.backgroundColor2 - if (line.style!!.foregroundColor != 0) return line.style!!.foregroundColor - return if (line.style!!.borderColor != 0) line.style!!.borderColor else DEFAULT_LINE_COLOR - } - } diff --git a/app/src/main/java/de/grobox/transportr/trips/detail/StopViewHolder.kt b/app/src/main/java/de/grobox/transportr/trips/detail/StopViewHolder.kt index 8ff7bc1ba..b7e4bab0a 100644 --- a/app/src/main/java/de/grobox/transportr/trips/detail/StopViewHolder.kt +++ b/app/src/main/java/de/grobox/transportr/trips/detail/StopViewHolder.kt @@ -37,6 +37,7 @@ internal class StopViewHolder(v: View, private val listener : LegClickListener) private val circle: ImageView = v.circle private val stopLocation: TextView = v.stopLocation + private val stopPlatform: TextView = v.stopPlatform private val stopButton: ImageButton = v.stopButton fun bind(stop: Stop, color: Int) { @@ -71,7 +72,7 @@ internal class StopViewHolder(v: View, private val listener : LegClickListener) stopLocation.text = getLocationName(stop.location) stopLocation.setOnClickListener { listener.onLocationClick(stop.location) } - stopLocation.addPlatform(stop.arrivalPosition) + stopPlatform.addPlatform(stop.arrivalPosition) // show popup on button click stopButton.setOnClickListener { LegPopupMenu(stopButton.context, stopButton, stop).show() } diff --git a/app/src/main/java/de/grobox/transportr/trips/detail/TripDrawer.kt b/app/src/main/java/de/grobox/transportr/trips/detail/TripDrawer.kt index 80c68a55c..a44765dce 100644 --- a/app/src/main/java/de/grobox/transportr/trips/detail/TripDrawer.kt +++ b/app/src/main/java/de/grobox/transportr/trips/detail/TripDrawer.kt @@ -35,6 +35,7 @@ import com.mapbox.mapboxsdk.maps.MapboxMap import de.grobox.transportr.R import de.grobox.transportr.map.MapDrawer import de.grobox.transportr.utils.DateUtils.formatTime +import de.grobox.transportr.utils.TransportrUtils import de.grobox.transportr.utils.hasLocation import de.schildbach.pte.dto.Location import de.schildbach.pte.dto.Point @@ -60,7 +61,7 @@ internal class TripDrawer(context: Context) : MapDrawer(context) { // get colors val backgroundColor = getBackgroundColor(leg) - val foregroundColor = getForegroundColor(leg) + val foregroundColor = TransportrUtils.getTextColorBasedOnBackground(backgroundColor) // draw leg path first, so it is always at the bottom val points = ArrayList(leg.path.size) @@ -135,28 +136,11 @@ internal class TripDrawer(context: Context) : MapDrawer(context) { private fun getBackgroundColor(leg: Leg): Int { if (leg is Public) { val line = leg.line - return if (line?.style != null && line.style!!.backgroundColor != 0) { - line.style!!.backgroundColor - } else { - ContextCompat.getColor(context, R.color.accent) - } + return TransportrUtils.getLineColor(context, line) } return ContextCompat.getColor(context, R.color.walking) } - @ColorInt - private fun getForegroundColor(leg: Leg): Int { - if (leg is Public) { - val line = leg.line - return if (line?.style != null && line.style!!.foregroundColor != 0) { - line.style!!.foregroundColor - } else { - ContextCompat.getColor(context, android.R.color.white) - } - } - return ContextCompat.getColor(context, android.R.color.black) - } - private fun markLocation(map: MapboxMap, location: Location, icon: Icon, text: String) { markLocation(map, location, icon, location.uniqueShortName(), text) } diff --git a/app/src/main/java/de/grobox/transportr/trips/detail/TripUtils.kt b/app/src/main/java/de/grobox/transportr/trips/detail/TripUtils.kt index c58355aaf..34c2c3693 100644 --- a/app/src/main/java/de/grobox/transportr/trips/detail/TripUtils.kt +++ b/app/src/main/java/de/grobox/transportr/trips/detail/TripUtils.kt @@ -108,7 +108,7 @@ internal object TripUtils { if (leg is Trip.Public) { // show departure position if existing if (leg.departurePosition != null) { - str += " " + context.getString(R.string.platform, leg.departurePosition.toString()) + str += " (" + context.getString(R.string.platform, leg.departurePosition.toString()) +")" } str += "\n ${getEmojiForProduct(leg.line?.product)} " leg.line?.label?.let { @@ -126,7 +126,7 @@ internal object TripUtils { // add arrival position if existing if (leg is Trip.Public && leg.arrivalPosition != null) { - str += " ${context.getString(R.string.platform, leg.arrivalPosition.toString())}" + str += " (${context.getString(R.string.platform, leg.arrivalPosition.toString())})" } return str } diff --git a/app/src/main/java/de/grobox/transportr/trips/search/TripViewHolder.kt b/app/src/main/java/de/grobox/transportr/trips/search/TripViewHolder.kt index c0a3f8cba..f5a5ee740 100644 --- a/app/src/main/java/de/grobox/transportr/trips/search/TripViewHolder.kt +++ b/app/src/main/java/de/grobox/transportr/trips/search/TripViewHolder.kt @@ -35,6 +35,7 @@ import de.grobox.transportr.ui.LineView import de.grobox.transportr.utils.DateUtils.formatDuration import de.grobox.transportr.utils.DateUtils.formatTime import de.grobox.transportr.utils.DateUtils.formatRelativeTime +import de.grobox.transportr.utils.TransportrUtils import de.grobox.transportr.utils.TransportrUtils.getLocationName import de.schildbach.pte.dto.Trip import de.schildbach.pte.dto.Trip.Individual @@ -81,7 +82,7 @@ internal class TripViewHolder(private val v: View) : BaseViewHolder(v) { for (leg in trip.legs) { val lineView = LayoutInflater.from(context).inflate(R.layout.list_item_line, lines, false) as LineView when (leg) { - is Public -> lineView.setLine(leg.line) + is Public -> lineView.setLine(leg.line, TransportrUtils.getLineColor(lineView.context, leg.line)) is Individual -> lineView.setWalk() else -> throw RuntimeException() } diff --git a/app/src/main/java/de/grobox/transportr/ui/LineView.kt b/app/src/main/java/de/grobox/transportr/ui/LineView.kt index c511c308f..f14165e98 100644 --- a/app/src/main/java/de/grobox/transportr/ui/LineView.kt +++ b/app/src/main/java/de/grobox/transportr/ui/LineView.kt @@ -31,14 +31,14 @@ import android.util.AttributeSet import de.grobox.transportr.R import de.grobox.transportr.utils.TransportrUtils.dpToPx import de.grobox.transportr.utils.TransportrUtils.getDrawableForProduct +import de.grobox.transportr.utils.TransportrUtils.getTextColorBasedOnBackground import de.schildbach.pte.dto.Line class LineView(context: Context, attr: AttributeSet?) : AppCompatTextView(context, attr) { - fun setLine(line: Line) { + fun setLine(line: Line, backgroundColor: Int) { // get colors - val foregroundColor = line.style?.foregroundColor - val backgroundColor = line.style?.backgroundColor + val foregroundColor = getTextColorBasedOnBackground(backgroundColor) // set colored background val backgroundDrawable = getDrawable(context, R.drawable.line_box) as GradientDrawable @@ -57,7 +57,7 @@ class LineView(context: Context, attr: AttributeSet?) : AppCompatTextView(contex // set colored label text = line.label - if (foregroundColor != null) setTextColor(foregroundColor) + if (foregroundColor != null) setTextColor(getTextColorBasedOnBackground(backgroundColor)) } fun setWalk() { diff --git a/app/src/main/java/de/grobox/transportr/utils/Constants.java b/app/src/main/java/de/grobox/transportr/utils/Constants.java index 687cada8e..c0cd0e148 100644 --- a/app/src/main/java/de/grobox/transportr/utils/Constants.java +++ b/app/src/main/java/de/grobox/transportr/utils/Constants.java @@ -39,4 +39,7 @@ public interface Constants { int LOADER_DEPARTURES = 1; int LOADER_NEARBY_STATIONS = 2; + // Contrast value for line color + double MIN_CONTRAST_RATIO = 1.3; + } diff --git a/app/src/main/java/de/grobox/transportr/utils/TransportrUtils.kt b/app/src/main/java/de/grobox/transportr/utils/TransportrUtils.kt index 653c88632..e4b01ab9a 100644 --- a/app/src/main/java/de/grobox/transportr/utils/TransportrUtils.kt +++ b/app/src/main/java/de/grobox/transportr/utils/TransportrUtils.kt @@ -24,13 +24,17 @@ import android.content.ClipboardManager import android.content.Context import android.content.Context.CLIPBOARD_SERVICE import android.content.Context.CONNECTIVITY_SERVICE +import android.graphics.Color import android.net.ConnectivityManager import android.util.DisplayMetrics.DENSITY_DEFAULT import android.util.TypedValue import androidx.annotation.AttrRes import androidx.annotation.DrawableRes import androidx.core.content.ContextCompat +import androidx.core.graphics.ColorUtils import de.grobox.transportr.R +import de.grobox.transportr.trips.detail.LegViewHolder +import de.schildbach.pte.dto.Line import de.schildbach.pte.dto.Location import de.schildbach.pte.dto.LocationType import de.schildbach.pte.dto.Product @@ -111,6 +115,44 @@ object TransportrUtils { return ContextCompat.getColor(this, typedValue.run { if (resourceId != 0) resourceId else data }) } + fun getLineColor(context: Context, line: Line): Int { + val themeBackgroundColor = context.getColorFromAttr(R.attr.material_drawer_background) + val colorsToCheck = listOfNotNull( + line.style?.backgroundColor, + line.style?.backgroundColor2, + line.style?.foregroundColor, + line.style?.borderColor + ) + + for (color in colorsToCheck) { + if (color != 0) { + return if (isContrastSufficient(color, themeBackgroundColor)) { + color + } else { + invertColor(color) + } + } + } + + return LegViewHolder.DEFAULT_LINE_COLOR + } + + private fun isContrastSufficient(color1: Int, color2: Int): Boolean { + val contrastRatio = ColorUtils.calculateContrast(color1, color2) + return contrastRatio >= Constants.MIN_CONTRAST_RATIO + } + + private fun invertColor(color: Int): Int { + val r = 255 - Color.red(color) + val g = 255 - Color.green(color) + val b = 255 - Color.blue(color) + return Color.rgb(r, g, b) + } + + fun getTextColorBasedOnBackground(backgroundColor: Int): Int { + val luminance = ColorUtils.calculateLuminance(backgroundColor) + return if (luminance > 0.5) Color.BLACK else Color.WHITE + } } fun Location.hasLocation() = hasCoord() && (latAs1E6 != 0 || lonAs1E6 != 0) diff --git a/app/src/main/res/drawable/platform_box.xml b/app/src/main/res/drawable/platform_box.xml new file mode 100644 index 000000000..4dcdbb8fd --- /dev/null +++ b/app/src/main/res/drawable/platform_box.xml @@ -0,0 +1,17 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/platform_box_secondary.xml b/app/src/main/res/drawable/platform_box_secondary.xml new file mode 100644 index 000000000..48e61ed85 --- /dev/null +++ b/app/src/main/res/drawable/platform_box_secondary.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/list_item_leg.xml b/app/src/main/res/layout/list_item_leg.xml index 0fa0e6c50..b5da36ed7 100644 --- a/app/src/main/res/layout/list_item_leg.xml +++ b/app/src/main/res/layout/list_item_leg.xml @@ -56,17 +56,31 @@ android:paddingBottom="8dp" android:textColor="?android:textColorPrimary" android:textSize="16sp" - app:layout_constraintEnd_toStartOf="@+id/toButton" + app:layout_constraintEnd_toStartOf="@+id/fromPlatform" app:layout_constraintLeft_toRightOf="@+id/fromTime" app:layout_constraintRight_toRightOf="parent" app:layout_constraintStart_toEndOf="@+id/fromCircle" app:layout_constraintTop_toTopOf="@+id/fromTime" tools:text="From Location with quite a long name"/> + + @@ -167,7 +182,7 @@ android:background="?selectableItemBackgroundBorderless" android:contentDescription="@string/more" app:tint="?colorControlNormal" - app:layout_constraintStart_toEndOf="@+id/stopsText" + app:layout_constraintStart_toEndOf="@+id/lineBar" app:layout_constraintTop_toBottomOf="@+id/message" app:srcCompat="@drawable/ic_action_navigation_unfold_more" tools:visibility="visible"/> @@ -225,16 +240,31 @@ android:paddingBottom="8dp" android:textColor="?android:textColorPrimary" android:textSize="16sp" - app:layout_constraintEnd_toStartOf="@+id/toButton" + app:layout_constraintEnd_toStartOf="@+id/toPlatform" app:layout_constraintStart_toStartOf="@+id/fromLocation" app:layout_constraintTop_toBottomOf="@+id/stopsList" + android:layout_marginTop="8dp" app:layout_goneMarginTop="8dp" tools:text="To Location has also a very long name"/> + + @@ -54,12 +55,13 @@ + + \ No newline at end of file diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 63ecc94da..f9304b823 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -157,7 +157,7 @@ i sempre saber on ets per no perdre on baixar de l\'autobús. ]]> %d parades - (Andana %s) + Andana %s Per defecte del sistema Data: %s (Atenció: els horaris poden incloure algun retard anunciat) diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 5d2804d16..114d8990c 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -137,7 +137,7 @@ Tato aplikace využívá data různých místních dopravních agentur a poskytu %d zastávek - (Nástupiště %s) + Nástupiště %s Výchozí nastavení systému Datum: %s (Upozornění: časy mohou zahrnovat hlášené zpoždění) diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index a59fe8659..9d43a6273 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -148,7 +148,7 @@ og ved altid hvor du er for ikke at glemme hvor du skal stige af bussen. %d Stoppesteder - (Platform %s) + Platform %s Systemstandard Dato: %s (Bemærk: Tider kan inkludere reporterede forsinkelser) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 26357dd51..cabd35fda 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -154,7 +154,7 @@ und weiß immer, wo man aussteigen muss. %d Haltestellen - (Gleis %s) + Gleis %s Systemstandard Datum: %s (Achtung: Zeiten können gemeldete Verspätungen enthalten) diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 63ff6e027..943254f94 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -141,7 +141,7 @@ %d Στάσεις - (Πλατφόρμα %s) + Πλατφόρμα %s Προεπιλογή συστήματος Ημερομηνία: %s (Προσοχή: Οι χρόνοι μπορεί να περιέχουν αναφερόμενες καθυστερήσεις) diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index bfcce4341..0a5b1e073 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -134,7 +134,7 @@ Tiu ĉi aplikaĵo uzas datumojn de diversaj lokaj firmaoj de publika transporto %d haltejoj - (kajo %s) + kajo %s Sistema implicita Dato: %s (Rimarko: tempoj povas enhavi raportitajn malfruojn) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 0e90d5866..8121ebe2d 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -148,7 +148,7 @@ Inténtelo de nuevo más tarde, por favor. %d paradas - (Andén %s) + Andén %s Predeterminado del sistema Fecha: %s (Atención: los tiempos pueden incluir demoras) diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index 7f4d32712..ac6b07f87 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -153,7 +153,7 @@ eta beti daki non zauden autobusetik non jaitsi jakin dezazun. %d geldialdi - (%s plataforma) + %s plataforma Sistemaren lehenetsia Data: %s (Adi: Denborek atzerapen ezagunak barne-har ditzakete) diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index 40e93a19f..2a1e402ef 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -149,7 +149,7 @@ Transportr مکان ها و سفر های انجام شده متداول را ذ %d توقف - (پلتفورم %s) + پلتفورم %s پیش فرض سیستم تاریخ: %s (توجه: زمان ها ممکن است شمال تاخیر های گزارش شده باشد) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 333aacc15..09b3fdc2b 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -144,7 +144,7 @@ Elle n’utilise pas non plus des outils de suivi comme Google Analytics pour vo %d arrêts - (Quai %s) + Quai %s Valeur par défaut du système Date : %s (Avertissement : les retards signalés peuvent être inclus) diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 9f31b6f92..e4f070417 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -157,7 +157,7 @@ hogy hol kell leszállnia a buszról… %d megálló - (Platform: %s) + Platform: %s Rendszer alapértelmezett Dátum: %s (Figyelem: az idők tartalmazhatják a bejelentett késéseket) diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 0129a8c9d..c36ebe181 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -150,7 +150,7 @@ Inoltre, non usa strumenti di tracciamento come Google Analytics per spiarti. %d fermate - (binario %s) + binario %s Predefinito di sistema Data: %s (Attenzione: l\'orario può includere il ritardo del mezzo) diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 6526367f6..b96d846d0 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -150,7 +150,7 @@ Transportr は頻繁に使用される場所や旅行を保存します。 %d 駅 - (プラットフォーム %s) + プラットフォーム %s システム デフォルト 日付: %s (注意: 時間には報告された遅延が含まれます) diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index 67d1a026d..eef02a623 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -97,7 +97,7 @@ %d stopp - (Plattform %s) + Plattform %s Systemforvalg Dato: %s (Merk: Tidsforespeilinger kan inkludere rapporterte forsinkelser) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index ed900ec97..6a7a44aaa 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -135,7 +135,7 @@ Deze app gebruikt de gegevens van verschillende lokale openbaar vervoersaanbiede %d haltes - (Perron %s) + Perron %s Systeemstandaard Datum: %s (Let op: tijden kunnen gemelde vertragingen bevatten) diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 4fbd4333a..86bbe887e 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -134,7 +134,7 @@ Ta aplikacja korzysta z wielu dostawców danych transportu publicznego i dostarc %d przystanków - (peron %s) + peron %s Domyślny systemowy Data: %s (Uwaga: czasy mogą uwzględniać zaraportowane opóźnienia) diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 75560ca89..855593a1f 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -107,7 +107,7 @@ %d Paradas - (Platforma %s) + Platforma %s Padrão do Sistema Data: %s (Atenção: Os tempos podem incluir atrasos relatados) diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index 0fc846213..e229f2202 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -149,7 +149,7 @@ De asemenea nu foloseşte tool-uri precum Google Analytics pentru a te spiona. %d de opriri - (Peron %s) + Peron %s Implicit al sistemului Data: %s (Atenție: timpurile afișate ar putea include întărzierile rapoartate) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 40603b11f..8c121dce0 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -146,7 +146,7 @@ Transportr сохраняет часто используемые местопо %d остановок - (Платформа %s) + Платформа %s Система по умолчанию Дата: %s (Внимание: могут быть включены сообщения о задержках) diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index e9ca15263..ae9f6047d 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -153,7 +153,7 @@ och vet alltid var du inte ska missa var du ska gå av bussen. %d stopp - (Plattform %s) + Plattform %s Systemstandard Datum: %s (Obs: Tiderna kan inkludera rapporterade förseningar) diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 7ccf79ca5..643a2d1e0 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -86,7 +86,7 @@ %d站 - (%s號月台) + %s號月台 系統預設 日期:%s (注意:時間可能已包含延遲) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 31e90947f..fc0eeefff 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -180,7 +180,7 @@ and always knows where you are to not miss where to get off the bus. - (Platform %s) + Platform %s System Default Date: %s From c9d30b2ba77b4a0c15685c3586aa6cb74edd9bc3 Mon Sep 17 00:00:00 2001 From: Altonss <66519591+altonss@users.noreply.github.com> Date: Wed, 6 Nov 2024 21:51:09 +0100 Subject: [PATCH 2/2] Clean up code --- app/src/main/java/de/grobox/transportr/trips/BaseViewHolder.kt | 2 +- .../main/java/de/grobox/transportr/trips/detail/TripDrawer.kt | 3 +-- .../main/java/de/grobox/transportr/trips/detail/TripUtils.kt | 2 +- app/src/main/java/de/grobox/transportr/ui/LineView.kt | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/de/grobox/transportr/trips/BaseViewHolder.kt b/app/src/main/java/de/grobox/transportr/trips/BaseViewHolder.kt index 158785673..35858a7bb 100644 --- a/app/src/main/java/de/grobox/transportr/trips/BaseViewHolder.kt +++ b/app/src/main/java/de/grobox/transportr/trips/BaseViewHolder.kt @@ -89,7 +89,7 @@ internal abstract class BaseViewHolder(v: View) : RecyclerView.ViewHolder(v) { if (position == null) { visibility = GONE } else { - text = "${context.getString(R.string.platform, position.toString())}" + text = context.getString(R.string.platform, position.toString()) visibility = VISIBLE } } diff --git a/app/src/main/java/de/grobox/transportr/trips/detail/TripDrawer.kt b/app/src/main/java/de/grobox/transportr/trips/detail/TripDrawer.kt index a44765dce..43dece104 100644 --- a/app/src/main/java/de/grobox/transportr/trips/detail/TripDrawer.kt +++ b/app/src/main/java/de/grobox/transportr/trips/detail/TripDrawer.kt @@ -135,8 +135,7 @@ internal class TripDrawer(context: Context) : MapDrawer(context) { @ColorInt private fun getBackgroundColor(leg: Leg): Int { if (leg is Public) { - val line = leg.line - return TransportrUtils.getLineColor(context, line) + return TransportrUtils.getLineColor(context, leg.line) } return ContextCompat.getColor(context, R.color.walking) } diff --git a/app/src/main/java/de/grobox/transportr/trips/detail/TripUtils.kt b/app/src/main/java/de/grobox/transportr/trips/detail/TripUtils.kt index 34c2c3693..2444d7c1d 100644 --- a/app/src/main/java/de/grobox/transportr/trips/detail/TripUtils.kt +++ b/app/src/main/java/de/grobox/transportr/trips/detail/TripUtils.kt @@ -108,7 +108,7 @@ internal object TripUtils { if (leg is Trip.Public) { // show departure position if existing if (leg.departurePosition != null) { - str += " (" + context.getString(R.string.platform, leg.departurePosition.toString()) +")" + str += " (${context.getString(R.string.platform, leg.departurePosition.toString())})" } str += "\n ${getEmojiForProduct(leg.line?.product)} " leg.line?.label?.let { diff --git a/app/src/main/java/de/grobox/transportr/ui/LineView.kt b/app/src/main/java/de/grobox/transportr/ui/LineView.kt index f14165e98..a5cbb5115 100644 --- a/app/src/main/java/de/grobox/transportr/ui/LineView.kt +++ b/app/src/main/java/de/grobox/transportr/ui/LineView.kt @@ -57,7 +57,7 @@ class LineView(context: Context, attr: AttributeSet?) : AppCompatTextView(contex // set colored label text = line.label - if (foregroundColor != null) setTextColor(getTextColorBasedOnBackground(backgroundColor)) + setTextColor(foregroundColor) } fun setWalk() {