Author: Adam Pioterek <adam.pioterek@protonmail.ch>
‘minutes’ declination
app/src/main/java/ml/adamsprogs/bimba/Declinator.kt | 17 + app/src/main/java/ml/adamsprogs/bimba/models/DeparturesAdapter.kt | 3 app/src/main/java/ml/adamsprogs/bimba/models/FavouritesAdapter.kt | 5 app/src/main/res/values-pl/strings.xml | 4 app/src/main/res/values/strings.xml | 4
diff --git a/app/src/main/java/ml/adamsprogs/bimba/Declinator.kt b/app/src/main/java/ml/adamsprogs/bimba/Declinator.kt new file mode 100644 index 0000000000000000000000000000000000000000..ea7988accf3986731c2ae4d50e2b22832b8841e5 --- /dev/null +++ b/app/src/main/java/ml/adamsprogs/bimba/Declinator.kt @@ -0,0 +1,17 @@ +package ml.adamsprogs.bimba + +class Declinator { + companion object { + fun decline(number: Long): Int { + when { + number == 0L -> return R.string.now + number % 10 == 0L -> return R.string.departure_in__plural_genitive + number == 1L -> return R.string.departure_in__singular_genitive + number in listOf<Long>(12,13,14) -> return R.string.departure_in__plural_genitive + number % 10 in listOf<Long>(2, 3, 4) -> return R.string.departure_in__plural_nominative + number % 10 in listOf<Long>(1,5,6,7,8,9) -> return R.string.departure_in__plural_genitive + else -> return -1 + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/ml/adamsprogs/bimba/models/DeparturesAdapter.kt b/app/src/main/java/ml/adamsprogs/bimba/models/DeparturesAdapter.kt index 5a81d32ba43c8f72ab348ce651e82bb217bf2aae..0b9376f1f9ef371b34511a3682bec683a909c3b6 100644 --- a/app/src/main/java/ml/adamsprogs/bimba/models/DeparturesAdapter.kt +++ b/app/src/main/java/ml/adamsprogs/bimba/models/DeparturesAdapter.kt @@ -9,6 +9,7 @@ import android.widget.ImageView import android.widget.TextView import ml.adamsprogs.bimba.R import android.view.LayoutInflater +import ml.adamsprogs.bimba.Declinator import java.util.* fun filterDepartures(departures: List<Departure>?): ArrayList<Departure> { @@ -73,7 +74,7 @@ if (departureIn > 60 || departureIn < 0 || !relativeTime) timeString = context.getString(R.string.departure_at, departure.time) else if (departureIn > 0 && !departure.onStop) - timeString = context.getString(R.string.departure_in, departureIn.toString()) + timeString = context.getString(Declinator.decline(departureIn), departureIn.toString()) else timeString = context.getString(R.string.now) diff --git a/app/src/main/java/ml/adamsprogs/bimba/models/FavouritesAdapter.kt b/app/src/main/java/ml/adamsprogs/bimba/models/FavouritesAdapter.kt index 3ed685e237d97f6e6d15c33d89c0281cbd16b601..bb56bcecd403545af3ab83cf0e1e2bcef525f03e 100644 --- a/app/src/main/java/ml/adamsprogs/bimba/models/FavouritesAdapter.kt +++ b/app/src/main/java/ml/adamsprogs/bimba/models/FavouritesAdapter.kt @@ -15,6 +15,7 @@ import android.view.LayoutInflater import java.util.* import kotlin.concurrent.thread import android.util.TypedValue +import ml.adamsprogs.bimba.Declinator import kotlin.collections.ArrayList //todo list to storage @@ -66,8 +67,8 @@ departureTime.set(Calendar.HOUR_OF_DAY, Integer.parseInt(nextDeparture.time.split(":")[0])) departureTime.set(Calendar.MINUTE, Integer.parseInt(nextDeparture.time.split(":")[1])) if (nextDeparture.tomorrow) departureTime.add(Calendar.DAY_OF_MONTH, 1) - val interval = ((departureTime.timeInMillis - now.timeInMillis) / (1000 * 60)).toString() - nextDepartureText = context.getString(R.string.departure_in, interval) + val interval = ((departureTime.timeInMillis - now.timeInMillis) / (1000 * 60)) + nextDepartureText = context.getString(Declinator.decline(interval), interval.toString()) nextDepartureLineText = context.getString(R.string.departure_to_line, nextDeparture.line, nextDeparture.direction) } else { nextDepartureText = context.getString(R.string.no_next_departure) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6e37f6e97479e45c21c82d72d7d839d13b33ce5a..23dead7e4a7df6e3f4ce665185e5b4245602382a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -8,7 +8,6 @@Saturdays <string name="tab_sunday_text">Sundays</string> <string name="action_change_type">Type</string> <string name="departure_type_icon_description" translatable="false">departure type (timetable, VM)</string> - <string name="departure_in">In %1$s minutes</string> <string name="departure_to">→ %1$s</string> <string name="departure_to_line">%1$s → %2$s</string> <string name="departure_at">At %1$s</string> @@ -36,4 +35,7 @@No next departure <string name="action_merge">Merge</string> <string name="merge_favourites">Merge favourites</string> <string name="calculating">Calculating…</string> + <string name="departure_in__singular_genitive">In %1$s minute</string> + <string name="departure_in__plural_genitive">In %1$s minutes</string> + <string name="departure_in__plural_nominative">In %1$s minutes</string> </resources> diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 9e1de01797f8bd0ba0a78b30af233250cf301f66..f2c00bcbb0d545c011d11742146e72b64d4b93e6 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -6,7 +6,6 @@Dni robocze <string name="tab_saturday_text">Soboty</string> <string name="tab_sunday_text">Niedziele</string> <string name="action_change_type">Typ</string> - <string name="departure_in">Za %1$s minut</string> <string name="departure_at">O %1$s</string> <string name="departure_to">→ %1$s</string> <string name="no_db_connect">Połącz się z Internetem aby pobrać rozkład</string> @@ -30,4 +29,7 @@Brak następnego odjazdu <string name="action_merge">Połącz</string> <string name="merge_favourites">Połącz ulubione</string> <string name="calculating">Obliczam…</string> + <string name="departure_in__singular_genitive">Za %1$s minutę</string> + <string name="departure_in__plural_genitive">Za %1$s minut</string> + <string name="departure_in__plural_nominative">Za %1$s minuty</string> </resources> \ No newline at end of file