diff --git a/CHANGELOG.md b/CHANGELOG.md index fcf8645..4c29d77 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +### Version 1.0.51 Tag: v1.0.51 (2021-01-14) + - fixed default app language on first start (@kosharskiy) + - Settings screen translations uk and ru languages (@kosharskiy) + - cleanup app/build.gradle file (@kosharskiy) + - fixed video meta data display issue (@kosharskiy) + - updated translations + ### Version 1.0.50 Tag: v1.0.50 (2020-11-22) - add support for disabling SSL - translations diff --git a/app/build.gradle b/app/build.gradle index ff59927..7948ec1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -33,6 +33,8 @@ else { android { compileSdkVersion 29 + buildToolsVersion "29.0.3" + defaultConfig { applicationId "net.schueller.peertube" minSdkVersion 21 @@ -41,11 +43,7 @@ android { versionName System.getenv("VERSION_NAME") + "-" + System.getenv("VERSION_SHA") buildConfigField "long", "BUILD_TIME", readPropertyWithDefault('buildTimestamp', System.currentTimeMillis()) + 'L' testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - ext { - libVersions = [ - exoplayer: '2.11.6' - ] - } + javaCompileOptions { annotationProcessorOptions { arguments = [ @@ -54,58 +52,6 @@ android { "room.expandProjection": "true"] } } - dependencies { - implementation fileTree(dir: 'libs', include: ['*.jar']) - - // Layouts and design - implementation 'androidx.constraintlayout:constraintlayout:2.0.1' - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.cardview:cardview:1.0.0' - implementation 'androidx.recyclerview:recyclerview:1.1.0' - implementation 'androidx.legacy:legacy-support-v13:1.0.0' - implementation 'com.google.android.material:material:1.2.0' - implementation 'de.hdodenhof:circleimageview:3.0.0' - - // font awesome - implementation "com.mikepenz:iconics-core:3.1.0" - implementation 'com.mikepenz:fontawesome-typeface:5.3.1.1@aar' - - // http client / REST - implementation 'com.squareup.okhttp3:okhttp:4.8.0' - implementation 'com.squareup.retrofit2:retrofit:2.5.0' - - // image downloading and caching library - implementation 'com.squareup.picasso:picasso:2.71828' - - // json decoder/encoder - implementation 'com.google.code.gson:gson:2.8.6' - implementation 'com.squareup.retrofit2:converter-gson:2.5.0' - - // Torrents and WebRTC - implementation 'com.github.TorrentStream:TorrentStream-Android:2.6.1' -// implementation "com.github.TorrentStream:TorrentStreamServer-Android:1.0.1" -// implementation 'org.webrtc:google-webrtc:1.0.+' - - // video player repo:jcenter() - implementation "com.google.android.exoplayer:exoplayer-core:$libVersions.exoplayer" - implementation "com.google.android.exoplayer:exoplayer-dash:$libVersions.exoplayer" - implementation "com.google.android.exoplayer:exoplayer-ui:$libVersions.exoplayer" - implementation "com.google.android.exoplayer:exoplayer-hls:$libVersions.exoplayer" - implementation "com.google.android.exoplayer:exoplayer-smoothstreaming:$libVersions.exoplayer" - implementation "com.google.android.exoplayer:extension-mediasession:$libVersions.exoplayer" - implementation "com.google.android.exoplayer:extension-okhttp:$libVersions.exoplayer" - - // date formatter - implementation 'org.ocpsoft.prettytime:prettytime:4.0.4.Final' - - // Version comparison - implementation 'org.apache.maven:maven-artifact:3.5.0' - - // testing - testImplementation 'junit:junit:4.13' - androidTestImplementation 'androidx.test:runner:1.3.0' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' - } } signingConfigs { release { @@ -136,26 +82,70 @@ android { } } +def room_version = "2.2.6" +def lifecycleVersion = '2.2.0' +def exoplayer = '2.12.3' + dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) - def room_version = "2.2.5" - def archLifecycleVersion = '2.1.0' - - implementation 'androidx.constraintlayout:constraintlayout:2.0.1' + // Layouts and design + implementation 'androidx.constraintlayout:constraintlayout:2.0.4' implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.1' - implementation 'com.google.android.material:material:1.2.0' + implementation 'com.google.android.material:material:1.2.1' + implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0" + + implementation 'de.hdodenhof:circleimageview:3.0.0' + + // font awesome + implementation "com.mikepenz:iconics-core:3.1.0" + implementation 'com.mikepenz:fontawesome-typeface:5.3.1.1@aar' + + // http client / REST + implementation 'com.squareup.okhttp3:okhttp:4.9.0' + implementation 'com.squareup.retrofit2:retrofit:2.9.0' + + // image downloading and caching library + implementation 'com.squareup.picasso:picasso:2.71828' + + // json decoder/encoder + implementation 'com.google.code.gson:gson:2.8.6' + implementation 'com.squareup.retrofit2:converter-gson:2.9.0' + + // Torrents and WebRTC + implementation 'com.github.TorrentStream:TorrentStream-Android:2.7.0' +// implementation "com.github.TorrentStream:TorrentStreamServer-Android:1.0.1" +// implementation 'org.webrtc:google-webrtc:1.0.+' + + // video player repo:jcenter() + implementation "com.google.android.exoplayer:exoplayer-core:$exoplayer" + implementation "com.google.android.exoplayer:exoplayer-dash:$exoplayer" + implementation "com.google.android.exoplayer:exoplayer-ui:$exoplayer" + implementation "com.google.android.exoplayer:exoplayer-hls:$exoplayer" + implementation "com.google.android.exoplayer:exoplayer-smoothstreaming:$exoplayer" + implementation "com.google.android.exoplayer:extension-mediasession:$exoplayer" + implementation "com.google.android.exoplayer:extension-okhttp:$exoplayer" + + // date formatter + implementation 'org.ocpsoft.prettytime:prettytime:4.0.4.Final' + + // Version comparison + implementation 'org.apache.maven:maven-artifact:3.5.0' // database lib implementation "androidx.room:room-runtime:$room_version" - implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' annotationProcessor "androidx.room:room-compiler:$room_version" androidTestImplementation "androidx.room:room-testing:$room_version" // Lifecycle components - implementation "androidx.lifecycle:lifecycle-extensions:$archLifecycleVersion" - annotationProcessor "androidx.lifecycle:lifecycle-common-java8:$archLifecycleVersion" + implementation "androidx.lifecycle:lifecycle-extensions:$lifecycleVersion" + annotationProcessor "androidx.lifecycle:lifecycle-common-java8:$lifecycleVersion" implementation 'androidx.preference:preference:1.1.1' + + // testing + testImplementation 'junit:junit:4.13' + androidTestImplementation 'androidx.test:runner:1.3.0' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' } diff --git a/app/src/main/java/net/schueller/peertube/activity/CommonActivity.java b/app/src/main/java/net/schueller/peertube/activity/CommonActivity.java index b9c1ee7..d68ffe4 100644 --- a/app/src/main/java/net/schueller/peertube/activity/CommonActivity.java +++ b/app/src/main/java/net/schueller/peertube/activity/CommonActivity.java @@ -19,16 +19,17 @@ package net.schueller.peertube.activity; import android.content.SharedPreferences; import android.content.res.Configuration; +import android.content.res.Resources; import android.os.Bundle; import android.preference.PreferenceManager; -import androidx.appcompat.app.AppCompatActivity; -import androidx.appcompat.app.AppCompatDelegate; - import net.schueller.peertube.R; import java.util.Locale; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.app.AppCompatDelegate; + public class CommonActivity extends AppCompatActivity { @Override @@ -51,21 +52,31 @@ public class CommonActivity extends AppCompatActivity { ); // Set language - String countryCode = sharedPref.getString(getString(R.string.pref_language_app_key), "en"); - assert countryCode != null; - Locale locale = new Locale(countryCode); + String countryCode = sharedPref.getString(getString(R.string.pref_language_app_key), null); + + if (countryCode == null) { + return; + } + + setLocale(countryCode); + } + + + public void setLocale(String languageCode) { + + Locale locale = new Locale(languageCode); //Neither Chinese language choice was working, found this fix on stack overflow - if (countryCode.equals("zh-rCN")) + if (languageCode.equals("zh-rCN")) locale = Locale.SIMPLIFIED_CHINESE; - if (countryCode.equals("zh-rTW")) + if (languageCode.equals("zh-rTW")) locale = Locale.TRADITIONAL_CHINESE; Locale.setDefault(locale); - Configuration config = getBaseContext().getResources().getConfiguration(); - config.locale = locale; - getBaseContext().getResources().updateConfiguration(config, - getBaseContext().getResources().getDisplayMetrics()); - } + Resources resources = getResources(); + Configuration config = resources.getConfiguration(); + config.setLocale(locale); + resources.updateConfiguration(config, resources.getDisplayMetrics()); + } } diff --git a/app/src/main/java/net/schueller/peertube/activity/VideoListActivity.java b/app/src/main/java/net/schueller/peertube/activity/VideoListActivity.java index fbd0b6d..a760c4a 100644 --- a/app/src/main/java/net/schueller/peertube/activity/VideoListActivity.java +++ b/app/src/main/java/net/schueller/peertube/activity/VideoListActivity.java @@ -70,6 +70,8 @@ import net.schueller.peertube.service.VideoPlayerService; import java.util.ArrayList; +import java.util.HashSet; +import java.util.Locale; import java.util.Set; import retrofit2.Call; @@ -321,7 +323,14 @@ public class VideoListActivity extends CommonActivity { SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this); String nsfw = sharedPref.getBoolean(getString(R.string.pref_show_nsfw_key), false) ? "both" : "false"; - Set languages = sharedPref.getStringSet(getString(R.string.pref_video_language_key), null); + + Locale locale = getResources().getConfiguration().locale; + String country = locale.getLanguage(); + + HashSet countries = new HashSet<>(1); + countries.add(country); + + Set languages = sharedPref.getStringSet(getString(R.string.pref_video_language_key), countries); String apiBaseURL = APIUrlHelper.getUrlWithVersion(this); GetVideoDataService service = RetrofitInstance.getRetrofitInstance(apiBaseURL, APIUrlHelper.useInsecureConnection(this)).create(GetVideoDataService.class); diff --git a/app/src/main/res/layout/fragment_video_meta.xml b/app/src/main/res/layout/fragment_video_meta.xml index 229eeaa..9463ee1 100644 --- a/app/src/main/res/layout/fragment_video_meta.xml +++ b/app/src/main/res/layout/fragment_video_meta.xml @@ -1,10 +1,11 @@ - + android:textAppearance="@style/Base.TextAppearance.AppCompat.Caption" + tools:text="@tools:sample/lorem/random" + android:lines="2" + /> @@ -239,7 +242,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="12dp" - + android:gravity="bottom" android:orientation="horizontal"> + android:textAppearance="@style/Base.TextAppearance.AppCompat.Caption" + tools:text="@tools:sample/lorem/random" + android:lines="2" + /> @@ -267,7 +272,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="12dp" - + android:gravity="bottom" android:orientation="horizontal"> + android:textAppearance="@style/Base.TextAppearance.AppCompat.Caption" + tools:text="@tools:sample/lorem" + android:lines="2" + /> @@ -296,7 +303,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="12dp" - + android:gravity="bottom" android:orientation="horizontal"> + android:textAppearance="@style/Base.TextAppearance.AppCompat.Caption" + tools:text="@tools:sample/lorem/random" + android:lines="2" + /> @@ -324,7 +333,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="12dp" - + android:gravity="bottom" android:orientation="horizontal"> diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index dc4dfb9..7686ca0 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -114,4 +114,64 @@ 1,25× 0,75× Idioma de la aplicación + Ayuda y feedback + Cerrar sesión + Una URL válida es requerida + La etiqueta de servidor es requerida + Ruso (Lenguaje de señas) + Ruso + Romano + Portugués + Polaco + Noruego + Pakistaní (Lenguaje de señas) + Francés (Lenguaje de señas) + Francés + Finlandés + Esperanto + Inglés + Danés (Lenguaje de señas) + Danés + Checo (Lenguaje de señas) + Checo + Croata + Vasco + Bengali + Bieloruso + Bashkir + Bambara + Aymara + Avaric + Assamese + Amharic + Akan + Afrikaans + Abkhazian + Token refrescado + No se pudo refrescar el token + Reproducción de video + Lista de video + Cuenta + Buscar servidor + ¿Estás seguro de que deseas eliminar este servidor de la libreta de direcciones\? + Quitar servidor + Libreta de direcciones + Servidor actual + Contraseña + Usuario + Buscar + URL del servidor + Etiqueta + Añadir + Error en el inicio de sesión! + ¿Deseas eliminar de forma permanente tu historial de búsqueda\? + Limpiar el historial de búsquedas + El permiso para modo picture-in-picture está desactivado para esta aplicación en los Ajustes de Android + Versión de Android no soporta ventanas flotantes + Configuración de reproducción en segundo plano + Continuar reproduciendo en ventana flotante + Detener todas las reproducciones + Continuar como audio en segundo plano + Selecciona el idioma de la interfaz de la aplicación. Reinicia para que los cambios se apliquen. + Pausar con el botón de retroceso \ No newline at end of file diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml new file mode 100644 index 0000000..a6b3dae --- /dev/null +++ b/app/src/main/res/values-id/strings.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 2a0e0e0..430e1e7 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -300,4 +300,22 @@ Licencja 1,25× 0,75× + Odtwarzanie Wideo + Lista Wideo + Konto + Dodaj + Hasło + Wyszukaj + Serwer URL + Pomoc i Opinie + Wyloguj + Pomyślnie zalogowano + Błąd dostępu do sieci, sprawdź swoje połączenie + Lista filtrów + Bengalski (Bangladesz) + Czy chcesz trwale usunąć historię wyszukiwań\? + Usuń historię wyszukiwań + Ustawienia odtwarzania w tle + Kontynuuj odtwarzanie w ruchomym oknie + Język Aplikacji \ No newline at end of file diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index d799535..01208b9 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -353,4 +353,11 @@ Пауза на кнопку Назад Ошибка доступа к сети, проверьте подключение Список фильтров + Да + Нет + Отключить проверку SSL сертификата + Дополнительно + Внимание! + Игнорировать незащищенные соединения. Используйте только если знаете сервер к которому подключаетесь. Требуется перезапуск приложения. + "Вы собираетесь отключить валидацию всех SSL сертификатов в Thorium. Это может быть очень опасно если peertube сервер вами не контролируется, потому что \"атака посредника\" может направить трафик на другой сервер. Злоумышленник может записывать пароли и другие личные данные." \ No newline at end of file diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 3612f77..8fcc9d4 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -347,4 +347,11 @@ Сервер Увійти Параметри + Вимкнути перевірку SSL сертифіката + Ігнорувати незахищені з\'єднання. Використовуйте це лише якщо знаєте сервер до якого підключаєтесь. Перезапустіть застосунок, щоб зміни набули чинності. + Так + Ні + Увага! + "Ви збираєтеся вимкнути всі перевірки сертифікації SSL у Thorium. Це може бути дуже небезпечно якщо peertube сервер вами не контролюється, оскільки атака \"людина посередині\" може направити трафік на інший сервер без вашого відома. Зловмисник може записувати паролі та інші особисті дані. " + Додатково \ No newline at end of file diff --git a/app/src/main/res/values/constants.xml b/app/src/main/res/values/constants.xml index 6b29bef..7feb602 100644 --- a/app/src/main/res/values/constants.xml +++ b/app/src/main/res/values/constants.xml @@ -534,6 +534,7 @@ ru sv tr + uk zh-rCN zh-rTW @@ -560,6 +561,7 @@ @string/ru @string/sv @string/tr + @string/uk @string/zh @string/tw diff --git a/app/src/main/res/xml/root_preferences.xml b/app/src/main/res/xml/root_preferences.xml index e96fdd9..96736b3 100644 --- a/app/src/main/res/xml/root_preferences.xml +++ b/app/src/main/res/xml/root_preferences.xml @@ -4,7 +4,6 @@