mirror of
https://github.com/Michatec/Radio.git
synced 2026-05-31 07:52:40 +02:00
Compare commits
22 Commits
f7ddc30127
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| c1bc8b3e19 | |||
| 8835cadd6a | |||
| 384926cf08 | |||
| 2cf98b89b3 | |||
| 6fa1e5e2c0 | |||
| 64d0f3a71f | |||
| c9122d74f8 | |||
| 1879827f4b | |||
| 23079649c5 | |||
| 2c7e02889d | |||
| b1bcfa2137 | |||
| 2814ff2cfa | |||
| a9f8efc72d | |||
| a5e27149ba | |||
| 2688f22a6a | |||
| 73edf9d816 | |||
| 9f39b1dbbd | |||
| 5d82d722bd | |||
| 5d7df9550e | |||
| c7b7114010 | |||
| ed8f17e436 | |||
| 2cc2a23e35 |
@@ -105,6 +105,15 @@ When **Edit Stations** is enabled:
|
|||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>⭐ Star History</summary>
|
||||||
|
|
||||||
|
[](https://www.star-history.com/?repos=michatec%2Fradio&type=date&legend=top-left)
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
<div align="right">
|
<div align="right">
|
||||||
<table><td>
|
<table><td>
|
||||||
<a href="#start-of-content">↥ Scroll to top</a>
|
<a href="#start-of-content">↥ Scroll to top</a>
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ android {
|
|||||||
isCrunchPngs = false
|
isCrunchPngs = false
|
||||||
proguardFiles.addAll(listOf(getDefaultProguardFile("proguard-android-optimize.txt"), file("proguard-rules.pro")))
|
proguardFiles.addAll(listOf(getDefaultProguardFile("proguard-android-optimize.txt"), file("proguard-rules.pro")))
|
||||||
applicationIdSuffix = ".debug"
|
applicationIdSuffix = ".debug"
|
||||||
|
buildConfigField("boolean", "IS_DEBUG_ENABLED", "true")
|
||||||
}
|
}
|
||||||
|
|
||||||
release {
|
release {
|
||||||
@@ -38,6 +39,7 @@ android {
|
|||||||
isShrinkResources = true
|
isShrinkResources = true
|
||||||
isCrunchPngs = true
|
isCrunchPngs = true
|
||||||
proguardFiles.addAll(listOf(getDefaultProguardFile("proguard-android-optimize.txt"), file("proguard-rules.pro")))
|
proguardFiles.addAll(listOf(getDefaultProguardFile("proguard-android-optimize.txt"), file("proguard-rules.pro")))
|
||||||
|
buildConfigField("boolean", "IS_DEBUG_ENABLED", "false")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,10 +9,12 @@
|
|||||||
android:required="false" />
|
android:required="false" />
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"
|
||||||
|
tools:ignore="ForegroundServicesPolicy" />
|
||||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||||
|
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:name=".Radio"
|
android:name=".Radio"
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package com.michatec.radio
|
package com.michatec.radio
|
||||||
|
|
||||||
|
import android.Manifest
|
||||||
|
import android.os.Build
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.SharedPreferences
|
import android.content.SharedPreferences
|
||||||
import android.content.pm.PackageManager
|
import android.content.pm.PackageManager
|
||||||
@@ -13,6 +15,8 @@ import androidx.appcompat.app.AppCompatActivity
|
|||||||
import androidx.appcompat.widget.Toolbar
|
import androidx.appcompat.widget.Toolbar
|
||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
import androidx.navigation.fragment.NavHostFragment
|
import androidx.navigation.fragment.NavHostFragment
|
||||||
|
import androidx.activity.result.contract.ActivityResultContracts
|
||||||
|
import com.google.android.material.snackbar.Snackbar
|
||||||
import androidx.navigation.ui.AppBarConfiguration
|
import androidx.navigation.ui.AppBarConfiguration
|
||||||
import androidx.navigation.ui.NavigationUI
|
import androidx.navigation.ui.NavigationUI
|
||||||
import androidx.navigation.ui.navigateUp
|
import androidx.navigation.ui.navigateUp
|
||||||
@@ -31,6 +35,24 @@ class MainActivity : AppCompatActivity() {
|
|||||||
/* Main class variables */
|
/* Main class variables */
|
||||||
private lateinit var appBarConfiguration: AppBarConfiguration
|
private lateinit var appBarConfiguration: AppBarConfiguration
|
||||||
|
|
||||||
|
// Check if the device running the app is an Android TV instance
|
||||||
|
private val isAndroidTV: Boolean by lazy {
|
||||||
|
packageManager.hasSystemFeature(PackageManager.FEATURE_LEANBACK)
|
||||||
|
}
|
||||||
|
|
||||||
|
// request notification permission (for Android 13+)
|
||||||
|
private val permissionLauncher = registerForActivityResult(
|
||||||
|
ActivityResultContracts.RequestPermission()
|
||||||
|
) { isGranted ->
|
||||||
|
if (!isGranted) {
|
||||||
|
Snackbar.make(
|
||||||
|
findViewById(android.R.id.content),
|
||||||
|
R.string.snackbar_failed_permission_notification,
|
||||||
|
Snackbar.LENGTH_LONG
|
||||||
|
).show()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Overrides attachBaseContext from AppCompatActivity */
|
/* Overrides attachBaseContext from AppCompatActivity */
|
||||||
override fun attachBaseContext(newBase: Context) {
|
override fun attachBaseContext(newBase: Context) {
|
||||||
val languageCode = PreferencesHelper.loadSelectedLanguage()
|
val languageCode = PreferencesHelper.loadSelectedLanguage()
|
||||||
@@ -72,7 +94,7 @@ class MainActivity : AppCompatActivity() {
|
|||||||
supportActionBar?.hide()
|
supportActionBar?.hide()
|
||||||
|
|
||||||
// TV-specific loading logic: Hide the overlay once the app is ready
|
// TV-specific loading logic: Hide the overlay once the app is ready
|
||||||
if (packageManager.hasSystemFeature(PackageManager.FEATURE_LEANBACK)) {
|
if (isAndroidTV) {
|
||||||
Handler(Looper.getMainLooper()).postDelayed({
|
Handler(Looper.getMainLooper()).postDelayed({
|
||||||
hideLoadingOverlay()
|
hideLoadingOverlay()
|
||||||
}, 1200)
|
}, 1200)
|
||||||
@@ -82,6 +104,11 @@ class MainActivity : AppCompatActivity() {
|
|||||||
|
|
||||||
// register listener for changes in shared preferences
|
// register listener for changes in shared preferences
|
||||||
PreferencesHelper.registerPreferenceChangeListener(sharedPreferenceChangeListener)
|
PreferencesHelper.registerPreferenceChangeListener(sharedPreferenceChangeListener)
|
||||||
|
|
||||||
|
// request permissions
|
||||||
|
if (!isAndroidTV && Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||||
|
permissionLauncher.launch(Manifest.permission.POST_NOTIFICATIONS)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Hides the loading/splash overlay */
|
/* Hides the loading/splash overlay */
|
||||||
|
|||||||
@@ -0,0 +1,63 @@
|
|||||||
|
package com.michatec.radio
|
||||||
|
|
||||||
|
import androidx.core.app.NotificationCompat
|
||||||
|
import android.app.NotificationChannel
|
||||||
|
import android.app.NotificationManager
|
||||||
|
import android.app.PendingIntent
|
||||||
|
import android.content.Context
|
||||||
|
import android.content.Intent
|
||||||
|
import com.michatec.radio.R
|
||||||
|
|
||||||
|
object NotificationSys {
|
||||||
|
private const val CHANNEL_ID = "com.michatec.radio.channel"
|
||||||
|
private const val CHANNEL_NAME = "Notifications"
|
||||||
|
private const val NOTIFICATION_ID = 1001
|
||||||
|
|
||||||
|
fun createNotificationChannel(context: Context) {
|
||||||
|
val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
|
||||||
|
|
||||||
|
if (notificationManager.getNotificationChannel(CHANNEL_ID) == null) {
|
||||||
|
val channel = NotificationChannel(
|
||||||
|
CHANNEL_ID,
|
||||||
|
CHANNEL_NAME,
|
||||||
|
NotificationManager.IMPORTANCE_DEFAULT
|
||||||
|
).apply {
|
||||||
|
description = context.getString(R.string.notification_channel_description)
|
||||||
|
}
|
||||||
|
notificationManager.createNotificationChannel(channel)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun showNotification(context: Context, title: String, content: String, intent: Intent? = null) {
|
||||||
|
val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
|
||||||
|
createNotificationChannel(context)
|
||||||
|
|
||||||
|
val targetIntent = intent ?: Intent(context, MainActivity::class.java).apply {
|
||||||
|
flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP
|
||||||
|
}
|
||||||
|
|
||||||
|
val pendingIntent = PendingIntent.getActivity(
|
||||||
|
context,
|
||||||
|
0,
|
||||||
|
targetIntent,
|
||||||
|
PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
|
||||||
|
)
|
||||||
|
|
||||||
|
val notification = NotificationCompat.Builder(context, CHANNEL_ID)
|
||||||
|
.setSmallIcon(R.drawable.ic_notification_app_icon_white_24dp)
|
||||||
|
.setContentTitle(title)
|
||||||
|
.setContentText(content)
|
||||||
|
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
|
||||||
|
.setContentIntent(pendingIntent)
|
||||||
|
.setAutoCancel(true)
|
||||||
|
.build()
|
||||||
|
|
||||||
|
notificationManager.notify(NOTIFICATION_ID, notification)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun showNotification(context: Context, titleResId: Int, contentResId: Int, intent: Intent? = null) {
|
||||||
|
val title = context.getString(titleResId)
|
||||||
|
val content = context.getString(contentResId)
|
||||||
|
showNotification(context, title, content, intent)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -60,6 +60,7 @@ import com.michatec.radio.extensions.*
|
|||||||
import com.michatec.radio.helpers.*
|
import com.michatec.radio.helpers.*
|
||||||
import com.michatec.radio.ui.LayoutHolder
|
import com.michatec.radio.ui.LayoutHolder
|
||||||
import com.michatec.radio.ui.PlayerState
|
import com.michatec.radio.ui.PlayerState
|
||||||
|
import com.michatec.radio.BuildConfig
|
||||||
import kotlinx.coroutines.*
|
import kotlinx.coroutines.*
|
||||||
import kotlinx.coroutines.Dispatchers.IO
|
import kotlinx.coroutines.Dispatchers.IO
|
||||||
import kotlinx.coroutines.Dispatchers.Main
|
import kotlinx.coroutines.Dispatchers.Main
|
||||||
@@ -95,6 +96,11 @@ class PlayerFragment : Fragment(),
|
|||||||
private var tempStationUuid: String = String()
|
private var tempStationUuid: String = String()
|
||||||
private var itemTouchHelper: ItemTouchHelper? = null
|
private var itemTouchHelper: ItemTouchHelper? = null
|
||||||
|
|
||||||
|
// Check if the device running the app is an Android TV instance
|
||||||
|
private val isAndroidTV: Boolean by lazy {
|
||||||
|
context?.packageManager?.hasSystemFeature(PackageManager.FEATURE_LEANBACK) == true
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Overrides onCreate from Fragment */
|
/* Overrides onCreate from Fragment */
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
@@ -831,7 +837,7 @@ class PlayerFragment : Fragment(),
|
|||||||
} else {
|
} else {
|
||||||
activity?.packageManager?.getPackageInfo(requireActivity().packageName, 0)?.versionName
|
activity?.packageManager?.getPackageInfo(requireActivity().packageName, 0)?.versionName
|
||||||
}
|
}
|
||||||
if (latestVersion != current) {
|
if (latestVersion != current && !BuildConfig.IS_DEBUG_ENABLED) {
|
||||||
// We have an update available, tell our user about it
|
// We have an update available, tell our user about it
|
||||||
view?.let {
|
view?.let {
|
||||||
Snackbar.make(it, getString(R.string.app_name) + " " + latestVersion + " " + getString(R.string.snackbar_update_available), 10000)
|
Snackbar.make(it, getString(R.string.app_name) + " " + latestVersion + " " + getString(R.string.snackbar_update_available), 10000)
|
||||||
@@ -849,6 +855,22 @@ class PlayerFragment : Fragment(),
|
|||||||
R.color.default_neutral_white))
|
R.color.default_neutral_white))
|
||||||
.show()
|
.show()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!isAndroidTV) {
|
||||||
|
val releaseUrl = getString(R.string.snackbar_url_app_home_page)
|
||||||
|
|
||||||
|
// Create the clean browser intent that will trigger ONLY when the notification is tapped
|
||||||
|
val updateIntent = Intent(Intent.ACTION_VIEW, Uri.parse(releaseUrl)).apply {
|
||||||
|
putExtra("SOURCE", "SELF")
|
||||||
|
}
|
||||||
|
|
||||||
|
NotificationSys.showNotification(
|
||||||
|
requireContext(),
|
||||||
|
"${getString(R.string.app_name)} $latestVersion",
|
||||||
|
getString(R.string.snackbar_update_available),
|
||||||
|
intent = updateIntent
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}, { error ->
|
}, { error ->
|
||||||
Log.w(TAG, "Update check failed", error)
|
Log.w(TAG, "Update check failed", error)
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ import com.michatec.radio.dialogs.PresetSelectionDialog
|
|||||||
import com.michatec.radio.dialogs.ThemeSelectionDialog
|
import com.michatec.radio.dialogs.ThemeSelectionDialog
|
||||||
import com.michatec.radio.dialogs.YesNoDialog
|
import com.michatec.radio.dialogs.YesNoDialog
|
||||||
import com.michatec.radio.helpers.*
|
import com.michatec.radio.helpers.*
|
||||||
|
import com.michatec.radio.NotificationSys
|
||||||
|
import android.content.pm.PackageManager
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.Dispatchers.IO
|
import kotlinx.coroutines.Dispatchers.IO
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
@@ -38,6 +40,11 @@ class SettingsFragment : PreferenceFragmentCompat(), YesNoDialog.YesNoDialogList
|
|||||||
/* Define log tag */
|
/* Define log tag */
|
||||||
private val TAG: String = SettingsFragment::class.java.simpleName
|
private val TAG: String = SettingsFragment::class.java.simpleName
|
||||||
|
|
||||||
|
// Check if the device running the app is an Android TV instance
|
||||||
|
private val isAndroidTV: Boolean by lazy {
|
||||||
|
context?.packageManager?.hasSystemFeature(PackageManager.FEATURE_LEANBACK) == true
|
||||||
|
}
|
||||||
|
|
||||||
/* Overrides onViewCreated from PreferenceFragmentCompat */
|
/* Overrides onViewCreated from PreferenceFragmentCompat */
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
@@ -309,6 +316,36 @@ class SettingsFragment : PreferenceFragmentCompat(), YesNoDialog.YesNoDialogList
|
|||||||
return@setOnPreferenceClickListener true
|
return@setOnPreferenceClickListener true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// set up "Test Notification" preference
|
||||||
|
val preferenceTestNotification = Preference(context)
|
||||||
|
preferenceTestNotification.title = getString(R.string.pref_test_notification_title)
|
||||||
|
preferenceTestNotification.setIcon(R.drawable.ic_notification_app_icon_24dp)
|
||||||
|
preferenceTestNotification.summary = getString(R.string.pref_test_notification_summary)
|
||||||
|
preferenceTestNotification.setOnPreferenceClickListener {
|
||||||
|
// show test notification
|
||||||
|
NotificationSys.showNotification(
|
||||||
|
context,
|
||||||
|
getString(R.string.pref_test_notification_title),
|
||||||
|
getString(R.string.notification_test_content)
|
||||||
|
)
|
||||||
|
return@setOnPreferenceClickListener true
|
||||||
|
}
|
||||||
|
|
||||||
|
// set up "Security" preference
|
||||||
|
val preferenceSecurity = Preference(context)
|
||||||
|
preferenceSecurity.title = getString(R.string.pref_security_title)
|
||||||
|
preferenceSecurity.setIcon(R.drawable.ic_security_24dp)
|
||||||
|
preferenceSecurity.summary = getString(R.string.pref_security_summary)
|
||||||
|
preferenceSecurity.setOnPreferenceClickListener {
|
||||||
|
// open web browser
|
||||||
|
val intent = Intent().apply {
|
||||||
|
action = Intent.ACTION_VIEW
|
||||||
|
data = "https://github.com/michatec/Radio/blob/master/SECURITY.md".toUri()
|
||||||
|
}
|
||||||
|
startActivity(intent)
|
||||||
|
return@setOnPreferenceClickListener true
|
||||||
|
}
|
||||||
|
|
||||||
val preferenceLanguageSelection = Preference(context)
|
val preferenceLanguageSelection = Preference(context)
|
||||||
preferenceLanguageSelection.title = getString(R.string.pref_language_selection_title)
|
preferenceLanguageSelection.title = getString(R.string.pref_language_selection_title)
|
||||||
preferenceLanguageSelection.setIcon(R.drawable.ic_language_24dp)
|
preferenceLanguageSelection.setIcon(R.drawable.ic_language_24dp)
|
||||||
@@ -349,6 +386,10 @@ class SettingsFragment : PreferenceFragmentCompat(), YesNoDialog.YesNoDialogList
|
|||||||
preferenceCategoryGeneral.addPreference(preferenceThemeSelection)
|
preferenceCategoryGeneral.addPreference(preferenceThemeSelection)
|
||||||
preferenceCategoryGeneral.addPreference(preferenceLanguageSelection)
|
preferenceCategoryGeneral.addPreference(preferenceLanguageSelection)
|
||||||
|
|
||||||
|
if (!isAndroidTV) {
|
||||||
|
preferenceCategoryGeneral.addPreference(preferenceTestNotification)
|
||||||
|
}
|
||||||
|
|
||||||
screen.addPreference(preferenceCategoryAudioEffects)
|
screen.addPreference(preferenceCategoryAudioEffects)
|
||||||
preferenceCategoryAudioEffects.addPreference(preferenceBassBoost)
|
preferenceCategoryAudioEffects.addPreference(preferenceBassBoost)
|
||||||
preferenceCategoryAudioEffects.addPreference(preferenceReverb)
|
preferenceCategoryAudioEffects.addPreference(preferenceReverb)
|
||||||
@@ -375,6 +416,7 @@ class SettingsFragment : PreferenceFragmentCompat(), YesNoDialog.YesNoDialogList
|
|||||||
screen.addPreference(preferenceCategoryLinks)
|
screen.addPreference(preferenceCategoryLinks)
|
||||||
preferenceCategoryLinks.addPreference(preferenceGitHub)
|
preferenceCategoryLinks.addPreference(preferenceGitHub)
|
||||||
preferenceCategoryLinks.addPreference(preferenceLicense)
|
preferenceCategoryLinks.addPreference(preferenceLicense)
|
||||||
|
preferenceCategoryLinks.addPreference(preferenceSecurity)
|
||||||
|
|
||||||
preferenceScreen = screen
|
preferenceScreen = screen
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,9 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportWidth="24.0"
|
||||||
|
android:viewportHeight="24.0">
|
||||||
|
<path
|
||||||
|
android:fillColor="@color/icon_default"
|
||||||
|
android:pathData="M12,1L3,5v6c0,5.55 3.84,10.74 9,12c5.16-1.26 9-6.45 9-12V5l-9,-4z"/>
|
||||||
|
</vector>
|
||||||
@@ -44,6 +44,8 @@
|
|||||||
<string name="notification_stop">Stop</string>
|
<string name="notification_stop">Stop</string>
|
||||||
<string name="notification_skip_to_previous">Forrige</string>
|
<string name="notification_skip_to_previous">Forrige</string>
|
||||||
<string name="notification_skip_to_next">Næste</string>
|
<string name="notification_skip_to_next">Næste</string>
|
||||||
|
<string name="notification_test_content">Dette er en testmeddelelse.</string>
|
||||||
|
<string name="notification_channel_description">Alle meddelelser om app’en.</string>
|
||||||
<!-- Onboarding -->
|
<!-- Onboarding -->
|
||||||
<string name="onboarding_app_description">Fordyb dig i lyden du elsker!</string>
|
<string name="onboarding_app_description">Fordyb dig i lyden du elsker!</string>
|
||||||
<string name="onboarding_app_get_started">Kom i gang</string>
|
<string name="onboarding_app_get_started">Kom i gang</string>
|
||||||
@@ -84,6 +86,8 @@
|
|||||||
<string name="pref_theme_selection_title">App-tema</string>
|
<string name="pref_theme_selection_title">App-tema</string>
|
||||||
<string name="pref_update_station_images_summary">Download nyeste stationsbilleder.</string>
|
<string name="pref_update_station_images_summary">Download nyeste stationsbilleder.</string>
|
||||||
<string name="pref_update_station_images_title">Opdater stationsbilleder</string>
|
<string name="pref_update_station_images_title">Opdater stationsbilleder</string>
|
||||||
|
<string name="pref_test_notification_title">Testmeddelelse</string>
|
||||||
|
<string name="pref_test_notification_summary">Test om meddelelsessystemet virker.</string>
|
||||||
<!-- App-genveje -->
|
<!-- App-genveje -->
|
||||||
<string name="shortcut_last_station_disabled_message">Genvej til seneste station er deaktiveret.</string>
|
<string name="shortcut_last_station_disabled_message">Genvej til seneste station er deaktiveret.</string>
|
||||||
<string name="shortcut_last_station_long_label">Afspil seneste station</string>
|
<string name="shortcut_last_station_long_label">Afspil seneste station</string>
|
||||||
@@ -111,6 +115,7 @@
|
|||||||
<!-- Snackbars -->
|
<!-- Snackbars -->
|
||||||
<string name="snackbar_show">Vis</string>
|
<string name="snackbar_show">Vis</string>
|
||||||
<string name="snackbar_update_available">er tilgængelig!</string>
|
<string name="snackbar_update_available">er tilgængelig!</string>
|
||||||
|
<string name="snackbar_failed_permission_notification">Kunne ikke anmode om meddelelsestilladelse.</string>
|
||||||
<!-- Language Selection -->
|
<!-- Language Selection -->
|
||||||
<string name="pref_language_selection_title">Sprog</string>
|
<string name="pref_language_selection_title">Sprog</string>
|
||||||
<string name="pref_language_selection_summary">Aktuelt sprog</string>
|
<string name="pref_language_selection_summary">Aktuelt sprog</string>
|
||||||
@@ -123,6 +128,8 @@
|
|||||||
<string name="pref_audio_effects_title">Lydeffekter</string>
|
<string name="pref_audio_effects_title">Lydeffekter</string>
|
||||||
<string name="pref_bass_boost_title">Bas-forstærkning</string>
|
<string name="pref_bass_boost_title">Bas-forstærkning</string>
|
||||||
<string name="pref_bass_boost_summary">Øg basforstærkningen.</string>
|
<string name="pref_bass_boost_summary">Øg basforstærkningen.</string>
|
||||||
|
<string name="pref_security_title">Sikkerhed</string>
|
||||||
|
<string name="pref_security_summary">Lær mere om sikkerheden for denne applikation</string>
|
||||||
<string name="pref_reverb_title">Hall</string>
|
<string name="pref_reverb_title">Hall</string>
|
||||||
<string name="pref_reverb_summary">Juster hall-blanding.</string>
|
<string name="pref_reverb_summary">Juster hall-blanding.</string>
|
||||||
<string name="pref_drc_title">Dynamisk rækkeviddekomprimering</string>
|
<string name="pref_drc_title">Dynamisk rækkeviddekomprimering</string>
|
||||||
|
|||||||
@@ -44,6 +44,8 @@
|
|||||||
<string name="notification_stop">Stopp</string>
|
<string name="notification_stop">Stopp</string>
|
||||||
<string name="notification_skip_to_previous">Zurück</string>
|
<string name="notification_skip_to_previous">Zurück</string>
|
||||||
<string name="notification_skip_to_next">Nächste</string>
|
<string name="notification_skip_to_next">Nächste</string>
|
||||||
|
<string name="notification_test_content">Dies ist eine Testbenachrichtigung.</string>
|
||||||
|
<string name="notification_channel_description">Alle Benachrichtigungen über die App.</string>
|
||||||
<!-- Onboarding -->
|
<!-- Onboarding -->
|
||||||
<string name="onboarding_app_description">Tauche ein in den Sound deiner Wahl!</string>
|
<string name="onboarding_app_description">Tauche ein in den Sound deiner Wahl!</string>
|
||||||
<string name="onboarding_app_get_started">Jetzt starten</string>
|
<string name="onboarding_app_get_started">Jetzt starten</string>
|
||||||
@@ -93,6 +95,8 @@
|
|||||||
<string name="pref_theme_selection_title">App-Design</string>
|
<string name="pref_theme_selection_title">App-Design</string>
|
||||||
<string name="pref_update_station_images_summary">Die neueste Version aller Senderbilder herunterladen.</string>
|
<string name="pref_update_station_images_summary">Die neueste Version aller Senderbilder herunterladen.</string>
|
||||||
<string name="pref_update_station_images_title">Senderbilder aktualisieren</string>
|
<string name="pref_update_station_images_title">Senderbilder aktualisieren</string>
|
||||||
|
<string name="pref_test_notification_title">Test-Benachrichtigung</string>
|
||||||
|
<string name="pref_test_notification_summary">Testen, ob das Benachrichtigungssystem funktioniert.</string>
|
||||||
<!-- Sample Text -->
|
<!-- Sample Text -->
|
||||||
<!-- App Shortcuts -->
|
<!-- App Shortcuts -->
|
||||||
<string name="shortcut_last_station_disabled_message">Verknüpfung für Wiedergabe des letzten Senders deaktiviert.</string>
|
<string name="shortcut_last_station_disabled_message">Verknüpfung für Wiedergabe des letzten Senders deaktiviert.</string>
|
||||||
@@ -122,10 +126,13 @@
|
|||||||
<!-- Snackbars -->
|
<!-- Snackbars -->
|
||||||
<string name="snackbar_show">Zeigen</string>
|
<string name="snackbar_show">Zeigen</string>
|
||||||
<string name="snackbar_update_available">ist verfügbar!</string>
|
<string name="snackbar_update_available">ist verfügbar!</string>
|
||||||
|
<string name="snackbar_failed_permission_notification">Fehler bei der Anfrage nach Benachrichtigungsberechtigung.</string>
|
||||||
<string name="pref_audio_effects_title">Audio-Effekte</string>
|
<string name="pref_audio_effects_title">Audio-Effekte</string>
|
||||||
<string name="pref_bass_boost_title">Bass-Boost</string>
|
<string name="pref_bass_boost_title">Bass-Boost</string>
|
||||||
<string name="pref_bass_boost_summary">Erhöhen Sie die Bassverstärkung.</string>
|
<string name="pref_bass_boost_summary">Erhöhen Sie die Bassverstärkung.</string>
|
||||||
<string name="pref_reverb_title">Hall</string>
|
<string name="pref_reverb_title">Hall</string>
|
||||||
|
<string name="pref_security_title">Sicherheit</string>
|
||||||
|
<string name="pref_security_summary">Erfahren Sie mehr über die Sicherheit dieser Anwendung</string>
|
||||||
<string name="pref_reverb_summary">Reverb-Mix anpassen.</string>
|
<string name="pref_reverb_summary">Reverb-Mix anpassen.</string>
|
||||||
<string name="pref_drc_title">Dynamikkompression</string>
|
<string name="pref_drc_title">Dynamikkompression</string>
|
||||||
<string name="pref_drc_summary">Den Dynamikbereich für eine gleichbleibende Lautstärke komprimieren.</string>
|
<string name="pref_drc_summary">Den Dynamikbereich für eine gleichbleibende Lautstärke komprimieren.</string>
|
||||||
|
|||||||
@@ -44,6 +44,8 @@
|
|||||||
<string name="notification_stop">Διακοπή</string>
|
<string name="notification_stop">Διακοπή</string>
|
||||||
<string name="notification_skip_to_previous">Προηγούμενο</string>
|
<string name="notification_skip_to_previous">Προηγούμενο</string>
|
||||||
<string name="notification_skip_to_next">Επόμενο</string>
|
<string name="notification_skip_to_next">Επόμενο</string>
|
||||||
|
<string name="notification_test_content">Αυτή είναι μια δοκιμαστική ειδοποίηση.</string>
|
||||||
|
<string name="notification_channel_description">Όλες οι ειδοποιήσεις σχετικά με την εφαρμογή.</string>
|
||||||
<!-- Onboarding -->
|
<!-- Onboarding -->
|
||||||
<string name="onboarding_app_description">Βυθιστείτε στον ήχο της επιλογής σας!</string>
|
<string name="onboarding_app_description">Βυθιστείτε στον ήχο της επιλογής σας!</string>
|
||||||
<string name="onboarding_app_get_started">Ας ξεκινήσουμε</string>
|
<string name="onboarding_app_get_started">Ας ξεκινήσουμε</string>
|
||||||
@@ -84,6 +86,8 @@
|
|||||||
<string name="pref_theme_selection_title">Θέμα Εφαρμογής</string>
|
<string name="pref_theme_selection_title">Θέμα Εφαρμογής</string>
|
||||||
<string name="pref_update_station_images_summary">Κατεβάστε την τελευταία έκδοση των εικόνων όλων των σταθμών.</string>
|
<string name="pref_update_station_images_summary">Κατεβάστε την τελευταία έκδοση των εικόνων όλων των σταθμών.</string>
|
||||||
<string name="pref_update_station_images_title">Ενημέρωση Εικόνων Σταθμών</string>
|
<string name="pref_update_station_images_title">Ενημέρωση Εικόνων Σταθμών</string>
|
||||||
|
<string name="pref_test_notification_title">Δοκιμαστική Ειδοποίηση</string>
|
||||||
|
<string name="pref_test_notification_summary">Έλεγχος αν το σύστημα ειδοποιήσεων λειτουργεί.</string>
|
||||||
<!-- Sample Text -->
|
<!-- Sample Text -->
|
||||||
<!-- App Shortcuts -->
|
<!-- App Shortcuts -->
|
||||||
<string name="shortcut_last_station_disabled_message">Η συντόμευση για την αναπαραγωγή του τελευταίου σταθμού έχει απενεργοποιηθεί.</string>
|
<string name="shortcut_last_station_disabled_message">Η συντόμευση για την αναπαραγωγή του τελευταίου σταθμού έχει απενεργοποιηθεί.</string>
|
||||||
@@ -113,6 +117,7 @@
|
|||||||
<!-- Snackbars -->
|
<!-- Snackbars -->
|
||||||
<string name="snackbar_show">Εμφάνισε</string>
|
<string name="snackbar_show">Εμφάνισε</string>
|
||||||
<string name="snackbar_update_available">είναι διαθέσιμη!</string>
|
<string name="snackbar_update_available">είναι διαθέσιμη!</string>
|
||||||
|
<string name="snackbar_failed_permission_notification">Απέτυχε η αίτηση δικαιώματος ειδοποίησης.</string>
|
||||||
<!-- Language Selection -->
|
<!-- Language Selection -->
|
||||||
<string name="pref_language_selection_title">Γλώσσα</string>
|
<string name="pref_language_selection_title">Γλώσσα</string>
|
||||||
<string name="pref_language_selection_summary">Τρέχουσα γλώσσα</string>
|
<string name="pref_language_selection_summary">Τρέχουσα γλώσσα</string>
|
||||||
@@ -123,6 +128,8 @@
|
|||||||
<string name="dialog_yes_no_message_update_collection">Κατεβάστε την τελευταία έκδοση όλων των σταθμών;</string>
|
<string name="dialog_yes_no_message_update_collection">Κατεβάστε την τελευταία έκδοση όλων των σταθμών;</string>
|
||||||
<string name="dialog_yes_no_positive_button_update_collection">Ενημέρωση</string>
|
<string name="dialog_yes_no_positive_button_update_collection">Ενημέρωση</string>
|
||||||
<string name="pref_audio_effects_title">Ηχητικά Εφέ</string>
|
<string name="pref_audio_effects_title">Ηχητικά Εφέ</string>
|
||||||
|
<string name="pref_security_title">Ασφάλεια</string>
|
||||||
|
<string name="pref_security_summary">Μάθετε περισσότερα για την ασφάλεια αυτής της εφαρμογής</string>
|
||||||
<string name="pref_bass_boost_title">Ενίσχυση Μπάσων</string>
|
<string name="pref_bass_boost_title">Ενίσχυση Μπάσων</string>
|
||||||
<string name="pref_bass_boost_summary">Αύξηση της ενίσχυσης μπάσων.</string>
|
<string name="pref_bass_boost_summary">Αύξηση της ενίσχυσης μπάσων.</string>
|
||||||
<string name="pref_reverb_title">Αντήχηση</string>
|
<string name="pref_reverb_title">Αντήχηση</string>
|
||||||
|
|||||||
@@ -44,6 +44,8 @@
|
|||||||
<string name="notification_stop">Arrêt</string>
|
<string name="notification_stop">Arrêt</string>
|
||||||
<string name="notification_skip_to_previous">Précédent</string>
|
<string name="notification_skip_to_previous">Précédent</string>
|
||||||
<string name="notification_skip_to_next">Suivant</string>
|
<string name="notification_skip_to_next">Suivant</string>
|
||||||
|
<string name="notification_test_content">Il s’agit d’une notification de test.</string>
|
||||||
|
<string name="notification_channel_description">Toutes les notifications de l’application.</string>
|
||||||
<!-- Onboarding -->
|
<!-- Onboarding -->
|
||||||
<string name="onboarding_app_description">Plongez dans le son de votre choix !</string>
|
<string name="onboarding_app_description">Plongez dans le son de votre choix !</string>
|
||||||
<string name="onboarding_app_get_started">Commencer maintenant</string>
|
<string name="onboarding_app_get_started">Commencer maintenant</string>
|
||||||
@@ -84,6 +86,8 @@
|
|||||||
<string name="pref_theme_selection_title">Thème de lapplication</string>
|
<string name="pref_theme_selection_title">Thème de lapplication</string>
|
||||||
<string name="pref_update_station_images_summary">Télécharger la dernière version de toutes les images des stations.</string>
|
<string name="pref_update_station_images_summary">Télécharger la dernière version de toutes les images des stations.</string>
|
||||||
<string name="pref_update_station_images_title">Mettre à jour les images des stations</string>
|
<string name="pref_update_station_images_title">Mettre à jour les images des stations</string>
|
||||||
|
<string name="pref_test_notification_title">Notification de test</string>
|
||||||
|
<string name="pref_test_notification_summary">Tester si le système de notification fonctionne.</string>
|
||||||
<!-- Raccourcis de l'app -->
|
<!-- Raccourcis de l'app -->
|
||||||
<string name="shortcut_last_station_disabled_message">Raccourci pour lire la dernière station désactivé.</string>
|
<string name="shortcut_last_station_disabled_message">Raccourci pour lire la dernière station désactivé.</string>
|
||||||
<string name="shortcut_last_station_long_label">Lire la dernière station</string>
|
<string name="shortcut_last_station_long_label">Lire la dernière station</string>
|
||||||
@@ -111,6 +115,7 @@
|
|||||||
<!-- Snackbars -->
|
<!-- Snackbars -->
|
||||||
<string name="snackbar_show">Afficher</string>
|
<string name="snackbar_show">Afficher</string>
|
||||||
<string name="snackbar_update_available">est disponible !</string>
|
<string name="snackbar_update_available">est disponible !</string>
|
||||||
|
<string name="snackbar_failed_permission_notification">Échec de la demande d’autorisation de notification.</string>
|
||||||
<!-- Language Selection -->
|
<!-- Language Selection -->
|
||||||
<string name="pref_language_selection_title">Langue</string>
|
<string name="pref_language_selection_title">Langue</string>
|
||||||
<string name="pref_language_selection_summary">Langue actuelle</string>
|
<string name="pref_language_selection_summary">Langue actuelle</string>
|
||||||
@@ -123,6 +128,8 @@
|
|||||||
<string name="pref_audio_effects_title">Effets Audio</string>
|
<string name="pref_audio_effects_title">Effets Audio</string>
|
||||||
<string name="pref_bass_boost_title">Amplification des basses</string>
|
<string name="pref_bass_boost_title">Amplification des basses</string>
|
||||||
<string name="pref_bass_boost_summary">Augmenter l amplification des basses.</string>
|
<string name="pref_bass_boost_summary">Augmenter l amplification des basses.</string>
|
||||||
|
<string name="pref_security_title">Sécurité</string>
|
||||||
|
<string name="pref_security_summary">En savoir plus sur la sécurité de cette application</string>
|
||||||
<string name="pref_reverb_title">Réverbération</string>
|
<string name="pref_reverb_title">Réverbération</string>
|
||||||
<string name="pref_reverb_summary">Ajuster le mix de réverbération.</string>
|
<string name="pref_reverb_summary">Ajuster le mix de réverbération.</string>
|
||||||
<string name="pref_drc_title">Compression Dynamique</string>
|
<string name="pref_drc_title">Compression Dynamique</string>
|
||||||
|
|||||||
@@ -44,6 +44,8 @@
|
|||||||
<string name="notification_stop">停止</string>
|
<string name="notification_stop">停止</string>
|
||||||
<string name="notification_skip_to_previous">前へ</string>
|
<string name="notification_skip_to_previous">前へ</string>
|
||||||
<string name="notification_skip_to_next">次へ</string>
|
<string name="notification_skip_to_next">次へ</string>
|
||||||
|
<string name="notification_test_content">テスト通知です。</string>
|
||||||
|
<string name="notification_channel_description">アプリに関するすべての通知。</string>
|
||||||
<!-- オンボーディング -->
|
<!-- オンボーディング -->
|
||||||
<string name="onboarding_app_description">お気に入りのサウンドの世界に飛び込もう!</string>
|
<string name="onboarding_app_description">お気に入りのサウンドの世界に飛び込もう!</string>
|
||||||
<string name="onboarding_app_get_started">今すぐ始める</string>
|
<string name="onboarding_app_get_started">今すぐ始める</string>
|
||||||
@@ -84,6 +86,8 @@
|
|||||||
<string name="pref_theme_selection_title">アプリテーマ</string>
|
<string name="pref_theme_selection_title">アプリテーマ</string>
|
||||||
<string name="pref_update_station_images_summary">すべての局画像を最新に更新します。</string>
|
<string name="pref_update_station_images_summary">すべての局画像を最新に更新します。</string>
|
||||||
<string name="pref_update_station_images_title">局画像を更新</string>
|
<string name="pref_update_station_images_title">局画像を更新</string>
|
||||||
|
<string name="pref_test_notification_title">テスト通知</string>
|
||||||
|
<string name="pref_test_notification_summary">通知システムが動作するかテストします。</string>
|
||||||
<!-- ショートカット -->
|
<!-- ショートカット -->
|
||||||
<string name="shortcut_last_station_disabled_message">最後に再生した局のショートカットは無効になっています。</string>
|
<string name="shortcut_last_station_disabled_message">最後に再生した局のショートカットは無効になっています。</string>
|
||||||
<string name="shortcut_last_station_long_label">最後の局を再生</string>
|
<string name="shortcut_last_station_long_label">最後の局を再生</string>
|
||||||
@@ -112,6 +116,7 @@
|
|||||||
<!-- スナックバー -->
|
<!-- スナックバー -->
|
||||||
<string name="snackbar_show">表示</string>
|
<string name="snackbar_show">表示</string>
|
||||||
<string name="snackbar_update_available">が利用可能です!</string>
|
<string name="snackbar_update_available">が利用可能です!</string>
|
||||||
|
<string name="snackbar_failed_permission_notification">通知の権限リクエストに失敗しました。</string>
|
||||||
<!-- 言語選択 -->
|
<!-- 言語選択 -->
|
||||||
<string name="pref_language_selection_title">言語</string>
|
<string name="pref_language_selection_title">言語</string>
|
||||||
<string name="pref_language_selection_summary">現在の言語</string>
|
<string name="pref_language_selection_summary">現在の言語</string>
|
||||||
@@ -123,6 +128,8 @@
|
|||||||
<string name="dialog_yes_no_positive_button_update_collection">更新</string>
|
<string name="dialog_yes_no_positive_button_update_collection">更新</string>
|
||||||
<string name="pref_audio_effects_title">オーディオエフェクト</string>
|
<string name="pref_audio_effects_title">オーディオエフェクト</string>
|
||||||
<string name="pref_bass_boost_title">バスブースト</string>
|
<string name="pref_bass_boost_title">バスブースト</string>
|
||||||
|
<string name="pref_security_title">セキュリティ</string>
|
||||||
|
<string name="pref_security_summary">このアプリケーションのセキュリティについて詳しく知る</string>
|
||||||
<string name="pref_bass_boost_summary">低音を増強します。</string>
|
<string name="pref_bass_boost_summary">低音を増強します。</string>
|
||||||
<string name="pref_reverb_title">リバーブ</string>
|
<string name="pref_reverb_title">リバーブ</string>
|
||||||
<string name="pref_reverb_summary">リバーブミスを調整します。</string>
|
<string name="pref_reverb_summary">リバーブミスを調整します。</string>
|
||||||
|
|||||||
@@ -44,6 +44,8 @@
|
|||||||
<string name="notification_stop">Stoppen</string>
|
<string name="notification_stop">Stoppen</string>
|
||||||
<string name="notification_skip_to_previous">Vorige</string>
|
<string name="notification_skip_to_previous">Vorige</string>
|
||||||
<string name="notification_skip_to_next">Volgende</string>
|
<string name="notification_skip_to_next">Volgende</string>
|
||||||
|
<string name="notification_test_content">Dit is een testmelding.</string>
|
||||||
|
<string name="notification_channel_description">Alle meldingen over de app.</string>
|
||||||
<!-- Onboarding -->
|
<!-- Onboarding -->
|
||||||
<string name="onboarding_app_description">Dompel jezelf onder in het geluid van je keuze!</string>
|
<string name="onboarding_app_description">Dompel jezelf onder in het geluid van je keuze!</string>
|
||||||
<string name="onboarding_app_get_started">Aan de slag</string>
|
<string name="onboarding_app_get_started">Aan de slag</string>
|
||||||
@@ -84,6 +86,8 @@
|
|||||||
<string name="pref_theme_selection_title">App Thema</string>
|
<string name="pref_theme_selection_title">App Thema</string>
|
||||||
<string name="pref_update_station_images_summary">Download de laatste versie van alle zenderafbeeldingen.</string>
|
<string name="pref_update_station_images_summary">Download de laatste versie van alle zenderafbeeldingen.</string>
|
||||||
<string name="pref_update_station_images_title">Update Zenderafbeeldingen</string>
|
<string name="pref_update_station_images_title">Update Zenderafbeeldingen</string>
|
||||||
|
<string name="pref_test_notification_title">Testmelding</string>
|
||||||
|
<string name="pref_test_notification_summary">Test of het meldingsysteem werkt.</string>
|
||||||
<!-- Sample Text -->
|
<!-- Sample Text -->
|
||||||
<!-- App Shortcuts -->
|
<!-- App Shortcuts -->
|
||||||
<string name="shortcut_last_station_disabled_message">Snelkoppeling voor het afspelen van de laatste zender uitgeschakeld.</string>
|
<string name="shortcut_last_station_disabled_message">Snelkoppeling voor het afspelen van de laatste zender uitgeschakeld.</string>
|
||||||
@@ -113,6 +117,7 @@
|
|||||||
<!-- Snackbars -->
|
<!-- Snackbars -->
|
||||||
<string name="snackbar_show">Weergeven</string>
|
<string name="snackbar_show">Weergeven</string>
|
||||||
<string name="snackbar_update_available">is beschikbaar!</string>
|
<string name="snackbar_update_available">is beschikbaar!</string>
|
||||||
|
<string name="snackbar_failed_permission_notification">Kan notificatierechtiging niet aanvragen.</string>
|
||||||
<!-- Language Selection -->
|
<!-- Language Selection -->
|
||||||
<string name="pref_language_selection_title">Taal</string>
|
<string name="pref_language_selection_title">Taal</string>
|
||||||
<string name="pref_language_selection_summary">Huidige taal</string>
|
<string name="pref_language_selection_summary">Huidige taal</string>
|
||||||
@@ -123,6 +128,8 @@
|
|||||||
<string name="dialog_yes_no_message_update_collection">Download de laatste versie van alle zenders?</string>
|
<string name="dialog_yes_no_message_update_collection">Download de laatste versie van alle zenders?</string>
|
||||||
<string name="dialog_yes_no_positive_button_update_collection">Bijwerken</string>
|
<string name="dialog_yes_no_positive_button_update_collection">Bijwerken</string>
|
||||||
<string name="pref_audio_effects_title">Audio Effecten</string>
|
<string name="pref_audio_effects_title">Audio Effecten</string>
|
||||||
|
<string name="pref_security_title">Securiteit</string>
|
||||||
|
<string name="pref_security_summary">Meer informatie over de beveiliging van deze toepassing</string>
|
||||||
<string name="pref_bass_boost_title">Bass Boost</string>
|
<string name="pref_bass_boost_title">Bass Boost</string>
|
||||||
<string name="pref_bass_boost_summary">Verhoog de bassversterking.</string>
|
<string name="pref_bass_boost_summary">Verhoog de bassversterking.</string>
|
||||||
<string name="pref_reverb_title">Reverb</string>
|
<string name="pref_reverb_title">Reverb</string>
|
||||||
|
|||||||
@@ -44,6 +44,8 @@
|
|||||||
<string name="notification_stop">Zatrzymaj</string>
|
<string name="notification_stop">Zatrzymaj</string>
|
||||||
<string name="notification_skip_to_previous">Poprzedni</string>
|
<string name="notification_skip_to_previous">Poprzedni</string>
|
||||||
<string name="notification_skip_to_next">Następny</string>
|
<string name="notification_skip_to_next">Następny</string>
|
||||||
|
<string name="notification_test_content">To jest powiadomienie testowe.</string>
|
||||||
|
<string name="notification_channel_description">Wszystkie powiadomienia o aplikacji.</string>
|
||||||
<!-- Onboarding -->
|
<!-- Onboarding -->
|
||||||
<string name="onboarding_app_description">Zanurz się w dźwięku swojego wyboru!</string>
|
<string name="onboarding_app_description">Zanurz się w dźwięku swojego wyboru!</string>
|
||||||
<string name="onboarding_app_get_started">Zaczynamy</string>
|
<string name="onboarding_app_get_started">Zaczynamy</string>
|
||||||
@@ -84,6 +86,8 @@
|
|||||||
<string name="pref_theme_selection_title">Motyw aplikacji</string>
|
<string name="pref_theme_selection_title">Motyw aplikacji</string>
|
||||||
<string name="pref_update_station_images_summary">Pobierz najnowszą wersję wszystkich obrazów stacji w swojej kolekcji.</string>
|
<string name="pref_update_station_images_summary">Pobierz najnowszą wersję wszystkich obrazów stacji w swojej kolekcji.</string>
|
||||||
<string name="pref_update_station_images_title">Aktualizuj zdjęcia stacji</string>
|
<string name="pref_update_station_images_title">Aktualizuj zdjęcia stacji</string>
|
||||||
|
<string name="pref_test_notification_title">Testowe powiadomienie</string>
|
||||||
|
<string name="pref_test_notification_summary">Sprawdź, czy system powiadomień działa.</string>
|
||||||
<!-- Sample Text -->
|
<!-- Sample Text -->
|
||||||
<!-- App Shortcuts -->
|
<!-- App Shortcuts -->
|
||||||
<string name="shortcut_last_station_disabled_message">Skrót do odtwarzania ostatniej stacji jest wyłączony.</string>
|
<string name="shortcut_last_station_disabled_message">Skrót do odtwarzania ostatniej stacji jest wyłączony.</string>
|
||||||
@@ -113,6 +117,7 @@
|
|||||||
<!-- Snackbars -->
|
<!-- Snackbars -->
|
||||||
<string name="snackbar_show">Wyświetl</string>
|
<string name="snackbar_show">Wyświetl</string>
|
||||||
<string name="snackbar_update_available">jest dostępna!</string>
|
<string name="snackbar_update_available">jest dostępna!</string>
|
||||||
|
<string name="snackbar_failed_permission_notification">Nie udało się poprosić o pozwolenie na powiadomienia.</string>
|
||||||
<!-- Language Selection -->
|
<!-- Language Selection -->
|
||||||
<string name="pref_language_selection_title">Język</string>
|
<string name="pref_language_selection_title">Język</string>
|
||||||
<string name="pref_language_selection_summary">Aktualny język</string>
|
<string name="pref_language_selection_summary">Aktualny język</string>
|
||||||
@@ -123,6 +128,8 @@
|
|||||||
<string name="dialog_yes_no_message_update_collection">Pobrać najnowszą wersję wszystkich stacji?</string>
|
<string name="dialog_yes_no_message_update_collection">Pobrać najnowszą wersję wszystkich stacji?</string>
|
||||||
<string name="dialog_yes_no_positive_button_update_collection">Aktualizuj</string>
|
<string name="dialog_yes_no_positive_button_update_collection">Aktualizuj</string>
|
||||||
<string name="pref_audio_effects_title">Efekty Dźwiękowe</string>
|
<string name="pref_audio_effects_title">Efekty Dźwiękowe</string>
|
||||||
|
<string name="pref_security_title">Bezpieczeństwo</string>
|
||||||
|
<string name="pref_security_summary">Dowiedz się więcej o bezpieczeństwie tej aplikacji</string>
|
||||||
<string name="pref_bass_boost_title">Wzmocnienie Basów</string>
|
<string name="pref_bass_boost_title">Wzmocnienie Basów</string>
|
||||||
<string name="pref_bass_boost_summary">Zwiększ wzmocnienie basów.</string>
|
<string name="pref_bass_boost_summary">Zwiększ wzmocnienie basów.</string>
|
||||||
<string name="pref_reverb_title">Pogłos</string>
|
<string name="pref_reverb_title">Pogłos</string>
|
||||||
|
|||||||
@@ -44,6 +44,8 @@
|
|||||||
<string name="notification_stop">Остановить</string>
|
<string name="notification_stop">Остановить</string>
|
||||||
<string name="notification_skip_to_previous">Предыдущий</string>
|
<string name="notification_skip_to_previous">Предыдущий</string>
|
||||||
<string name="notification_skip_to_next">Следующий</string>
|
<string name="notification_skip_to_next">Следующий</string>
|
||||||
|
<string name="notification_test_content">Это тестовое уведомление.</string>
|
||||||
|
<string name="notification_channel_description">Все уведомления о приложении.</string>
|
||||||
<!-- Onboarding -->
|
<!-- Onboarding -->
|
||||||
<string name="onboarding_app_description">Погрузитесь в звук по вашему выбору!</string>
|
<string name="onboarding_app_description">Погрузитесь в звук по вашему выбору!</string>
|
||||||
<string name="onboarding_app_get_started">Начать</string>
|
<string name="onboarding_app_get_started">Начать</string>
|
||||||
@@ -84,6 +86,8 @@
|
|||||||
<string name="pref_theme_selection_title">Тема приложения</string>
|
<string name="pref_theme_selection_title">Тема приложения</string>
|
||||||
<string name="pref_update_station_images_summary">Скачать последнюю версию всех изображений станций.</string>
|
<string name="pref_update_station_images_summary">Скачать последнюю версию всех изображений станций.</string>
|
||||||
<string name="pref_update_station_images_title">Обновить изображения станций</string>
|
<string name="pref_update_station_images_title">Обновить изображения станций</string>
|
||||||
|
<string name="pref_test_notification_title">Тест уведомления</string>
|
||||||
|
<string name="pref_test_notification_summary">Проверить, работает ли система уведомлений.</string>
|
||||||
<!-- Sample Text -->
|
<!-- Sample Text -->
|
||||||
<!-- App Shortcuts -->
|
<!-- App Shortcuts -->
|
||||||
<string name="shortcut_last_station_disabled_message">Ярлык для воспроизведения последней станции отключён.</string>
|
<string name="shortcut_last_station_disabled_message">Ярлык для воспроизведения последней станции отключён.</string>
|
||||||
@@ -113,6 +117,7 @@
|
|||||||
<!-- Snackbars -->
|
<!-- Snackbars -->
|
||||||
<string name="snackbar_show">Показать</string>
|
<string name="snackbar_show">Показать</string>
|
||||||
<string name="snackbar_update_available">доступно!</string>
|
<string name="snackbar_update_available">доступно!</string>
|
||||||
|
<string name="snackbar_failed_permission_notification">Не удалось запросить разрешение на уведомления.</string>
|
||||||
<!-- Language Selection -->
|
<!-- Language Selection -->
|
||||||
<string name="pref_language_selection_title">Язык</string>
|
<string name="pref_language_selection_title">Язык</string>
|
||||||
<string name="pref_language_selection_summary">Текущий язык</string>
|
<string name="pref_language_selection_summary">Текущий язык</string>
|
||||||
@@ -123,6 +128,8 @@
|
|||||||
<string name="dialog_yes_no_message_update_collection">Скачать последнюю версию всех станций?</string>
|
<string name="dialog_yes_no_message_update_collection">Скачать последнюю версию всех станций?</string>
|
||||||
<string name="dialog_yes_no_positive_button_update_collection">Обновить</string>
|
<string name="dialog_yes_no_positive_button_update_collection">Обновить</string>
|
||||||
<string name="pref_audio_effects_title">Звуковые эффекты</string>
|
<string name="pref_audio_effects_title">Звуковые эффекты</string>
|
||||||
|
<string name="pref_security_title">Безопасность</string>
|
||||||
|
<string name="pref_security_summary">Узнать больше о безопасности этого приложения</string>
|
||||||
<string name="pref_bass_boost_title">Усиление басов</string>
|
<string name="pref_bass_boost_title">Усиление басов</string>
|
||||||
<string name="pref_bass_boost_summary">Увеличить усиление басов.</string>
|
<string name="pref_bass_boost_summary">Увеличить усиление басов.</string>
|
||||||
<string name="pref_reverb_title">Реверберация</string>
|
<string name="pref_reverb_title">Реверберация</string>
|
||||||
|
|||||||
@@ -44,6 +44,8 @@
|
|||||||
<string name="notification_stop">Зупинити</string>
|
<string name="notification_stop">Зупинити</string>
|
||||||
<string name="notification_skip_to_previous">Попередня</string>
|
<string name="notification_skip_to_previous">Попередня</string>
|
||||||
<string name="notification_skip_to_next">Наступна</string>
|
<string name="notification_skip_to_next">Наступна</string>
|
||||||
|
<string name="notification_test_content">Це тестове сповіщення.</string>
|
||||||
|
<string name="notification_channel_description">Усі сповіщення про застосунок.</string>
|
||||||
<!-- Onboarding -->
|
<!-- Onboarding -->
|
||||||
<string name="onboarding_app_description">Пориньте у звук на ваш вибір!</string>
|
<string name="onboarding_app_description">Пориньте у звук на ваш вибір!</string>
|
||||||
<string name="onboarding_app_get_started">Початок роботи</string>
|
<string name="onboarding_app_get_started">Початок роботи</string>
|
||||||
@@ -84,6 +86,8 @@
|
|||||||
<string name="pref_theme_selection_title">Тема застосунку</string>
|
<string name="pref_theme_selection_title">Тема застосунку</string>
|
||||||
<string name="pref_update_station_images_summary">Завантажити останню версію всіх зображень станцій.</string>
|
<string name="pref_update_station_images_summary">Завантажити останню версію всіх зображень станцій.</string>
|
||||||
<string name="pref_update_station_images_title">Оновити зображення станцій</string>
|
<string name="pref_update_station_images_title">Оновити зображення станцій</string>
|
||||||
|
<string name="pref_test_notification_title">Тестове сповіщення</string>
|
||||||
|
<string name="pref_test_notification_summary">Перевірити, чи працює система сповіщень.</string>
|
||||||
<!-- Sample Text -->
|
<!-- Sample Text -->
|
||||||
<!-- App Shortcuts -->
|
<!-- App Shortcuts -->
|
||||||
<string name="shortcut_last_station_disabled_message">Ярлик для відтворення останньої станції вимкнено.</string>
|
<string name="shortcut_last_station_disabled_message">Ярлик для відтворення останньої станції вимкнено.</string>
|
||||||
@@ -113,6 +117,7 @@
|
|||||||
<!-- Snackbars -->
|
<!-- Snackbars -->
|
||||||
<string name="snackbar_show">Показати</string>
|
<string name="snackbar_show">Показати</string>
|
||||||
<string name="snackbar_update_available">доступне!</string>
|
<string name="snackbar_update_available">доступне!</string>
|
||||||
|
<string name="snackbar_failed_permission_notification">Не вдалося запитати дозвіл на сповіщення.</string>
|
||||||
<!-- Language Selection -->
|
<!-- Language Selection -->
|
||||||
<string name="pref_language_selection_title">Мова</string>
|
<string name="pref_language_selection_title">Мова</string>
|
||||||
<string name="pref_language_selection_summary">Поточна мова</string>
|
<string name="pref_language_selection_summary">Поточна мова</string>
|
||||||
@@ -123,6 +128,8 @@
|
|||||||
<string name="dialog_yes_no_message_update_collection">Завантажити останню версію всіх станцій?</string>
|
<string name="dialog_yes_no_message_update_collection">Завантажити останню версію всіх станцій?</string>
|
||||||
<string name="dialog_yes_no_positive_button_update_collection">Оновити</string>
|
<string name="dialog_yes_no_positive_button_update_collection">Оновити</string>
|
||||||
<string name="pref_audio_effects_title">Звукові ефекти</string>
|
<string name="pref_audio_effects_title">Звукові ефекти</string>
|
||||||
|
<string name="pref_security_title">Безпека</string>
|
||||||
|
<string name="pref_security_summary">Дізнайтеся більше про безпеку цього додатку</string>
|
||||||
<string name="pref_bass_boost_title">Підсилення басів</string>
|
<string name="pref_bass_boost_title">Підсилення басів</string>
|
||||||
<string name="pref_bass_boost_summary">Збільшити підсилення басів.</string>
|
<string name="pref_bass_boost_summary">Збільшити підсилення басів.</string>
|
||||||
<string name="pref_reverb_title">Реверберація</string>
|
<string name="pref_reverb_title">Реверберація</string>
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
<resources>
|
<resources>
|
||||||
<!-- App Name -->
|
<!-- App Name -->
|
||||||
<string name="app_version_name" translatable="false">\"Red\"</string>
|
<string name="app_version_name" translatable="false">\"Red\"</string>
|
||||||
|
<string name="app_name" translatable="false">Radio</string>
|
||||||
|
|
||||||
<!-- Accessibility Descriptions -->
|
<!-- Accessibility Descriptions -->
|
||||||
<string name="descr_app_icon">App icon depicting an old radio</string>
|
<string name="descr_app_icon">App icon depicting an old radio</string>
|
||||||
@@ -49,6 +50,8 @@
|
|||||||
<string name="notification_stop">Stop</string>
|
<string name="notification_stop">Stop</string>
|
||||||
<string name="notification_skip_to_previous">Previous</string>
|
<string name="notification_skip_to_previous">Previous</string>
|
||||||
<string name="notification_skip_to_next">Next</string>
|
<string name="notification_skip_to_next">Next</string>
|
||||||
|
<string name="notification_test_content">This is a test notification.</string>
|
||||||
|
<string name="notification_channel_description">All notifications about the app.</string>
|
||||||
|
|
||||||
<!-- Onboarding -->
|
<!-- Onboarding -->
|
||||||
<string name="onboarding_app_description">Immerse yourself in the sound of your choice!</string>
|
<string name="onboarding_app_description">Immerse yourself in the sound of your choice!</string>
|
||||||
@@ -124,6 +127,8 @@
|
|||||||
<string name="pref_github_summary" translatable="false">github.com/michatec/Radio</string>
|
<string name="pref_github_summary" translatable="false">github.com/michatec/Radio</string>
|
||||||
<string name="pref_license_title">This application is open source</string>
|
<string name="pref_license_title">This application is open source</string>
|
||||||
<string name="pref_license_summary">Licensed under the GPLv3 License</string>
|
<string name="pref_license_summary">Licensed under the GPLv3 License</string>
|
||||||
|
<string name="pref_security_title">Security</string>
|
||||||
|
<string name="pref_security_summary">Learn more about the security of this application</string>
|
||||||
<string name="pref_links_title">Links</string>
|
<string name="pref_links_title">Links</string>
|
||||||
<string name="pref_m3u_export_summary">Save your radio stations to an M3U playlist file that can be imported into other players.</string>
|
<string name="pref_m3u_export_summary">Save your radio stations to an M3U playlist file that can be imported into other players.</string>
|
||||||
<string name="pref_m3u_export_title">Export M3U</string>
|
<string name="pref_m3u_export_title">Export M3U</string>
|
||||||
@@ -141,6 +146,8 @@
|
|||||||
<string name="pref_theme_selection_title">App Theme</string>
|
<string name="pref_theme_selection_title">App Theme</string>
|
||||||
<string name="pref_update_station_images_summary">Download latest version of all station images.</string>
|
<string name="pref_update_station_images_summary">Download latest version of all station images.</string>
|
||||||
<string name="pref_update_station_images_title">Update Station Images</string>
|
<string name="pref_update_station_images_title">Update Station Images</string>
|
||||||
|
<string name="pref_test_notification_title">Test Notification</string>
|
||||||
|
<string name="pref_test_notification_summary">Test whether the notification system works.</string>
|
||||||
|
|
||||||
<!-- Sample Text -->
|
<!-- Sample Text -->
|
||||||
<string name="sample_text_sleep_timer_remaining_time" translatable="false">00:00</string>
|
<string name="sample_text_sleep_timer_remaining_time" translatable="false">00:00</string>
|
||||||
@@ -182,8 +189,8 @@
|
|||||||
<string name="snackbar_update_available">is available!</string>
|
<string name="snackbar_update_available">is available!</string>
|
||||||
<string name="snackbar_url_app_home_page" translatable="false">https://github.com/michatec/Radio/releases/latest</string>
|
<string name="snackbar_url_app_home_page" translatable="false">https://github.com/michatec/Radio/releases/latest</string>
|
||||||
<string name="snackbar_github_update_check_url" translatable="false">https://api.github.com/repos/michatec/Radio/releases/latest</string>
|
<string name="snackbar_github_update_check_url" translatable="false">https://api.github.com/repos/michatec/Radio/releases/latest</string>
|
||||||
<string name="app_name" translatable="false">Radio</string>
|
|
||||||
<string name="icon_launcher" translatable="false">Icon launcher.</string>
|
<string name="icon_launcher" translatable="false">Icon launcher.</string>
|
||||||
|
<string name="snackbar_failed_permission_notification">Failed to request notification permission.</string>
|
||||||
|
|
||||||
<!-- Extras -->
|
<!-- Extras -->
|
||||||
<string name="loading">Loading…</string>
|
<string name="loading">Loading…</string>
|
||||||
|
|||||||
@@ -6,10 +6,10 @@ freedroidwarn = "V1.13"
|
|||||||
gson = "2.14.0"
|
gson = "2.14.0"
|
||||||
kotlin = "2.3.21"
|
kotlin = "2.3.21"
|
||||||
leanback = "1.2.0"
|
leanback = "1.2.0"
|
||||||
material = "1.13.0"
|
material = "1.14.0"
|
||||||
material3 = "1.4.0"
|
material3 = "1.4.0"
|
||||||
media = "1.8.0"
|
media = "1.8.0"
|
||||||
media3 = "1.10.0"
|
media3 = "1.10.1"
|
||||||
navigation = "2.9.8"
|
navigation = "2.9.8"
|
||||||
paletteKtx = "1.0.0"
|
paletteKtx = "1.0.0"
|
||||||
preferenceKtx = "1.2.1"
|
preferenceKtx = "1.2.1"
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.0-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-bin.zip
|
||||||
networkTimeout=10000
|
networkTimeout=10000
|
||||||
retries=0
|
retries=0
|
||||||
retryBackOffMs=500
|
retryBackOffMs=500
|
||||||
|
|||||||
Reference in New Issue
Block a user