mirror of
https://framagit.org/tom79/fedilab-tube
synced 2025-06-05 21:09:11 +02:00
Compare commits
17 Commits
Author | SHA1 | Date | |
---|---|---|---|
3e5cefbf24 | |||
245ef64ebe | |||
a0ff454dd9 | |||
fa6b1560f8 | |||
518b5f617b | |||
7c4ce7701c | |||
0b6557f9c5 | |||
a8e00d137a | |||
75d3f74e48 | |||
3866317597 | |||
10e904fe4a | |||
be655f6c2b | |||
676e540059 | |||
87763a050c | |||
ab45c1f80c | |||
ec5f2c7c45 | |||
c4448f22b9 |
@ -10,8 +10,8 @@ android {
|
||||
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 30
|
||||
versionCode 16
|
||||
versionName "1.4.1"
|
||||
versionCode 17
|
||||
versionName "1.4.2"
|
||||
multiDexEnabled true
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
@ -4,10 +4,6 @@
|
||||
<color name="colorPrimaryDark">#4527A0</color>
|
||||
<color name="colorAccent">#9C27B0</color>
|
||||
|
||||
|
||||
<color name="colorPrimary_full">#212529</color>
|
||||
<color name="colorPrimaryDark_full">#000000</color>
|
||||
<color name="colorAccent_full">#F2690D</color>
|
||||
<color name="tag_color">#bbF2690D</color>
|
||||
<color name="tag_color_text">#FAFAFA</color>
|
||||
<color name="positive_thumbs">#2b90d9</color>
|
@ -6,7 +6,19 @@
|
||||
<string name="set_video_language_choice" translatable="false">set_video_language_choice</string>
|
||||
<string name="set_video_quality_choice" translatable="false">set_video_quality_choice</string>
|
||||
<string name="set_video_cache_choice" translatable="false">set_video_cache_choice</string>
|
||||
<string name="set_theme_choice" translatable="false">set_theme_choice</string>
|
||||
|
||||
<string name="delete_account_comment">Supprimer tous les commentaires</string>
|
||||
<string name="delete_account_comment_confirm">Etes-vous sûr de vouloir supprimer tous les commentaires de ce compte pour vos vidéos ?</string>
|
||||
<string-array name="settings_theme">
|
||||
<item>Clair</item>
|
||||
<item>Sombre</item>
|
||||
<item>Automatique</item>
|
||||
</string-array>
|
||||
|
||||
<string name="set_theme">Thème</string>
|
||||
<string name="set_theme_description">Permet de changer le thème de l\'application</string>
|
||||
<string name="federation_issue">La vidéo ne peut pas être fédérée !</string>
|
||||
<string name="title_home">Locale</string>
|
||||
<string name="title_local">Locale</string>
|
||||
<string name="title_discover">Découvrir</string>
|
||||
|
@ -1 +1,3 @@
|
||||
- Corrige un bug lors de la connexion
|
||||
- Theme: Clair, Sombre et automatique
|
||||
- Supprimer tous les commentaires d'un compte sur vos vidéos
|
||||
- Mettre en sourdine un compte depuis les commentaires.
|
@ -1 +1 @@
|
||||
App for all Peertube instances
|
||||
App per tutti i casi Peertube
|
@ -1 +1,7 @@
|
||||
- Fix an issue with the authentication of some accounts
|
||||
- Theme: Light, Dark and auto
|
||||
- Remove all comments of an account on your videos
|
||||
- Sepia search: Allow interactions when the video is federated
|
||||
- Mute accounts from comments
|
||||
- Links clickable in video descriptions
|
||||
- Fix all comments not displayed
|
||||
- Fix some minor other bugs
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:color="@color/colorAccent_full" android:state_checked="true" />
|
||||
<item android:color="@color/colorAccent" android:state_checked="true" />
|
||||
<item android:color="@android:color/tab_indicator_text" />
|
||||
</selector>
|
@ -1,5 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="set_theme">Theme</string>
|
||||
<string name="set_theme_description">Allow to change app theme</string>
|
||||
<string name="federation_issue">The video cannot be federated!</string>
|
||||
<string name="title_home">Home</string>
|
||||
<string name="title_local">Local</string>
|
||||
<string name="title_discover">Discover</string>
|
||||
@ -143,6 +146,8 @@
|
||||
<string name="pickup_captions">Pick captions</string>
|
||||
<string name="none">None</string>
|
||||
<string name="set_video_mode_description">Allows to change mode for playing videos (default, streaming or via a browser).</string>
|
||||
<string name="delete_account_comment">Delete account comments</string>
|
||||
<string name="delete_account_comment_confirm">Are you sure you want to remove all the comments of this account?</string>
|
||||
<string name="delete_video">Delete video</string>
|
||||
<string name="delete_video_confirmation">Are you sure to delete this video?</string>
|
||||
<string name="no_video_to_display">No videos to display!</string>
|
||||
@ -193,6 +198,11 @@
|
||||
<item>Webview</item>
|
||||
<item>Direct stream</item>
|
||||
</string-array>
|
||||
<string-array name="settings_theme">
|
||||
<item>Light</item>
|
||||
<item>Dark</item>
|
||||
<item>Automatic</item>
|
||||
</string-array>
|
||||
<string-array name="settings_video_quality">
|
||||
<item>High</item>
|
||||
<item>Medium</item>
|
||||
|
@ -1,5 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="set_theme">Theme</string>
|
||||
<string name="set_theme_description">Allow to change app theme</string>
|
||||
<string name="federation_issue">The video cannot be federated!</string>
|
||||
<string name="title_home">Startseite</string>
|
||||
<string name="title_local">Local</string>
|
||||
<string name="title_discover">Mehr erfahren</string>
|
||||
@ -143,6 +146,8 @@
|
||||
<string name="pickup_captions">Untertitel abholen</string>
|
||||
<string name="none">Keine</string>
|
||||
<string name="set_video_mode_description">Erlaubt es, den Modus für das Abspielen von Videos zu ändern (Standard, Streaming oder über einen Browser).</string>
|
||||
<string name="delete_account_comment">Delete account comments</string>
|
||||
<string name="delete_account_comment_confirm">Are you sure you want to remove all the comments of this account?</string>
|
||||
<string name="delete_video">Video löschen</string>
|
||||
<string name="delete_video_confirmation">Möchtest du dieses Video wirklich löschen?</string>
|
||||
<string name="no_video_to_display">Keine Videos zum Anzeigen!</string>
|
||||
@ -193,6 +198,11 @@
|
||||
<item>Direkter Datenstrom</item>
|
||||
<item>Direct stream</item>
|
||||
</string-array>
|
||||
<string-array name="settings_theme">
|
||||
<item>Light</item>
|
||||
<item>Dark</item>
|
||||
<item>Automatic</item>
|
||||
</string-array>
|
||||
<string-array name="settings_video_quality">
|
||||
<item>High</item>
|
||||
<item>Medium</item>
|
||||
|
@ -1,5 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="set_theme">Theme</string>
|
||||
<string name="set_theme_description">Allow to change app theme</string>
|
||||
<string name="federation_issue">The video cannot be federated!</string>
|
||||
<string name="title_home">Αρχική</string>
|
||||
<string name="title_local">Local</string>
|
||||
<string name="title_discover">Ανακαλύψτε</string>
|
||||
@ -143,6 +146,8 @@
|
||||
<string name="pickup_captions">Επιλογή υποτίτλων</string>
|
||||
<string name="none">Κανένας</string>
|
||||
<string name="set_video_mode_description">Επιτρέπει την εναλλαγή κατάστασης λειτουργίας για την αναπαραγωγή βίντεο (προεπιλεγμένη, ροή ή μέσω περιηγητή ιστού).</string>
|
||||
<string name="delete_account_comment">Delete account comments</string>
|
||||
<string name="delete_account_comment_confirm">Are you sure you want to remove all the comments of this account?</string>
|
||||
<string name="delete_video">Διαγραφή βίντεο</string>
|
||||
<string name="delete_video_confirmation">Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό το βίντεο;</string>
|
||||
<string name="no_video_to_display">Δεν υπάρχουν βίντεο για προβολή!</string>
|
||||
@ -192,6 +197,11 @@
|
||||
<item>Άμεση ροή</item>
|
||||
<item>Direct stream</item>
|
||||
</string-array>
|
||||
<string-array name="settings_theme">
|
||||
<item>Light</item>
|
||||
<item>Dark</item>
|
||||
<item>Automatic</item>
|
||||
</string-array>
|
||||
<string-array name="settings_video_quality">
|
||||
<item>High</item>
|
||||
<item>Medium</item>
|
||||
|
@ -1,5 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="set_theme">Theme</string>
|
||||
<string name="set_theme_description">Allow to change app theme</string>
|
||||
<string name="federation_issue">The video cannot be federated!</string>
|
||||
<string name="title_home">Inicio</string>
|
||||
<string name="title_local">Local</string>
|
||||
<string name="title_discover">Descubre</string>
|
||||
@ -143,6 +146,8 @@
|
||||
<string name="pickup_captions">Pies de foto de la camioneta</string>
|
||||
<string name="none">Ninguno</string>
|
||||
<string name="set_video_mode_description">Permite cambiar el modo de reproducción de los vídeos (predeterminado, streaming o a través de un navegador).</string>
|
||||
<string name="delete_account_comment">Delete account comments</string>
|
||||
<string name="delete_account_comment_confirm">Are you sure you want to remove all the comments of this account?</string>
|
||||
<string name="delete_video">Eliminar vídeo</string>
|
||||
<string name="delete_video_confirmation">¿Estás seguro de eliminar este video?</string>
|
||||
<string name="no_video_to_display">¡No hay videos para ver!</string>
|
||||
@ -193,6 +198,11 @@
|
||||
<item>Corriente Directa</item>
|
||||
<item>Direct stream</item>
|
||||
</string-array>
|
||||
<string-array name="settings_theme">
|
||||
<item>Light</item>
|
||||
<item>Dark</item>
|
||||
<item>Automatic</item>
|
||||
</string-array>
|
||||
<string-array name="settings_video_quality">
|
||||
<item>High</item>
|
||||
<item>Medium</item>
|
||||
|
@ -1,5 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="set_theme">Theme</string>
|
||||
<string name="set_theme_description">Allow to change app theme</string>
|
||||
<string name="federation_issue">The video cannot be federated!</string>
|
||||
<string name="title_home">Locale</string>
|
||||
<string name="title_local">Locale</string>
|
||||
<string name="title_discover">Découvrir</string>
|
||||
@ -143,6 +146,8 @@
|
||||
<string name="pickup_captions">Options d\'envoi</string>
|
||||
<string name="none">Aucune</string>
|
||||
<string name="set_video_mode_description">Permet de changer le mode de lecture pour les vidéos (normal, streaming ou via un navigateur).</string>
|
||||
<string name="delete_account_comment">Delete account comments</string>
|
||||
<string name="delete_account_comment_confirm">Are you sure you want to remove all the comments of this account?</string>
|
||||
<string name="delete_video">Supprimer la vidéo</string>
|
||||
<string name="delete_video_confirmation">Êtes-vous sûr de vouloir supprimer cette vidéo ?</string>
|
||||
<string name="no_video_to_display">Aucune vidéo n’est disponible !</string>
|
||||
@ -189,6 +194,11 @@
|
||||
<item>Streaming</item>
|
||||
<item>Flux direct</item>
|
||||
</string-array>
|
||||
<string-array name="settings_theme">
|
||||
<item>Light</item>
|
||||
<item>Dark</item>
|
||||
<item>Automatic</item>
|
||||
</string-array>
|
||||
<string-array name="settings_video_quality">
|
||||
<item>Élevée</item>
|
||||
<item>Moyenne</item>
|
||||
|
@ -1,7 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="set_theme">Theme</string>
|
||||
<string name="set_theme_description">Allow to change app theme</string>
|
||||
<string name="federation_issue">The video cannot be federated!</string>
|
||||
<string name="title_home">Inizio</string>
|
||||
<string name="title_local">Local</string>
|
||||
<string name="title_local">Locale</string>
|
||||
<string name="title_discover">Esplora</string>
|
||||
<string name="title_notifications">Notifiche</string>
|
||||
<string name="title_recently_added">Aggiunti di recente</string>
|
||||
@ -17,7 +20,7 @@
|
||||
<string name="instance_choice">Trova un\'istanza</string>
|
||||
<string name="not_valide_instance">Questa istanza non sembra essere valida!</string>
|
||||
<string name="no_videos">Nessun video!</string>
|
||||
<string name="no_notifications">No notifications!</string>
|
||||
<string name="no_notifications">Nessuna notifica!</string>
|
||||
<string name="favicon">Favicon</string>
|
||||
<string name="open_with">Apri con</string>
|
||||
<string name="action_playlist_edit">Modifica playlist</string>
|
||||
@ -34,7 +37,7 @@
|
||||
<string name="download">Scarica</string>
|
||||
<string name="profile_picture">Immagine di profilo</string>
|
||||
<string name="update_video">Aggiorna video</string>
|
||||
<string name="remove_from_playlist">Remove from playlist</string>
|
||||
<string name="remove_from_playlist">Rimuovere dalla playlist</string>
|
||||
<string name="date_seconds">%d s</string>
|
||||
<string name="date_minutes">%d m</string>
|
||||
<string name="date_hours">%d h</string>
|
||||
@ -83,33 +86,33 @@
|
||||
<string name="delete_comment">Elimina il commento</string>
|
||||
<string name="delete_comment_confirm">Sei sicuro di voler eliminare questo commento?</string>
|
||||
<string name="set_video_mode">Modalità per i video</string>
|
||||
<string name="filter">Filter</string>
|
||||
<string name="sepia_search">Sepia search</string>
|
||||
<string name="sepia_element_nsfw">Display sensitive content</string>
|
||||
<string name="sepia_element_published_date">Published date</string>
|
||||
<string name="any">Any</string>
|
||||
<string name="today">Today</string>
|
||||
<string name="last_7_days">Last 7 days</string>
|
||||
<string name="last_30_days">Last 30 days</string>
|
||||
<string name="last_365_days">Last 365 days</string>
|
||||
<string name="sepia_element_duration">Duration</string>
|
||||
<string name="duration_short"><![CDATA[Short (<4 min)]]></string>
|
||||
<string name="duration_medium"><![CDATA[Medium (4–10 min)]]></string>
|
||||
<string name="duration_long"><![CDATA[Long (> 10 min)]]></string>
|
||||
<string name="display_all_categories">Display all categories</string>
|
||||
<string name="display_all_licenses">Display all licenses</string>
|
||||
<string name="display_all_languages">Display all languages</string>
|
||||
<string name="all_of_these_tags">All of these tags</string>
|
||||
<string name="one_of_these_tags">One of these tags</string>
|
||||
<string name="apply_filter">Apply filter</string>
|
||||
<string name="filter">Filtro</string>
|
||||
<string name="sepia_search">Ricerca Seppia</string>
|
||||
<string name="sepia_element_nsfw">Visualizzare il contenuto sensibile</string>
|
||||
<string name="sepia_element_published_date">Data di pubblicazione</string>
|
||||
<string name="any">Qualsiasi</string>
|
||||
<string name="today">Oggi</string>
|
||||
<string name="last_7_days">Ultimi 7 giorni</string>
|
||||
<string name="last_30_days">Ultimi 30 giorni</string>
|
||||
<string name="last_365_days">Ultimi 365 giorni</string>
|
||||
<string name="sepia_element_duration">Durata</string>
|
||||
<string name="duration_short"><![CDATA[Breve (<4 min)]]></string>
|
||||
<string name="duration_medium"><![CDATA[Medio (4-10 min)]]></string>
|
||||
<string name="duration_long"><![CDATA[Lungo (> 10 min)]]></string>
|
||||
<string name="display_all_categories">Visualizza tutte le categorie</string>
|
||||
<string name="display_all_licenses">Visualizzare tutte le licenze</string>
|
||||
<string name="display_all_languages">Visualizza tutte le lingue</string>
|
||||
<string name="all_of_these_tags">Tutti questi tag</string>
|
||||
<string name="one_of_these_tags">Uno di questi tag</string>
|
||||
<string name="apply_filter">Applicare il filtro</string>
|
||||
<string-array name="sort_by_array">
|
||||
<item>Best match</item>
|
||||
<item>Most recent</item>
|
||||
<item>Least recent</item>
|
||||
<item>Migliore partita</item>
|
||||
<item>I più recenti</item>
|
||||
<item>Meno recente</item>
|
||||
</string-array>
|
||||
<string name="sort_by">Sort by</string>
|
||||
<string name="sepia_search_hint">Keyword, channel, video, etc.</string>
|
||||
<string name="sepia_indication">Sepia Search displays videos and channels that match your search but is not the publisher, nor the owner. If you notice any problems with a video, report it to the administrators on the PeerTube website where the video is published.</string>
|
||||
<string name="sort_by">Ordina per</string>
|
||||
<string name="sepia_search_hint">Parola chiave, canale, video, ecc.</string>
|
||||
<string name="sepia_indication">Sepia Search visualizza video e canali che corrispondono alla tua ricerca, ma non è l\'editore, né il proprietario. Se si notano problemi con un video, segnalarlo agli amministratori sul sito web di PeerTube dove viene pubblicato il video.</string>
|
||||
<string name="my_videos">I miei video</string>
|
||||
<string name="title">Titolo</string>
|
||||
<string name="license">Licenza</string>
|
||||
@ -132,17 +135,19 @@
|
||||
<string name="change_instance">Prendi un\'altra istanza</string>
|
||||
<string name="my_history">Cronologia</string>
|
||||
<string name="edit">Modifica</string>
|
||||
<string name="video_settings">Video settings</string>
|
||||
<string name="app_interface">Interface</string>
|
||||
<string name="video_settings">Impostazioni video</string>
|
||||
<string name="app_interface">Interfaccia</string>
|
||||
<string name="set_cache_mode">Cache</string>
|
||||
<string name="set_video_cache_description">Set the cache for videos (default 100Mb)</string>
|
||||
<string name="set_video_quality_description">Define a default quality for videos</string>
|
||||
<string name="set_quality_mode">Resolution for videos</string>
|
||||
<string name="video_cache_value">Video cache: %d Mb</string>
|
||||
<string name="set_video_cache_description">Impostare la cache per i video (default 100Mb)</string>
|
||||
<string name="set_video_quality_description">Definire una qualità predefinita per i video</string>
|
||||
<string name="set_quality_mode">Risoluzione per i video</string>
|
||||
<string name="video_cache_value">Memoria video: %d Mb</string>
|
||||
<string name="captions">Didascalie</string>
|
||||
<string name="pickup_captions">Scegliere le didascalie</string>
|
||||
<string name="none">Nessuno</string>
|
||||
<string name="set_video_mode_description">Permette di cambiare la modalità di riproduzione dei video (di default, in streaming o tramite browser).</string>
|
||||
<string name="delete_account_comment">Delete account comments</string>
|
||||
<string name="delete_account_comment_confirm">Are you sure you want to remove all the comments of this account?</string>
|
||||
<string name="delete_video">Elimina video</string>
|
||||
<string name="delete_video_confirmation">Sei sicuro di voler eliminare questo video?</string>
|
||||
<string name="no_video_to_display">Nessun video da mostrare!</string>
|
||||
@ -156,7 +161,7 @@
|
||||
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> ha pubblicato un nuovo video: <b>%2$s</b>]]></string>
|
||||
<string name="peertube_video_blacklist"><![CDATA[Il tuo video <b>%1$s</b> è stato messo nella lista nera]]></string>
|
||||
<string name="peertube_video_unblacklist"><![CDATA[Il tuo video <b>%1$s</b> è stato rimosso dalla lista nera]]></string>
|
||||
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
||||
<string name="peertube_video_abuse"><![CDATA[Nuovo rapporto di abuso per il video: <b>%1$s</b>]]></string>
|
||||
<string name="add_public_comment">Aggiungi un commento pubblico</string>
|
||||
<string name="send_comment">Invia commento</string>
|
||||
<string name="all">Tutto</string>
|
||||
@ -191,12 +196,17 @@
|
||||
<string-array name="settings_video_mode">
|
||||
<item>Webview</item>
|
||||
<item>Stream diretto</item>
|
||||
<item>Direct stream</item>
|
||||
<item>Flusso diretto</item>
|
||||
</string-array>
|
||||
<string-array name="settings_theme">
|
||||
<item>Light</item>
|
||||
<item>Dark</item>
|
||||
<item>Automatic</item>
|
||||
</string-array>
|
||||
<string-array name="settings_video_quality">
|
||||
<item>High</item>
|
||||
<item>Medium</item>
|
||||
<item>Low</item>
|
||||
<item>Alto</item>
|
||||
<item>Medio</item>
|
||||
<item>Basso</item>
|
||||
</string-array>
|
||||
<string name="unfollow_confirm">Vuoi smettere di seguire questo account?</string>
|
||||
<string name="title_video_peertube">Titolo per il video</string>
|
||||
@ -210,7 +220,7 @@
|
||||
<string name="bookmark_peertube_empty">Non c\'è nessun video nei tuoi favoriti!</string>
|
||||
<string name="delete_channel">Rimuovi Canale</string>
|
||||
<string name="action_channel_confirm_delete">Sei sicuro di voler eliminare definitivamente questo canale?</string>
|
||||
<string name="modify_playlists">Video in playlists</string>
|
||||
<string name="modify_playlists">Video in playlist</string>
|
||||
<string name="no_muted">Nessun account silenziato!</string>
|
||||
<string name="error_display_name_channel">Devi definire un nome e un nome visualizzato per questo canale!</string>
|
||||
<string name="action_channel_create">Creare un canale</string>
|
||||
@ -219,7 +229,7 @@
|
||||
<string name="report_comment_size">Per favore, specifica una motivazione</string>
|
||||
<string name="not_logged_in">Per eseguire questa operazione, è necessario autenticarsi!</string>
|
||||
<string name="successful_report">L\'account è stato segnalato!</string>
|
||||
<string name="successful_report_comment">The comment has been reported!</string>
|
||||
<string name="successful_report_comment">Il commento è stato riportato!</string>
|
||||
<string name="successful_video_report">Il video è stato segnalato!</string>
|
||||
<string name="password_length_error">La password deve contenere almeno 6 caratteri!</string>
|
||||
<string name="muted_done">L\'account è stato silenziato!</string>
|
||||
|
@ -1,5 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="set_theme">Theme</string>
|
||||
<string name="set_theme_description">Allow to change app theme</string>
|
||||
<string name="federation_issue">The video cannot be federated!</string>
|
||||
<string name="title_home">ホーム</string>
|
||||
<string name="title_local">Local</string>
|
||||
<string name="title_discover">発見</string>
|
||||
@ -143,6 +146,8 @@
|
||||
<string name="pickup_captions">字幕を選択</string>
|
||||
<string name="none">なし</string>
|
||||
<string name="set_video_mode_description">動画再生モードの変更を許可する(デフォルト、ストリーミングまたはブラウザ経由)。</string>
|
||||
<string name="delete_account_comment">Delete account comments</string>
|
||||
<string name="delete_account_comment_confirm">Are you sure you want to remove all the comments of this account?</string>
|
||||
<string name="delete_video">動画を削除</string>
|
||||
<string name="delete_video_confirmation">この動画を本当に削除しますか?</string>
|
||||
<string name="no_video_to_display">動画がありません!</string>
|
||||
@ -193,6 +198,11 @@
|
||||
<item>Webview</item>
|
||||
<item>Direct stream</item>
|
||||
</string-array>
|
||||
<string-array name="settings_theme">
|
||||
<item>Light</item>
|
||||
<item>Dark</item>
|
||||
<item>Automatic</item>
|
||||
</string-array>
|
||||
<string-array name="settings_video_quality">
|
||||
<item>High</item>
|
||||
<item>Medium</item>
|
||||
|
@ -1,5 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="set_theme">Theme</string>
|
||||
<string name="set_theme_description">Allow to change app theme</string>
|
||||
<string name="federation_issue">The video cannot be federated!</string>
|
||||
<string name="title_home">Home</string>
|
||||
<string name="title_local">Local</string>
|
||||
<string name="title_discover">Discover</string>
|
||||
@ -143,6 +146,8 @@
|
||||
<string name="pickup_captions">Pick captions</string>
|
||||
<string name="none">None</string>
|
||||
<string name="set_video_mode_description">Allows to change mode for playing videos (default, streaming or via a browser).</string>
|
||||
<string name="delete_account_comment">Delete account comments</string>
|
||||
<string name="delete_account_comment_confirm">Are you sure you want to remove all the comments of this account?</string>
|
||||
<string name="delete_video">Delete video</string>
|
||||
<string name="delete_video_confirmation">Are you sure to delete this video?</string>
|
||||
<string name="no_video_to_display">No videos to display!</string>
|
||||
@ -193,6 +198,11 @@
|
||||
<item>Webview</item>
|
||||
<item>Direct stream</item>
|
||||
</string-array>
|
||||
<string-array name="settings_theme">
|
||||
<item>Light</item>
|
||||
<item>Dark</item>
|
||||
<item>Automatic</item>
|
||||
</string-array>
|
||||
<string-array name="settings_video_quality">
|
||||
<item>High</item>
|
||||
<item>Medium</item>
|
||||
|
@ -1,5 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="set_theme">Theme</string>
|
||||
<string name="set_theme_description">Allow to change app theme</string>
|
||||
<string name="federation_issue">The video cannot be federated!</string>
|
||||
<string name="title_home">Home</string>
|
||||
<string name="title_local">Local</string>
|
||||
<string name="title_discover">Ontdek</string>
|
||||
@ -143,6 +146,8 @@
|
||||
<string name="pickup_captions">Pick captions</string>
|
||||
<string name="none">Geen</string>
|
||||
<string name="set_video_mode_description">Maakt het mogelijk om van modus te veranderen voor het afspelen van video\'s (standaard, streaming of via een browser).</string>
|
||||
<string name="delete_account_comment">Delete account comments</string>
|
||||
<string name="delete_account_comment_confirm">Are you sure you want to remove all the comments of this account?</string>
|
||||
<string name="delete_video">Video verwijderen</string>
|
||||
<string name="delete_video_confirmation">Weet u zeker dat u deze video wilt verwijderen?</string>
|
||||
<string name="no_video_to_display">Geen video\'s te tonen!</string>
|
||||
@ -193,6 +198,11 @@
|
||||
<item>Directe stroom</item>
|
||||
<item>Direct stream</item>
|
||||
</string-array>
|
||||
<string-array name="settings_theme">
|
||||
<item>Light</item>
|
||||
<item>Dark</item>
|
||||
<item>Automatic</item>
|
||||
</string-array>
|
||||
<string-array name="settings_video_quality">
|
||||
<item>High</item>
|
||||
<item>Medium</item>
|
||||
|
@ -1,5 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="set_theme">Theme</string>
|
||||
<string name="set_theme_description">Allow to change app theme</string>
|
||||
<string name="federation_issue">The video cannot be federated!</string>
|
||||
<string name="title_home">Strona główna</string>
|
||||
<string name="title_local">Local</string>
|
||||
<string name="title_discover">Odkryj</string>
|
||||
@ -143,6 +146,8 @@
|
||||
<string name="pickup_captions">Wybierz podpisy</string>
|
||||
<string name="none">Brak</string>
|
||||
<string name="set_video_mode_description">Umożliwia zmianę trybu odtwarzania filmów (domyślnie, strumieniowo lub za pomocą przeglądarki).</string>
|
||||
<string name="delete_account_comment">Delete account comments</string>
|
||||
<string name="delete_account_comment_confirm">Are you sure you want to remove all the comments of this account?</string>
|
||||
<string name="delete_video">Usuń video</string>
|
||||
<string name="delete_video_confirmation">Czy na pewno usuniesz ten film?</string>
|
||||
<string name="no_video_to_display">Brak filmów do wyświetlenia!</string>
|
||||
@ -193,6 +198,11 @@
|
||||
<item>Strumień bezpośredni</item>
|
||||
<item>Direct stream</item>
|
||||
</string-array>
|
||||
<string-array name="settings_theme">
|
||||
<item>Light</item>
|
||||
<item>Dark</item>
|
||||
<item>Automatic</item>
|
||||
</string-array>
|
||||
<string-array name="settings_video_quality">
|
||||
<item>High</item>
|
||||
<item>Medium</item>
|
||||
|
@ -1,5 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="set_theme">Theme</string>
|
||||
<string name="set_theme_description">Allow to change app theme</string>
|
||||
<string name="federation_issue">The video cannot be federated!</string>
|
||||
<string name="title_home">Home</string>
|
||||
<string name="title_local">Local</string>
|
||||
<string name="title_discover">Discover</string>
|
||||
@ -143,6 +146,8 @@
|
||||
<string name="pickup_captions">Pick captions</string>
|
||||
<string name="none">None</string>
|
||||
<string name="set_video_mode_description">Allows to change mode for playing videos (default, streaming or via a browser).</string>
|
||||
<string name="delete_account_comment">Delete account comments</string>
|
||||
<string name="delete_account_comment_confirm">Are you sure you want to remove all the comments of this account?</string>
|
||||
<string name="delete_video">Delete video</string>
|
||||
<string name="delete_video_confirmation">Are you sure to delete this video?</string>
|
||||
<string name="no_video_to_display">No videos to display!</string>
|
||||
@ -193,6 +198,11 @@
|
||||
<item>Webview</item>
|
||||
<item>Direct stream</item>
|
||||
</string-array>
|
||||
<string-array name="settings_theme">
|
||||
<item>Light</item>
|
||||
<item>Dark</item>
|
||||
<item>Automatic</item>
|
||||
</string-array>
|
||||
<string-array name="settings_video_quality">
|
||||
<item>High</item>
|
||||
<item>Medium</item>
|
||||
|
@ -1,5 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="set_theme">Theme</string>
|
||||
<string name="set_theme_description">Allow to change app theme</string>
|
||||
<string name="federation_issue">The video cannot be federated!</string>
|
||||
<string name="title_home">Home</string>
|
||||
<string name="title_local">Local</string>
|
||||
<string name="title_discover">Discover</string>
|
||||
@ -143,6 +146,8 @@
|
||||
<string name="pickup_captions">Pick captions</string>
|
||||
<string name="none">None</string>
|
||||
<string name="set_video_mode_description">Allows to change mode for playing videos (default, streaming or via a browser).</string>
|
||||
<string name="delete_account_comment">Delete account comments</string>
|
||||
<string name="delete_account_comment_confirm">Are you sure you want to remove all the comments of this account?</string>
|
||||
<string name="delete_video">Delete video</string>
|
||||
<string name="delete_video_confirmation">Are you sure to delete this video?</string>
|
||||
<string name="no_video_to_display">No videos to display!</string>
|
||||
@ -193,6 +198,11 @@
|
||||
<item>Webview</item>
|
||||
<item>Direct stream</item>
|
||||
</string-array>
|
||||
<string-array name="settings_theme">
|
||||
<item>Light</item>
|
||||
<item>Dark</item>
|
||||
<item>Automatic</item>
|
||||
</string-array>
|
||||
<string-array name="settings_video_quality">
|
||||
<item>High</item>
|
||||
<item>Medium</item>
|
||||
|
@ -1,5 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="set_theme">Theme</string>
|
||||
<string name="set_theme_description">Allow to change app theme</string>
|
||||
<string name="federation_issue">The video cannot be federated!</string>
|
||||
<string name="title_home">Главная</string>
|
||||
<string name="title_local">Локальные</string>
|
||||
<string name="title_discover">Подборка</string>
|
||||
@ -85,7 +88,7 @@
|
||||
<string name="set_video_mode">Режим для видео</string>
|
||||
<string name="filter">Фильтр</string>
|
||||
<string name="sepia_search">Поисковик Sepia</string>
|
||||
<string name="sepia_element_nsfw">Показывать деликатные видео</string>
|
||||
<string name="sepia_element_nsfw">Показывать неприличные видео</string>
|
||||
<string name="sepia_element_published_date">Дата публикации</string>
|
||||
<string name="any">Любые</string>
|
||||
<string name="today">Сегодня</string>
|
||||
@ -143,6 +146,8 @@
|
||||
<string name="pickup_captions">Выбрать субтитры</string>
|
||||
<string name="none">Ничто</string>
|
||||
<string name="set_video_mode_description">Позволяет изменить режим воспроизведения видео (по умолчанию потоковый или через браузер).</string>
|
||||
<string name="delete_account_comment">Delete account comments</string>
|
||||
<string name="delete_account_comment_confirm">Are you sure you want to remove all the comments of this account?</string>
|
||||
<string name="delete_video">Удалить видео</string>
|
||||
<string name="delete_video_confirmation">Вы уверены, что хотите удалить это видео?</string>
|
||||
<string name="no_video_to_display">Нет видео для отображения!</string>
|
||||
@ -193,6 +198,11 @@
|
||||
<item>Прямой поток</item>
|
||||
<item>Прямой поток</item>
|
||||
</string-array>
|
||||
<string-array name="settings_theme">
|
||||
<item>Light</item>
|
||||
<item>Dark</item>
|
||||
<item>Automatic</item>
|
||||
</string-array>
|
||||
<string-array name="settings_video_quality">
|
||||
<item>Высокое</item>
|
||||
<item>Среднее</item>
|
||||
|
@ -1,5 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="set_theme">Theme</string>
|
||||
<string name="set_theme_description">Allow to change app theme</string>
|
||||
<string name="federation_issue">The video cannot be federated!</string>
|
||||
<string name="title_home">Home</string>
|
||||
<string name="title_local">Local</string>
|
||||
<string name="title_discover">Discover</string>
|
||||
@ -143,6 +146,8 @@
|
||||
<string name="pickup_captions">Pick captions</string>
|
||||
<string name="none">None</string>
|
||||
<string name="set_video_mode_description">Allows to change mode for playing videos (default, streaming or via a browser).</string>
|
||||
<string name="delete_account_comment">Delete account comments</string>
|
||||
<string name="delete_account_comment_confirm">Are you sure you want to remove all the comments of this account?</string>
|
||||
<string name="delete_video">Delete video</string>
|
||||
<string name="delete_video_confirmation">Are you sure to delete this video?</string>
|
||||
<string name="no_video_to_display">No videos to display!</string>
|
||||
@ -193,6 +198,11 @@
|
||||
<item>Webview</item>
|
||||
<item>Direct stream</item>
|
||||
</string-array>
|
||||
<string-array name="settings_theme">
|
||||
<item>Light</item>
|
||||
<item>Dark</item>
|
||||
<item>Automatic</item>
|
||||
</string-array>
|
||||
<string-array name="settings_video_quality">
|
||||
<item>High</item>
|
||||
<item>Medium</item>
|
||||
|
@ -1,5 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="set_theme">Theme</string>
|
||||
<string name="set_theme_description">Allow to change app theme</string>
|
||||
<string name="federation_issue">The video cannot be federated!</string>
|
||||
<string name="title_home">Home</string>
|
||||
<string name="title_local">Local</string>
|
||||
<string name="title_discover">Discover</string>
|
||||
@ -143,6 +146,8 @@
|
||||
<string name="pickup_captions">Pick captions</string>
|
||||
<string name="none">None</string>
|
||||
<string name="set_video_mode_description">Allows to change mode for playing videos (default, streaming or via a browser).</string>
|
||||
<string name="delete_account_comment">Delete account comments</string>
|
||||
<string name="delete_account_comment_confirm">Are you sure you want to remove all the comments of this account?</string>
|
||||
<string name="delete_video">Delete video</string>
|
||||
<string name="delete_video_confirmation">Are you sure to delete this video?</string>
|
||||
<string name="no_video_to_display">No videos to display!</string>
|
||||
@ -193,6 +198,11 @@
|
||||
<item>Webview</item>
|
||||
<item>Direct stream</item>
|
||||
</string-array>
|
||||
<string-array name="settings_theme">
|
||||
<item>Light</item>
|
||||
<item>Dark</item>
|
||||
<item>Automatic</item>
|
||||
</string-array>
|
||||
<string-array name="settings_video_quality">
|
||||
<item>High</item>
|
||||
<item>Medium</item>
|
||||
|
@ -1,5 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="set_theme">Theme</string>
|
||||
<string name="set_theme_description">Allow to change app theme</string>
|
||||
<string name="federation_issue">The video cannot be federated!</string>
|
||||
<string name="title_home">Home</string>
|
||||
<string name="title_local">Local</string>
|
||||
<string name="title_discover">Discover</string>
|
||||
@ -143,6 +146,8 @@
|
||||
<string name="pickup_captions">Pick captions</string>
|
||||
<string name="none">None</string>
|
||||
<string name="set_video_mode_description">Allows to change mode for playing videos (default, streaming or via a browser).</string>
|
||||
<string name="delete_account_comment">Delete account comments</string>
|
||||
<string name="delete_account_comment_confirm">Are you sure you want to remove all the comments of this account?</string>
|
||||
<string name="delete_video">Delete video</string>
|
||||
<string name="delete_video_confirmation">Are you sure to delete this video?</string>
|
||||
<string name="no_video_to_display">No videos to display!</string>
|
||||
@ -193,6 +198,11 @@
|
||||
<item>Webview</item>
|
||||
<item>Direct stream</item>
|
||||
</string-array>
|
||||
<string-array name="settings_theme">
|
||||
<item>Light</item>
|
||||
<item>Dark</item>
|
||||
<item>Automatic</item>
|
||||
</string-array>
|
||||
<string-array name="settings_video_quality">
|
||||
<item>High</item>
|
||||
<item>Medium</item>
|
||||
|
12
app/src/full/res/values/colors.xml
Normal file
12
app/src/full/res/values/colors.xml
Normal file
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="colorPrimary">#212529</color>
|
||||
<color name="colorPrimaryDark">#000000</color>
|
||||
<color name="colorAccent">#F2690D</color>
|
||||
<color name="tag_color">#bbF2690D</color>
|
||||
<color name="tag_color_text">#FAFAFA</color>
|
||||
<color name="positive_thumbs">#2b90d9</color>
|
||||
<color name="negative_thumbs">#F44336</color>
|
||||
|
||||
<color name="red_1">#F44336</color>
|
||||
</resources>
|
@ -5,8 +5,12 @@
|
||||
<string name="set_video_language_choice" translatable="false">set_video_language_choice</string>
|
||||
<string name="set_video_quality_choice" translatable="false">set_video_quality_choice</string>
|
||||
<string name="set_video_cache_choice" translatable="false">set_video_cache_choice</string>
|
||||
<string name="set_theme_choice" translatable="false">set_theme_choice</string>
|
||||
|
||||
|
||||
<string name="set_theme">Theme</string>
|
||||
<string name="set_theme_description">Allow to change app theme</string>
|
||||
<string name="federation_issue">The video cannot be federated!</string>
|
||||
<string name="title_home">Home</string>
|
||||
<string name="title_local">Local</string>
|
||||
<string name="title_discover">Discover</string>
|
||||
@ -189,6 +193,8 @@
|
||||
<string name="none">None</string>
|
||||
<string name="set_video_mode_description">Allows to change mode for playing videos (default, streaming or via a browser).</string>
|
||||
|
||||
<string name="delete_account_comment">Delete account comments</string>
|
||||
<string name="delete_account_comment_confirm">Are you sure you want to remove all the comments of this account?</string>
|
||||
|
||||
<string name="delete_video">Delete video</string>
|
||||
<string name="delete_video_confirmation">Are you sure to delete this video?</string>
|
||||
@ -245,6 +251,14 @@
|
||||
<item>Direct stream</item>
|
||||
</string-array>
|
||||
|
||||
|
||||
<string-array name="settings_theme">
|
||||
<item>Light</item>
|
||||
<item>Dark</item>
|
||||
<item>Automatic</item>
|
||||
</string-array>
|
||||
|
||||
|
||||
<string-array name="settings_video_quality">
|
||||
<item>High</item>
|
||||
<item>Medium</item>
|
||||
|
@ -1,21 +0,0 @@
|
||||
<resources>
|
||||
|
||||
<!-- Base application theme. -->
|
||||
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
|
||||
<!-- Customize your theme here. -->
|
||||
<item name="colorPrimary">@color/colorPrimary_full</item>
|
||||
<item name="colorPrimaryDark">@color/colorPrimaryDark_full</item>
|
||||
<item name="colorAccent">@color/colorAccent_full</item>
|
||||
</style>
|
||||
|
||||
<style name="AppThemeNoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
|
||||
<!-- Customize your theme here. -->
|
||||
<item name="colorPrimary">@color/colorPrimary_full</item>
|
||||
<item name="colorPrimaryDark">@color/colorPrimaryDark_full</item>
|
||||
<item name="colorAccent">@color/colorAccent_full</item>
|
||||
</style>
|
||||
|
||||
<style name="progress" parent="SpinKitView.Circle" />
|
||||
|
||||
<style name="progressBottom" parent="SpinKitView.ThreeBounce" />
|
||||
</resources>
|
@ -15,12 +15,16 @@ package app.fedilab.fedilabtube;
|
||||
* see <http://www.gnu.org/licenses>. */
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
|
||||
import androidx.multidex.MultiDex;
|
||||
import androidx.multidex.MultiDexApplication;
|
||||
|
||||
import net.gotev.uploadservice.UploadService;
|
||||
|
||||
import app.fedilab.fedilabtube.helper.Helper;
|
||||
import app.fedilab.fedilabtube.helper.ThemeHelper;
|
||||
|
||||
public class FedilabTube extends MultiDexApplication {
|
||||
@Override
|
||||
protected void attachBaseContext(Context base) {
|
||||
@ -29,7 +33,12 @@ public class FedilabTube extends MultiDexApplication {
|
||||
MultiDex.install(FedilabTube.this);
|
||||
|
||||
UploadService.NAMESPACE = BuildConfig.APPLICATION_ID;
|
||||
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||
int themePref = sharedpreferences.getInt(Helper.SET_THEME, Helper.DEFAULT_MODE);
|
||||
ThemeHelper.switchTo(themePref);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
@ -117,7 +117,6 @@ public class InstancePickerActivity extends AppCompatActivity {
|
||||
pickup_languages.setOnClickListener(v -> {
|
||||
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(InstancePickerActivity.this);
|
||||
|
||||
|
||||
int i = 0;
|
||||
if (languages.size() > 0) {
|
||||
Iterator<Map.Entry<String, String>> it = languages.entrySet().iterator();
|
||||
@ -175,7 +174,7 @@ public class InstancePickerActivity extends AppCompatActivity {
|
||||
});
|
||||
}
|
||||
|
||||
if (peertubeInformation != null && peertubeInformation.getLanguages() != null) {
|
||||
if (peertubeInformation != null && peertubeInformation.getCategories() != null) {
|
||||
LinkedHashMap<Integer, String> categories = new LinkedHashMap<>(peertubeInformation.getCategories());
|
||||
checkedItemsCategory = new boolean[categories.size()];
|
||||
itemsLabelCategory = new String[categories.size()];
|
||||
|
@ -22,6 +22,7 @@ import android.content.SharedPreferences;
|
||||
import android.database.sqlite.SQLiteDatabase;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.widget.EditText;
|
||||
@ -210,12 +211,15 @@ public class MainActivity extends AppCompatActivity {
|
||||
runOnUiThread(() -> Helper.logoutCurrentUser(MainActivity.this, account));
|
||||
return;
|
||||
}
|
||||
|
||||
runOnUiThread(() -> {
|
||||
//To avoid a token issue with subscriptions, adding fragment is done when the token is refreshed.
|
||||
fm.beginTransaction().add(R.id.nav_host_fragment, recentFragment, "4").hide(recentFragment).commit();
|
||||
fm.beginTransaction().add(R.id.nav_host_fragment, trendingFragment, "3").hide(trendingFragment).commit();
|
||||
fm.beginTransaction().add(R.id.nav_host_fragment, subscriptionFragment, "2").hide(subscriptionFragment).commit();
|
||||
fm.beginTransaction().add(R.id.nav_host_fragment, overviewFragment, "1").commit();
|
||||
new Handler().post(() -> {
|
||||
fm.beginTransaction().add(R.id.nav_host_fragment, recentFragment, "4").hide(recentFragment).commitAllowingStateLoss();
|
||||
fm.beginTransaction().add(R.id.nav_host_fragment, trendingFragment, "3").hide(trendingFragment).commitAllowingStateLoss();
|
||||
fm.beginTransaction().add(R.id.nav_host_fragment, subscriptionFragment, "2").hide(subscriptionFragment).commitAllowingStateLoss();
|
||||
fm.beginTransaction().add(R.id.nav_host_fragment, overviewFragment, "1").commitAllowingStateLoss();
|
||||
});
|
||||
});
|
||||
|
||||
UserMe userMe = new RetrofitPeertubeAPI(MainActivity.this, instance, token.getAccess_token()).verifyCredentials();
|
||||
|
@ -15,6 +15,7 @@ package app.fedilab.fedilabtube;
|
||||
* see <http://www.gnu.org/licenses>. */
|
||||
|
||||
import android.Manifest;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
import android.app.Dialog;
|
||||
import android.content.Intent;
|
||||
@ -32,7 +33,6 @@ import android.os.Handler;
|
||||
import android.support.v4.media.session.MediaSessionCompat;
|
||||
import android.text.Html;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
@ -46,7 +46,6 @@ import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.ScrollView;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
@ -59,6 +58,7 @@ import androidx.appcompat.widget.PopupMenu;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.core.graphics.drawable.DrawableCompat;
|
||||
import androidx.core.widget.NestedScrollView;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
@ -114,6 +114,7 @@ import app.fedilab.fedilabtube.viewmodel.CaptionsVM;
|
||||
import app.fedilab.fedilabtube.viewmodel.CommentVM;
|
||||
import app.fedilab.fedilabtube.viewmodel.PlaylistsVM;
|
||||
import app.fedilab.fedilabtube.viewmodel.PostActionsVM;
|
||||
import app.fedilab.fedilabtube.viewmodel.SearchVM;
|
||||
import app.fedilab.fedilabtube.viewmodel.TimelineVM;
|
||||
import app.fedilab.fedilabtube.webview.CustomWebview;
|
||||
import app.fedilab.fedilabtube.webview.MastalabWebChromeClient;
|
||||
@ -136,7 +137,7 @@ public class PeertubeActivity extends AppCompatActivity implements CommentListAd
|
||||
private FullScreenMediaController.fullscreen fullscreen;
|
||||
private RelativeLayout loader;
|
||||
private TextView peertube_view_count, peertube_playlist, peertube_bookmark, peertube_like_count, peertube_dislike_count, peertube_description, peertube_title, more_actions;
|
||||
private ScrollView peertube_information_container;
|
||||
private NestedScrollView peertube_information_container;
|
||||
private VideoData.Video peertube;
|
||||
private PlayerView playerView;
|
||||
private SimpleExoPlayer player;
|
||||
@ -226,6 +227,7 @@ public class PeertubeActivity extends AppCompatActivity implements CommentListAd
|
||||
videoUuid = b.getString("video_uuid", null);
|
||||
isMyVideo = b.getBoolean("isMyVideo", false);
|
||||
sepiaSearch = b.getBoolean("sepia_search", false);
|
||||
peertube = b.getParcelable("video");
|
||||
}
|
||||
|
||||
|
||||
@ -286,7 +288,7 @@ public class PeertubeActivity extends AppCompatActivity implements CommentListAd
|
||||
flag_loading = true;
|
||||
comments = new ArrayList<>();
|
||||
lv_comments = findViewById(R.id.peertube_comments);
|
||||
commentListAdapter = new CommentListAdapter(comments);
|
||||
commentListAdapter = new CommentListAdapter(comments, Helper.isVideoOwner(PeertubeActivity.this, peertube));
|
||||
commentListAdapter.allCommentRemoved = PeertubeActivity.this;
|
||||
LinearLayoutManager mLayoutManager = new LinearLayoutManager(PeertubeActivity.this);
|
||||
lv_comments.setLayoutManager(mLayoutManager);
|
||||
@ -307,9 +309,23 @@ public class PeertubeActivity extends AppCompatActivity implements CommentListAd
|
||||
}
|
||||
}
|
||||
});
|
||||
playVideo();
|
||||
if( peertube != null && sepiaSearch && peertube.getEmbedUrl() != null && Helper.isLoggedIn(PeertubeActivity.this)) {
|
||||
SearchVM viewModelSearch = new ViewModelProvider(PeertubeActivity.this).get(SearchVM.class);
|
||||
viewModelSearch.getVideos("0", peertube.getEmbedUrl()).observe(PeertubeActivity.this, this::manageVIewVideos);
|
||||
}else {
|
||||
playVideo();
|
||||
}
|
||||
}
|
||||
|
||||
private void manageVIewVideos(APIResponse apiResponse) {
|
||||
if( apiResponse == null || apiResponse.getPeertubes() == null || apiResponse.getPeertubes().size() == 0) {
|
||||
playVideo();
|
||||
return;
|
||||
}
|
||||
peertube = apiResponse.getPeertubes().get(0);
|
||||
sepiaSearch = false;
|
||||
playVideo();
|
||||
}
|
||||
|
||||
public void manageVIewComment(APIResponse apiResponse) {
|
||||
flag_loading = false;
|
||||
@ -403,11 +419,6 @@ public class PeertubeActivity extends AppCompatActivity implements CommentListAd
|
||||
return super.dispatchTouchEvent(ev);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(@NotNull Menu menu) {
|
||||
getMenuInflater().inflate(R.menu.main_peertube, menu);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
@ -418,19 +429,6 @@ public class PeertubeActivity extends AppCompatActivity implements CommentListAd
|
||||
finish();
|
||||
}
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.action_report) {
|
||||
androidx.appcompat.app.AlertDialog.Builder dialogBuilder = new androidx.appcompat.app.AlertDialog.Builder(PeertubeActivity.this);
|
||||
LayoutInflater inflater1 = getLayoutInflater();
|
||||
View dialogView = inflater1.inflate(R.layout.popup_report_choice, new LinearLayout(PeertubeActivity.this), false);
|
||||
dialogBuilder.setView(dialogView);
|
||||
Button report_video = dialogView.findViewById(R.id.report_video);
|
||||
Button report_account = dialogView.findViewById(R.id.report_account);
|
||||
dialogBuilder.setNeutralButton(R.string.cancel, (dialog, id) -> dialog.dismiss());
|
||||
androidx.appcompat.app.AlertDialog alertDialog = dialogBuilder.create();
|
||||
alertDialog.show();
|
||||
report_video.setOnClickListener(v -> reportAlert(REPORT_VIDEO, alertDialog));
|
||||
report_account.setOnClickListener(v -> reportAlert(REPORT_ACCOUNT, alertDialog));
|
||||
return true;
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
@ -489,6 +487,7 @@ public class PeertubeActivity extends AppCompatActivity implements CommentListAd
|
||||
}
|
||||
|
||||
|
||||
@SuppressLint("ClickableViewAccessibility")
|
||||
public void manageVIewVideo(APIResponse apiResponse) {
|
||||
|
||||
if (apiResponse == null || (apiResponse.getError() != null) || apiResponse.getPeertubes() == null || apiResponse.getPeertubes().size() == 0) {
|
||||
@ -521,7 +520,11 @@ public class PeertubeActivity extends AppCompatActivity implements CommentListAd
|
||||
add_comment_write.requestFocus();
|
||||
add_comment_write.setSelection(add_comment_write.getText().length());
|
||||
} else {
|
||||
Toasty.error(PeertubeActivity.this, getString(R.string.not_logged_in), Toast.LENGTH_SHORT).show();
|
||||
if( sepiaSearch) {
|
||||
Toasty.info(PeertubeActivity.this, getString(R.string.federation_issue), Toasty.LENGTH_SHORT).show();
|
||||
}else {
|
||||
Toasty.error(PeertubeActivity.this, getString(R.string.not_logged_in), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
@ -538,7 +541,11 @@ public class PeertubeActivity extends AppCompatActivity implements CommentListAd
|
||||
add_comment_read.requestFocus();
|
||||
}
|
||||
} else {
|
||||
Toasty.error(PeertubeActivity.this, getString(R.string.not_logged_in), Toast.LENGTH_SHORT).show();
|
||||
if( sepiaSearch) {
|
||||
Toasty.info(PeertubeActivity.this, getString(R.string.federation_issue), Toasty.LENGTH_SHORT).show();
|
||||
}else {
|
||||
Toasty.error(PeertubeActivity.this, getString(R.string.not_logged_in), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@ -563,7 +570,10 @@ public class PeertubeActivity extends AppCompatActivity implements CommentListAd
|
||||
}
|
||||
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE);
|
||||
setTitle(peertube.getName());
|
||||
|
||||
peertube_description.setText(peertube.getDescription());
|
||||
|
||||
|
||||
peertube_title.setText(peertube.getName());
|
||||
peertube_dislike_count.setText(String.valueOf(peertube.getDislikes()));
|
||||
peertube_like_count.setText(String.valueOf(peertube.getLikes()));
|
||||
@ -591,7 +601,11 @@ public class PeertubeActivity extends AppCompatActivity implements CommentListAd
|
||||
peertube_like_count.setText(String.valueOf(count));
|
||||
changeColor();
|
||||
} else {
|
||||
Toasty.error(PeertubeActivity.this, getString(R.string.not_logged_in), Toast.LENGTH_SHORT).show();
|
||||
if( sepiaSearch) {
|
||||
Toasty.info(PeertubeActivity.this, getString(R.string.federation_issue), Toasty.LENGTH_SHORT).show();
|
||||
}else {
|
||||
Toasty.error(PeertubeActivity.this, getString(R.string.not_logged_in), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
});
|
||||
peertube_dislike_count.setOnClickListener(v -> {
|
||||
@ -612,7 +626,11 @@ public class PeertubeActivity extends AppCompatActivity implements CommentListAd
|
||||
peertube_dislike_count.setText(String.valueOf(count));
|
||||
changeColor();
|
||||
} else {
|
||||
Toasty.error(PeertubeActivity.this, getString(R.string.not_logged_in), Toast.LENGTH_SHORT).show();
|
||||
if( sepiaSearch) {
|
||||
Toasty.info(PeertubeActivity.this, getString(R.string.federation_issue), Toasty.LENGTH_SHORT).show();
|
||||
}else {
|
||||
Toasty.error(PeertubeActivity.this, getString(R.string.not_logged_in), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@ -783,6 +801,20 @@ public class PeertubeActivity extends AppCompatActivity implements CommentListAd
|
||||
alertDialog.show();
|
||||
|
||||
break;
|
||||
|
||||
case R.id.action_report:
|
||||
dialogBuilder = new androidx.appcompat.app.AlertDialog.Builder(PeertubeActivity.this);
|
||||
LayoutInflater inflater1 = getLayoutInflater();
|
||||
View dialogView = inflater1.inflate(R.layout.popup_report_choice, new LinearLayout(PeertubeActivity.this), false);
|
||||
dialogBuilder.setView(dialogView);
|
||||
Button report_video = dialogView.findViewById(R.id.report_video);
|
||||
Button report_account = dialogView.findViewById(R.id.report_account);
|
||||
dialogBuilder.setNeutralButton(R.string.cancel, (dialog, id) -> dialog.dismiss());
|
||||
alertDialog = dialogBuilder.create();
|
||||
alertDialog.show();
|
||||
report_video.setOnClickListener(v -> reportAlert(REPORT_VIDEO, alertDialog));
|
||||
report_account.setOnClickListener(v -> reportAlert(REPORT_ACCOUNT, alertDialog));
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
@ -842,6 +874,8 @@ public class PeertubeActivity extends AppCompatActivity implements CommentListAd
|
||||
MediaSessionCompat mediaSession = new MediaSessionCompat(this, getPackageName());
|
||||
MediaSessionConnector mediaSessionConnector = new MediaSessionConnector(mediaSession);
|
||||
mediaSessionConnector.setPlayer(player);
|
||||
PlayerControlView controlView = playerView.findViewById(R.id.exo_controller);
|
||||
controlView.hide();
|
||||
playerView.setControllerAutoShow(false);
|
||||
mediaSession.setActive(true);
|
||||
enterPictureInPictureMode();
|
||||
|
@ -19,7 +19,6 @@ import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.Button;
|
||||
@ -315,7 +314,6 @@ public class SepiaSearchActivity extends AppCompatActivity {
|
||||
apply_filter.setOnClickListener(v-> makeSearch());
|
||||
|
||||
searchBar.openSearch();
|
||||
getWindow().setSoftInputMode (WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
|
||||
}
|
||||
|
||||
private void makeSearch(){
|
||||
|
@ -341,9 +341,12 @@ public interface PeertubeService {
|
||||
@DELETE("videos/{id}/comments/{commentId}")
|
||||
Call<String> deleteComment(@Header("Authorization") String credentials, @Path("id") String id, @Path("commentId") String commentId);
|
||||
|
||||
@POST("bulk/remove-comments-of")
|
||||
Call<String> deleteAllCommentForAccount(@Header("Authorization") String credentials, @Field("accountName") String accountName, @Field("scope") String scope);
|
||||
|
||||
@Headers({"Content-Type: application/json", "Cache-Control: max-age=640000"})
|
||||
@POST("abuses")
|
||||
Call<String> report(
|
||||
Call<Report.ReportReturn> report(
|
||||
@Header("Authorization") String credentials,
|
||||
@Body Report report);
|
||||
|
||||
|
@ -692,12 +692,12 @@ public class RetrofitPeertubeAPI {
|
||||
|
||||
public APIResponse report(Report report) {
|
||||
PeertubeService peertubeService = init();
|
||||
Call<String> report1 = peertubeService.report(getToken(), report);
|
||||
Call<Report.ReportReturn> report1 = peertubeService.report(getToken(), report);
|
||||
APIResponse apiResponse = new APIResponse();
|
||||
try {
|
||||
Response<String> response = report1.execute();
|
||||
if (response.isSuccessful()) {
|
||||
apiResponse.setActionReturn(response.body());
|
||||
Response<Report.ReportReturn> response = report1.execute();
|
||||
if (response.isSuccessful() && response.body() != null) {
|
||||
apiResponse.setActionReturn(response.body().getItemStr().getLabel());
|
||||
} else {
|
||||
setError(apiResponse, response.code(), response.errorBody());
|
||||
}
|
||||
@ -816,6 +816,9 @@ public class RetrofitPeertubeAPI {
|
||||
case PEERTUBEDELETECOMMENT:
|
||||
postCall = peertubeService.deleteComment(getToken(), id, element);
|
||||
break;
|
||||
case PEERTUBE_DELETE_ALL_COMMENT_FOR_ACCOUNT:
|
||||
postCall = peertubeService.deleteAllCommentForAccount(getToken(), id, element);
|
||||
break;
|
||||
case DELETE_CHANNEL:
|
||||
postCall = peertubeService.deleteChannel(getToken(), id);
|
||||
break;
|
||||
@ -1384,6 +1387,7 @@ public class RetrofitPeertubeAPI {
|
||||
UNMUTE,
|
||||
RATEVIDEO,
|
||||
PEERTUBEDELETECOMMENT,
|
||||
PEERTUBE_DELETE_ALL_COMMENT_FOR_ACCOUNT,
|
||||
PEERTUBEDELETEVIDEO,
|
||||
REPORT_VIDEO,
|
||||
REPORT_ACCOUNT,
|
||||
|
@ -81,6 +81,8 @@ public class VideoData {
|
||||
private int duration;
|
||||
@SerializedName("embedPath")
|
||||
private String embedPath;
|
||||
@SerializedName("embedUrl")
|
||||
private String embedUrl;
|
||||
@SerializedName("files")
|
||||
private List<File> files;
|
||||
@SerializedName("id")
|
||||
@ -151,6 +153,7 @@ public class VideoData {
|
||||
this.downloadEnabled = in.readByte() != 0;
|
||||
this.duration = in.readInt();
|
||||
this.embedPath = in.readString();
|
||||
this.embedUrl = in.readString();
|
||||
this.files = new ArrayList<>();
|
||||
in.readList(this.files, File.class.getClassLoader());
|
||||
this.id = in.readString();
|
||||
@ -349,6 +352,14 @@ public class VideoData {
|
||||
this.embedPath = embedPath;
|
||||
}
|
||||
|
||||
public String getEmbedUrl() {
|
||||
return embedUrl;
|
||||
}
|
||||
|
||||
public void setEmbedUrl(String embedUrl) {
|
||||
this.embedUrl = embedUrl;
|
||||
}
|
||||
|
||||
public List<File> getFiles() {
|
||||
return files;
|
||||
}
|
||||
@ -585,6 +596,7 @@ public class VideoData {
|
||||
dest.writeByte(this.downloadEnabled ? (byte) 1 : (byte) 0);
|
||||
dest.writeInt(this.duration);
|
||||
dest.writeString(this.embedPath);
|
||||
dest.writeString(this.embedUrl);
|
||||
dest.writeList(this.files);
|
||||
dest.writeString(this.id);
|
||||
dest.writeByte(this.isLocal ? (byte) 1 : (byte) 0);
|
||||
|
@ -131,4 +131,17 @@ public class Report {
|
||||
this.id = id;
|
||||
}
|
||||
}
|
||||
|
||||
public static class ReportReturn {
|
||||
@SerializedName("abuse")
|
||||
private ItemStr reply;
|
||||
|
||||
public ItemStr getItemStr() {
|
||||
return reply;
|
||||
}
|
||||
|
||||
public void setItemStr(ItemStr itemStr) {
|
||||
this.reply = itemStr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -49,6 +49,7 @@ import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import app.fedilab.fedilabtube.R;
|
||||
import app.fedilab.fedilabtube.ShowAccountActivity;
|
||||
import app.fedilab.fedilabtube.client.APIResponse;
|
||||
import app.fedilab.fedilabtube.client.RetrofitPeertubeAPI;
|
||||
import app.fedilab.fedilabtube.client.data.CommentData.Comment;
|
||||
@ -57,6 +58,8 @@ import app.fedilab.fedilabtube.helper.Helper;
|
||||
import app.fedilab.fedilabtube.viewmodel.PostActionsVM;
|
||||
import es.dmoral.toasty.Toasty;
|
||||
|
||||
import static app.fedilab.fedilabtube.client.RetrofitPeertubeAPI.ActionType.MUTE;
|
||||
|
||||
|
||||
public class CommentListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
|
||||
@ -65,10 +68,12 @@ public class CommentListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
|
||||
private Context context;
|
||||
private List<Comment> comments;
|
||||
private CommentListAdapter commentListAdapter;
|
||||
boolean isVideoOwner;
|
||||
|
||||
public CommentListAdapter(List<Comment> comments) {
|
||||
public CommentListAdapter(List<Comment> comments, boolean isVideoOwner) {
|
||||
this.comments = comments;
|
||||
commentListAdapter = this;
|
||||
this.isVideoOwner = isVideoOwner;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -112,6 +117,18 @@ public class CommentListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
|
||||
.inflate(R.menu.comment_menu, popup.getMenu());
|
||||
if (!Helper.isOwner(context, comment.getAccount())) {
|
||||
popup.getMenu().findItem(R.id.action_delete).setVisible(false);
|
||||
}else {
|
||||
popup.getMenu().findItem(R.id.action_mute).setVisible(false);
|
||||
popup.getMenu().findItem(R.id.action_remove_comments).setVisible(false);
|
||||
popup.getMenu().findItem(R.id.action_report).setVisible(false);
|
||||
}
|
||||
if( !isVideoOwner) {
|
||||
popup.getMenu().findItem(R.id.action_remove_comments).setVisible(false);
|
||||
}
|
||||
if( !Helper.isLoggedIn(context)) {
|
||||
popup.getMenu().findItem(R.id.action_mute).setVisible(false);
|
||||
popup.getMenu().findItem(R.id.action_remove_comments).setVisible(false);
|
||||
popup.getMenu().findItem(R.id.action_delete).setVisible(false);
|
||||
}
|
||||
popup.setOnMenuItemClickListener(item -> {
|
||||
switch (item.getItemId()) {
|
||||
@ -142,6 +159,39 @@ public class CommentListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
|
||||
case R.id.action_report:
|
||||
reportComment(comment);
|
||||
break;
|
||||
case R.id.action_mute:
|
||||
PostActionsVM viewModel = new ViewModelProvider((ViewModelStoreOwner) context).get(PostActionsVM.class);
|
||||
viewModel.post(MUTE, comment.getAccount().getAcct(), null).observe((LifecycleOwner) context, apiResponse -> manageVIewPostActions(MUTE, apiResponse));
|
||||
comments.remove(comment);
|
||||
notifyDataSetChanged();
|
||||
if (comments.size() == 0) {
|
||||
allCommentRemoved.onAllCommentRemoved();
|
||||
}
|
||||
break;
|
||||
case R.id.action_remove_comments:
|
||||
builder = new android.app.AlertDialog.Builder(context);
|
||||
builder.setTitle(R.string.delete_account_comment);
|
||||
builder.setMessage(R.string.delete_account_comment_confirm);
|
||||
builder.setIcon(android.R.drawable.ic_dialog_alert)
|
||||
.setPositiveButton(R.string.delete, (dialog, which) -> {
|
||||
new Thread(() -> {
|
||||
new RetrofitPeertubeAPI(context).post(RetrofitPeertubeAPI.ActionType.PEERTUBE_DELETE_ALL_COMMENT_FOR_ACCOUNT, comment.getAccount().getAcct(), "my-videos");
|
||||
Handler mainHandler = new Handler(Looper.getMainLooper());
|
||||
Runnable myRunnable = () -> {
|
||||
comments.remove(comment);
|
||||
notifyDataSetChanged();
|
||||
if (comments.size() == 0) {
|
||||
allCommentRemoved.onAllCommentRemoved();
|
||||
}
|
||||
};
|
||||
mainHandler.post(myRunnable);
|
||||
}).start();
|
||||
|
||||
dialog.dismiss();
|
||||
})
|
||||
.setNegativeButton(R.string.no, (dialog, which) -> dialog.dismiss())
|
||||
.show();
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
@ -208,6 +258,8 @@ public class CommentListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
|
||||
}
|
||||
} else if (statusAction == RetrofitPeertubeAPI.ActionType.REPORT_COMMENT) {
|
||||
Toasty.success(context, context.getString(R.string.successful_report_comment), Toasty.LENGTH_LONG).show();
|
||||
}else if (statusAction == MUTE) {
|
||||
Toasty.info(context, context.getString(R.string.muted_done), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -111,7 +111,7 @@ public class PeertubeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
|
||||
if (timelineType == TimelineVM.TimelineType.MY_VIDEOS) {
|
||||
ownVideos = true;
|
||||
} else {
|
||||
ownVideos = video.getAccount() != null && video.getAccount().getId() != null && video.getAccount().getHost().compareTo(Helper.getLiveInstance(context)) == 0 && video.getAccount().getId().compareTo(userId) == 0;
|
||||
ownVideos = Helper.isVideoOwner(context, video);
|
||||
}
|
||||
|
||||
String instance = null;
|
||||
@ -262,6 +262,7 @@ public class PeertubeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
|
||||
b.putString("video_uuid", video.getUuid());
|
||||
b.putBoolean("isMyVideo", ownVideos);
|
||||
b.putBoolean("sepia_search", sepiaSearch);
|
||||
b.putParcelable("video", video);
|
||||
if( sepiaSearch) {
|
||||
b.putString("peertube_instance", video.getAccount().getHost());
|
||||
}
|
||||
@ -272,6 +273,7 @@ public class PeertubeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
|
||||
Intent intent = new Intent(context, PeertubeActivity.class);
|
||||
Bundle b = new Bundle();
|
||||
b.putString("video_id", video.getId());
|
||||
b.putParcelable("video", video);
|
||||
b.putString("video_uuid", video.getUuid());
|
||||
b.putBoolean("isMyVideo", ownVideos);
|
||||
b.putBoolean("sepia_search", sepiaSearch);
|
||||
|
@ -107,6 +107,7 @@ public class PeertubeNotificationsListAdapter extends RecyclerView.Adapter<Recyc
|
||||
holder.peertube_notif_message.setOnClickListener(v -> {
|
||||
Intent intent = new Intent(context, PeertubeActivity.class);
|
||||
Bundle b = new Bundle();
|
||||
b.putParcelable("video", notification.getVideo());
|
||||
b.putString("peertube_instance", finalAccountAction1.getHost());
|
||||
b.putString("video_id", notification.getComment().getVideo().getId());
|
||||
b.putString("video_uuid", notification.getComment().getVideo().getUuid());
|
||||
@ -142,6 +143,7 @@ public class PeertubeNotificationsListAdapter extends RecyclerView.Adapter<Recyc
|
||||
holder.peertube_notif_message.setOnClickListener(v -> {
|
||||
Intent intent = new Intent(context, PeertubeActivity.class);
|
||||
Bundle b = new Bundle();
|
||||
b.putParcelable("video", notification.getVideo());
|
||||
b.putString("peertube_instance", Helper.getLiveInstance(context));
|
||||
b.putString("video_id", notification.getVideo().getId());
|
||||
b.putString("video_uuid", notification.getVideo().getUuid());
|
||||
|
@ -22,6 +22,7 @@ import java.util.Set;
|
||||
|
||||
import app.fedilab.fedilabtube.R;
|
||||
import app.fedilab.fedilabtube.helper.Helper;
|
||||
import app.fedilab.fedilabtube.helper.ThemeHelper;
|
||||
import es.dmoral.toasty.Toasty;
|
||||
|
||||
import static app.fedilab.fedilabtube.MainActivity.peertubeInformation;
|
||||
@ -89,6 +90,25 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Shared
|
||||
|
||||
}
|
||||
}
|
||||
if (key.compareTo(getString(R.string.set_theme_choice)) == 0) {
|
||||
ListPreference set_theme_choice = findPreference(getString(R.string.set_theme_choice));
|
||||
if (set_theme_choice != null) {
|
||||
int choice;
|
||||
switch (set_theme_choice.getValue()) {
|
||||
case "0":
|
||||
choice = Helper.LIGHT_MODE;
|
||||
break;
|
||||
case "1":
|
||||
choice = Helper.DARK_MODE;
|
||||
break;
|
||||
default:
|
||||
choice = Helper.DEFAULT_MODE;
|
||||
}
|
||||
editor.putInt(Helper.SET_THEME, choice);
|
||||
editor.apply();
|
||||
ThemeHelper.switchTo(choice);
|
||||
}
|
||||
}
|
||||
if (key.compareTo(getString(R.string.set_video_quality_choice)) == 0) {
|
||||
ListPreference set_video_quality_choice = findPreference(getString(R.string.set_video_quality_choice));
|
||||
if (set_video_quality_choice != null) {
|
||||
@ -137,12 +157,27 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Shared
|
||||
return;
|
||||
}
|
||||
|
||||
//****** App theme *******
|
||||
ListPreference set_theme_choice = findPreference(getString(R.string.set_theme_choice));
|
||||
List<String> arrayTheme = Arrays.asList(getResources().getStringArray(R.array.settings_theme));
|
||||
CharSequence[] entriesTheme = arrayTheme.toArray(new CharSequence[0]);
|
||||
CharSequence[] entryValuesTheme = new CharSequence[3];
|
||||
final SharedPreferences sharedpref = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||
int currentTheme = sharedpref.getInt(Helper.SET_THEME, Helper.DEFAULT_MODE);
|
||||
entryValuesTheme[0] = String.valueOf(Helper.LIGHT_MODE);
|
||||
entryValuesTheme[1] = String.valueOf(Helper.DARK_MODE);
|
||||
entryValuesTheme[2] = String.valueOf(Helper.DEFAULT_MODE);
|
||||
if (set_theme_choice != null) {
|
||||
set_theme_choice.setEntries(entriesTheme);
|
||||
set_theme_choice.setEntryValues(entryValuesTheme);
|
||||
set_theme_choice.setValueIndex(currentTheme);
|
||||
}
|
||||
|
||||
//****** Video mode *******
|
||||
ListPreference set_video_mode_choice = findPreference(getString(R.string.set_video_mode_choice));
|
||||
List<String> array = Arrays.asList(getResources().getStringArray(R.array.settings_video_mode));
|
||||
CharSequence[] entries = array.toArray(new CharSequence[0]);
|
||||
CharSequence[] entryValues = new CharSequence[3];
|
||||
final SharedPreferences sharedpref = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||
int video_mode = sharedpref.getInt(Helper.SET_VIDEO_MODE, Helper.VIDEO_MODE_NORMAL);
|
||||
entryValues[0] = String.valueOf(Helper.VIDEO_MODE_NORMAL);
|
||||
entryValues[1] = String.valueOf(Helper.VIDEO_MODE_STREAMING);
|
||||
|
@ -58,6 +58,7 @@ import app.fedilab.fedilabtube.MainActivity;
|
||||
import app.fedilab.fedilabtube.R;
|
||||
import app.fedilab.fedilabtube.WebviewActivity;
|
||||
import app.fedilab.fedilabtube.client.data.AccountData.Account;
|
||||
import app.fedilab.fedilabtube.client.data.VideoData;
|
||||
import app.fedilab.fedilabtube.client.entities.File;
|
||||
import app.fedilab.fedilabtube.sqlite.AccountDAO;
|
||||
import app.fedilab.fedilabtube.sqlite.Sqlite;
|
||||
@ -72,6 +73,10 @@ public class Helper {
|
||||
public static final int RELOAD_MYVIDEOS = 10;
|
||||
public static final String SET_VIDEO_MODE = "set_video_mode";
|
||||
public static final String SET_QUALITY_MODE = "set_quality_mode";
|
||||
public static final String SET_THEME = "set_theme";
|
||||
public static final int LIGHT_MODE = 0;
|
||||
public static final int DARK_MODE = 1;
|
||||
public static final int DEFAULT_MODE = 2;
|
||||
public static final String TIMELINE_TYPE = "timeline_type";
|
||||
public static final int VIDEO_MODE_NORMAL = 0;
|
||||
public static final int VIDEO_MODE_STREAMING = 2;
|
||||
@ -573,7 +578,7 @@ public class Helper {
|
||||
}
|
||||
|
||||
public static int getColorAccent() {
|
||||
return BuildConfig.full_instances ? R.color.colorAccent_full : R.color.colorAccent;
|
||||
return R.color.colorAccent;
|
||||
}
|
||||
|
||||
|
||||
@ -588,6 +593,18 @@ public class Helper {
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isVideoOwner(Context context, VideoData.Video video) {
|
||||
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||
String userName = sharedpreferences.getString(Helper.PREF_KEY_NAME, "");
|
||||
String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, "");
|
||||
Account account = video.getAccount();
|
||||
if (instance != null && userName != null) {
|
||||
return account.getUsername().compareTo(userName) == 0 && account.getHost().compareTo(instance) == 0;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/***
|
||||
* Return a File depending of the requested quality
|
||||
* @param context Context
|
||||
|
@ -0,0 +1,46 @@
|
||||
package app.fedilab.fedilabtube.helper;
|
||||
/* Copyright 2020 Thomas Schneider
|
||||
*
|
||||
* This file is a part of TubeLab
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under the terms of the
|
||||
* GNU General Public License as published by the Free Software Foundation; either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* TubeLab is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
|
||||
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
* Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with TubeLab; if not,
|
||||
* see <http://www.gnu.org/licenses>. */
|
||||
|
||||
import android.os.Build;
|
||||
|
||||
import androidx.appcompat.app.AppCompatDelegate;
|
||||
|
||||
import static app.fedilab.fedilabtube.helper.Helper.DARK_MODE;
|
||||
import static app.fedilab.fedilabtube.helper.Helper.LIGHT_MODE;
|
||||
|
||||
public class ThemeHelper {
|
||||
|
||||
public static void switchTo(int themePref) {
|
||||
switch (themePref) {
|
||||
case LIGHT_MODE: {
|
||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
|
||||
break;
|
||||
}
|
||||
case DARK_MODE: {
|
||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM);
|
||||
} else {
|
||||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
10
app/src/main/res/drawable/ic_baseline_color_lens_24.xml
Normal file
10
app/src/main/res/drawable/ic_baseline_color_lens_24.xml
Normal file
@ -0,0 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24"
|
||||
android:tint="?attr/colorControlNormal">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M12,3c-4.97,0 -9,4.03 -9,9s4.03,9 9,9c0.83,0 1.5,-0.67 1.5,-1.5 0,-0.39 -0.15,-0.74 -0.39,-1.01 -0.23,-0.26 -0.38,-0.61 -0.38,-0.99 0,-0.83 0.67,-1.5 1.5,-1.5L16,16c2.76,0 5,-2.24 5,-5 0,-4.42 -4.03,-8 -9,-8zM6.5,12c-0.83,0 -1.5,-0.67 -1.5,-1.5S5.67,9 6.5,9 8,9.67 8,10.5 7.33,12 6.5,12zM9.5,8C8.67,8 8,7.33 8,6.5S8.67,5 9.5,5s1.5,0.67 1.5,1.5S10.33,8 9.5,8zM14.5,8c-0.83,0 -1.5,-0.67 -1.5,-1.5S13.67,5 14.5,5s1.5,0.67 1.5,1.5S15.33,8 14.5,8zM17.5,12c-0.83,0 -1.5,-0.67 -1.5,-1.5S16.67,9 17.5,9s1.5,0.67 1.5,1.5 -0.67,1.5 -1.5,1.5z"/>
|
||||
</vector>
|
@ -33,15 +33,14 @@
|
||||
android:id="@+id/appBar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
|
||||
>
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
android:background="?colorPrimary"
|
||||
android:theme="@style/ThemeOverlay.AppCompat.Dark"
|
||||
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
|
||||
android:theme="@style/theme"
|
||||
app:popupTheme="@style/popupTheme"
|
||||
app:layout_scrollFlags="scroll|enterAlways"
|
||||
android:fitsSystemWindows="true"
|
||||
/>
|
||||
|
@ -47,6 +47,7 @@
|
||||
|
||||
<com.google.android.exoplayer2.ui.PlayerView
|
||||
android:id="@+id/media_video"
|
||||
android:animateLayoutChanges="true"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center" />
|
||||
@ -75,7 +76,7 @@
|
||||
</RelativeLayout>
|
||||
</RelativeLayout>
|
||||
|
||||
<ScrollView
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:id="@+id/peertube_information_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
@ -203,6 +204,8 @@
|
||||
|
||||
<TextView
|
||||
android:id="@+id/peertube_description"
|
||||
android:textIsSelectable="true"
|
||||
android:autoLink="web"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp" />
|
||||
@ -294,7 +297,7 @@
|
||||
android:textSize="25sp" />
|
||||
</RelativeLayout>
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
<!-- View where the video will be shown when video goes fullscreen -->
|
||||
<RelativeLayout
|
||||
android:id="@+id/videoLayout"
|
||||
|
@ -15,6 +15,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
android:background="#CC000000"
|
||||
android:animateLayoutChanges="true"
|
||||
android:layoutDirection="ltr"
|
||||
android:orientation="vertical"
|
||||
tools:targetApi="28">
|
||||
@ -34,13 +35,6 @@
|
||||
android:id="@id/exo_rew"
|
||||
style="@style/ExoMediaButton.Rewind" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@id/exo_shuffle"
|
||||
style="@style/ExoMediaButton.VR" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@id/exo_repeat_toggle"
|
||||
style="@style/ExoMediaButton" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@id/exo_play"
|
||||
|
@ -6,6 +6,16 @@
|
||||
android:icon="@drawable/ic_baseline_delete_24"
|
||||
android:title="@string/delete"
|
||||
app:showAsAction="ifRoom" />
|
||||
<item
|
||||
android:id="@+id/action_mute"
|
||||
android:icon="@drawable/ic_baseline_volume_mute_24"
|
||||
android:title="@string/action_mute"
|
||||
app:showAsAction="ifRoom" />
|
||||
<item
|
||||
android:id="@+id/action_remove_comments"
|
||||
android:icon="@drawable/ic_baseline_delete_24"
|
||||
android:title="@string/delete_account_comment"
|
||||
app:showAsAction="ifRoom" />
|
||||
<item
|
||||
android:id="@+id/action_report"
|
||||
android:icon="@drawable/ic_baseline_report_24"
|
||||
|
@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item
|
||||
android:id="@+id/action_report"
|
||||
android:icon="@drawable/ic_baseline_report_24"
|
||||
android:title="@string/report"
|
||||
app:showAsAction="ifRoom" />
|
||||
</menu>
|
@ -16,4 +16,9 @@
|
||||
android:icon="@drawable/ic_baseline_subtitles_24"
|
||||
android:title="@string/captions"
|
||||
app:showAsAction="ifRoom" />
|
||||
<item
|
||||
android:id="@+id/action_report"
|
||||
android:icon="@drawable/ic_baseline_report_24"
|
||||
android:title="@string/report"
|
||||
app:showAsAction="ifRoom" />
|
||||
</menu>
|
||||
|
28
app/src/main/res/values-night/styles.xml
Normal file
28
app/src/main/res/values-night/styles.xml
Normal file
@ -0,0 +1,28 @@
|
||||
<resources>
|
||||
|
||||
|
||||
<!-- Base application theme. -->
|
||||
<style name="AppTheme" parent="Theme.AppCompat.DayNight.DarkActionBar">
|
||||
<!-- Customize your theme here. -->
|
||||
<item name="colorPrimary">@color/colorPrimary</item>
|
||||
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
|
||||
<item name="colorAccent">@color/colorAccent</item>
|
||||
<item name="android:textColor">?attr/colorOnBackground</item>
|
||||
|
||||
</style>
|
||||
|
||||
<style name="AppThemeNoActionBar" parent="Theme.AppCompat.DayNight.NoActionBar">
|
||||
<!-- Customize your theme here. -->
|
||||
<item name="colorPrimary">@color/colorPrimary</item>
|
||||
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
|
||||
<item name="colorAccent">@color/colorAccent</item>
|
||||
|
||||
<item name="android:textColor">?attr/colorOnBackground</item>
|
||||
</style>
|
||||
|
||||
<style name="theme" parent="@style/ThemeOverlay.AppCompat.Dark"/>
|
||||
<style name="popupTheme" parent="@style/ThemeOverlay.AppCompat.Dark"/>
|
||||
|
||||
<style name="progress" parent="SpinKitView.Circle" />
|
||||
<style name="progressBottom" parent="SpinKitView.ThreeBounce" />
|
||||
</resources>
|
@ -7,6 +7,7 @@
|
||||
<item name="colorPrimary">@color/colorPrimary</item>
|
||||
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
|
||||
<item name="colorAccent">@color/colorAccent</item>
|
||||
<item name="android:textColor">?attr/colorOnBackground</item>
|
||||
</style>
|
||||
|
||||
<style name="AppThemeNoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
|
||||
@ -14,8 +15,13 @@
|
||||
<item name="colorPrimary">@color/colorPrimary</item>
|
||||
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
|
||||
<item name="colorAccent">@color/colorAccent</item>
|
||||
|
||||
<item name="android:textColor">?attr/colorOnBackground</item>
|
||||
</style>
|
||||
|
||||
<style name="theme" parent="@style/ThemeOverlay.AppCompat.Dark"/>
|
||||
<style name="popupTheme" parent="@style/ThemeOverlay.AppCompat.Light"/>
|
||||
|
||||
<style name="progress" parent="SpinKitView.Circle" />
|
||||
<style name="progressBottom" parent="SpinKitView.ThreeBounce" />
|
||||
</resources>
|
@ -31,6 +31,11 @@
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory android:title="@string/app_interface">
|
||||
<androidx.preference.ListPreference
|
||||
android:icon="@drawable/ic_baseline_color_lens_24"
|
||||
android:key="@string/set_theme_choice"
|
||||
android:summary="@string/set_theme_description"
|
||||
android:title="@string/set_theme" />
|
||||
<androidx.preference.MultiSelectListPreference
|
||||
android:icon="@drawable/ic_baseline_language_24"
|
||||
android:key="@string/set_video_language_choice"
|
||||
|
Reference in New Issue
Block a user