Compare commits
No commits in common. "develop" and "0.3.0" have entirely different histories.
|
@ -39,7 +39,7 @@ cache: &global_cache
|
|||
before_script:
|
||||
- git fetch --unshallow --tags
|
||||
after_script:
|
||||
- export versionCode=`$ANDROID_HOME/build-tools/30.0.3/aapt dump badging $apk_file | grep versionCode | awk '{print $3}' | sed s/versionCode=//g | sed s/\'//g`
|
||||
- export versionCode=`$ANDROID_HOME/build-tools/30.0.2/aapt dump badging $apk_file | grep versionCode | awk '{print $3}' | sed s/versionCode=//g | sed s/\'//g`
|
||||
- apt update && apt install gettext-base
|
||||
- cat $metadata_template | envsubst > $metadata_file
|
||||
extends: .gradle-default
|
||||
|
|
|
@ -36,8 +36,8 @@ androidGitVersion {
|
|||
|
||||
android {
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
sourceCompatibility = JavaVersion.VERSION_11
|
||||
targetCompatibility = JavaVersion.VERSION_11
|
||||
}
|
||||
|
||||
namespace = "audio.funkwhale.ffa"
|
||||
|
@ -47,7 +47,7 @@ android {
|
|||
}
|
||||
|
||||
kotlinOptions {
|
||||
jvmTarget = JavaVersion.VERSION_17.toString()
|
||||
jvmTarget = JavaVersion.VERSION_11.toString()
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
|
@ -177,7 +177,7 @@ dependencies {
|
|||
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycleVersion")
|
||||
implementation("androidx.lifecycle:lifecycle-livedata-ktx:$lifecycleVersion")
|
||||
implementation("androidx.coordinatorlayout:coordinatorlayout:1.2.0")
|
||||
implementation("androidx.preference:preference-ktx:1.2.1")
|
||||
implementation("androidx.preference:preference-ktx:1.2.0")
|
||||
implementation("androidx.recyclerview:recyclerview:1.2.1")
|
||||
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
|
||||
implementation("com.google.android.material:material:1.9.0") {
|
||||
|
@ -189,9 +189,9 @@ dependencies {
|
|||
implementation("com.google.android.exoplayer:exoplayer-ui:2.18.1")
|
||||
implementation("com.google.android.exoplayer:extension-mediasession:2.18.1")
|
||||
|
||||
implementation("io.insert-koin:koin-core:3.5.3")
|
||||
implementation("io.insert-koin:koin-android:3.5.3")
|
||||
testImplementation("io.insert-koin:koin-test:3.5.3")
|
||||
implementation("io.insert-koin:koin-core:3.5.0")
|
||||
implementation("io.insert-koin:koin-android:3.5.0")
|
||||
testImplementation("io.insert-koin:koin-test:3.5.0")
|
||||
|
||||
implementation("com.github.PaulWoitaschek.ExoPlayer-Extensions:extension-opus:789a4f83169cff5c7a91655bb828fde2cfde671a") {
|
||||
isTransitive = false
|
||||
|
|
|
@ -1,11 +1,9 @@
|
|||
package audio.funkwhale.ffa.activities
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.res.Configuration
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import android.text.Editable
|
||||
import android.view.ViewGroup
|
||||
import androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
|
@ -66,13 +64,6 @@ class LoginActivity : AppCompatActivity() {
|
|||
override fun onResume() {
|
||||
super.onResume()
|
||||
with(binding) {
|
||||
val preferences = getPreferences(Context.MODE_PRIVATE)
|
||||
val hn = preferences?.getString("hostname", "")
|
||||
if (hn != null && !hn.isEmpty()) {
|
||||
hostname.text = Editable.Factory.getInstance().newEditable(hn)
|
||||
}
|
||||
cleartext.setChecked(preferences?.getBoolean("cleartext", false) ?: false)
|
||||
anonymous.setChecked(preferences?.getBoolean("anonymous", false) ?: false)
|
||||
login.setOnClickListener {
|
||||
var hostname = hostname.text.toString().trim().trim('/')
|
||||
|
||||
|
@ -105,12 +96,6 @@ class LoginActivity : AppCompatActivity() {
|
|||
|
||||
hostnameField.error = message
|
||||
}
|
||||
if (hostnameField.error == null) {
|
||||
val preferences = getPreferences(Context.MODE_PRIVATE)
|
||||
preferences?.edit()?.putString("hostname", hostname)?.commit()
|
||||
preferences?.edit()?.putBoolean("cleartext", cleartext.isChecked)?.commit()
|
||||
preferences?.edit()?.putBoolean("anonymous", anonymous.isChecked)?.commit()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -53,6 +53,9 @@ fun Request.authorize(context: Context, oAuth: OAuth): Request {
|
|||
this@authorize.apply {
|
||||
if (!Settings.isAnonymous()) {
|
||||
oAuth.state().let { state ->
|
||||
state.accessTokenExpirationTime?.let {
|
||||
Log.i("Request.authorize()", "Accesstoken expiration: ${Date(it).format()}")
|
||||
}
|
||||
val old = state.accessToken
|
||||
val auth = ClientSecretPost(oAuth.state().clientSecret)
|
||||
val done = CompletableDeferred<Boolean>()
|
||||
|
@ -61,10 +64,10 @@ fun Request.authorize(context: Context, oAuth: OAuth): Request {
|
|||
state.performActionWithFreshTokens(tokenService, auth) { token, _, e ->
|
||||
if (e != null) {
|
||||
Log.e("Request.authorize()", "performActionWithFreshToken failed: $e")
|
||||
if (e.type != 2 || e.code != 2002) {
|
||||
Log.e("Request.authorize()", Log.getStackTraceString(e))
|
||||
EventBus.send(Event.LogOut)
|
||||
}
|
||||
Log.e("Request.authorize()", Log.getStackTraceString(e))
|
||||
}
|
||||
if (token == old) {
|
||||
Log.i("Request.authorize()", "Accesstoken not renewed")
|
||||
}
|
||||
if (token != old && token != null) {
|
||||
state.save()
|
||||
|
@ -147,4 +150,4 @@ inline fun <T, U, V, W, R> LiveData<T>.mergeWith(
|
|||
}
|
||||
}
|
||||
|
||||
public fun String?.toIntOrElse(default: Int): Int = this?.toIntOrNull(radix = 10) ?: default
|
||||
public fun String?.toIntOrElse(default: Int): Int = this?.toIntOrNull(radix = 10) ?: default
|
|
@ -83,7 +83,7 @@ class OAuth(private val authorizationServiceFactory: AuthorizationServiceFactory
|
|||
refreshAccessToken(state, context)
|
||||
} else {
|
||||
state.isAuthorized
|
||||
}
|
||||
}.also { it.logInfo("tryRefreshAccessToken()") }
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
@ -103,7 +103,6 @@ class OAuth(private val authorizationServiceFactory: AuthorizationServiceFactory
|
|||
if (e != null) {
|
||||
Log.e("OAuth", "performTokenRequest failed: $e")
|
||||
Log.e("OAuth", Log.getStackTraceString(e))
|
||||
EventBus.send(Event.LogOut)
|
||||
} else {
|
||||
state.apply {
|
||||
Log.i("OAuth", "applying new authState")
|
||||
|
|
|
@ -74,9 +74,7 @@ class NowPlayingBottomSheet @JvmOverloads constructor(
|
|||
|
||||
override fun show() {
|
||||
behavior.isHideable = false
|
||||
if (behavior.state == BottomSheetBehavior.STATE_HIDDEN) {
|
||||
close()
|
||||
}
|
||||
close()
|
||||
}
|
||||
|
||||
override fun hide() {
|
||||
|
|
|
@ -65,7 +65,7 @@
|
|||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:layout_margin="8dp"
|
||||
android:contentDescription="@string/control_add_to_favorites"
|
||||
android:contentDescription="@string/control_add_to_favorties"
|
||||
android:src="@drawable/favorite"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/current_playing_details_artist"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
@ -158,4 +158,4 @@
|
|||
app:layout_constraintTop_toBottomOf="@+id/now_playing_details_progress"
|
||||
app:tint="@color/controlForeground" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</layout>
|
||||
</layout>
|
|
@ -81,7 +81,7 @@
|
|||
<string name="radio_random_title">Ausazkoa</string>
|
||||
<string name="radio_random_description">Ausaz hautatutakoak, agian zerbait berria aurkituko duzu!</string>
|
||||
<string name="radio_less_listened_title">Gutxien entzundakoak</string>
|
||||
<string name="control_add_to_favorites">Gehitu gogokoenetara</string>
|
||||
<string name="control_add_to_favorties">Gehitu gogokoenetara</string>
|
||||
<string name="playlist_added_to">%s zerrendan gehitu da</string>
|
||||
<string name="filters">Iragazkiak</string>
|
||||
<string name="fiters_all">Musika guztia</string>
|
||||
|
@ -135,4 +135,4 @@
|
|||
<string name="track_info_details_track_title">Pistaren izenburua</string>
|
||||
<string name="control_toggle">Aldatu erreproduzitzea</string>
|
||||
<string name="radio_favorites_description">Erreproduzitu abesti gogokoenak amaierarik gabeko begizta alai batean.</string>
|
||||
</resources>
|
||||
</resources>
|
|
@ -136,6 +136,6 @@
|
|||
<string name="settings_auto_skip_backwards_on_pause_summary">Nombre de secondes à revenir en arrière lorsque la lecture est en pause</string>
|
||||
<string name="playlist">Liste de lecture</string>
|
||||
<string name="hello_blank_fragment">Bonjour, fragment vide</string>
|
||||
<string name="control_add_to_favorites">Ajouter aux favoris</string>
|
||||
<string name="control_add_to_favorties">Ajouter aux favoris</string>
|
||||
<string name="control_repeat_mode">Mode répétition</string>
|
||||
</resources>
|
||||
</resources>
|
|
@ -133,6 +133,5 @@
|
|||
<string name="settings_auto_skip_backwards_on_pause_summary">Número de segundos a rebobinar cando se pausou a reprodución</string>
|
||||
<string name="playlist">Lista de reprodución</string>
|
||||
<string name="control_repeat_mode">Modo repetición</string>
|
||||
<string name="control_add_to_favorites">Engadir a favoritos</string>
|
||||
<string name="hello_blank_fragment">Borrar esta cadea</string>
|
||||
<string name="control_add_to_favorties">Engadir a favoritos</string>
|
||||
</resources>
|
|
@ -133,7 +133,4 @@
|
|||
</plurals>
|
||||
<string name="login_cleartext">Sta cleartext verkeer toe (HTTP)</string>
|
||||
<string name="settings_media_quality_summary_size">Lichtst beschikbaar nummer zal worden afgespeeld</string>
|
||||
<string name="control_repeat_mode">Herhalingsmodus</string>
|
||||
<string name="control_add_to_favorties">Toevoegen aan favorieten</string>
|
||||
<string name="control_add_to_favorites">Toevoegen aan favorieten</string>
|
||||
</resources>
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="login_error_hostname">Это не может быть воспринято как действительный URL</string>
|
||||
<string name="login_error_hostname">Это не может быть понято как действительный URL</string>
|
||||
<plurals name="downloads_description">
|
||||
<item quantity="one">Загрузка %1$d трека</item>
|
||||
<item quantity="few">Загрузка %1$d треков</item>
|
||||
|
@ -11,19 +11,19 @@
|
|||
<item quantity="few">%1$d трека • %2$s</item>
|
||||
<item quantity="many">%1$d треков • %2$s</item>
|
||||
</plurals>
|
||||
<string name="logout_content">Вы действительно хотите выйти из этого экземпляра Funkwhale\?</string>
|
||||
<string name="logout_content">Вы действительно хотите выйти из этого инстанса Funkwhale\?</string>
|
||||
<string name="logout_title">Выйти</string>
|
||||
<string name="radio_less_listened_description">Проигрывает треки которые вы обычно не слушаете. Пришло время восстановить баланс.</string>
|
||||
<string name="radio_less_listened_title">Малопрослушиваемые</string>
|
||||
<string name="radio_random_description">Совершенно случайные подборки, может быть, вы откроете для себя что-то новое\?</string>
|
||||
<string name="radio_random_description">Полностью случайный выбор, может вы обнаружите для себя новые треки\?</string>
|
||||
<string name="radio_random_title">Случайный порядок</string>
|
||||
<string name="radio_favorites_description">Воспроизвести любимые мелодии в бесконечном цикле счастья.</string>
|
||||
<string name="radio_your_content_description">Подборки из ваших собственных библиотек</string>
|
||||
<string name="radio_favorites_description">Проигрывает ваши любимые мелодии по кругу и никогда не заканчивается.</string>
|
||||
<string name="radio_your_content_description">Подобрано из вашей библиотеки</string>
|
||||
<string name="radio_your_content_title">Ваш контент</string>
|
||||
<string name="radio_user_radios">Пользовательское радио</string>
|
||||
<string name="radio_instance_radios">Радио экземпляра</string>
|
||||
<string name="radio_playback_error">При попытке воспроизвести это радио произошла ошибка</string>
|
||||
<string name="track_info_details_track_instance">Экземпляр Funkwhale</string>
|
||||
<string name="radio_instance_radios">Радио инстанса</string>
|
||||
<string name="radio_playback_error">Произошла ошибка при попытке воспроизвести радио</string>
|
||||
<string name="track_info_details_track_instance">Инстанс Funkwhale</string>
|
||||
<string name="track_info_details_track_bitrate">Битрейт</string>
|
||||
<string name="track_info_details_track_position">Позиция в альбоме</string>
|
||||
<string name="track_info_details_track_duration">Продолжительность</string>
|
||||
|
@ -39,14 +39,14 @@
|
|||
<string name="alt_track_info">Информация о треке</string>
|
||||
<string name="alt_more_options">Больше параметров</string>
|
||||
<string name="alt_album_cover">Обложка альбома</string>
|
||||
<string name="alt_artist_art">Рисунок исполнителя</string>
|
||||
<string name="alt_app_logo">Логотип приложения</string>
|
||||
<string name="alt_artist_art">Изображение исполнителя</string>
|
||||
<string name="alt_app_logo">Иконка приложения</string>
|
||||
<plurals name="album_count">
|
||||
<item quantity="one">%d альбом</item>
|
||||
<item quantity="few">%d альбома</item>
|
||||
<item quantity="many">%d альбомов</item>
|
||||
</plurals>
|
||||
<string name="error_playback">Этот трек не может быть воспроизведен</string>
|
||||
<string name="error_playback">Этот трек не будет проигран</string>
|
||||
<string name="control_next">Следующий трек</string>
|
||||
<string name="control_previous">Прошлый трек</string>
|
||||
<string name="control_toggle">Переключить воспроизведение</string>
|
||||
|
@ -60,7 +60,7 @@
|
|||
<string name="playback_shuffle">Перемешать</string>
|
||||
<string name="playback_media_controls_description">Управление воспроизведением медиа</string>
|
||||
<string name="playback_media_controls">Управление медиа</string>
|
||||
<string name="favorites">Избранное</string>
|
||||
<string name="favorites">Любимые</string>
|
||||
<string name="radios">Радио</string>
|
||||
<string name="playlists">Плейлисты</string>
|
||||
<string name="tracks">Треки</string>
|
||||
|
@ -76,7 +76,7 @@
|
|||
<string name="settings_information_repository_description">Funkwhale для Android™</string>
|
||||
<string name="settings_information_repository_title">Репозиторий</string>
|
||||
<string name="settings_information">Информация</string>
|
||||
<string name="settings_night_mode_system_summary">Ночной режим будет соответствовать системным настройкам</string>
|
||||
<string name="settings_night_mode_system_summary">Тёмный режим будет следовать настройкам системы</string>
|
||||
<string name="settings_night_mode_system">Как указано в настройках системы</string>
|
||||
<string name="settings_night_mode_off_summary">Светлый режим всегда будет включен</string>
|
||||
<string name="settings_night_mode_off">Всегда выключен (светлый режим)</string>
|
||||
|
@ -98,7 +98,7 @@
|
|||
<string name="settings_media_quality">Качество медиа</string>
|
||||
<string name="settings_general">Основные</string>
|
||||
<string name="search_no_results">По вашему запросу ничего не найдено</string>
|
||||
<string name="search_welcome">Введите условия поиска выше и нажмите клавишу Enter, чтобы найти коллекцию</string>
|
||||
<string name="search_welcome">Введите ваш поисковый запрос и нажмите Enter для поиска вашей коллекции</string>
|
||||
<string name="search_placeholder">Поиск исполнителей, альбомов и треков</string>
|
||||
<string name="title_oss_licences">Лицензии открытого исходного кода</string>
|
||||
<string name="title_settings">Настройки</string>
|
||||
|
@ -106,14 +106,14 @@
|
|||
<string name="toolbar_search">Поиск</string>
|
||||
<string name="login_error_userinfo">Мы не смогли получить информацию о вашем аккаунте</string>
|
||||
<string name="login_error_hostname_https">Имя хоста Funkwhale должно быть защищено с помощью HTTPS</string>
|
||||
<string name="login_logging_in">Входим</string>
|
||||
<string name="login_logging_in">Происходит вход</string>
|
||||
<string name="login_submit">Войти</string>
|
||||
<string name="login_password">Пароль</string>
|
||||
<string name="login_username">Имя пользователя</string>
|
||||
<string name="login_anonymous">Анонимная аутентификация</string>
|
||||
<string name="login_cleartext">Разрешить незашифрованный трафик (HTTP)</string>
|
||||
<string name="login_hostname">Имя домена</string>
|
||||
<string name="login_welcome">Пожалуйста, введите данные вашего экземпляра Funkwhale, чтобы получить доступ к его содержимому</string>
|
||||
<string name="login_hostname">Доменное имя</string>
|
||||
<string name="login_welcome">Введите данные вашего инстанса Funkwhale для доступа к контенту</string>
|
||||
<string name="playlist_add_to_new">Новый плейлист…</string>
|
||||
<string name="filters_followed">Подписки на контент</string>
|
||||
<string name="filters_my_music">Моя музыка</string>
|
||||
|
@ -125,17 +125,11 @@
|
|||
<string name="playback_queue_save">Сохранить</string>
|
||||
<string name="playback_queue_clear">Очистить</string>
|
||||
<string name="playback_play">Играть</string>
|
||||
<string name="settings_play_order_in_order_summary">Вы предпочитаете слушать альбомы в порядке</string>
|
||||
<string name="settings_play_order_in_order_summary">Предпочитаемый порядок проигрывания альбомов</string>
|
||||
<string name="settings_play_order_in_order">Проигрывать альбомы в порядке</string>
|
||||
<string name="settings_play_order_shuffle_summary">Вы предпочитаете перетасовывать дорожки альбомов</string>
|
||||
<string name="settings_play_order_shuffle_summary">Перемешивать трэки в альбомах</string>
|
||||
<string name="settings_play_order_shuffle">Перемешать альбомы</string>
|
||||
<string name="settings_play_order">Предпочитаемый порядок</string>
|
||||
<string name="login_error">Ошибка входа: %s</string>
|
||||
<string name="login_error_funkwhale_not_found">Сервер Funkwhale не найден</string>
|
||||
<string name="control_add_to_favorties">Добавить в избранное</string>
|
||||
<string name="hello_blank_fragment">Привет пустой фрагмент</string>
|
||||
<string name="playlist">Плейлист</string>
|
||||
<string name="control_repeat_mode">Режим повтора</string>
|
||||
<string name="settings_auto_skip_backwards_on_pause">Откатиться назад при паузе</string>
|
||||
<string name="settings_auto_skip_backwards_on_pause_summary">Количество секунд для отката назад, когда воспроизведение приостановлено</string>
|
||||
</resources>
|
|
@ -1,138 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="login_hostname">Sunucu adı</string>
|
||||
<string name="login_cleartext">Açık metin trafiğine izin ver (HTTP)</string>
|
||||
<string name="login_username">Kullanıcı Adı</string>
|
||||
<string name="login_password">Parola</string>
|
||||
<string name="login_submit">Giriş</string>
|
||||
<string name="login_logging_in">Oturum aç</string>
|
||||
<string name="login_error">Giriş başarısız oldu: %s</string>
|
||||
<string name="login_error_hostname">Bu geçerli bir Bağlantı olarak anlaşılamaz</string>
|
||||
<string name="login_error_hostname_https">Funkwhale ana sunucu adı HTTPS aracılığıyla güvenli olmalıdır</string>
|
||||
<string name="toolbar_search">Ara</string>
|
||||
<string name="title_downloads">İndirilenler</string>
|
||||
<string name="title_settings">Ayarlar</string>
|
||||
<string name="title_oss_licences">Açık kaynak lisansları</string>
|
||||
<string name="search_placeholder">Sanatçıları, albümleri ve parçaları arayın</string>
|
||||
<string name="search_no_results">Sorgunuz için sonuç bulunamadı</string>
|
||||
<string name="settings_general">Genel</string>
|
||||
<string name="settings_media_quality">Ortam kalitesi</string>
|
||||
<string name="settings_media_quality_quality">En iyi kalite</string>
|
||||
<string name="settings_media_quality_size">En küçük boyut</string>
|
||||
<string name="settings_media_quality_summary_quality">Mevcut en iyi sürüm oynatılacaktır</string>
|
||||
<string name="settings_media_quality_summary_size">Mevcut en küçük parça çalınacaktır</string>
|
||||
<string name="settings_bandwidth_limitation">Bant genişliği sınırlaması</string>
|
||||
<string name="settings_bandwidth_limitation_unlimited">Sınırsız</string>
|
||||
<string name="settings_bandwidth_limitation_limited">Sınırlı</string>
|
||||
<string name="settings_bandwidth_limitation_summary_limited">Uç nokta 320kbps maksimum bit hızına uygun içerik sunacaktır</string>
|
||||
<string name="settings_media_cache_size">Medya önbellek boyutu</string>
|
||||
<string name="settings_media_cache_size_summary">Çevrimdışı oynatma için parçaları depolamak üzere %d GB kullanılacaktır</string>
|
||||
<string name="settings_play_order">Tercih edilen oynatma sırası</string>
|
||||
<string name="settings_play_order_in_order">Albümleri sırayla çalın</string>
|
||||
<string name="settings_play_order_in_order_summary">Albümleri sırayla çalmayı tercih ediyorsunuz</string>
|
||||
<string name="settings_auto_skip_backwards_on_pause">Duraklatırken geriye doğru atlama</string>
|
||||
<string name="settings_other">Diğer</string>
|
||||
<string name="settings_night_mode">Karanlık</string>
|
||||
<string name="settings_night_mode_on">Her zaman açık (karanlık)</string>
|
||||
<string name="settings_night_mode_on_summary">Karanlık tema her zaman açık olacak</string>
|
||||
<string name="settings_night_mode_off">Her zaman kapalı (açık)</string>
|
||||
<string name="settings_night_mode_off_summary">Açık tema her zaman açık olacak</string>
|
||||
<string name="settings_night_mode_system">Sistem ayarlarını takip edin</string>
|
||||
<string name="settings_play_order_shuffle">Karıştır albümleri</string>
|
||||
<string name="settings_information">Bilgi</string>
|
||||
<string name="settings_information_repository_title">Depo</string>
|
||||
<string name="settings_version_title">Sürüm</string>
|
||||
<string name="settings_information_license_title">Lisans</string>
|
||||
<string name="settings_information_license_description">MIT lisans</string>
|
||||
<string name="settings_crash_report_title">Kilitlenme günlüklerini kopyalama</string>
|
||||
<string name="settings_crash_report_copied">Son çökme raporu panonuza kopyalandı</string>
|
||||
<string name="settings_logout">Çıkış yapınız</string>
|
||||
<string name="artists">Sanatçılar</string>
|
||||
<string name="albums">Albümler</string>
|
||||
<string name="tracks">Parçalar</string>
|
||||
<string name="playlists">Çalma Listeleri</string>
|
||||
<string name="radios">Radyolar</string>
|
||||
<string name="favorites">Gözdeler</string>
|
||||
<string name="playback_media_controls">Ortam kontrolleri</string>
|
||||
<string name="playback_media_controls_description">Ortam oynatmayı kontrol etme</string>
|
||||
<string name="playback_play">Oynat</string>
|
||||
<string name="playback_shuffle">Karıştır</string>
|
||||
<string name="playback_queue">Kuyruk</string>
|
||||
<string name="playback_queue_empty">Kuyruk boş</string>
|
||||
<string name="playback_queue_remove_item">Kaldır</string>
|
||||
<string name="playback_queue_add_item">Kuyruğa ekle</string>
|
||||
<string name="playback_queue_download">İndir</string>
|
||||
<string name="playback_queue_clear">Temizle</string>
|
||||
<string name="playback_queue_save">Kaydet</string>
|
||||
<string name="manage_add_to_favorites">Gözdelerine ekle</string>
|
||||
<string name="control_toggle">Oynatmayı aç kapat</string>
|
||||
<string name="control_previous">Önceki parça</string>
|
||||
<string name="control_next">Sonraki parça</string>
|
||||
<string name="control_repeat_mode">Tekrar modu</string>
|
||||
<string name="control_add_to_favorites">Gözdelere ekle</string>
|
||||
<plurals name="album_count">
|
||||
<item quantity="one">%d albüm</item>
|
||||
<item quantity="other">%d albümler</item>
|
||||
</plurals>
|
||||
<string name="alt_app_logo">Uygulama logosu</string>
|
||||
<string name="alt_artist_art">Sanatçı sanatı</string>
|
||||
<string name="alt_album_cover">Albüm kapağı</string>
|
||||
<string name="alt_more_options">Daha fazla seçenek</string>
|
||||
<string name="alt_track_info">Parça hakkında bilgi</string>
|
||||
<string name="track_info_artist">Sanatçıya git</string>
|
||||
<string name="track_info_album">Albüme git</string>
|
||||
<string name="track_info_details">Bilgi</string>
|
||||
<string name="track_info_details_artist">Sanatçı</string>
|
||||
<string name="track_info_details_album">Albüm</string>
|
||||
<string name="track_info_details_track_title">Parça başlığı</string>
|
||||
<string name="track_info_details_track_copyright">Telif Hakkı</string>
|
||||
<string name="track_info_details_track_license">Lisans</string>
|
||||
<string name="login_error_funkwhale_not_found">Funkwhale kapsülü bulunamadı</string>
|
||||
<string name="track_info_details_track_duration">Süre</string>
|
||||
<string name="track_info_details_track_position">Albüm konumu</string>
|
||||
<string name="track_info_details_track_bitrate">BitHızı</string>
|
||||
<string name="track_info_details_track_instance">Funkwhale örneği</string>
|
||||
<string name="radio_playback_error">Bu radyoyu oynatmaya çalışırken bir hata oluştu</string>
|
||||
<string name="radio_instance_radios">Örnek radyolar</string>
|
||||
<string name="radio_user_radios">Kullanıcı radyoları</string>
|
||||
<string name="radio_your_content_title">İçeriğiniz</string>
|
||||
<string name="radio_your_content_description">Kendi kütüphanelerinizden seçtikleriniz</string>
|
||||
<string name="radio_random_title">Rastgele</string>
|
||||
<string name="radio_random_description">Tamamen rastgele seçimler, belki yeni şeyler keşfedersiniz\?</string>
|
||||
<string name="radio_less_listened_title">Daha az dinlendi</string>
|
||||
<string name="radio_less_listened_description">Genelde dinlemediğiniz parçaları dinleyin. Biraz denge sağlamanın zamanı geldi.</string>
|
||||
<string name="logout_title">Çıkış yapınız</string>
|
||||
<plurals name="playlist_description">
|
||||
<item quantity="one">%1$d parça • %2$s</item>
|
||||
<item quantity="other">%1$d parçalar • %2$s</item>
|
||||
</plurals>
|
||||
<string name="playlist_add_to">Oynatma listesine ekle</string>
|
||||
<string name="playlist_add_to_new">Yeni oynatma listesi…</string>
|
||||
<string name="playlist_add_to_create">Oynatma listesi oluştur</string>
|
||||
<string name="playlist_added_to">Oynatma listesi %s eklendi</string>
|
||||
<string name="filters">Süzgeçler</string>
|
||||
<string name="fiters_all">Tüm müzikler</string>
|
||||
<string name="filters_my_music">Benim müzikler</string>
|
||||
<string name="filters_followed">Takip edilen içerik</string>
|
||||
<string name="login_welcome">İçeriğine erişmek için lütfen Funkwhale örneğinizin ayrıntılarını girin</string>
|
||||
<string name="login_anonymous">Anonim kimlik doğrulama</string>
|
||||
<string name="logout_content">Bu Funkwhale örneğinden çıkmak istediğinizden emin misiniz\?</string>
|
||||
<plurals name="downloads_description">
|
||||
<item quantity="one">Parça %1$d indiriliyor</item>
|
||||
<item quantity="other">Parçalar %1$d indiriliyor</item>
|
||||
</plurals>
|
||||
<string name="login_error_userinfo">Kullanıcınız hakkında bilgi alamadık</string>
|
||||
<string name="settings_play_order_shuffle_summary">Albüm parçalarını karıştırmayı tercih ediyorsunuz</string>
|
||||
<string name="hello_blank_fragment">Merhaba boş parça</string>
|
||||
<string name="settings_auto_skip_backwards_on_pause_summary">Oynatma duraklatıldığında geriye doğru atlanacak saniye sayısı</string>
|
||||
<string name="settings_information_repository_description">Android™ için Funkwhale</string>
|
||||
<string name="settings_crash_report_description">Yalnızca çökmeden önceki son 5 dakikaya ait günlükler toplanacaktır</string>
|
||||
<string name="track_info_details_title">Parça detayları</string>
|
||||
<string name="search_welcome">Arama kelimerinizi yukarıya yazın ve koleksiyonunuzda arama yapmak için enter tuşuna basın</string>
|
||||
<string name="settings_bandwidth_limitation_summary_unlimited">Özgün içerik kod dönüştürme olmadan getirilecektir</string>
|
||||
<string name="settings_night_mode_system_summary">Gece teması sistem ayarlarını takip edecek</string>
|
||||
<string name="playback_queue_play_next">Sonrakini oynat</string>
|
||||
<string name="error_playback">Bu parça çalınamadı</string>
|
||||
<string name="radio_favorites_description">Hiç bitmeyen bir mutluluk döngüsünde en sevdiğiniz şarkıları çalın.</string>
|
||||
<string name="playlist">Oynatma listesi</string>
|
||||
</resources>
|
|
@ -82,7 +82,7 @@
|
|||
<string name="control_previous">Previous track</string>
|
||||
<string name="control_next">Next track</string>
|
||||
<string name="control_repeat_mode">Repeat mode</string>
|
||||
<string name="control_add_to_favorites">Add to favorites</string>
|
||||
<string name="control_add_to_favorties">Add to favorties</string>
|
||||
<string name="error_playback">This track could not be played</string>
|
||||
<plurals name="album_count">
|
||||
<item quantity="one">%d album</item>
|
||||
|
|
|
@ -13,7 +13,7 @@ buildscript {
|
|||
val navVersion: String by extra
|
||||
|
||||
dependencies {
|
||||
classpath("com.android.tools.build:gradle:8.1.2")
|
||||
classpath("com.android.tools.build:gradle:7.4.2")
|
||||
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.20")
|
||||
classpath("com.github.bjoernq:unmockplugin:0.7.9")
|
||||
classpath("com.github.ben-manes:gradle-versions-plugin:0.46.0")
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
Log user out when authorization token expires (#154)
|
|
@ -1 +0,0 @@
|
|||
Remember server settings in login dialog (#154)
|
|
@ -4,6 +4,3 @@ kotlin.code.style=official
|
|||
|
||||
android.useAndroidX=true
|
||||
android.enableJetifier=true
|
||||
android.defaults.buildfeatures.buildconfig=true
|
||||
android.nonTransitiveRClass=false
|
||||
android.nonFinalResIds=false
|
||||
|
|
Binary file not shown.
|
@ -1,7 +1,6 @@
|
|||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-bin.zip
|
||||
networkTimeout=10000
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
|
|
@ -83,8 +83,10 @@ done
|
|||
# This is normally unused
|
||||
# shellcheck disable=SC2034
|
||||
APP_BASE_NAME=${0##*/}
|
||||
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
||||
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
|
||||
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD=maximum
|
||||
|
@ -131,13 +133,10 @@ location of your Java installation."
|
|||
fi
|
||||
else
|
||||
JAVACMD=java
|
||||
if ! command -v java >/dev/null 2>&1
|
||||
then
|
||||
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
|
@ -145,7 +144,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
|||
case $MAX_FD in #(
|
||||
max*)
|
||||
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC2039,SC3045
|
||||
# shellcheck disable=SC3045
|
||||
MAX_FD=$( ulimit -H -n ) ||
|
||||
warn "Could not query maximum file descriptor limit"
|
||||
esac
|
||||
|
@ -153,7 +152,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
|||
'' | soft) :;; #(
|
||||
*)
|
||||
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC2039,SC3045
|
||||
# shellcheck disable=SC3045
|
||||
ulimit -n "$MAX_FD" ||
|
||||
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
||||
esac
|
||||
|
@ -198,15 +197,11 @@ if "$cygwin" || "$msys" ; then
|
|||
done
|
||||
fi
|
||||
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Collect all arguments for the java command:
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||
# and any embedded shellness will be escaped.
|
||||
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
||||
# treated as '${Hostname}' itself on the command line.
|
||||
# Collect all arguments for the java command;
|
||||
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
|
||||
# shell script including quotes and variable substitutions, so put them in
|
||||
# double quotes to make sure that they get re-expanded; and
|
||||
# * put everything else in single quotes, so that it's not re-expanded.
|
||||
|
||||
set -- \
|
||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||
|
|
Loading…
Reference in New Issue