mirror of
https://framagit.org/tom79/fedilab-tube
synced 2025-06-05 21:09:11 +02:00
Compare commits
102 Commits
Author | SHA1 | Date | |
---|---|---|---|
017bd5a6a2 | |||
967f11ddb4 | |||
6b4abd019e | |||
8b66c4030f | |||
34f058358e | |||
2bab907777 | |||
52e64b6d85 | |||
9510678a9f | |||
b4e7c3f8e2 | |||
d800d2b10c | |||
785b4949e6 | |||
b79e17cb60 | |||
19fcbeb4b9 | |||
ffb355d1a2 | |||
43fd2945cc | |||
d93c74a449 | |||
7a197993c9 | |||
dc2a252dd5 | |||
2c33f7a7f8 | |||
24a8a0dc00 | |||
b78894b33c | |||
2d33d7f970 | |||
8823eb74ba | |||
7f77b86272 | |||
2f773b2f0f | |||
ca69a6e86d | |||
3e5cefbf24 | |||
245ef64ebe | |||
a0ff454dd9 | |||
fa6b1560f8 | |||
518b5f617b | |||
7c4ce7701c | |||
0b6557f9c5 | |||
a8e00d137a | |||
75d3f74e48 | |||
3866317597 | |||
10e904fe4a | |||
be655f6c2b | |||
676e540059 | |||
87763a050c | |||
ab45c1f80c | |||
ec5f2c7c45 | |||
c4448f22b9 | |||
62af5c54aa | |||
5872f5c99f | |||
2b1a63e08b | |||
7b96cf32b3 | |||
6108bd143c | |||
0127b9bffa | |||
8dddfc5497 | |||
bf119a5808 | |||
89ade69c5f | |||
93eaec8544 | |||
ce984de339 | |||
b089ae93e1 | |||
fc95708a84 | |||
7262690999 | |||
f818c74943 | |||
d7c5a04965 | |||
257a00fa1e | |||
23875a2ceb | |||
3f1883fbbc | |||
c5269a3129 | |||
056092ac71 | |||
fd7632f001 | |||
fb83a1927d | |||
641a616c96 | |||
fc051d8d1d | |||
b8bec4f357 | |||
fe78c8bf7e | |||
42caaa9dc9 | |||
74d6cb8041 | |||
7678da2bb6 | |||
e771153f35 | |||
e96b9f7f02 | |||
0604ac9ba8 | |||
bd0c59a69e | |||
0a84b75518 | |||
c4b49b58cf | |||
afbb27896e | |||
e0ff6c0ac3 | |||
4d7c7e88bb | |||
7eef023277 | |||
6a762a8fd6 | |||
752e3d50c1 | |||
8377f9bb8a | |||
5ff06a29d2 | |||
50aeb075b1 | |||
79ff617d67 | |||
5de8524f2a | |||
6164ff9163 | |||
6e8b304b63 | |||
3be0cd727f | |||
451dd53230 | |||
34c1222fbc | |||
ccf2fc877b | |||
10a496c299 | |||
ba1bfd1f9c | |||
b9622da6c6 | |||
b3e9100c2f | |||
fb0e87397d | |||
bed1bb634b |
@ -70,7 +70,7 @@ Si vous connectez votre compte, vous pourrez interagir avec les vidéos :
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#### TubeLab (coming soon)
|
#### TubeLab
|
||||||
|
|
||||||
[Fdroid](https://f-droid.org/packages/app.fedilab.tubelab/)
|
[Fdroid](https://f-droid.org/packages/app.fedilab.tubelab/)
|
||||||
|
|
||||||
|
@ -6,12 +6,13 @@ android {
|
|||||||
compileSdkVersion 30
|
compileSdkVersion 30
|
||||||
buildToolsVersion "30.0.2"
|
buildToolsVersion "30.0.2"
|
||||||
|
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
|
|
||||||
minSdkVersion 21
|
minSdkVersion 21
|
||||||
targetSdkVersion 30
|
targetSdkVersion 30
|
||||||
versionCode 12
|
versionCode 19
|
||||||
versionName "1.2.0"
|
versionName "1.5.0"
|
||||||
multiDexEnabled true
|
multiDexEnabled true
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
}
|
}
|
||||||
@ -30,6 +31,10 @@ android {
|
|||||||
targetCompatibility JavaVersion.VERSION_1_8
|
targetCompatibility JavaVersion.VERSION_1_8
|
||||||
}
|
}
|
||||||
|
|
||||||
|
buildFeatures {
|
||||||
|
viewBinding = true
|
||||||
|
}
|
||||||
|
|
||||||
lintOptions {
|
lintOptions {
|
||||||
disable 'MissingTranslation'
|
disable 'MissingTranslation'
|
||||||
checkReleaseBuilds false
|
checkReleaseBuilds false
|
||||||
@ -92,7 +97,7 @@ dependencies {
|
|||||||
implementation 'androidx.appcompat:appcompat:1.2.0'
|
implementation 'androidx.appcompat:appcompat:1.2.0'
|
||||||
implementation 'androidx.preference:preference:1.1.1'
|
implementation 'androidx.preference:preference:1.1.1'
|
||||||
implementation 'com.google.android.material:material:1.2.1'
|
implementation 'com.google.android.material:material:1.2.1'
|
||||||
implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
|
implementation 'androidx.constraintlayout:constraintlayout:2.0.2'
|
||||||
implementation 'androidx.vectordrawable:vectordrawable:1.1.0'
|
implementation 'androidx.vectordrawable:vectordrawable:1.1.0'
|
||||||
implementation 'androidx.navigation:navigation-fragment:2.3.0'
|
implementation 'androidx.navigation:navigation-fragment:2.3.0'
|
||||||
implementation "androidx.fragment:fragment:1.2.5"
|
implementation "androidx.fragment:fragment:1.2.5"
|
||||||
@ -116,8 +121,12 @@ dependencies {
|
|||||||
implementation "net.gotev:uploadservice-okhttp:3.5.2"
|
implementation "net.gotev:uploadservice-okhttp:3.5.2"
|
||||||
implementation "com.google.code.gson:gson:2.8.6"
|
implementation "com.google.code.gson:gson:2.8.6"
|
||||||
implementation 'androidx.media:media:1.2.0'
|
implementation 'androidx.media:media:1.2.0'
|
||||||
|
implementation 'com.github.ybq:Android-SpinKit:1.4.0'
|
||||||
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
|
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
|
||||||
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
|
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
|
||||||
|
implementation 'com.github.mancj:MaterialSearchBar:0.8.5'
|
||||||
|
|
||||||
|
implementation "io.github.kobakei:ratethisapp:1.2.0"
|
||||||
|
implementation 'com.github.HITGIF:TextFieldBoxes:1.4.5'
|
||||||
|
|
||||||
}
|
}
|
@ -4,10 +4,6 @@
|
|||||||
<color name="colorPrimaryDark">#4527A0</color>
|
<color name="colorPrimaryDark">#4527A0</color>
|
||||||
<color name="colorAccent">#9C27B0</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">#bbF2690D</color>
|
||||||
<color name="tag_color_text">#FAFAFA</color>
|
<color name="tag_color_text">#FAFAFA</color>
|
||||||
<color name="positive_thumbs">#2b90d9</color>
|
<color name="positive_thumbs">#2b90d9</color>
|
@ -1,21 +1,54 @@
|
|||||||
<resources>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
<string name="app_name" translatable="false">TubeAcad</string>
|
<string name="app_name" translatable="false">TubeAcad</string>
|
||||||
|
<string name="set_video_mode_choice" translatable="false">set_video_mode_choice</string>
|
||||||
|
<string name="set_video_minimize_choice" translatable="false">set_video_minimize_choice</string>
|
||||||
|
<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>
|
||||||
|
|
||||||
|
|
||||||
|
<plurals name="number_of_replies">
|
||||||
|
<item quantity="zero">%d réponse</item>
|
||||||
|
<item quantity="one">%d réponse</item>
|
||||||
|
<item quantity="other">%d réponses</item>
|
||||||
|
</plurals>
|
||||||
|
|
||||||
|
<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_home">Locale</string>
|
||||||
<string name="title_local">Locale</string>
|
<string name="title_local">Locale</string>
|
||||||
<string name="title_discover">Découvrir</string>
|
<string name="title_discover">Découvrir</string>
|
||||||
<string name="title_notifications">Notifications</string>
|
<string name="title_notifications">Notifications</string>
|
||||||
<string name="title_instances">Instances</string>
|
|
||||||
<string name="title_recently_added">Nouveautés</string>
|
<string name="title_recently_added">Nouveautés</string>
|
||||||
<string name="title_trending">Tendances</string>
|
<string name="title_trending">Tendances</string>
|
||||||
<string name="title_account">Compte</string>
|
|
||||||
<string name="title_most_liked">Plus aimées</string>
|
<string name="title_most_liked">Plus aimées</string>
|
||||||
<string name="toast_error">Une erreur s\'est produite !</string>
|
<string name="toast_error">Une erreur s\'est produite !</string>
|
||||||
|
<string name="title_muted">Sourdine</string>
|
||||||
|
<string name="title_channel">Chaînes</string>
|
||||||
|
<string name="do_not_list">Ne pas lister</string>
|
||||||
|
<string name="blur">Estomper</string>
|
||||||
|
<string name="display">Afficher</string>
|
||||||
|
<string name="no_opinion">Pas d\'opinion</string>
|
||||||
|
<string name="instance_choice">Choisissez une instance</string>
|
||||||
|
<string name="not_valide_instance">Cette instance ne semble pas être valide !</string>
|
||||||
<string name="no_videos">Aucune vidéo !</string>
|
<string name="no_videos">Aucune vidéo !</string>
|
||||||
|
<string name="no_notifications">Aucune notification !</string>
|
||||||
<string name="favicon">Favicon</string>
|
<string name="favicon">Favicon</string>
|
||||||
<string name="open_with">Ouvrir avec</string>
|
<string name="open_with">Ouvrir avec</string>
|
||||||
|
<string name="action_playlist_edit">Modifier une liste de lecture</string>
|
||||||
<string name="close">Fermer</string>
|
<string name="close">Fermer</string>
|
||||||
<string name="upload_video">Téléverser</string>
|
<string name="upload_video">Téléverser</string>
|
||||||
<string name="bookmark_peertube_empty">Il n’y a aucune vidéo Peertube dans vos favoris !</string>
|
|
||||||
<string name="image_preview">Aperçu de l\'image</string>
|
<string name="image_preview">Aperçu de l\'image</string>
|
||||||
<string name="file_to_upload">Sélectionnez un fichier à transférer</string>
|
<string name="file_to_upload">Sélectionnez un fichier à transférer</string>
|
||||||
<string name="channel">Chaîne</string>
|
<string name="channel">Chaîne</string>
|
||||||
@ -26,142 +59,120 @@
|
|||||||
<string name="cancel">Annuler</string>
|
<string name="cancel">Annuler</string>
|
||||||
<string name="download">Télécharger</string>
|
<string name="download">Télécharger</string>
|
||||||
<string name="profile_picture">Photo du profil</string>
|
<string name="profile_picture">Photo du profil</string>
|
||||||
|
|
||||||
<string name="update_video">Mettre à jour la vidéo</string>
|
<string name="update_video">Mettre à jour la vidéo</string>
|
||||||
<!-- Date -->
|
<string name="remove_from_playlist">Supprimer de la liste de lecture</string>
|
||||||
<string name="date_seconds">%d s</string>
|
<string name="date_seconds">%d s</string>
|
||||||
<string name="date_minutes">%d min</string>
|
<string name="date_minutes">%d min</string>
|
||||||
<string name="date_hours">%d h</string>
|
<string name="date_hours">%d h</string>
|
||||||
<string name="date_day">%d j</string>
|
<string name="date_day">%d j</string>
|
||||||
|
|
||||||
<string name="number_view_video">%s vues</string>
|
<string name="number_view_video">%s vues</string>
|
||||||
<string name="duration_video">Durée : %s</string>
|
<string name="title_instance_login">Domaine de l\'instance</string>
|
||||||
|
|
||||||
<string name="toot_select_image_error">Une erreur s’est produite lors de la sélection du média !</string>
|
|
||||||
|
|
||||||
|
|
||||||
<string name="uploading">Transfert en cours, veuillez patienter …</string>
|
<string name="uploading">Transfert en cours, veuillez patienter …</string>
|
||||||
<string name="upload_video_success">La vidéo a été transférée !</string>
|
<string name="upload_video_success">La vidéo a été transférée !</string>
|
||||||
<string name="toast_cancelled">Transfert annulé !</string>
|
<string name="toast_cancelled">Transfert annulé !</string>
|
||||||
<string name="video_uploaded_action">Cliquez ici pour éditer les données de la vidéo.</string>
|
<string name="video_uploaded_action">Cliquez ici pour éditer les données de la vidéo.</string>
|
||||||
<string name="toot_select_image">Sélectionnez un média</string>
|
<string name="toot_select_image_error">Une erreur s’est produite lors de la sélection du média !</string>
|
||||||
<string name="download_file">Télécharger %1$s</string>
|
<string name="download_file">Télécharger %1$s</string>
|
||||||
|
<string name="action_privacy">Confidentialité</string>
|
||||||
|
<string name="action_logout">Déconnexion</string>
|
||||||
<string name="delete_video_confirmation">Êtes-vous sûr de vouloir supprimer cette vidéo ?</string>
|
<string name="login">Connexion</string>
|
||||||
<string name="toast_peertube_video_updated">La vidéo a été mise à jour !</string>
|
<string name="password">Mot de passe</string>
|
||||||
|
<string name="email">Courriel</string>
|
||||||
|
<string name="tags">Étiquettes</string>
|
||||||
|
<string name="validate">Valider</string>
|
||||||
|
<string name="share_with">Partager avec</string>
|
||||||
|
<string name="shared_via">Partagé via TubeLab</string>
|
||||||
|
<string name="username">Nom d’utilisateur</string>
|
||||||
|
<string name="settings">Paramètres</string>
|
||||||
|
<string name="logout_account_confirmation">Voulez-vous vraiment déconnecter le compte @%1$s@%2$s ?</string>
|
||||||
|
<string name="following">Suit</string>
|
||||||
|
<string name="followers">Abonné·e·s</string>
|
||||||
|
<string name="client_error">Impossible d’obtenir l’id du client !</string>
|
||||||
|
<string name="toast_error_loading_account">Une erreur s’est produite pendant le chargement du compte !</string>
|
||||||
|
<string name="toast_error_search">Une erreur s’est produite lors de la recherche !</string>
|
||||||
|
<string name="nothing_to_do">Aucune action ne peut être réalisée</string>
|
||||||
|
<string name="action_follow">S\'abonner</string>
|
||||||
|
<string name="action_mute">Mettre en sourdine</string>
|
||||||
|
<string name="search">Chercher</string>
|
||||||
|
<string name="delete">Supprimer</string>
|
||||||
|
<string name="action_lists_confirm_delete">Êtes-vous sûr de vouloir supprimer définitivement cette liste de lecture ?</string>
|
||||||
|
<string name="action_lists_delete">Supprimer la liste de lecture</string>
|
||||||
|
<string name="no_comments">Soyez le·a premier·ère à laisser un commentaire sur cette vidéo en utilisant le bouton supérieur droit !</string>
|
||||||
<string name="comment_no_allowed_peertube">Les commentaires sur cette vidéos ont été désactivés !</string>
|
<string name="comment_no_allowed_peertube">Les commentaires sur cette vidéos ont été désactivés !</string>
|
||||||
|
<string name="pickup_resolution">Choisissez une résolution</string>
|
||||||
|
|
||||||
<string name="bookmark_add_peertube">La vidéo est rajoutée aux favoris !</string>
|
<string name="bookmark_add_peertube">La vidéo est rajoutée aux favoris !</string>
|
||||||
<string name="bookmark_remove_peertube">La vidéo a été retirée de vos favoris !</string>
|
<string name="bookmark_remove_peertube">La vidéo a été retirée de vos favoris !</string>
|
||||||
|
<string name="information" tools:ignore="UnusedResources">Information</string>
|
||||||
<string name="shared_via">Partagé via TubeLab</string>
|
<string name="app_logo">Logo de l’application</string>
|
||||||
<string name="share_with">Partager avec</string>
|
<!-- languages not translated -->
|
||||||
|
<string name="subscriptions">Abonnements</string>
|
||||||
<string name="pickup_resolution">Choisissez une résolution</string>
|
|
||||||
|
|
||||||
<string name="fullscreen">Vidéo plein écran</string>
|
|
||||||
|
|
||||||
<string name="comment">Commenter</string>
|
|
||||||
<string name="validate">Valider</string>
|
|
||||||
<string name="delete_comment">Supprimer le commentaire</string>
|
<string name="delete_comment">Supprimer le commentaire</string>
|
||||||
<string name="delete_comment_confirm">Etes-vous sûr de vouloir supprimer ce commentaire ?</string>
|
<string name="delete_comment_confirm">Etes-vous sûr de vouloir supprimer ce commentaire ?</string>
|
||||||
|
<string name="set_video_mode">Mode pour les vidéos</string>
|
||||||
|
<string name="filter">Filtrer</string>
|
||||||
<string name="toot_sent">Le message a été envoyé !</string>
|
<string name="sepia_search">Recherche sépia</string>
|
||||||
<string name="reply">Répondre</string>
|
<string name="sepia_element_nsfw">Afficher le contenu sensible</string>
|
||||||
<string name="delete">Supprimer</string>
|
<string name="sepia_element_published_date">Date de publication</string>
|
||||||
<string name="no_video_to_display">Aucune vidéo n’est disponible !</string>
|
<string name="any">Toutes</string>
|
||||||
|
<string name="today">Aujourd\'hui</string>
|
||||||
|
<string name="last_7_days">Les 7 derniers jours</string>
|
||||||
|
<string name="last_30_days">Les 30 derniers jours</string>
|
||||||
|
<string name="last_365_days">Les 365 derniers jours</string>
|
||||||
|
<string name="sepia_element_duration">Durée</string>
|
||||||
|
<string name="duration_short"><![CDATA[Courte (<4 min)]]></string>
|
||||||
|
<string name="duration_medium"><![CDATA[Moyenne (4-10 min)]]></string>
|
||||||
|
<string name="duration_long"><![CDATA[Longue (> 10 min)]]></string>
|
||||||
|
<string name="display_all_categories">Afficher toutes les catégories</string>
|
||||||
|
<string name="display_all_licenses">Afficher toutes les licences</string>
|
||||||
|
<string name="display_all_languages">Afficher toutes les langues</string>
|
||||||
|
<string name="all_of_these_tags">Tous ces labels</string>
|
||||||
|
<string name="one_of_these_tags">Un de ces labels</string>
|
||||||
|
<string name="apply_filter">Appliquer le filtre</string>
|
||||||
|
<string-array name="sort_by_array">
|
||||||
|
<item>Meilleurs résultats</item>
|
||||||
|
<item>Les plus récentes</item>
|
||||||
|
<item>Les moins récentes</item>
|
||||||
|
</string-array>
|
||||||
|
<string name="sort_by">Trier par</string>
|
||||||
|
<string name="sepia_search_hint">Mot-clé, chaîne, vidéo, etc.</string>
|
||||||
|
<string name="sepia_indication">La recherche Sepia affiche les vidéos et les chaînes qui correspondent à votre recherche mais qui n\'est pas l\'éditeur, ni le propriétaire. Si vous remarquez des problèmes avec une vidéo, signalez-la aux administrateurs sur le site Web de PeerTube où la vidéo est publiée.</string>
|
||||||
<string name="my_videos">Mes vidéos</string>
|
<string name="my_videos">Mes vidéos</string>
|
||||||
<string name="title">Titre</string>
|
<string name="title">Titre</string>
|
||||||
<string name="license">Licence</string>
|
<string name="license">Licence</string>
|
||||||
<string name="category">Catégorie</string>
|
<string name="category">Catégorie</string>
|
||||||
<string name="language">Langue</string>
|
<string name="language">Langue</string>
|
||||||
<string name="description">Description</string>
|
|
||||||
<string name="tags">Étiquettes</string>
|
|
||||||
<string name="action_privacy">Confidentialité</string>
|
|
||||||
<string name="peertube_nsfw">Cette vidéo contient du contenu pour adultes</string>
|
<string name="peertube_nsfw">Cette vidéo contient du contenu pour adultes</string>
|
||||||
<string name="delete_video">Supprimer la vidéo</string>
|
|
||||||
<string name="peertube_enable_comments">Activer les commentaires</string>
|
<string name="peertube_enable_comments">Activer les commentaires</string>
|
||||||
<string name="send_comment">Envoyer un commentaire</string>
|
<string name="description">Libellé</string>
|
||||||
<string name="add_public_comment">Ajouter un commentaire public</string>
|
<string name="toast_peertube_video_updated">La vidéo a été mise à jour !</string>
|
||||||
<string name="share">Partager</string>
|
<string name="register_account">Créer un compte</string>
|
||||||
<string name="no_comments">Soyez le·a premier·ère à laisser un commentaire sur cette vidéo en utilisant le bouton supérieur droit !</string>
|
|
||||||
<string name="title_video_peertube">Titre de la vidéo</string>
|
|
||||||
<string name="set_video_mode">Mode pour les vidéos</string>
|
|
||||||
<string name="display_nsfw_videos">Afficher les vidéos sensibles</string>
|
|
||||||
<string name="action_playlist_add">Vous n\'avez aucune liste de lecture. Cliquez sur l\'icône « + » pour en ajouter une</string>
|
|
||||||
<string name="not_logged_in">Vous devez être connecté.e pour effectuer cette action !</string>
|
|
||||||
<string name="change_instance">Changer d\'instance</string>
|
|
||||||
<string name="account">Compte</string>
|
|
||||||
<string name="instance_choice">Choisissez une instance</string>
|
|
||||||
<string name="toast_error_loading_account">Une erreur s’est produite pendant le chargement du compte !</string>
|
|
||||||
<string name="profile_banner">Bannière du profil</string>
|
|
||||||
<string name="make_an_action">Faire une action</string>
|
|
||||||
<string name="go_back">Retour</string>
|
|
||||||
<string name="open_menu">Ouvrir le menu</string>
|
|
||||||
<string name="display_more">Afficher plus</string>
|
|
||||||
<string name="edit_profile">Éditer le profil</string>
|
|
||||||
<string name="followed_by">Vous suit</string>
|
|
||||||
<string name="no_channels">Aucune chaîne !</string>
|
|
||||||
<string name="following">Suit</string>
|
|
||||||
<string name="followers">Abonné·e·s</string>
|
|
||||||
<string name="title_instance_login">Domaine de l\'instance</string>
|
|
||||||
<string name="followers_count">%1$s Abonné·e·s</string>
|
|
||||||
<string name="nothing_to_do">Aucune action ne peut être réalisée</string>
|
|
||||||
<string name="unfollow_confirm">Voulez-vous vous désabonner de ce compte ?</string>
|
|
||||||
<string name="action_unfollow">Se désabonner</string>
|
|
||||||
<string name="action_follow">S\'abonner</string>
|
|
||||||
<string name="search">Chercher</string>
|
|
||||||
<string name="toast_error_search">Une erreur s’est produite lors de la recherche !</string>
|
|
||||||
<string name="no_result">Aucun résultat !</string>
|
|
||||||
<string name="app_logo">Logo de l’application</string>
|
|
||||||
|
|
||||||
<string name="join_peertube">Rejoignez Peertube</string>
|
|
||||||
<string name="username">Nom d’utilisateur</string>
|
|
||||||
<string name="email_address">Adresse mèl</string>
|
<string name="email_address">Adresse mèl</string>
|
||||||
<string name="password">Mot de passe</string>
|
<string name="preview">Aperçu</string>
|
||||||
<string name="add_account">Ajouter un compte</string>
|
<string name="change_preview">Modifier l\'aperçu</string>
|
||||||
<string name="login">Connexion</string>
|
<string name="name">Nom</string>
|
||||||
<string name="client_error">Impossible d’obtenir l’id du client !</string>
|
<string name="display_more">Afficher plus</string>
|
||||||
<string name="email">Email</string>
|
<string name="no_channels">Aucune chaîne !</string>
|
||||||
<string name="email_indicator">Vous recevrez un e-mail de confirmation</string>
|
<string name="report_helper">Quelques explications concernant votre signalement…</string>
|
||||||
<string name="password_indicator">Utilisez au moins 8 caractères</string>
|
<string name="report_video">Signaler la vidéo</string>
|
||||||
<string name="password_confirm">Confirmer le mot de passe</string>
|
<string name="report">Signaler</string>
|
||||||
<string name="agreement_check_peertube">J\'ai au moins 16 ans et je suis d\'accord avec les %1$s de cette instance</string>
|
<string name="change_instance">Changer d\'instance</string>
|
||||||
<string name="sign_up">S’inscrire</string>
|
<string name="my_history">Historique</string>
|
||||||
<string name="account_created">Compte créé !</string>
|
<string name="edit">Modifier</string>
|
||||||
<string name="account_created_message">Votre compte est créé !\n\nVous allez recevoir un email de confirmation à l\'adresse <b>%1$s</b>.\n\nCliquez sur le lien présent dans le mail pour valider votre compte.</string>
|
<string name="video_settings">Réglages des vidéos</string>
|
||||||
<string name="all_field_filled">Veuillez remplir tous les champs !</string>
|
<string name="app_interface">Interface</string>
|
||||||
<string name="password_length_error">Le mot de passe doit contenir 6 caractères !</string>
|
<string name="set_cache_mode">Cache</string>
|
||||||
<string name="password_error">Les mots de passe ne sont pas identiques !</string>
|
<string name="set_video_cache_description">Définir le cache pour les vidéos (par défaut 100Mo)</string>
|
||||||
<string name="email_error">L\'e-mail ne semble pas être valide !</string>
|
<string name="set_video_quality_description">Définir une qualité par défaut pour les vidéos</string>
|
||||||
<string name="password_too_short">Le mot de passe doit contenir au moins 8 caractères</string>
|
<string name="set_quality_mode">Résolution pour les vidéos</string>
|
||||||
<string name="username_error">Le nom d\'utilisateur·rice doit être en minuscule, contenir uniquement des lettres, des chiffres, des points et des caractères de soulignement</string>
|
<string name="video_cache_value">Cache vidéo : %d Mo</string>
|
||||||
<string name="tos">conditions de service</string>
|
<string name="captions">Légendes</string>
|
||||||
<string name="server_rules">règles du serveur</string>
|
<string name="pickup_captions">Options d\'envoi</string>
|
||||||
<string name="agreement_check">J\'accepte les %1$s et les %2$s</string>
|
<string name="none">Aucune</string>
|
||||||
<string name="email_error_domain">Les adresses mails %1$s ne sont pas autorisées !</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="create_an_account">Créer un compte</string>
|
<string name="delete_video">Supprimer la vidéo</string>
|
||||||
<string name="action_logout">Déconnexion</string>
|
<string name="delete_video_confirmation">Êtes-vous sûr de vouloir supprimer cette vidéo ?</string>
|
||||||
<string name="logout_account_confirmation">Voulez-vous vraiment déconnecter le compte @%1$s@%2$s ?</string>
|
<string name="no_video_to_display">Aucune vidéo n’est disponible !</string>
|
||||||
|
<string name="share">Partager</string>
|
||||||
<string name="action_lists_delete">Supprimer la liste de lecture</string>
|
|
||||||
<string name="action_lists_confirm_delete">Êtes-vous sûr de vouloir supprimer définitivement cette liste de lecture ?</string>
|
|
||||||
<string name="action_channel_confirm_delete">Êtes-vous sûr de vouloir supprimer définitivement cette chaîne ?</string>
|
|
||||||
<string name="action_playlist_create">Créer une liste de lecture</string>
|
|
||||||
<string name="action_playlist_edit">Modifier une liste de lecture</string>
|
|
||||||
<string name="display_name">Nom d\'affichage</string>
|
|
||||||
<string name="error_channel_mandatory">Une chaîne est requise lorsque la liste de lecture est publique.</string>
|
|
||||||
<string name="error_display_name">Vous devez fournir un nom d\'affichage !</string>
|
|
||||||
<string name="error_display_name_channel">Vous devez fournir un nom d\'affichage et un nom pour la chaîne!</string>
|
|
||||||
<string name="action_playlist_empty_content">Cette liste de lecture est vide.</string>
|
|
||||||
<string name="playlists">Listes de lecture</string>
|
|
||||||
|
|
||||||
|
|
||||||
<string name="peertube_comment_on_video"><![CDATA[<b>%1$s</b> a commenté votre vidéo <b>%2$s</b>]]></string>
|
<string name="peertube_comment_on_video"><![CDATA[<b>%1$s</b> a commenté votre vidéo <b>%2$s</b>]]></string>
|
||||||
<string name="peertube_follow_channel"><![CDATA[<b>%1$s</b> suit votre chaîne <b>%2$s</b>]]></string>
|
<string name="peertube_follow_channel"><![CDATA[<b>%1$s</b> suit votre chaîne <b>%2$s</b>]]></string>
|
||||||
<string name="peertube_follow_account"><![CDATA[<b>%1$s</b> suit votre compte]]></string>
|
<string name="peertube_follow_account"><![CDATA[<b>%1$s</b> suit votre compte]]></string>
|
||||||
@ -171,112 +182,101 @@
|
|||||||
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> a publié une nouvelle vidéo : <b>%2$s</b>]]></string>
|
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> a publié une nouvelle vidéo : <b>%2$s</b>]]></string>
|
||||||
<string name="peertube_video_blacklist"><![CDATA[Votre vidéo <b>%1$s</b> a été blacklisté]]></string>
|
<string name="peertube_video_blacklist"><![CDATA[Votre vidéo <b>%1$s</b> a été blacklisté]]></string>
|
||||||
<string name="peertube_video_unblacklist"><![CDATA[Votre vidéo <b>%1$s</b> n’est plus blacklisté]]></string>
|
<string name="peertube_video_unblacklist"><![CDATA[Votre vidéo <b>%1$s</b> n’est plus blacklisté]]></string>
|
||||||
<string name="peertube_video_abuse"><![CDATA[Nouvelle modération sur la vidéo : <b>%1$s</b>]]></string>
|
<string name="peertube_video_abuse"><![CDATA[Nouveau signalement pour la vidéo : <b>%1$s</b>]]></string>
|
||||||
<string name="toast_code_error">Une erreur s’est produite ! L’instance n’a retourné aucun code d\autorisation !</string>
|
<string name="add_public_comment">Ajouter un commentaire public</string>
|
||||||
<string name="subscriptions">Abonnements</string>
|
<string name="add_public_reply">Répondre publiquement</string>
|
||||||
<string name="report">Signaler</string>
|
<string name="send_comment">Envoyer un commentaire</string>
|
||||||
<string name="report_video">Signaler la vidéo</string>
|
|
||||||
<string name="report_account">Signaler le compte</string>
|
|
||||||
<string name="report_helper">Quelques explications concernant votre signalement…</string>
|
|
||||||
<string name="successful_report">Le compte a été signalé !</string>
|
|
||||||
<string name="successful_report_comment">Le commentaire a été signalé !</string>
|
|
||||||
<string name="successful_video_report">La vidéo a été signalée !</string>
|
|
||||||
<string name="report_comment_size">Veuillez préciser les raisons.</string>
|
|
||||||
<string name="all">Tout</string>
|
<string name="all">Tout</string>
|
||||||
<string name="my_history">Historique</string>
|
|
||||||
<string name="edit_video">Modifier une vidéo</string>
|
|
||||||
<string name="settings">Paramètres</string>
|
|
||||||
|
|
||||||
|
|
||||||
<string name="video_settings">Paramètres des vidéos</string>
|
|
||||||
<string name="app_interface">Interface</string>
|
|
||||||
|
|
||||||
|
|
||||||
|
<string name="peertube_video_report_success"><![CDATA[ Votre signalement <b>%1$s</b> a été accepté]]></string>
|
||||||
|
<string name="reply">Répondre</string>
|
||||||
|
<!-- end languages -->
|
||||||
|
<string name="playlists">Listes de lecture</string>
|
||||||
|
<string name="display_name">Nom d\'affichage</string>
|
||||||
|
<string name="action_playlist_add">Vous n\'avez aucune liste de lecture. Cliquez sur l\'icône « + » pour en ajouter une</string>
|
||||||
|
<string name="error_display_name">Vous devez fournir un nom d\'affichage !</string>
|
||||||
|
<string name="error_channel_mandatory">Une chaîne est requise lorsque la liste de lecture est publique.</string>
|
||||||
|
<string name="action_playlist_create">Créer une liste de lecture</string>
|
||||||
|
<string name="action_playlist_empty_content">Cette liste de lecture est vide.</string>
|
||||||
|
<string name="password_confirm">Confirmer le mot de passe</string>
|
||||||
|
<string name="agreement_check">J\'accepte les %1$s et les %2$s</string>
|
||||||
|
<string name="server_rules">règles du serveur</string>
|
||||||
|
<string name="tos">conditions de service</string>
|
||||||
|
<string name="sign_up">S’inscrire</string>
|
||||||
|
<string name="all_field_filled">Veuillez remplir tous les champs !</string>
|
||||||
|
<string name="password_error">Les mots de passe ne sont pas identiques !</string>
|
||||||
|
<string name="email_error">L\'e-mail ne semble pas être valide !</string>
|
||||||
|
<string name="email_indicator">Vous recevrez un e-mail de confirmation</string>
|
||||||
|
<string name="password_indicator">Utilisez au moins 8 caractères</string>
|
||||||
|
<string name="password_too_short">Le mot de passe doit contenir au moins 8 caractères</string>
|
||||||
|
<string name="username_error">Le nom d\'utilisateur·rice doit être en minuscule, contenir uniquement des lettres, des chiffres, des points et des caractères de soulignement</string>
|
||||||
|
<string name="account_created">Compte créé !</string>
|
||||||
|
<string name="account_created_message">Votre compte est créé !\n\nVous allez recevoir un email de confirmation à l\'adresse <b>%1$s</b>.\n\nCliquez sur le lien présent dans le mail pour valider votre compte.</string>
|
||||||
|
<string name="account">Compte</string>
|
||||||
|
<string name="report_account">Signaler le compte</string>
|
||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
<item>Normal</item>
|
<item>Normal</item>
|
||||||
<item>Streaming</item>
|
<item>Streaming</item>
|
||||||
<item>Navigateur</item>
|
<item>Flux direct</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
<string name="set_cache_mode">Cache</string>
|
|
||||||
<string name="set_video_cache_description">Set the cache for videos (default 100Mb)</string>
|
|
||||||
<string name="video_cache_value">Cache pour les vidéos: %d Mo</string>
|
|
||||||
<string name="set_video_mode_choice" translatable="false">set_video_mode_choice</string>
|
|
||||||
<string name="set_video_minimize_choice" translatable="false">set_video_minimize_choice</string>
|
|
||||||
<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-array name="settings_video_quality">
|
<string-array name="settings_video_quality">
|
||||||
<item>Elevé</item>
|
<item>Élevée</item>
|
||||||
<item>Moyen</item>
|
<item>Moyenne</item>
|
||||||
<item>Faible</item>
|
<item>Faible</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
<string name="unfollow_confirm">Voulez-vous vous désabonner de ce compte ?</string>
|
||||||
<string name="set_video_quality_description">Permet de définir la qualité de la vidéo par défaut</string>
|
<string name="title_video_peertube">Titre de la vidéo</string>
|
||||||
<string name="set_quality_mode">Résolution pour les vidéos</string>
|
<string name="join_peertube">Rejoignez Peertube</string>
|
||||||
|
<string name="agreement_check_peertube">J\'ai au moins 16 ans et je suis d\'accord avec les %1$s de cette instance</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="edit_profile">Éditer le profil</string>
|
||||||
<string name="register_account">Créer un compte</string>
|
<string name="make_an_action">Faire une action</string>
|
||||||
<string name="preview">Aperçu</string>
|
<string name="action_unfollow">Se désabonner</string>
|
||||||
<string name="change_preview">Modifier l\'aperçu</string>
|
<string name="display_nsfw_videos">Afficher les vidéos sensibles</string>
|
||||||
<string name="title_muted">Sourdine</string>
|
<string name="fullscreen">Vidéo plein écran</string>
|
||||||
<string name="title_blocked">Bloqués</string>
|
<string name="bookmark_peertube_empty">Il n’y a aucune vidéo Peertube dans vos favoris !</string>
|
||||||
|
<string name="delete_channel">Supprimer la chaîne</string>
|
||||||
|
<string name="action_channel_confirm_delete">Êtes-vous sûr de vouloir supprimer définitivement cette chaîne ?</string>
|
||||||
|
<string name="modify_playlists">Vidéo dans les listes de lecture</string>
|
||||||
<string name="no_muted">Aucun compte en sourdine !</string>
|
<string name="no_muted">Aucun compte en sourdine !</string>
|
||||||
<string name="no_notifications">Aucune notification !</string>
|
<string name="error_display_name_channel">Vous devez fournir un nom d\'affichage et un nom pour la chaîne!</string>
|
||||||
<string name="action_mute">Mettre en sourdine</string>
|
|
||||||
<string name="action_unmute">Réactiver le compte</string>
|
|
||||||
<string name="muted_done">Le compte a été mis en sourdine !</string>
|
|
||||||
<string name="title_channel">Chaînes</string>
|
|
||||||
<string name="captions">Sous-titres</string>
|
|
||||||
<string name="none">Aucun</string>
|
|
||||||
<string name="pickup_captions">Sélectionner des sous-titres</string>
|
|
||||||
<string name="name">Nom</string>
|
|
||||||
<string name="action_channel_create">Créer une chaîne</string>
|
<string name="action_channel_create">Créer une chaîne</string>
|
||||||
<string name="action_channel_edit">Modifier une chaîne</string>
|
<string name="action_channel_edit">Modifier une chaîne</string>
|
||||||
<string name="delete_channel">Supprimer la chaîne</string>
|
<string name="email_error_domain">Les adresses mails %1$s ne sont pas autorisées !</string>
|
||||||
<string name="display_list">Afficher la liste</string>
|
<string name="report_comment_size">Veuillez préciser les raisons.</string>
|
||||||
<string name="delete_list">Supprimer la liste de lecture</string>
|
<string name="not_logged_in">Vous devez être connecté.e pour effectuer cette action !</string>
|
||||||
<string name="edit">Modifier</string>
|
<string name="successful_report">Le compte a été signalé !</string>
|
||||||
|
<string name="successful_report_comment">Le commentaire a été signalé !</string>
|
||||||
<string name="not_valide_instance">Cette instance ne semble pas être valide !</string>
|
<string name="successful_video_report">La vidéo a été signalée !</string>
|
||||||
|
<string name="password_length_error">Le mot de passe doit contenir 6 caractères !</string>
|
||||||
|
<string name="muted_done">Le compte a été mis en sourdine !</string>
|
||||||
|
<string name="edit_video">Modifier une vidéo</string>
|
||||||
|
<string name="create_an_account">Créer un compte</string>
|
||||||
|
<string name="followers_count">%1$s Abonné·e·s</string>
|
||||||
<string name="developer">Développeur</string>
|
<string name="developer">Développeur</string>
|
||||||
<string name="about_vesrion">Version %1$s</string>
|
<string name="about_vesrion">Version %1$s</string>
|
||||||
<string name="about_the_app">À propos de l’application</string>
|
<string name="about_the_app">À propos de l’application</string>
|
||||||
<string name="Donate">Faire un don</string>
|
<string name="Donate">Faire un don</string>
|
||||||
<string name="source_code">Code source</string>
|
<string name="source_code">Code source</string>
|
||||||
<string name="issue_tracker">Suivi des tickets</string>
|
<string name="issue_tracker">Suivi des tickets</string>
|
||||||
|
<string name="action_instance_empty_content">Aucune instance ne correspond à ces critères</string>
|
||||||
<string name="action_instance_empty_content">No instances match these criteria</string>
|
<string name="instances_picker">Sélecteur d\'instances</string>
|
||||||
<string name="instances_picker">Instances picker</string>
|
<string name="pickup_instance">Choisissez une instance</string>
|
||||||
<string name="pickup_instance">Pickup this instance</string>
|
<string name="sensitive_video"> Vidéos sensibles</string>
|
||||||
<string name="sensitive_content">Sensitive content: %1$s</string>
|
<string name="sensitive_content">Contenu sensible : %1$s</string>
|
||||||
<string name="followers_instance">%1$s instance followers</string>
|
<string name="followers_instance">%1$s instances suiveuses</string>
|
||||||
<string name="help">Help</string>
|
<string name="help">Aide</string>
|
||||||
<string name="sensitive_video"> Sensitive videos</string>
|
<string name="pickup_categories">Sélection des catégories</string>
|
||||||
<string name="pickup_categories">Pickup categories</string>
|
<string name="pickup_languages">Sélection des langues</string>
|
||||||
|
|
||||||
<string name="do_not_list">Do not list</string>
|
|
||||||
<string name="blur">Blur</string>
|
|
||||||
<string name="display">Display</string>
|
|
||||||
<string name="no_opinion">No opinion</string>
|
|
||||||
<string name="pickup_languages">Pickup languages</string>
|
|
||||||
<string name="notification_channel_name">Mise à jour des informations</string>
|
<string name="notification_channel_name">Mise à jour des informations</string>
|
||||||
|
<string name="add_account">Ajouter un compte</string>
|
||||||
<string name="list_of_accounts">Liste des comptes</string>
|
<string name="list_of_accounts">Liste des comptes</string>
|
||||||
|
|
||||||
<string name="pause">Pause</string>
|
<string name="pause">Pause</string>
|
||||||
<string name="play">Lecture</string>
|
<string name="play">Jouer</string>
|
||||||
<string name="minimize">Réduire</string>
|
<string name="minimize">Minimiser</string>
|
||||||
<string name="fast_rewind">Retour rapide</string>
|
<string name="fast_rewind">Rembobinage rapide</string>
|
||||||
<string name="fast_forward">Avance rapide</string>
|
<string name="fast_forward">Avance rapide</string>
|
||||||
|
<string name="set_video_minimize">Minimiser la taille des vidéos</string>
|
||||||
<string name="set_video_minimize">Réduire la taille des vidéos</string>
|
<string name="set_video_minimize_description">Minimiser la taille des vidéos lorsque l\'application est en arrière-plan (Android N+)</string>
|
||||||
<string name="set_video_minimize_description">Réduit la taille des vidéos quand l\'application est en arrière plan (Android N+)</string>
|
<string name="set_video_language">Filtre de langue</string>
|
||||||
|
<string name="set_video_language_description">Filtrer les vidéos avec différentes langues</string>
|
||||||
|
|
||||||
<string name="set_video_language">Filtrer les langues</string>
|
|
||||||
<string name="set_video_language_description">Filtrer les vidéos en fonction de la langue</string>
|
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
- Force le mode paysage lors du passage en mode plein écran
|
- Theme: Clair, Sombre et automatique
|
||||||
- Modifier la valeur du cache pour les vidéos
|
- Supprimer tous les commentaires d'un compte sur vos vidéos
|
||||||
- Définir la résolution par défaut pour les vidéos
|
- Mettre en sourdine un compte depuis les commentaires.
|
||||||
- Correction de bugs
|
|
@ -1 +1 @@
|
|||||||
TubeLab est une application Peertube pour les instances académiques.
|
App for all Peertube instances
|
@ -1 +1 @@
|
|||||||
TubeLab ist eine Peertube-App für akademische Instanzen.
|
App for all Peertube instances
|
@ -1 +1 @@
|
|||||||
Το TubeLab είναι μια εφαρμογή για τις ακαδημαϊκές υποστάσεις Peertube.
|
App for all Peertube instances
|
@ -1 +1 @@
|
|||||||
TubeLab est une application Peertube pour les instances académiques.
|
App for all Peertube instances
|
@ -1 +1 @@
|
|||||||
TubeLab es una aplicación de Peertube para instancias académicas.
|
App for all Peertube instances
|
@ -1 +1 @@
|
|||||||
TubeLab est une application Peertube pour les instances académiques.
|
App for all Peertube instances
|
@ -1 +1 @@
|
|||||||
TubeLab è un'applicazione Peertube per le istanze accademiche.
|
App per tutti i casi Peertube
|
@ -1 +1 @@
|
|||||||
TubeLab est une application Peertube pour les instances académiques.
|
App for all Peertube instances
|
@ -1 +1 @@
|
|||||||
TubeLab est une application Peertube pour les instances académiques.
|
App for all Peertube instances
|
@ -1 +1 @@
|
|||||||
TubeLab is een Peertube-toepassing voor academische instanties.
|
App for all Peertube instances
|
@ -1,22 +1,22 @@
|
|||||||
*Nie ma trybu uwierzytelnionego*
|
*Tryb bez uwierzytelniania*
|
||||||
|
|
||||||
Jest to tryb ograniczony, w którym można wykonywać pewne czynności:
|
Jest to tryb ograniczony, w którym można wykonywać niektóre czynności:
|
||||||
|
|
||||||
- Przełącznik,
|
- Przełączać sesje,
|
||||||
- Podziel się filmami,
|
- Udostępniać filmy,
|
||||||
- Pobierz filmy.
|
- Pobierać filmy.
|
||||||
|
|
||||||
|
|
||||||
*Tryb uwierzytelniony*
|
*Tryb uwierzytelniony*
|
||||||
|
|
||||||
W tym trybie dostępnych jest wiele funkcji:
|
W tym trybie dostępnych jest wiele funkcji:
|
||||||
|
|
||||||
- Napisać/usunąć komentarz
|
- Pisanie/Usuwanie komentarzy
|
||||||
- Przesyłanie/usuwanie/edycja filmów
|
- Przesyłanie/Usuwanie/Edytowanie filmów
|
||||||
- Zarządzanie (tworzenie/edycja/usuwanie) kanałami i listami odtwarzania
|
- Zarządzanie (tworzenie/edytowanie/usuwanie) kanałami i listami odtwarzania
|
||||||
- Kanały podążające/niepodążające
|
- Obserwowanie kanałów
|
||||||
- Kciuki w górę/w dół
|
- Kciuki w górę/w dół
|
||||||
- Powiadomienia o kontroli
|
- Sprawdzanie powiadomień
|
||||||
- Kanały wyciszone/niewyciszone
|
- Wyciszanie kanałów
|
||||||
- Raporty wideo/rachunki
|
- Zgłaszanie filmów/kont
|
||||||
- Sprawdź swoją historię
|
- Sprawdzanie swojej historii
|
@ -1 +1 @@
|
|||||||
TubeLab jest aplikacją Peertube dla instancji akademickich.
|
Aplikacja dla wszystkich instancji PeerTube
|
@ -1 +1 @@
|
|||||||
O TubeLab é uma aplicação Peertube para instâncias acadêmicas.
|
App for all Peertube instances
|
@ -1 +1 @@
|
|||||||
TubeLab est une application Peertube pour les instances académiques.
|
App for all Peertube instances
|
@ -15,7 +15,7 @@
|
|||||||
- Загружать/удалять/редактировать видео
|
- Загружать/удалять/редактировать видео
|
||||||
- Управлять (создание/редактирование/удаление) каналами и плейлистами
|
- Управлять (создание/редактирование/удаление) каналами и плейлистами
|
||||||
- Подписаться/отписаться от каналов
|
- Подписаться/отписаться от каналов
|
||||||
- Палец вверх/вниз
|
- Нравится/не нравится
|
||||||
- Проверить уведомления
|
- Проверить уведомления
|
||||||
- Отключить/включить каналы
|
- Отключить/включить каналы
|
||||||
- Пожаловаться на видео/аккаунты
|
- Пожаловаться на видео/аккаунты
|
||||||
|
@ -1 +1 @@
|
|||||||
TubeLab - это приложение Peertube для образовательных экземпляров.
|
Приложение для всех серверов Peertube
|
@ -1 +1 @@
|
|||||||
TubeLab est une application Peertube pour les instances académiques.
|
App for all Peertube instances
|
@ -1 +1 @@
|
|||||||
TubeLab est une application Peertube pour les instances académiques.
|
App for all Peertube instances
|
@ -1 +1 @@
|
|||||||
TubeLab est une application Peertube pour les instances académiques.
|
App for all Peertube instances
|
@ -1,5 +1,7 @@
|
|||||||
- Force landscape view when switching in full screen
|
- Custom default instance depending of the country
|
||||||
- Sync languages with the instance
|
- See replies to comments
|
||||||
- Change default cache for videos (settings)
|
- Reply to comments
|
||||||
- Set default resolution for videos (settings)
|
- Reply to replies
|
||||||
- Some bug fixes.
|
- See accounts (displays their channels & videos)
|
||||||
|
- Fix some issues when posting
|
||||||
|
- Fix videos not paused after screen lock
|
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
<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" />
|
<item android:color="@android:color/tab_indicator_text" />
|
||||||
</selector>
|
</selector>
|
@ -148,6 +148,7 @@
|
|||||||
<string name="account">Account</string>
|
<string name="account">Account</string>
|
||||||
<string name="report_account">Report account</string>
|
<string name="report_account">Report account</string>
|
||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
|
<item>Normal</item>
|
||||||
<item>Webview</item>
|
<item>Webview</item>
|
||||||
<item>Direct stream</item>
|
<item>Direct stream</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
@ -1,5 +1,18 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
<string name="add_public_reply">Add a public reply</string>
|
||||||
|
<plurals name="number_of_replies">
|
||||||
|
<item quantity="zero">%d replies</item>
|
||||||
|
<item quantity="one">%d reply</item>
|
||||||
|
<item quantity="two">%d replies</item>
|
||||||
|
<item quantity="few">%d replies</item>
|
||||||
|
<item quantity="many">%d replies</item>
|
||||||
|
<item quantity="other">%d replies</item>
|
||||||
|
</plurals>
|
||||||
|
<string name="reply">Reply</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_home">Home</string>
|
||||||
<string name="title_local">Local</string>
|
<string name="title_local">Local</string>
|
||||||
<string name="title_discover">Discover</string>
|
<string name="title_discover">Discover</string>
|
||||||
@ -34,6 +47,7 @@
|
|||||||
<string name="download">Download</string>
|
<string name="download">Download</string>
|
||||||
<string name="profile_picture">Profile picture</string>
|
<string name="profile_picture">Profile picture</string>
|
||||||
<string name="update_video">Update video</string>
|
<string name="update_video">Update video</string>
|
||||||
|
<string name="remove_from_playlist">Remove from playlist</string>
|
||||||
<string name="date_seconds">%d s</string>
|
<string name="date_seconds">%d s</string>
|
||||||
<string name="date_minutes">%d m</string>
|
<string name="date_minutes">%d m</string>
|
||||||
<string name="date_hours">%d h</string>
|
<string name="date_hours">%d h</string>
|
||||||
@ -82,6 +96,33 @@
|
|||||||
<string name="delete_comment">Delete a comment</string>
|
<string name="delete_comment">Delete a comment</string>
|
||||||
<string name="delete_comment_confirm">Are you sure to delete this comment?</string>
|
<string name="delete_comment_confirm">Are you sure to delete this comment?</string>
|
||||||
<string name="set_video_mode">Mode for videos</string>
|
<string name="set_video_mode">Mode for videos</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-array name="sort_by_array">
|
||||||
|
<item>Best match</item>
|
||||||
|
<item>Most recent</item>
|
||||||
|
<item>Least recent</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="my_videos">My videos</string>
|
<string name="my_videos">My videos</string>
|
||||||
<string name="title">Title</string>
|
<string name="title">Title</string>
|
||||||
<string name="license">License</string>
|
<string name="license">License</string>
|
||||||
@ -107,7 +148,7 @@
|
|||||||
<string name="video_settings">Video settings</string>
|
<string name="video_settings">Video settings</string>
|
||||||
<string name="app_interface">Interface</string>
|
<string name="app_interface">Interface</string>
|
||||||
<string name="set_cache_mode">Cache</string>
|
<string name="set_cache_mode">Cache</string>
|
||||||
<string name="set_video_cache_description">Définir le cache pour les vidéos (défaut 100Mo)</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_video_quality_description">Define a default quality for videos</string>
|
||||||
<string name="set_quality_mode">Resolution for videos</string>
|
<string name="set_quality_mode">Resolution for videos</string>
|
||||||
<string name="video_cache_value">Video cache: %d Mb</string>
|
<string name="video_cache_value">Video cache: %d Mb</string>
|
||||||
@ -115,6 +156,8 @@
|
|||||||
<string name="pickup_captions">Pick captions</string>
|
<string name="pickup_captions">Pick captions</string>
|
||||||
<string name="none">None</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="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">Delete video</string>
|
||||||
<string name="delete_video_confirmation">Are you sure to delete this 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>
|
<string name="no_video_to_display">No videos to display!</string>
|
||||||
@ -128,6 +171,7 @@
|
|||||||
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> published a new video: <b>%2$s</b>]]></string>
|
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> published a new video: <b>%2$s</b>]]></string>
|
||||||
<string name="peertube_video_blacklist"><![CDATA[Your video <b>%1$s</b> has been blacklisted]]></string>
|
<string name="peertube_video_blacklist"><![CDATA[Your video <b>%1$s</b> has been blacklisted]]></string>
|
||||||
<string name="peertube_video_unblacklist"><![CDATA[Your video <b>%1$s</b> has been unblacklisted]]></string>
|
<string name="peertube_video_unblacklist"><![CDATA[Your video <b>%1$s</b> has been unblacklisted]]></string>
|
||||||
|
<string name="peertube_video_report_success"><![CDATA[ Your abuse <b>%1$s</b> has been accepted]]></string>
|
||||||
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
||||||
<string name="add_public_comment">Add a public comment</string>
|
<string name="add_public_comment">Add a public comment</string>
|
||||||
<string name="send_comment">Send comment</string>
|
<string name="send_comment">Send comment</string>
|
||||||
@ -161,9 +205,15 @@
|
|||||||
<string name="account">Account</string>
|
<string name="account">Account</string>
|
||||||
<string name="report_account">Report account</string>
|
<string name="report_account">Report account</string>
|
||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
|
<item>Normal</item>
|
||||||
<item>Webview</item>
|
<item>Webview</item>
|
||||||
<item>Direct stream</item>
|
<item>Direct stream</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
<string-array name="settings_theme">
|
||||||
|
<item>Light</item>
|
||||||
|
<item>Dark</item>
|
||||||
|
<item>Automatic</item>
|
||||||
|
</string-array>
|
||||||
<string-array name="settings_video_quality">
|
<string-array name="settings_video_quality">
|
||||||
<item>High</item>
|
<item>High</item>
|
||||||
<item>Medium</item>
|
<item>Medium</item>
|
||||||
@ -181,6 +231,7 @@
|
|||||||
<string name="bookmark_peertube_empty">There are no videos in your favourites!</string>
|
<string name="bookmark_peertube_empty">There are no videos in your favourites!</string>
|
||||||
<string name="delete_channel">Remove channel</string>
|
<string name="delete_channel">Remove channel</string>
|
||||||
<string name="action_channel_confirm_delete">Are you sure to permanently delete this channel?</string>
|
<string name="action_channel_confirm_delete">Are you sure to permanently delete this channel?</string>
|
||||||
|
<string name="modify_playlists">Video in playlists</string>
|
||||||
<string name="no_muted">No muted accounts!</string>
|
<string name="no_muted">No muted accounts!</string>
|
||||||
<string name="error_display_name_channel">You must define a name and a display name for this channel!</string>
|
<string name="error_display_name_channel">You must define a name and a display name for this channel!</string>
|
||||||
<string name="action_channel_create">Create a channel</string>
|
<string name="action_channel_create">Create a channel</string>
|
||||||
|
@ -148,6 +148,7 @@
|
|||||||
<string name="account">Account</string>
|
<string name="account">Account</string>
|
||||||
<string name="report_account">Report account</string>
|
<string name="report_account">Report account</string>
|
||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
|
<item>Normal</item>
|
||||||
<item>Webview</item>
|
<item>Webview</item>
|
||||||
<item>Direct stream</item>
|
<item>Direct stream</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
@ -148,6 +148,7 @@
|
|||||||
<string name="account">Account</string>
|
<string name="account">Account</string>
|
||||||
<string name="report_account">Report account</string>
|
<string name="report_account">Report account</string>
|
||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
|
<item>Normal</item>
|
||||||
<item>Webview</item>
|
<item>Webview</item>
|
||||||
<item>Direct stream</item>
|
<item>Direct stream</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
@ -148,6 +148,7 @@
|
|||||||
<string name="account">Account</string>
|
<string name="account">Account</string>
|
||||||
<string name="report_account">Report account</string>
|
<string name="report_account">Report account</string>
|
||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
|
<item>Normal</item>
|
||||||
<item>Webview</item>
|
<item>Webview</item>
|
||||||
<item>Direct stream</item>
|
<item>Direct stream</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
@ -1,5 +1,14 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
<string name="add_public_reply">Add a public reply</string>
|
||||||
|
<plurals name="number_of_replies">
|
||||||
|
<item quantity="one">%d reply</item>
|
||||||
|
<item quantity="other">%d replies</item>
|
||||||
|
</plurals>
|
||||||
|
<string name="reply">Reply</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">Startseite</string>
|
<string name="title_home">Startseite</string>
|
||||||
<string name="title_local">Local</string>
|
<string name="title_local">Local</string>
|
||||||
<string name="title_discover">Mehr erfahren</string>
|
<string name="title_discover">Mehr erfahren</string>
|
||||||
@ -34,6 +43,7 @@
|
|||||||
<string name="download">Herunterladen</string>
|
<string name="download">Herunterladen</string>
|
||||||
<string name="profile_picture">Profilbild</string>
|
<string name="profile_picture">Profilbild</string>
|
||||||
<string name="update_video">Video aktualisieren</string>
|
<string name="update_video">Video aktualisieren</string>
|
||||||
|
<string name="remove_from_playlist">Remove from playlist</string>
|
||||||
<string name="date_seconds">%d en</string>
|
<string name="date_seconds">%d en</string>
|
||||||
<string name="date_minutes">%d en</string>
|
<string name="date_minutes">%d en</string>
|
||||||
<string name="date_hours">%d en</string>
|
<string name="date_hours">%d en</string>
|
||||||
@ -82,6 +92,33 @@
|
|||||||
<string name="delete_comment">Kommentar löschen</string>
|
<string name="delete_comment">Kommentar löschen</string>
|
||||||
<string name="delete_comment_confirm">Möchtest du diesen Kommentar wirklich löschen?</string>
|
<string name="delete_comment_confirm">Möchtest du diesen Kommentar wirklich löschen?</string>
|
||||||
<string name="set_video_mode">Videomodus</string>
|
<string name="set_video_mode">Videomodus</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-array name="sort_by_array">
|
||||||
|
<item>Best match</item>
|
||||||
|
<item>Most recent</item>
|
||||||
|
<item>Least recent</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="my_videos">Eigene Videos</string>
|
<string name="my_videos">Eigene Videos</string>
|
||||||
<string name="title">Titel</string>
|
<string name="title">Titel</string>
|
||||||
<string name="license">Lizenz</string>
|
<string name="license">Lizenz</string>
|
||||||
@ -107,7 +144,7 @@
|
|||||||
<string name="video_settings">Video settings</string>
|
<string name="video_settings">Video settings</string>
|
||||||
<string name="app_interface">Interface</string>
|
<string name="app_interface">Interface</string>
|
||||||
<string name="set_cache_mode">Cache</string>
|
<string name="set_cache_mode">Cache</string>
|
||||||
<string name="set_video_cache_description">Définir le cache pour les vidéos (défaut 100Mo)</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_video_quality_description">Define a default quality for videos</string>
|
||||||
<string name="set_quality_mode">Resolution for videos</string>
|
<string name="set_quality_mode">Resolution for videos</string>
|
||||||
<string name="video_cache_value">Video cache: %d Mb</string>
|
<string name="video_cache_value">Video cache: %d Mb</string>
|
||||||
@ -115,6 +152,8 @@
|
|||||||
<string name="pickup_captions">Untertitel abholen</string>
|
<string name="pickup_captions">Untertitel abholen</string>
|
||||||
<string name="none">Keine</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="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">Video löschen</string>
|
||||||
<string name="delete_video_confirmation">Möchtest du dieses Video wirklich 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>
|
<string name="no_video_to_display">Keine Videos zum Anzeigen!</string>
|
||||||
@ -128,6 +167,7 @@
|
|||||||
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> hat ein neues Video veröffentlicht: <b>%2$s</b>]]></string>
|
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> hat ein neues Video veröffentlicht: <b>%2$s</b>]]></string>
|
||||||
<string name="peertube_video_blacklist"><![CDATA[Dein Video <b>%1$s</b> wurde gesperrt]]></string>
|
<string name="peertube_video_blacklist"><![CDATA[Dein Video <b>%1$s</b> wurde gesperrt]]></string>
|
||||||
<string name="peertube_video_unblacklist"><![CDATA[Die Sperre für dein Video <b>%1$s</b> wurde aufgehoben]]></string>
|
<string name="peertube_video_unblacklist"><![CDATA[Die Sperre für dein Video <b>%1$s</b> wurde aufgehoben]]></string>
|
||||||
|
<string name="peertube_video_report_success"><![CDATA[ Your abuse <b>%1$s</b> has been accepted]]></string>
|
||||||
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
||||||
<string name="add_public_comment">Öffentlichen Kommentar hinzufügen</string>
|
<string name="add_public_comment">Öffentlichen Kommentar hinzufügen</string>
|
||||||
<string name="send_comment">Kommentar absenden</string>
|
<string name="send_comment">Kommentar absenden</string>
|
||||||
@ -163,6 +203,12 @@
|
|||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
<item>WebView</item>
|
<item>WebView</item>
|
||||||
<item>Direkter Datenstrom</item>
|
<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>
|
||||||
<string-array name="settings_video_quality">
|
<string-array name="settings_video_quality">
|
||||||
<item>High</item>
|
<item>High</item>
|
||||||
@ -181,6 +227,7 @@
|
|||||||
<string name="bookmark_peertube_empty">Keine Videos in den Favoriten!</string>
|
<string name="bookmark_peertube_empty">Keine Videos in den Favoriten!</string>
|
||||||
<string name="delete_channel">Kanal entfernen</string>
|
<string name="delete_channel">Kanal entfernen</string>
|
||||||
<string name="action_channel_confirm_delete">Möchtest du diesen Kanal wirklich löschen?</string>
|
<string name="action_channel_confirm_delete">Möchtest du diesen Kanal wirklich löschen?</string>
|
||||||
|
<string name="modify_playlists">Video in playlists</string>
|
||||||
<string name="no_muted">Keine stummgeschalteten Accounts!</string>
|
<string name="no_muted">Keine stummgeschalteten Accounts!</string>
|
||||||
<string name="error_display_name_channel">Du musst einen Namen und einen Anzeigenamen für diesen Kanal definieren!</string>
|
<string name="error_display_name_channel">Du musst einen Namen und einen Anzeigenamen für diesen Kanal definieren!</string>
|
||||||
<string name="action_channel_create">Kanal erstellen</string>
|
<string name="action_channel_create">Kanal erstellen</string>
|
||||||
|
@ -1,5 +1,14 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
<string name="add_public_reply">Add a public reply</string>
|
||||||
|
<plurals name="number_of_replies">
|
||||||
|
<item quantity="one">%d reply</item>
|
||||||
|
<item quantity="other">%d replies</item>
|
||||||
|
</plurals>
|
||||||
|
<string name="reply">Reply</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">Αρχική</string>
|
<string name="title_home">Αρχική</string>
|
||||||
<string name="title_local">Local</string>
|
<string name="title_local">Local</string>
|
||||||
<string name="title_discover">Ανακαλύψτε</string>
|
<string name="title_discover">Ανακαλύψτε</string>
|
||||||
@ -34,6 +43,7 @@
|
|||||||
<string name="download">Λήψη</string>
|
<string name="download">Λήψη</string>
|
||||||
<string name="profile_picture">Εικόνα προφίλ</string>
|
<string name="profile_picture">Εικόνα προφίλ</string>
|
||||||
<string name="update_video">Ενημέρωση του βίντεο</string>
|
<string name="update_video">Ενημέρωση του βίντεο</string>
|
||||||
|
<string name="remove_from_playlist">Remove from playlist</string>
|
||||||
<string name="date_seconds">%d δευτ</string>
|
<string name="date_seconds">%d δευτ</string>
|
||||||
<string name="date_minutes">%d λεπ</string>
|
<string name="date_minutes">%d λεπ</string>
|
||||||
<string name="date_hours">%d ώρ</string>
|
<string name="date_hours">%d ώρ</string>
|
||||||
@ -82,6 +92,33 @@
|
|||||||
<string name="delete_comment">Διαγραφή ενός σχόλιου</string>
|
<string name="delete_comment">Διαγραφή ενός σχόλιου</string>
|
||||||
<string name="delete_comment_confirm">Θέλετε να διαγράψετε αυτό το σχόλιο, στα σίγουρα;</string>
|
<string name="delete_comment_confirm">Θέλετε να διαγράψετε αυτό το σχόλιο, στα σίγουρα;</string>
|
||||||
<string name="set_video_mode">Κατάσταση λειτουργίας για τα βίντεο</string>
|
<string name="set_video_mode">Κατάσταση λειτουργίας για τα βίντεο</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-array name="sort_by_array">
|
||||||
|
<item>Best match</item>
|
||||||
|
<item>Most recent</item>
|
||||||
|
<item>Least recent</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="my_videos">Τα βίντεο μου</string>
|
<string name="my_videos">Τα βίντεο μου</string>
|
||||||
<string name="title">Τίτλος</string>
|
<string name="title">Τίτλος</string>
|
||||||
<string name="license">Άδεια</string>
|
<string name="license">Άδεια</string>
|
||||||
@ -107,7 +144,7 @@
|
|||||||
<string name="video_settings">Video settings</string>
|
<string name="video_settings">Video settings</string>
|
||||||
<string name="app_interface">Interface</string>
|
<string name="app_interface">Interface</string>
|
||||||
<string name="set_cache_mode">Cache</string>
|
<string name="set_cache_mode">Cache</string>
|
||||||
<string name="set_video_cache_description">Définir le cache pour les vidéos (défaut 100Mo)</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_video_quality_description">Define a default quality for videos</string>
|
||||||
<string name="set_quality_mode">Resolution for videos</string>
|
<string name="set_quality_mode">Resolution for videos</string>
|
||||||
<string name="video_cache_value">Video cache: %d Mb</string>
|
<string name="video_cache_value">Video cache: %d Mb</string>
|
||||||
@ -115,6 +152,8 @@
|
|||||||
<string name="pickup_captions">Επιλογή υποτίτλων</string>
|
<string name="pickup_captions">Επιλογή υποτίτλων</string>
|
||||||
<string name="none">Κανένας</string>
|
<string name="none">Κανένας</string>
|
||||||
<string name="set_video_mode_description">Επιτρέπει την εναλλαγή κατάστασης λειτουργίας για την αναπαραγωγή βίντεο (προεπιλεγμένη, ροή ή μέσω περιηγητή ιστού).</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">Διαγραφή βίντεο</string>
|
||||||
<string name="delete_video_confirmation">Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό το βίντεο;</string>
|
<string name="delete_video_confirmation">Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό το βίντεο;</string>
|
||||||
<string name="no_video_to_display">Δεν υπάρχουν βίντεο για προβολή!</string>
|
<string name="no_video_to_display">Δεν υπάρχουν βίντεο για προβολή!</string>
|
||||||
@ -128,6 +167,7 @@
|
|||||||
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> Δημοσίευσε ένα νέο βίντεο: <b>%2$s</b>]]></string>
|
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> Δημοσίευσε ένα νέο βίντεο: <b>%2$s</b>]]></string>
|
||||||
<string name="peertube_video_blacklist"><![CDATA[Το βίντεό σου <b>%1$s</b> έχει μπει στη μαύρη λίστα]]></string>
|
<string name="peertube_video_blacklist"><![CDATA[Το βίντεό σου <b>%1$s</b> έχει μπει στη μαύρη λίστα]]></string>
|
||||||
<string name="peertube_video_unblacklist"><![CDATA[Το βίντεό σου <b>%1$s</b> έχει βγει από τη μαύρη λίστα]]></string>
|
<string name="peertube_video_unblacklist"><![CDATA[Το βίντεό σου <b>%1$s</b> έχει βγει από τη μαύρη λίστα]]></string>
|
||||||
|
<string name="peertube_video_report_success"><![CDATA[ Your abuse <b>%1$s</b> has been accepted]]></string>
|
||||||
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
||||||
<string name="add_public_comment">Προσθήκη ενός δημόσιου σχόλιου</string>
|
<string name="add_public_comment">Προσθήκη ενός δημόσιου σχόλιου</string>
|
||||||
<string name="send_comment">Αποστολή σχόλιου</string>
|
<string name="send_comment">Αποστολή σχόλιου</string>
|
||||||
@ -162,6 +202,12 @@
|
|||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
<item>Webview</item>
|
<item>Webview</item>
|
||||||
<item>Άμεση ροή</item>
|
<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>
|
||||||
<string-array name="settings_video_quality">
|
<string-array name="settings_video_quality">
|
||||||
<item>High</item>
|
<item>High</item>
|
||||||
@ -180,6 +226,7 @@
|
|||||||
<string name="bookmark_peertube_empty">Δεν υπάρχουν βίντεο στα αγαπημένα σας!</string>
|
<string name="bookmark_peertube_empty">Δεν υπάρχουν βίντεο στα αγαπημένα σας!</string>
|
||||||
<string name="delete_channel">Αφαίρεση καναλιού</string>
|
<string name="delete_channel">Αφαίρεση καναλιού</string>
|
||||||
<string name="action_channel_confirm_delete">Θέλετε σίγουρα να διαγραφεί αυτό το κανάλι;</string>
|
<string name="action_channel_confirm_delete">Θέλετε σίγουρα να διαγραφεί αυτό το κανάλι;</string>
|
||||||
|
<string name="modify_playlists">Video in playlists</string>
|
||||||
<string name="no_muted">Δεν υπάρχουν σιγασμένοι λογαριασμοί!</string>
|
<string name="no_muted">Δεν υπάρχουν σιγασμένοι λογαριασμοί!</string>
|
||||||
<string name="error_display_name_channel">Πρέπει να ορίσετε ένα όνομα και ένα όνομα εμφάνισης για αυτό το κανάλι!</string>
|
<string name="error_display_name_channel">Πρέπει να ορίσετε ένα όνομα και ένα όνομα εμφάνισης για αυτό το κανάλι!</string>
|
||||||
<string name="action_channel_create">Δημιουργία καναλιού</string>
|
<string name="action_channel_create">Δημιουργία καναλιού</string>
|
||||||
|
@ -148,6 +148,7 @@
|
|||||||
<string name="account">Account</string>
|
<string name="account">Account</string>
|
||||||
<string name="report_account">Report account</string>
|
<string name="report_account">Report account</string>
|
||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
|
<item>Normal</item>
|
||||||
<item>Webview</item>
|
<item>Webview</item>
|
||||||
<item>Direct stream</item>
|
<item>Direct stream</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
@ -1,5 +1,14 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
<string name="add_public_reply">Add a public reply</string>
|
||||||
|
<plurals name="number_of_replies">
|
||||||
|
<item quantity="one">%d reply</item>
|
||||||
|
<item quantity="other">%d replies</item>
|
||||||
|
</plurals>
|
||||||
|
<string name="reply">Reply</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">Inicio</string>
|
<string name="title_home">Inicio</string>
|
||||||
<string name="title_local">Local</string>
|
<string name="title_local">Local</string>
|
||||||
<string name="title_discover">Descubre</string>
|
<string name="title_discover">Descubre</string>
|
||||||
@ -34,6 +43,7 @@
|
|||||||
<string name="download">Descargar</string>
|
<string name="download">Descargar</string>
|
||||||
<string name="profile_picture">Imagen del perfil</string>
|
<string name="profile_picture">Imagen del perfil</string>
|
||||||
<string name="update_video">Actualizar vídeo</string>
|
<string name="update_video">Actualizar vídeo</string>
|
||||||
|
<string name="remove_from_playlist">Remove from playlist</string>
|
||||||
<string name="date_seconds">%d s</string>
|
<string name="date_seconds">%d s</string>
|
||||||
<string name="date_minutes">%d m</string>
|
<string name="date_minutes">%d m</string>
|
||||||
<string name="date_hours">%d h</string>
|
<string name="date_hours">%d h</string>
|
||||||
@ -82,6 +92,33 @@
|
|||||||
<string name="delete_comment">Eliminar un comentario</string>
|
<string name="delete_comment">Eliminar un comentario</string>
|
||||||
<string name="delete_comment_confirm">¿Realmente deseas eliminar este comentario?</string>
|
<string name="delete_comment_confirm">¿Realmente deseas eliminar este comentario?</string>
|
||||||
<string name="set_video_mode">Aplicar el modo de video</string>
|
<string name="set_video_mode">Aplicar el modo de 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-array name="sort_by_array">
|
||||||
|
<item>Best match</item>
|
||||||
|
<item>Most recent</item>
|
||||||
|
<item>Least recent</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="my_videos">Mis videos</string>
|
<string name="my_videos">Mis videos</string>
|
||||||
<string name="title">Título</string>
|
<string name="title">Título</string>
|
||||||
<string name="license">Licencia</string>
|
<string name="license">Licencia</string>
|
||||||
@ -107,7 +144,7 @@
|
|||||||
<string name="video_settings">Video settings</string>
|
<string name="video_settings">Video settings</string>
|
||||||
<string name="app_interface">Interface</string>
|
<string name="app_interface">Interface</string>
|
||||||
<string name="set_cache_mode">Cache</string>
|
<string name="set_cache_mode">Cache</string>
|
||||||
<string name="set_video_cache_description">Définir le cache pour les vidéos (défaut 100Mo)</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_video_quality_description">Define a default quality for videos</string>
|
||||||
<string name="set_quality_mode">Resolution for videos</string>
|
<string name="set_quality_mode">Resolution for videos</string>
|
||||||
<string name="video_cache_value">Video cache: %d Mb</string>
|
<string name="video_cache_value">Video cache: %d Mb</string>
|
||||||
@ -115,6 +152,8 @@
|
|||||||
<string name="pickup_captions">Pies de foto de la camioneta</string>
|
<string name="pickup_captions">Pies de foto de la camioneta</string>
|
||||||
<string name="none">Ninguno</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="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">Eliminar vídeo</string>
|
||||||
<string name="delete_video_confirmation">¿Estás seguro de eliminar este video?</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>
|
<string name="no_video_to_display">¡No hay videos para ver!</string>
|
||||||
@ -128,6 +167,7 @@
|
|||||||
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> publicó un nuevo video: <b>%2$s</b>]]></string>
|
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> publicó un nuevo video: <b>%2$s</b>]]></string>
|
||||||
<string name="peertube_video_blacklist"><![CDATA[Su video <b>%1$s</b> esta en lista negra]]></string>
|
<string name="peertube_video_blacklist"><![CDATA[Su video <b>%1$s</b> esta en lista negra]]></string>
|
||||||
<string name="peertube_video_unblacklist"><![CDATA[Tu video <b>%1$s</b> non más esta en lista negra]]></string>
|
<string name="peertube_video_unblacklist"><![CDATA[Tu video <b>%1$s</b> non más esta en lista negra]]></string>
|
||||||
|
<string name="peertube_video_report_success"><![CDATA[ Your abuse <b>%1$s</b> has been accepted]]></string>
|
||||||
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
||||||
<string name="add_public_comment">Añade un comentario público</string>
|
<string name="add_public_comment">Añade un comentario público</string>
|
||||||
<string name="send_comment">Enviar comentario</string>
|
<string name="send_comment">Enviar comentario</string>
|
||||||
@ -163,6 +203,12 @@
|
|||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
<item>Webview</item>
|
<item>Webview</item>
|
||||||
<item>Corriente Directa</item>
|
<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>
|
||||||
<string-array name="settings_video_quality">
|
<string-array name="settings_video_quality">
|
||||||
<item>High</item>
|
<item>High</item>
|
||||||
@ -181,6 +227,7 @@
|
|||||||
<string name="bookmark_peertube_empty">No hay videos en tus favoritos!</string>
|
<string name="bookmark_peertube_empty">No hay videos en tus favoritos!</string>
|
||||||
<string name="delete_channel">Quitar el canal</string>
|
<string name="delete_channel">Quitar el canal</string>
|
||||||
<string name="action_channel_confirm_delete">Estas seguro de borrar permanentemente este canal?</string>
|
<string name="action_channel_confirm_delete">Estas seguro de borrar permanentemente este canal?</string>
|
||||||
|
<string name="modify_playlists">Video in playlists</string>
|
||||||
<string name="no_muted">Nada de cuentas mutables!</string>
|
<string name="no_muted">Nada de cuentas mutables!</string>
|
||||||
<string name="error_display_name_channel">Debes definir un nombre y un nombre de pantalla para este canal!</string>
|
<string name="error_display_name_channel">Debes definir un nombre y un nombre de pantalla para este canal!</string>
|
||||||
<string name="action_channel_create">Crear un canal</string>
|
<string name="action_channel_create">Crear un canal</string>
|
||||||
|
@ -148,6 +148,7 @@
|
|||||||
<string name="account">Account</string>
|
<string name="account">Account</string>
|
||||||
<string name="report_account">Report account</string>
|
<string name="report_account">Report account</string>
|
||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
|
<item>Normal</item>
|
||||||
<item>Webview</item>
|
<item>Webview</item>
|
||||||
<item>Direct stream</item>
|
<item>Direct stream</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
@ -1,7 +1,16 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
<string name="add_public_reply">Add a public reply</string>
|
||||||
|
<plurals name="number_of_replies">
|
||||||
|
<item quantity="one">%d reply</item>
|
||||||
|
<item quantity="other">%d replies</item>
|
||||||
|
</plurals>
|
||||||
|
<string name="reply">Reply</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">Locale</string>
|
<string name="title_home">Locale</string>
|
||||||
<string name="title_local">Local</string>
|
<string name="title_local">Locale</string>
|
||||||
<string name="title_discover">Découvrir</string>
|
<string name="title_discover">Découvrir</string>
|
||||||
<string name="title_notifications">Notifications</string>
|
<string name="title_notifications">Notifications</string>
|
||||||
<string name="title_recently_added">Nouveautés</string>
|
<string name="title_recently_added">Nouveautés</string>
|
||||||
@ -34,6 +43,7 @@
|
|||||||
<string name="download">Télécharger</string>
|
<string name="download">Télécharger</string>
|
||||||
<string name="profile_picture">Photo du profil</string>
|
<string name="profile_picture">Photo du profil</string>
|
||||||
<string name="update_video">Mettre à jour la vidéo</string>
|
<string name="update_video">Mettre à jour la vidéo</string>
|
||||||
|
<string name="remove_from_playlist">Supprimer de la liste de lecture</string>
|
||||||
<string name="date_seconds">%d s</string>
|
<string name="date_seconds">%d s</string>
|
||||||
<string name="date_minutes">%d min</string>
|
<string name="date_minutes">%d min</string>
|
||||||
<string name="date_hours">%d h</string>
|
<string name="date_hours">%d h</string>
|
||||||
@ -82,6 +92,33 @@
|
|||||||
<string name="delete_comment">Supprimer le commentaire</string>
|
<string name="delete_comment">Supprimer le commentaire</string>
|
||||||
<string name="delete_comment_confirm">Etes-vous sûr de vouloir supprimer ce commentaire ?</string>
|
<string name="delete_comment_confirm">Etes-vous sûr de vouloir supprimer ce commentaire ?</string>
|
||||||
<string name="set_video_mode">Mode pour les vidéos</string>
|
<string name="set_video_mode">Mode pour les vidéos</string>
|
||||||
|
<string name="filter">Filtrer</string>
|
||||||
|
<string name="sepia_search">Recherche sépia</string>
|
||||||
|
<string name="sepia_element_nsfw">Afficher le contenu sensible</string>
|
||||||
|
<string name="sepia_element_published_date">Date de publication</string>
|
||||||
|
<string name="any">Toutes</string>
|
||||||
|
<string name="today">Aujourd\'hui</string>
|
||||||
|
<string name="last_7_days">Les 7 derniers jours</string>
|
||||||
|
<string name="last_30_days">Les 30 derniers jours</string>
|
||||||
|
<string name="last_365_days">Les 365 derniers jours</string>
|
||||||
|
<string name="sepia_element_duration">Durée</string>
|
||||||
|
<string name="duration_short"><![CDATA[Courte (<4 min)]]></string>
|
||||||
|
<string name="duration_medium"><![CDATA[Moyenne (4-10 min)]]></string>
|
||||||
|
<string name="duration_long"><![CDATA[Longue (> 10 min)]]></string>
|
||||||
|
<string name="display_all_categories">Afficher toutes les catégories</string>
|
||||||
|
<string name="display_all_licenses">Afficher toutes les licences</string>
|
||||||
|
<string name="display_all_languages">Afficher toutes les langues</string>
|
||||||
|
<string name="all_of_these_tags">Tous ces labels</string>
|
||||||
|
<string name="one_of_these_tags">Un de ces labels</string>
|
||||||
|
<string name="apply_filter">Appliquer le filtre</string>
|
||||||
|
<string-array name="sort_by_array">
|
||||||
|
<item>Meilleurs résultats</item>
|
||||||
|
<item>Les plus récentes</item>
|
||||||
|
<item>Les moins récentes</item>
|
||||||
|
</string-array>
|
||||||
|
<string name="sort_by">Trier par</string>
|
||||||
|
<string name="sepia_search_hint">Mot-clé, chaîne, vidéo, etc.</string>
|
||||||
|
<string name="sepia_indication">La recherche Sepia affiche les vidéos et les chaînes qui correspondent à votre recherche mais qui n\'est pas l\'éditeur, ni le propriétaire. Si vous remarquez des problèmes avec une vidéo, signalez-la aux administrateurs sur le site Web de PeerTube où la vidéo est publiée.</string>
|
||||||
<string name="my_videos">Mes vidéos</string>
|
<string name="my_videos">Mes vidéos</string>
|
||||||
<string name="title">Titre</string>
|
<string name="title">Titre</string>
|
||||||
<string name="license">Licence</string>
|
<string name="license">Licence</string>
|
||||||
@ -104,17 +141,19 @@
|
|||||||
<string name="change_instance">Changer d\'instance</string>
|
<string name="change_instance">Changer d\'instance</string>
|
||||||
<string name="my_history">Historique</string>
|
<string name="my_history">Historique</string>
|
||||||
<string name="edit">Modifier</string>
|
<string name="edit">Modifier</string>
|
||||||
<string name="video_settings">Video settings</string>
|
<string name="video_settings">Réglages des vidéos</string>
|
||||||
<string name="app_interface">Interface</string>
|
<string name="app_interface">Interface</string>
|
||||||
<string name="set_cache_mode">Cache</string>
|
<string name="set_cache_mode">Cache</string>
|
||||||
<string name="set_video_cache_description">Définir le cache pour les vidéos (défaut 100Mo)</string>
|
<string name="set_video_cache_description">Définir le cache pour les vidéos (par défaut 100Mo)</string>
|
||||||
<string name="set_video_quality_description">Define a default quality for videos</string>
|
<string name="set_video_quality_description">Définir une qualité par défaut pour les vidéos</string>
|
||||||
<string name="set_quality_mode">Resolution for videos</string>
|
<string name="set_quality_mode">Résolution pour les vidéos</string>
|
||||||
<string name="video_cache_value">Video cache: %d Mb</string>
|
<string name="video_cache_value">Cache vidéo : %d Mo</string>
|
||||||
<string name="captions">Légendes</string>
|
<string name="captions">Légendes</string>
|
||||||
<string name="pickup_captions">Options d\'envoi</string>
|
<string name="pickup_captions">Options d\'envoi</string>
|
||||||
<string name="none">Aucune</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="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">Supprimer la vidéo</string>
|
||||||
<string name="delete_video_confirmation">Êtes-vous sûr de vouloir supprimer cette 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>
|
<string name="no_video_to_display">Aucune vidéo n’est disponible !</string>
|
||||||
@ -128,7 +167,8 @@
|
|||||||
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> a publié une nouvelle vidéo : <b>%2$s</b>]]></string>
|
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> a publié une nouvelle vidéo : <b>%2$s</b>]]></string>
|
||||||
<string name="peertube_video_blacklist"><![CDATA[Votre vidéo <b>%1$s</b> a été blacklisté]]></string>
|
<string name="peertube_video_blacklist"><![CDATA[Votre vidéo <b>%1$s</b> a été blacklisté]]></string>
|
||||||
<string name="peertube_video_unblacklist"><![CDATA[Votre vidéo <b>%1$s</b> n’est plus blacklisté]]></string>
|
<string name="peertube_video_unblacklist"><![CDATA[Votre vidéo <b>%1$s</b> n’est plus blacklisté]]></string>
|
||||||
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
<string name="peertube_video_report_success"><![CDATA[ Your abuse <b>%1$s</b> has been accepted]]></string>
|
||||||
|
<string name="peertube_video_abuse"><![CDATA[Nouveau signalement pour la vidéo : <b>%1$s</b>]]></string>
|
||||||
<string name="add_public_comment">Ajouter un commentaire public</string>
|
<string name="add_public_comment">Ajouter un commentaire public</string>
|
||||||
<string name="send_comment">Envoyer un commentaire</string>
|
<string name="send_comment">Envoyer un commentaire</string>
|
||||||
<string name="all">Tout</string>
|
<string name="all">Tout</string>
|
||||||
@ -159,11 +199,17 @@
|
|||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
<item>Normal</item>
|
<item>Normal</item>
|
||||||
<item>Streaming</item>
|
<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>
|
||||||
<string-array name="settings_video_quality">
|
<string-array name="settings_video_quality">
|
||||||
<item>High</item>
|
<item>Élevée</item>
|
||||||
<item>Medium</item>
|
<item>Moyenne</item>
|
||||||
<item>Low</item>
|
<item>Faible</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string name="unfollow_confirm">Voulez-vous vous désabonner de ce compte ?</string>
|
<string name="unfollow_confirm">Voulez-vous vous désabonner de ce compte ?</string>
|
||||||
<string name="title_video_peertube">Titre de la vidéo</string>
|
<string name="title_video_peertube">Titre de la vidéo</string>
|
||||||
@ -177,6 +223,7 @@
|
|||||||
<string name="bookmark_peertube_empty">Il n’y a aucune vidéo Peertube dans vos favoris !</string>
|
<string name="bookmark_peertube_empty">Il n’y a aucune vidéo Peertube dans vos favoris !</string>
|
||||||
<string name="delete_channel">Supprimer la chaîne</string>
|
<string name="delete_channel">Supprimer la chaîne</string>
|
||||||
<string name="action_channel_confirm_delete">Êtes-vous sûr de vouloir supprimer définitivement cette chaîne ?</string>
|
<string name="action_channel_confirm_delete">Êtes-vous sûr de vouloir supprimer définitivement cette chaîne ?</string>
|
||||||
|
<string name="modify_playlists">Vidéo dans les listes de lecture</string>
|
||||||
<string name="no_muted">Aucun compte en sourdine !</string>
|
<string name="no_muted">Aucun compte en sourdine !</string>
|
||||||
<string name="error_display_name_channel">Vous devez fournir un nom d\'affichage et un nom pour la chaîne!</string>
|
<string name="error_display_name_channel">Vous devez fournir un nom d\'affichage et un nom pour la chaîne!</string>
|
||||||
<string name="action_channel_create">Créer une chaîne</string>
|
<string name="action_channel_create">Créer une chaîne</string>
|
||||||
@ -185,7 +232,7 @@
|
|||||||
<string name="report_comment_size">Veuillez préciser les raisons.</string>
|
<string name="report_comment_size">Veuillez préciser les raisons.</string>
|
||||||
<string name="not_logged_in">Vous devez être connecté.e pour effectuer cette action !</string>
|
<string name="not_logged_in">Vous devez être connecté.e pour effectuer cette action !</string>
|
||||||
<string name="successful_report">Le compte a été signalé !</string>
|
<string name="successful_report">Le compte a été signalé !</string>
|
||||||
<string name="successful_report_comment">The comment has been reported!</string>
|
<string name="successful_report_comment">Le commentaire a été signalé !</string>
|
||||||
<string name="successful_video_report">La vidéo a été signalée !</string>
|
<string name="successful_video_report">La vidéo a été signalée !</string>
|
||||||
<string name="password_length_error">Le mot de passe doit contenir 6 caractères !</string>
|
<string name="password_length_error">Le mot de passe doit contenir 6 caractères !</string>
|
||||||
<string name="muted_done">Le compte a été mis en sourdine !</string>
|
<string name="muted_done">Le compte a été mis en sourdine !</string>
|
||||||
|
@ -148,6 +148,7 @@
|
|||||||
<string name="account">Account</string>
|
<string name="account">Account</string>
|
||||||
<string name="report_account">Report account</string>
|
<string name="report_account">Report account</string>
|
||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
|
<item>Normal</item>
|
||||||
<item>Webview</item>
|
<item>Webview</item>
|
||||||
<item>Direct stream</item>
|
<item>Direct stream</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
@ -148,6 +148,7 @@
|
|||||||
<string name="account">Account</string>
|
<string name="account">Account</string>
|
||||||
<string name="report_account">Report account</string>
|
<string name="report_account">Report account</string>
|
||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
|
<item>Normal</item>
|
||||||
<item>Webview</item>
|
<item>Webview</item>
|
||||||
<item>Direct stream</item>
|
<item>Direct stream</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
@ -1,7 +1,16 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
<string name="add_public_reply">Add a public reply</string>
|
||||||
|
<plurals name="number_of_replies">
|
||||||
|
<item quantity="one">%d reply</item>
|
||||||
|
<item quantity="other">%d replies</item>
|
||||||
|
</plurals>
|
||||||
|
<string name="reply">Reply</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">Inizio</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_discover">Esplora</string>
|
||||||
<string name="title_notifications">Notifiche</string>
|
<string name="title_notifications">Notifiche</string>
|
||||||
<string name="title_recently_added">Aggiunti di recente</string>
|
<string name="title_recently_added">Aggiunti di recente</string>
|
||||||
@ -17,7 +26,7 @@
|
|||||||
<string name="instance_choice">Trova un\'istanza</string>
|
<string name="instance_choice">Trova un\'istanza</string>
|
||||||
<string name="not_valide_instance">Questa istanza non sembra essere valida!</string>
|
<string name="not_valide_instance">Questa istanza non sembra essere valida!</string>
|
||||||
<string name="no_videos">Nessun video!</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="favicon">Favicon</string>
|
||||||
<string name="open_with">Apri con</string>
|
<string name="open_with">Apri con</string>
|
||||||
<string name="action_playlist_edit">Modifica playlist</string>
|
<string name="action_playlist_edit">Modifica playlist</string>
|
||||||
@ -34,6 +43,7 @@
|
|||||||
<string name="download">Scarica</string>
|
<string name="download">Scarica</string>
|
||||||
<string name="profile_picture">Immagine di profilo</string>
|
<string name="profile_picture">Immagine di profilo</string>
|
||||||
<string name="update_video">Aggiorna video</string>
|
<string name="update_video">Aggiorna video</string>
|
||||||
|
<string name="remove_from_playlist">Rimuovere dalla playlist</string>
|
||||||
<string name="date_seconds">%d s</string>
|
<string name="date_seconds">%d s</string>
|
||||||
<string name="date_minutes">%d m</string>
|
<string name="date_minutes">%d m</string>
|
||||||
<string name="date_hours">%d h</string>
|
<string name="date_hours">%d h</string>
|
||||||
@ -82,6 +92,33 @@
|
|||||||
<string name="delete_comment">Elimina il commento</string>
|
<string name="delete_comment">Elimina il commento</string>
|
||||||
<string name="delete_comment_confirm">Sei sicuro di voler eliminare questo 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="set_video_mode">Modalità per i video</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>Migliore partita</item>
|
||||||
|
<item>I più recenti</item>
|
||||||
|
<item>Meno recente</item>
|
||||||
|
</string-array>
|
||||||
|
<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="my_videos">I miei video</string>
|
||||||
<string name="title">Titolo</string>
|
<string name="title">Titolo</string>
|
||||||
<string name="license">Licenza</string>
|
<string name="license">Licenza</string>
|
||||||
@ -104,17 +141,19 @@
|
|||||||
<string name="change_instance">Prendi un\'altra istanza</string>
|
<string name="change_instance">Prendi un\'altra istanza</string>
|
||||||
<string name="my_history">Cronologia</string>
|
<string name="my_history">Cronologia</string>
|
||||||
<string name="edit">Modifica</string>
|
<string name="edit">Modifica</string>
|
||||||
<string name="video_settings">Video settings</string>
|
<string name="video_settings">Impostazioni video</string>
|
||||||
<string name="app_interface">Interface</string>
|
<string name="app_interface">Interfaccia</string>
|
||||||
<string name="set_cache_mode">Cache</string>
|
<string name="set_cache_mode">Cache</string>
|
||||||
<string name="set_video_cache_description">Définir le cache pour les vidéos (défaut 100Mo)</string>
|
<string name="set_video_cache_description">Impostare la cache per i video (default 100Mb)</string>
|
||||||
<string name="set_video_quality_description">Define a default quality for videos</string>
|
<string name="set_video_quality_description">Definire una qualità predefinita per i video</string>
|
||||||
<string name="set_quality_mode">Resolution for videos</string>
|
<string name="set_quality_mode">Risoluzione per i video</string>
|
||||||
<string name="video_cache_value">Video cache: %d Mb</string>
|
<string name="video_cache_value">Memoria video: %d Mb</string>
|
||||||
<string name="captions">Didascalie</string>
|
<string name="captions">Didascalie</string>
|
||||||
<string name="pickup_captions">Scegliere le didascalie</string>
|
<string name="pickup_captions">Scegliere le didascalie</string>
|
||||||
<string name="none">Nessuno</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="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">Elimina video</string>
|
||||||
<string name="delete_video_confirmation">Sei sicuro di voler eliminare questo 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>
|
<string name="no_video_to_display">Nessun video da mostrare!</string>
|
||||||
@ -128,7 +167,8 @@
|
|||||||
<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_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_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_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_report_success"><![CDATA[ Your abuse <b>%1$s</b> has been accepted]]></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="add_public_comment">Aggiungi un commento pubblico</string>
|
||||||
<string name="send_comment">Invia commento</string>
|
<string name="send_comment">Invia commento</string>
|
||||||
<string name="all">Tutto</string>
|
<string name="all">Tutto</string>
|
||||||
@ -163,11 +203,17 @@
|
|||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
<item>Webview</item>
|
<item>Webview</item>
|
||||||
<item>Stream diretto</item>
|
<item>Stream diretto</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>
|
||||||
<string-array name="settings_video_quality">
|
<string-array name="settings_video_quality">
|
||||||
<item>High</item>
|
<item>Alto</item>
|
||||||
<item>Medium</item>
|
<item>Medio</item>
|
||||||
<item>Low</item>
|
<item>Basso</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string name="unfollow_confirm">Vuoi smettere di seguire questo account?</string>
|
<string name="unfollow_confirm">Vuoi smettere di seguire questo account?</string>
|
||||||
<string name="title_video_peertube">Titolo per il video</string>
|
<string name="title_video_peertube">Titolo per il video</string>
|
||||||
@ -181,6 +227,7 @@
|
|||||||
<string name="bookmark_peertube_empty">Non c\'è nessun video nei tuoi favoriti!</string>
|
<string name="bookmark_peertube_empty">Non c\'è nessun video nei tuoi favoriti!</string>
|
||||||
<string name="delete_channel">Rimuovi Canale</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="action_channel_confirm_delete">Sei sicuro di voler eliminare definitivamente questo canale?</string>
|
||||||
|
<string name="modify_playlists">Video in playlist</string>
|
||||||
<string name="no_muted">Nessun account silenziato!</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="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>
|
<string name="action_channel_create">Creare un canale</string>
|
||||||
@ -189,7 +236,7 @@
|
|||||||
<string name="report_comment_size">Per favore, specifica una motivazione</string>
|
<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="not_logged_in">Per eseguire questa operazione, è necessario autenticarsi!</string>
|
||||||
<string name="successful_report">L\'account è stato segnalato!</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="successful_video_report">Il video è stato segnalato!</string>
|
||||||
<string name="password_length_error">La password deve contenere almeno 6 caratteri!</string>
|
<string name="password_length_error">La password deve contenere almeno 6 caratteri!</string>
|
||||||
<string name="muted_done">L\'account è stato silenziato!</string>
|
<string name="muted_done">L\'account è stato silenziato!</string>
|
||||||
|
@ -1,5 +1,13 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
<string name="add_public_reply">Add a public reply</string>
|
||||||
|
<plurals name="number_of_replies">
|
||||||
|
<item quantity="other">%d replies</item>
|
||||||
|
</plurals>
|
||||||
|
<string name="reply">Reply</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">ホーム</string>
|
<string name="title_home">ホーム</string>
|
||||||
<string name="title_local">Local</string>
|
<string name="title_local">Local</string>
|
||||||
<string name="title_discover">発見</string>
|
<string name="title_discover">発見</string>
|
||||||
@ -34,6 +42,7 @@
|
|||||||
<string name="download">ダウンロード</string>
|
<string name="download">ダウンロード</string>
|
||||||
<string name="profile_picture">プロフィール画像</string>
|
<string name="profile_picture">プロフィール画像</string>
|
||||||
<string name="update_video">動画をアップロード</string>
|
<string name="update_video">動画をアップロード</string>
|
||||||
|
<string name="remove_from_playlist">Remove from playlist</string>
|
||||||
<string name="date_seconds">%d 秒</string>
|
<string name="date_seconds">%d 秒</string>
|
||||||
<string name="date_minutes">%d 分</string>
|
<string name="date_minutes">%d 分</string>
|
||||||
<string name="date_hours">%d 時間</string>
|
<string name="date_hours">%d 時間</string>
|
||||||
@ -82,6 +91,33 @@
|
|||||||
<string name="delete_comment">Delete a comment</string>
|
<string name="delete_comment">Delete a comment</string>
|
||||||
<string name="delete_comment_confirm">Are you sure to delete this comment?</string>
|
<string name="delete_comment_confirm">Are you sure to delete this comment?</string>
|
||||||
<string name="set_video_mode">Mode for videos</string>
|
<string name="set_video_mode">Mode for videos</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-array name="sort_by_array">
|
||||||
|
<item>Best match</item>
|
||||||
|
<item>Most recent</item>
|
||||||
|
<item>Least recent</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="my_videos">My videos</string>
|
<string name="my_videos">My videos</string>
|
||||||
<string name="title">Title</string>
|
<string name="title">Title</string>
|
||||||
<string name="license">License</string>
|
<string name="license">License</string>
|
||||||
@ -107,7 +143,7 @@
|
|||||||
<string name="video_settings">Video settings</string>
|
<string name="video_settings">Video settings</string>
|
||||||
<string name="app_interface">Interface</string>
|
<string name="app_interface">Interface</string>
|
||||||
<string name="set_cache_mode">Cache</string>
|
<string name="set_cache_mode">Cache</string>
|
||||||
<string name="set_video_cache_description">Définir le cache pour les vidéos (défaut 100Mo)</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_video_quality_description">Define a default quality for videos</string>
|
||||||
<string name="set_quality_mode">Resolution for videos</string>
|
<string name="set_quality_mode">Resolution for videos</string>
|
||||||
<string name="video_cache_value">Video cache: %d Mb</string>
|
<string name="video_cache_value">Video cache: %d Mb</string>
|
||||||
@ -115,6 +151,8 @@
|
|||||||
<string name="pickup_captions">字幕を選択</string>
|
<string name="pickup_captions">字幕を選択</string>
|
||||||
<string name="none">なし</string>
|
<string name="none">なし</string>
|
||||||
<string name="set_video_mode_description">動画再生モードの変更を許可する(デフォルト、ストリーミングまたはブラウザ経由)。</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">動画を削除</string>
|
||||||
<string name="delete_video_confirmation">この動画を本当に削除しますか?</string>
|
<string name="delete_video_confirmation">この動画を本当に削除しますか?</string>
|
||||||
<string name="no_video_to_display">動画がありません!</string>
|
<string name="no_video_to_display">動画がありません!</string>
|
||||||
@ -128,6 +166,7 @@
|
|||||||
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b>が新しい動画を投稿しました: <b>%2$s</b>]]></string>
|
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b>が新しい動画を投稿しました: <b>%2$s</b>]]></string>
|
||||||
<string name="peertube_video_blacklist"><![CDATA[<b>%1$s</b>がブラックリストに追加されました]]></string>
|
<string name="peertube_video_blacklist"><![CDATA[<b>%1$s</b>がブラックリストに追加されました]]></string>
|
||||||
<string name="peertube_video_unblacklist"><![CDATA[<b>%1$s</b>がブラックリストから外されました]]></string>
|
<string name="peertube_video_unblacklist"><![CDATA[<b>%1$s</b>がブラックリストから外されました]]></string>
|
||||||
|
<string name="peertube_video_report_success"><![CDATA[ Your abuse <b>%1$s</b> has been accepted]]></string>
|
||||||
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
||||||
<string name="add_public_comment">パブリックコメントを追加</string>
|
<string name="add_public_comment">パブリックコメントを追加</string>
|
||||||
<string name="send_comment">コメントを送信</string>
|
<string name="send_comment">コメントを送信</string>
|
||||||
@ -161,9 +200,15 @@
|
|||||||
<string name="account">Account</string>
|
<string name="account">Account</string>
|
||||||
<string name="report_account">Report account</string>
|
<string name="report_account">Report account</string>
|
||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
|
<item>Normal</item>
|
||||||
<item>Webview</item>
|
<item>Webview</item>
|
||||||
<item>Direct stream</item>
|
<item>Direct stream</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
<string-array name="settings_theme">
|
||||||
|
<item>Light</item>
|
||||||
|
<item>Dark</item>
|
||||||
|
<item>Automatic</item>
|
||||||
|
</string-array>
|
||||||
<string-array name="settings_video_quality">
|
<string-array name="settings_video_quality">
|
||||||
<item>High</item>
|
<item>High</item>
|
||||||
<item>Medium</item>
|
<item>Medium</item>
|
||||||
@ -181,6 +226,7 @@
|
|||||||
<string name="bookmark_peertube_empty">There are no videos in your favourites!</string>
|
<string name="bookmark_peertube_empty">There are no videos in your favourites!</string>
|
||||||
<string name="delete_channel">Remove channel</string>
|
<string name="delete_channel">Remove channel</string>
|
||||||
<string name="action_channel_confirm_delete">Are you sure to permanently delete this channel?</string>
|
<string name="action_channel_confirm_delete">Are you sure to permanently delete this channel?</string>
|
||||||
|
<string name="modify_playlists">Video in playlists</string>
|
||||||
<string name="no_muted">No muted accounts!</string>
|
<string name="no_muted">No muted accounts!</string>
|
||||||
<string name="error_display_name_channel">You must define a name and a display name for this channel!</string>
|
<string name="error_display_name_channel">You must define a name and a display name for this channel!</string>
|
||||||
<string name="action_channel_create">Create a channel</string>
|
<string name="action_channel_create">Create a channel</string>
|
||||||
|
@ -1,5 +1,13 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
<string name="add_public_reply">Add a public reply</string>
|
||||||
|
<plurals name="number_of_replies">
|
||||||
|
<item quantity="other">%d replies</item>
|
||||||
|
</plurals>
|
||||||
|
<string name="reply">Reply</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_home">Home</string>
|
||||||
<string name="title_local">Local</string>
|
<string name="title_local">Local</string>
|
||||||
<string name="title_discover">Discover</string>
|
<string name="title_discover">Discover</string>
|
||||||
@ -34,6 +42,7 @@
|
|||||||
<string name="download">Download</string>
|
<string name="download">Download</string>
|
||||||
<string name="profile_picture">Profile picture</string>
|
<string name="profile_picture">Profile picture</string>
|
||||||
<string name="update_video">Update video</string>
|
<string name="update_video">Update video</string>
|
||||||
|
<string name="remove_from_playlist">Remove from playlist</string>
|
||||||
<string name="date_seconds">%d s</string>
|
<string name="date_seconds">%d s</string>
|
||||||
<string name="date_minutes">%d m</string>
|
<string name="date_minutes">%d m</string>
|
||||||
<string name="date_hours">%d h</string>
|
<string name="date_hours">%d h</string>
|
||||||
@ -82,6 +91,33 @@
|
|||||||
<string name="delete_comment">Delete a comment</string>
|
<string name="delete_comment">Delete a comment</string>
|
||||||
<string name="delete_comment_confirm">Are you sure to delete this comment?</string>
|
<string name="delete_comment_confirm">Are you sure to delete this comment?</string>
|
||||||
<string name="set_video_mode">Mode for videos</string>
|
<string name="set_video_mode">Mode for videos</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-array name="sort_by_array">
|
||||||
|
<item>Best match</item>
|
||||||
|
<item>Most recent</item>
|
||||||
|
<item>Least recent</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="my_videos">My videos</string>
|
<string name="my_videos">My videos</string>
|
||||||
<string name="title">Title</string>
|
<string name="title">Title</string>
|
||||||
<string name="license">License</string>
|
<string name="license">License</string>
|
||||||
@ -107,7 +143,7 @@
|
|||||||
<string name="video_settings">Video settings</string>
|
<string name="video_settings">Video settings</string>
|
||||||
<string name="app_interface">Interface</string>
|
<string name="app_interface">Interface</string>
|
||||||
<string name="set_cache_mode">Cache</string>
|
<string name="set_cache_mode">Cache</string>
|
||||||
<string name="set_video_cache_description">Définir le cache pour les vidéos (défaut 100Mo)</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_video_quality_description">Define a default quality for videos</string>
|
||||||
<string name="set_quality_mode">Resolution for videos</string>
|
<string name="set_quality_mode">Resolution for videos</string>
|
||||||
<string name="video_cache_value">Video cache: %d Mb</string>
|
<string name="video_cache_value">Video cache: %d Mb</string>
|
||||||
@ -115,6 +151,8 @@
|
|||||||
<string name="pickup_captions">Pick captions</string>
|
<string name="pickup_captions">Pick captions</string>
|
||||||
<string name="none">None</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="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">Delete video</string>
|
||||||
<string name="delete_video_confirmation">Are you sure to delete this 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>
|
<string name="no_video_to_display">No videos to display!</string>
|
||||||
@ -128,6 +166,7 @@
|
|||||||
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> published a new video: <b>%2$s</b>]]></string>
|
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> published a new video: <b>%2$s</b>]]></string>
|
||||||
<string name="peertube_video_blacklist"><![CDATA[Your video <b>%1$s</b> has been blacklisted]]></string>
|
<string name="peertube_video_blacklist"><![CDATA[Your video <b>%1$s</b> has been blacklisted]]></string>
|
||||||
<string name="peertube_video_unblacklist"><![CDATA[Your video <b>%1$s</b> has been unblacklisted]]></string>
|
<string name="peertube_video_unblacklist"><![CDATA[Your video <b>%1$s</b> has been unblacklisted]]></string>
|
||||||
|
<string name="peertube_video_report_success"><![CDATA[ Your abuse <b>%1$s</b> has been accepted]]></string>
|
||||||
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
||||||
<string name="add_public_comment">Add a public comment</string>
|
<string name="add_public_comment">Add a public comment</string>
|
||||||
<string name="send_comment">Send comment</string>
|
<string name="send_comment">Send comment</string>
|
||||||
@ -161,9 +200,15 @@
|
|||||||
<string name="account">Account</string>
|
<string name="account">Account</string>
|
||||||
<string name="report_account">Report account</string>
|
<string name="report_account">Report account</string>
|
||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
|
<item>Normal</item>
|
||||||
<item>Webview</item>
|
<item>Webview</item>
|
||||||
<item>Direct stream</item>
|
<item>Direct stream</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
<string-array name="settings_theme">
|
||||||
|
<item>Light</item>
|
||||||
|
<item>Dark</item>
|
||||||
|
<item>Automatic</item>
|
||||||
|
</string-array>
|
||||||
<string-array name="settings_video_quality">
|
<string-array name="settings_video_quality">
|
||||||
<item>High</item>
|
<item>High</item>
|
||||||
<item>Medium</item>
|
<item>Medium</item>
|
||||||
@ -181,6 +226,7 @@
|
|||||||
<string name="bookmark_peertube_empty">There are no videos in your favourites!</string>
|
<string name="bookmark_peertube_empty">There are no videos in your favourites!</string>
|
||||||
<string name="delete_channel">Remove channel</string>
|
<string name="delete_channel">Remove channel</string>
|
||||||
<string name="action_channel_confirm_delete">Are you sure to permanently delete this channel?</string>
|
<string name="action_channel_confirm_delete">Are you sure to permanently delete this channel?</string>
|
||||||
|
<string name="modify_playlists">Video in playlists</string>
|
||||||
<string name="no_muted">No muted accounts!</string>
|
<string name="no_muted">No muted accounts!</string>
|
||||||
<string name="error_display_name_channel">You must define a name and a display name for this channel!</string>
|
<string name="error_display_name_channel">You must define a name and a display name for this channel!</string>
|
||||||
<string name="action_channel_create">Create a channel</string>
|
<string name="action_channel_create">Create a channel</string>
|
||||||
|
@ -1,5 +1,14 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
<string name="add_public_reply">Add a public reply</string>
|
||||||
|
<plurals name="number_of_replies">
|
||||||
|
<item quantity="one">%d reply</item>
|
||||||
|
<item quantity="other">%d replies</item>
|
||||||
|
</plurals>
|
||||||
|
<string name="reply">Reply</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_home">Home</string>
|
||||||
<string name="title_local">Local</string>
|
<string name="title_local">Local</string>
|
||||||
<string name="title_discover">Ontdek</string>
|
<string name="title_discover">Ontdek</string>
|
||||||
@ -34,6 +43,7 @@
|
|||||||
<string name="download">Download</string>
|
<string name="download">Download</string>
|
||||||
<string name="profile_picture">Profiel foto</string>
|
<string name="profile_picture">Profiel foto</string>
|
||||||
<string name="update_video">Video bijwerken</string>
|
<string name="update_video">Video bijwerken</string>
|
||||||
|
<string name="remove_from_playlist">Remove from playlist</string>
|
||||||
<string name="date_seconds">%d s</string>
|
<string name="date_seconds">%d s</string>
|
||||||
<string name="date_minutes">%d m</string>
|
<string name="date_minutes">%d m</string>
|
||||||
<string name="date_hours">%d h</string>
|
<string name="date_hours">%d h</string>
|
||||||
@ -82,6 +92,33 @@
|
|||||||
<string name="delete_comment">Een opmerking verwijderen</string>
|
<string name="delete_comment">Een opmerking verwijderen</string>
|
||||||
<string name="delete_comment_confirm">Weet u zeker dat u deze opmerking wilt verwijderen?</string>
|
<string name="delete_comment_confirm">Weet u zeker dat u deze opmerking wilt verwijderen?</string>
|
||||||
<string name="set_video_mode">Modus voor video\'s</string>
|
<string name="set_video_mode">Modus voor video\'s</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-array name="sort_by_array">
|
||||||
|
<item>Best match</item>
|
||||||
|
<item>Most recent</item>
|
||||||
|
<item>Least recent</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="my_videos">Mijn video\'s</string>
|
<string name="my_videos">Mijn video\'s</string>
|
||||||
<string name="title">Titel</string>
|
<string name="title">Titel</string>
|
||||||
<string name="license">Licentie</string>
|
<string name="license">Licentie</string>
|
||||||
@ -107,7 +144,7 @@
|
|||||||
<string name="video_settings">Video settings</string>
|
<string name="video_settings">Video settings</string>
|
||||||
<string name="app_interface">Interface</string>
|
<string name="app_interface">Interface</string>
|
||||||
<string name="set_cache_mode">Cache</string>
|
<string name="set_cache_mode">Cache</string>
|
||||||
<string name="set_video_cache_description">Définir le cache pour les vidéos (défaut 100Mo)</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_video_quality_description">Define a default quality for videos</string>
|
||||||
<string name="set_quality_mode">Resolution for videos</string>
|
<string name="set_quality_mode">Resolution for videos</string>
|
||||||
<string name="video_cache_value">Video cache: %d Mb</string>
|
<string name="video_cache_value">Video cache: %d Mb</string>
|
||||||
@ -115,6 +152,8 @@
|
|||||||
<string name="pickup_captions">Pick captions</string>
|
<string name="pickup_captions">Pick captions</string>
|
||||||
<string name="none">Geen</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="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">Video verwijderen</string>
|
||||||
<string name="delete_video_confirmation">Weet u zeker dat u deze video wilt 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>
|
<string name="no_video_to_display">Geen video\'s te tonen!</string>
|
||||||
@ -128,6 +167,7 @@
|
|||||||
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> publiceerde een nieuwe video: <b>%2$s</b>]]></string>
|
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> publiceerde een nieuwe video: <b>%2$s</b>]]></string>
|
||||||
<string name="peertube_video_blacklist"><![CDATA[Uw video <b>%1$s</b> is op de zwarte lijst geplaatst]]></string>
|
<string name="peertube_video_blacklist"><![CDATA[Uw video <b>%1$s</b> is op de zwarte lijst geplaatst]]></string>
|
||||||
<string name="peertube_video_unblacklist"><![CDATA[Uw video <b>%1$s</b> is niet op de zwarte lijst gezet]]></string>
|
<string name="peertube_video_unblacklist"><![CDATA[Uw video <b>%1$s</b> is niet op de zwarte lijst gezet]]></string>
|
||||||
|
<string name="peertube_video_report_success"><![CDATA[ Your abuse <b>%1$s</b> has been accepted]]></string>
|
||||||
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
||||||
<string name="add_public_comment">Voeg een publieke opmerking toe</string>
|
<string name="add_public_comment">Voeg een publieke opmerking toe</string>
|
||||||
<string name="send_comment">Stuur commentaar</string>
|
<string name="send_comment">Stuur commentaar</string>
|
||||||
@ -163,6 +203,12 @@
|
|||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
<item>Webview</item>
|
<item>Webview</item>
|
||||||
<item>Directe stroom</item>
|
<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>
|
||||||
<string-array name="settings_video_quality">
|
<string-array name="settings_video_quality">
|
||||||
<item>High</item>
|
<item>High</item>
|
||||||
@ -181,6 +227,7 @@
|
|||||||
<string name="bookmark_peertube_empty">Er zijn geen video\'s in uw favorieten!</string>
|
<string name="bookmark_peertube_empty">Er zijn geen video\'s in uw favorieten!</string>
|
||||||
<string name="delete_channel">Verwijder kanaal</string>
|
<string name="delete_channel">Verwijder kanaal</string>
|
||||||
<string name="action_channel_confirm_delete">Weet u zeker dat u dit kanaal permanent zult verwijderen?</string>
|
<string name="action_channel_confirm_delete">Weet u zeker dat u dit kanaal permanent zult verwijderen?</string>
|
||||||
|
<string name="modify_playlists">Video in playlists</string>
|
||||||
<string name="no_muted">Geen gedempte rekeningen!</string>
|
<string name="no_muted">Geen gedempte rekeningen!</string>
|
||||||
<string name="error_display_name_channel">U moet een naam en een weergavenaam voor dit kanaal definiëren!</string>
|
<string name="error_display_name_channel">U moet een naam en een weergavenaam voor dit kanaal definiëren!</string>
|
||||||
<string name="action_channel_create">Creëer een kanaal</string>
|
<string name="action_channel_create">Creëer een kanaal</string>
|
||||||
|
@ -148,6 +148,7 @@
|
|||||||
<string name="account">Account</string>
|
<string name="account">Account</string>
|
||||||
<string name="report_account">Report account</string>
|
<string name="report_account">Report account</string>
|
||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
|
<item>Normal</item>
|
||||||
<item>Webview</item>
|
<item>Webview</item>
|
||||||
<item>Direct stream</item>
|
<item>Direct stream</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
@ -1,73 +1,85 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
<string name="title_home">Strona główna</string>
|
<string name="add_public_reply">Dodaj publiczną odpowiedź</string>
|
||||||
<string name="title_local">Local</string>
|
<plurals name="number_of_replies">
|
||||||
<string name="title_discover">Odkryj</string>
|
<item quantity="one">%d odpowiedź</item>
|
||||||
|
<item quantity="few">%d odpowiedzi</item>
|
||||||
|
<item quantity="many">%d odpowiedzi</item>
|
||||||
|
<item quantity="other">%d odpowiedzi</item>
|
||||||
|
</plurals>
|
||||||
|
<string name="reply">Odpowiedz</string>
|
||||||
|
<string name="set_theme">Motyw</string>
|
||||||
|
<string name="set_theme_description">Zezwól na zmianę motywu aplikacji</string>
|
||||||
|
<string name="federation_issue">The video cannot be federated!</string>
|
||||||
|
<string name="title_home">Początek</string>
|
||||||
|
<string name="title_local">Lokalne</string>
|
||||||
|
<string name="title_discover">Odkrywaj</string>
|
||||||
<string name="title_notifications">Powiadomienia</string>
|
<string name="title_notifications">Powiadomienia</string>
|
||||||
<string name="title_recently_added">Ostatnio dodany</string>
|
<string name="title_recently_added">Ostatnio dodane</string>
|
||||||
<string name="title_trending">Trendowość</string>
|
<string name="title_trending">Popularne</string>
|
||||||
<string name="title_most_liked">Najbardziej lubiany</string>
|
<string name="title_most_liked">Najbardziej lubiane</string>
|
||||||
<string name="toast_error">Oops! Wystąpił błąd!</string>
|
<string name="toast_error">Ups! Wystąpił błąd!</string>
|
||||||
<string name="title_muted">Wyciszony</string>
|
<string name="title_muted">Wyciszone</string>
|
||||||
<string name="title_channel">Kanały</string>
|
<string name="title_channel">Kanały</string>
|
||||||
<string name="do_not_list">Nie wymieniaj</string>
|
<string name="do_not_list">Nie wymieniaj</string>
|
||||||
<string name="blur">Rozmycie</string>
|
<string name="blur">Rozmycie</string>
|
||||||
<string name="display">Wyświetlacz</string>
|
<string name="display">Wyświetl</string>
|
||||||
<string name="no_opinion">Brak opinii</string>
|
<string name="no_opinion">Brak opinii</string>
|
||||||
<string name="instance_choice">Wybierz instancję</string>
|
<string name="instance_choice">Wybierz instancję</string>
|
||||||
<string name="not_valide_instance">Ten przypadek wydaje się być nieważny!</string>
|
<string name="not_valide_instance">Ta instancja nie wygląda na prawidłową!</string>
|
||||||
<string name="no_videos">Nie ma wideo!</string>
|
<string name="no_videos">Brak filmów!</string>
|
||||||
<string name="no_notifications">No notifications!</string>
|
<string name="no_notifications">Brak powiadomień!</string>
|
||||||
<string name="favicon">Favicon</string>
|
<string name="favicon">Favicon</string>
|
||||||
<string name="open_with">Otwarte z</string>
|
<string name="open_with">Otwórz przez</string>
|
||||||
<string name="action_playlist_edit">Edycja playlisty</string>
|
<string name="action_playlist_edit">Edytuj listę odtwarzania</string>
|
||||||
<string name="close">Zamknij</string>
|
<string name="close">Zamknij</string>
|
||||||
<string name="upload_video">Wczytaj</string>
|
<string name="upload_video">Prześlij</string>
|
||||||
<string name="image_preview">Podgląd obrazu</string>
|
<string name="image_preview">Podgląd obrazu</string>
|
||||||
<string name="file_to_upload">Wybierz plik do przesłania</string>
|
<string name="file_to_upload">Wybierz plik do przesłania</string>
|
||||||
<string name="channel">Kanał</string>
|
<string name="channel">Kanał</string>
|
||||||
<string name="videos">Filmy wideo</string>
|
<string name="videos">Filmy</string>
|
||||||
<string name="channels">Kanały</string>
|
<string name="channels">Kanały</string>
|
||||||
<string name="yes">Tak</string>
|
<string name="yes">Tak</string>
|
||||||
<string name="no">Nie</string>
|
<string name="no">Nie</string>
|
||||||
<string name="cancel">Anuluj</string>
|
<string name="cancel">Anuluj</string>
|
||||||
<string name="download">Pobierz</string>
|
<string name="download">Pobierz</string>
|
||||||
<string name="profile_picture">Zdjęcie profilowe</string>
|
<string name="profile_picture">Zdjęcie profilowe</string>
|
||||||
<string name="update_video">Aktualizacja wideo</string>
|
<string name="update_video">Aktualizuj film</string>
|
||||||
|
<string name="remove_from_playlist">Usuń z listy odtwarzania</string>
|
||||||
<string name="date_seconds">%d s</string>
|
<string name="date_seconds">%d s</string>
|
||||||
<string name="date_minutes">%d m</string>
|
<string name="date_minutes">%d min</string>
|
||||||
<string name="date_hours">%d h</string>
|
<string name="date_hours">%d h</string>
|
||||||
<string name="date_day">%d d</string>
|
<string name="date_day">%d dni</string>
|
||||||
<string name="number_view_video">%s widoki</string>
|
<string name="number_view_video">%s wyświetleń</string>
|
||||||
<string name="title_instance_login">Host instancji</string>
|
<string name="title_instance_login">Host instancji</string>
|
||||||
<string name="uploading">Przesyłanie, proszę czekać…</string>
|
<string name="uploading">Przesyłanie, proszę czekać…</string>
|
||||||
<string name="upload_video_success">Wideo zostało załadowane!</string>
|
<string name="upload_video_success">Film został przesłany!</string>
|
||||||
<string name="toast_cancelled">Przesyłanie anulowane!</string>
|
<string name="toast_cancelled">Przesyłanie anulowane!</string>
|
||||||
<string name="video_uploaded_action">Stuknij tutaj, aby edytować dane wideo.</string>
|
<string name="video_uploaded_action">Dotknij tutaj, aby edytować dane filmu.</string>
|
||||||
<string name="toot_select_image_error">Podczas wyboru nośnika wystąpił błąd!</string>
|
<string name="toot_select_image_error">Podczas wyboru nośnika wystąpił błąd!</string>
|
||||||
<string name="download_file">Pobierz %1$s</string>
|
<string name="download_file">Pobierz %1$s</string>
|
||||||
<string name="action_privacy">Prywatność</string>
|
<string name="action_privacy">Prywatność</string>
|
||||||
<string name="action_logout">Logout</string>
|
<string name="action_logout">Wyloguj</string>
|
||||||
<string name="login">Login</string>
|
<string name="login">Zaloguj</string>
|
||||||
<string name="password">Hasło</string>
|
<string name="password">Hasło</string>
|
||||||
<string name="email">Email</string>
|
<string name="email">E-mail</string>
|
||||||
<string name="tags">Tagi</string>
|
<string name="tags">Znaczniki</string>
|
||||||
<string name="validate">Walidacja</string>
|
<string name="validate">Potwierdź</string>
|
||||||
<string name="share_with">Dzielić się z</string>
|
<string name="share_with">Udostępnij dla</string>
|
||||||
<string name="shared_via">Współdzielone przez TubeLab</string>
|
<string name="shared_via">Udostępnione przez TubeLab</string>
|
||||||
<string name="username">Nazwa użytkownika</string>
|
<string name="username">Nazwa użytkownika</string>
|
||||||
<string name="settings">Ustawienia</string>
|
<string name="settings">Ustawienia</string>
|
||||||
<string name="logout_account_confirmation">Czy na pewno chcesz się wylogować @%1$s@%2$s?</string>
|
<string name="logout_account_confirmation">Czy na pewno chcesz wylogować @%1$s@%2$s?</string>
|
||||||
<string name="following">Obserwowane</string>
|
<string name="following">Obserwowane</string>
|
||||||
<string name="followers">Naśladowcy</string>
|
<string name="followers">Obserwujący</string>
|
||||||
<string name="client_error">Nie można dostać identyfikatora klienta!</string>
|
<string name="client_error">Błąd pobierania ID klienta!</string>
|
||||||
<string name="toast_error_loading_account">Podczas przełączania między kontami wystąpił błąd!</string>
|
<string name="toast_error_loading_account">Wystąpił błąd podczas przełączania konta!</string>
|
||||||
<string name="toast_error_search">Podczas wyszukiwania wystąpił błąd!</string>
|
<string name="toast_error_search">Podczas wyszukiwania wystąpił błąd!</string>
|
||||||
<string name="nothing_to_do">Nie można podjąć żadnych działań</string>
|
<string name="nothing_to_do">Nie można podjąć żadnych działań</string>
|
||||||
<string name="action_follow">Śledź</string>
|
<string name="action_follow">Obserwuj</string>
|
||||||
<string name="action_mute">Niemy</string>
|
<string name="action_mute">Wycisz</string>
|
||||||
<string name="search">Szukaj</string>
|
<string name="search">Szukaj</string>
|
||||||
<string name="delete">Skreślić</string>
|
<string name="delete">Usuń</string>
|
||||||
<string name="action_lists_confirm_delete">Czy na pewno chcesz na stałe usunąć tę listę?</string>
|
<string name="action_lists_confirm_delete">Czy na pewno chcesz na stałe usunąć tę listę?</string>
|
||||||
<string name="action_lists_delete">Usuń listę</string>
|
<string name="action_lists_delete">Usuń listę</string>
|
||||||
<string name="no_comments">Bądź pierwszym, który zostawi komentarz do tego filmu za pomocą prawego górnego przycisku!</string>
|
<string name="no_comments">Bądź pierwszym, który zostawi komentarz do tego filmu za pomocą prawego górnego przycisku!</string>
|
||||||
@ -82,59 +94,89 @@
|
|||||||
<string name="delete_comment">Usuń komentarz</string>
|
<string name="delete_comment">Usuń komentarz</string>
|
||||||
<string name="delete_comment_confirm">Czy na pewno usuniesz ten komentarz?</string>
|
<string name="delete_comment_confirm">Czy na pewno usuniesz ten komentarz?</string>
|
||||||
<string name="set_video_mode">Tryb dla filmów wideo</string>
|
<string name="set_video_mode">Tryb dla filmów wideo</string>
|
||||||
|
<string name="filter">Filtruj</string>
|
||||||
|
<string name="sepia_search">Wyszukiwanie Sepia</string>
|
||||||
|
<string name="sepia_element_nsfw">Wyświetlaj wrażliwe treści</string>
|
||||||
|
<string name="sepia_element_published_date">Data publikacji</string>
|
||||||
|
<string name="any">Każde</string>
|
||||||
|
<string name="today">Dzisiaj</string>
|
||||||
|
<string name="last_7_days">Ostatnie 7 dni</string>
|
||||||
|
<string name="last_30_days">Ostatnie 30 dni</string>
|
||||||
|
<string name="last_365_days">Ostatnie 365 dni</string>
|
||||||
|
<string name="sepia_element_duration">Czas trwania</string>
|
||||||
|
<string name="duration_short"><![CDATA[Krótkie (<4 min)]]></string>
|
||||||
|
<string name="duration_medium"><![CDATA[Medium (4–10 min)]]></string>
|
||||||
|
<string name="duration_long"><![CDATA[Długie (> 10 min)]]></string>
|
||||||
|
<string name="display_all_categories">Wyświetl wszystkie kategorie</string>
|
||||||
|
<string name="display_all_licenses">Wyświetl wszystkie licencje</string>
|
||||||
|
<string name="display_all_languages">Wyświetl wszystkie języki</string>
|
||||||
|
<string name="all_of_these_tags">Wszystkie z tych znaczników</string>
|
||||||
|
<string name="one_of_these_tags">Jeden z tych znaczników</string>
|
||||||
|
<string name="apply_filter">Zastosuj filtr</string>
|
||||||
|
<string-array name="sort_by_array">
|
||||||
|
<item>Najlepsze dopasowanie</item>
|
||||||
|
<item>Najnowsze</item>
|
||||||
|
<item>Najstarsze</item>
|
||||||
|
</string-array>
|
||||||
|
<string name="sort_by">Sortuj według</string>
|
||||||
|
<string name="sepia_search_hint">Słowo kluczowe, kanał, film itp.</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="my_videos">Moje filmy</string>
|
<string name="my_videos">Moje filmy</string>
|
||||||
<string name="title">Tytuł</string>
|
<string name="title">Tytuł</string>
|
||||||
<string name="license">Licencja</string>
|
<string name="license">Licencja</string>
|
||||||
<string name="category">Kategoria</string>
|
<string name="category">Kategoria</string>
|
||||||
<string name="language">Język</string>
|
<string name="language">Język</string>
|
||||||
<string name="peertube_nsfw">Ten film zawiera dojrzałą lub wyraźną treść</string>
|
<string name="peertube_nsfw">Ten film zawiera treść dla dorosłych lub zawierającą przemoc</string>
|
||||||
<string name="peertube_enable_comments">Włączanie komentarzy wideo</string>
|
<string name="peertube_enable_comments">Zezwól na komentarze</string>
|
||||||
<string name="description">Opis</string>
|
<string name="description">Opis</string>
|
||||||
<string name="toast_peertube_video_updated">Film został zaktualizowany!</string>
|
<string name="toast_peertube_video_updated">Film został zaktualizowany!</string>
|
||||||
<string name="register_account">Zarejestruj konto</string>
|
<string name="register_account">Załóż konto</string>
|
||||||
<string name="email_address">Adres e-mail</string>
|
<string name="email_address">Adres e-mail</string>
|
||||||
<string name="preview">Premiera</string>
|
<string name="preview">Podgląd</string>
|
||||||
<string name="change_preview">Zmiana podglądu</string>
|
<string name="change_preview">Zmień podgląd</string>
|
||||||
<string name="name">Nazwa</string>
|
<string name="name">Nazwa</string>
|
||||||
<string name="display_more">Wyświetlaj więcej</string>
|
<string name="display_more">Pokaż więcej</string>
|
||||||
<string name="no_channels">Żadnych kanałów!</string>
|
<string name="no_channels">Brak kanałów!</string>
|
||||||
<string name="report_helper">Kilka wyjaśnień na temat twojego raportu…</string>
|
<string name="report_helper">Kilka wyjaśnień na temat twojego raportu…</string>
|
||||||
<string name="report_video">Wideo sprawozdawcze</string>
|
<string name="report_video">Zgłoś film</string>
|
||||||
<string name="report">Raport</string>
|
<string name="report">Zgłoś</string>
|
||||||
<string name="change_instance">Wybierz inny przypadek</string>
|
<string name="change_instance">Wybierz inną instancję</string>
|
||||||
<string name="my_history">Historia</string>
|
<string name="my_history">Historia</string>
|
||||||
<string name="edit">Edycja</string>
|
<string name="edit">Edytuj</string>
|
||||||
<string name="video_settings">Video settings</string>
|
<string name="video_settings">Ustawienia filmu</string>
|
||||||
<string name="app_interface">Interface</string>
|
<string name="app_interface">Interfejs</string>
|
||||||
<string name="set_cache_mode">Cache</string>
|
<string name="set_cache_mode">Pamięć podręczna</string>
|
||||||
<string name="set_video_cache_description">Définir le cache pour les vidéos (défaut 100Mo)</string>
|
<string name="set_video_cache_description">Ustaw pamięć podręczną dla filmów (domyślnie 100Mb)</string>
|
||||||
<string name="set_video_quality_description">Define a default quality for videos</string>
|
<string name="set_video_quality_description">Ustaw domyślną jakość filmów</string>
|
||||||
<string name="set_quality_mode">Resolution for videos</string>
|
<string name="set_quality_mode">Rozdzielczość filmów</string>
|
||||||
<string name="video_cache_value">Video cache: %d Mb</string>
|
<string name="video_cache_value">Pamięć podręczna: %d Mb</string>
|
||||||
<string name="captions">Podpisy</string>
|
<string name="captions">Napisy</string>
|
||||||
<string name="pickup_captions">Wybierz podpisy</string>
|
<string name="pickup_captions">Wybierz napisy</string>
|
||||||
<string name="none">Brak</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="set_video_mode_description">Umożliwia zmianę trybu odtwarzania filmów (domyślnie, strumieniowo lub za pomocą przeglądarki).</string>
|
||||||
<string name="delete_video">Usuń video</string>
|
<string name="delete_account_comment">Usuń komentarze użytkownika</string>
|
||||||
<string name="delete_video_confirmation">Czy na pewno usuniesz ten film?</string>
|
<string name="delete_account_comment_confirm">Czy na pewno chcesz usunąć wszystkie komentarze tego użytkownika?</string>
|
||||||
|
<string name="delete_video">Usuń film</string>
|
||||||
|
<string name="delete_video_confirmation">Czy na pewno chcesz usunąć ten film?</string>
|
||||||
<string name="no_video_to_display">Brak filmów do wyświetlenia!</string>
|
<string name="no_video_to_display">Brak filmów do wyświetlenia!</string>
|
||||||
<string name="share">Podziel się</string>
|
<string name="share">Udostępnij</string>
|
||||||
<string name="peertube_comment_on_video"><![CDATA[<b>%1$s</b> skomentował twój film <b>%2$s</b>]]></string>
|
<string name="peertube_comment_on_video"><![CDATA[<b>%1$s</b> dodaje komentarz do Twojego filmu <b>%2$s</b>]]></string>
|
||||||
<string name="peertube_follow_channel"><![CDATA[<b>%1$s</b> podąża za twoim kanałem <b>%2$s</b>]]></string>
|
<string name="peertube_follow_channel"><![CDATA[<b>%1$s</b> obserwuje Twój kanał <b>%2$s</b>]]></string>
|
||||||
<string name="peertube_follow_account"><![CDATA[<b>%1$s</b> śledzi twoje konto]]></string>
|
<string name="peertube_follow_account"><![CDATA[<b>%1$s</b> obserwuje Twoje konto]]></string>
|
||||||
<string name="peertube_video_published"><![CDATA[Twój film <b>%1$s</b> został opublikowany]]></string>
|
<string name="peertube_video_published"><![CDATA[Twój film <b>%1$s</b> został opublikowany]]></string>
|
||||||
<string name="peertube_video_import_success"><![CDATA[Twój import wideo <b>%1$s</b> udał się]]></string>
|
<string name="peertube_video_import_success"><![CDATA[Twój import wideo <b>%1$s</b> udał się]]></string>
|
||||||
<string name="peertube_video_import_error"><![CDATA[Twój import wideo <b>%1$s</b> nie powiódł się]]></string>
|
<string name="peertube_video_import_error"><![CDATA[Twój import wideo <b>%1$s</b> nie powiódł się]]></string>
|
||||||
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> opublikował nowe wideo: <b>%2$s</b>]]></string>
|
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> publikuje nowy film: <b>%2$s</b>]]></string>
|
||||||
<string name="peertube_video_blacklist"><![CDATA[Twój film <b>%1$s</b> został umieszczony na czarnej liście]]></string>
|
<string name="peertube_video_blacklist"><![CDATA[Twój film <b>%1$s</b> został umieszczony na czarnej liście]]></string>
|
||||||
<string name="peertube_video_unblacklist"><![CDATA[Twój film <b>%1$s</b> został usunięty z czarnej listy]]></string>
|
<string name="peertube_video_unblacklist"><![CDATA[Twój film <b>%1$s</b> został usunięty z czarnej listy]]></string>
|
||||||
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
<string name="peertube_video_report_success"><![CDATA[ Your abuse <b>%1$s</b> has been accepted]]></string>
|
||||||
<string name="add_public_comment">Dodaj komentarz publiczny</string>
|
<string name="peertube_video_abuse"><![CDATA[Nowe zgłoszenie nadużycia dla filmu: <b>%1$s</b>]]></string>
|
||||||
<string name="send_comment">Wyślij komentarz</string>
|
<string name="add_public_comment">Dodaj publiczny komentarz</string>
|
||||||
|
<string name="send_comment">Prześlij komentarz</string>
|
||||||
<string name="all">Wszystkie</string>
|
<string name="all">Wszystkie</string>
|
||||||
<!-- end languages -->
|
<!-- end languages -->
|
||||||
<string name="playlists">Playlisty</string>
|
<string name="playlists">Listy odtwarzania</string>
|
||||||
<string name="display_name">Nazwa wyświetlacza</string>
|
<string name="display_name">Wyświetlana nazwa</string>
|
||||||
<string name="action_playlist_add">Nie masz żadnej playlisty. Stuknij ikonę \"+\", aby dodać nową listę odtwarzania</string>
|
<string name="action_playlist_add">Nie masz żadnej playlisty. Stuknij ikonę \"+\", aby dodać nową listę odtwarzania</string>
|
||||||
<string name="error_display_name">Musisz podać nazwę wyświetlacza!</string>
|
<string name="error_display_name">Musisz podać nazwę wyświetlacza!</string>
|
||||||
<string name="error_channel_mandatory">Kanał jest wymagany, gdy lista odtwarzania jest publiczna.</string>
|
<string name="error_channel_mandatory">Kanał jest wymagany, gdy lista odtwarzania jest publiczna.</string>
|
||||||
@ -159,18 +201,24 @@
|
|||||||
<b>Ważny</b>Jeśli Twoja instancja wymaga weryfikacji, otrzymasz e-mail, gdy zostanie potwierdzony!
|
<b>Ważny</b>Jeśli Twoja instancja wymaga weryfikacji, otrzymasz e-mail, gdy zostanie potwierdzony!
|
||||||
</string>
|
</string>
|
||||||
<string name="account">Konto</string>
|
<string name="account">Konto</string>
|
||||||
<string name="report_account">Rachunek sprawozdawczy</string>
|
<string name="report_account">Zgłoś konto</string>
|
||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
<item>Webview</item>
|
<item>Webview</item>
|
||||||
<item>Strumień bezpośredni</item>
|
<item>Webview</item>
|
||||||
|
<item>Bezpośrednio</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="settings_theme">
|
||||||
|
<item>Jasny</item>
|
||||||
|
<item>Ciemny</item>
|
||||||
|
<item>Automatyczny</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string-array name="settings_video_quality">
|
<string-array name="settings_video_quality">
|
||||||
<item>High</item>
|
<item>Wysoka</item>
|
||||||
<item>Medium</item>
|
<item>Średnia</item>
|
||||||
<item>Low</item>
|
<item>Niska</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string name="unfollow_confirm">Chcesz rozwinąć to konto?</string>
|
<string name="unfollow_confirm">Czy chcesz przestać obserwować to konto?</string>
|
||||||
<string name="title_video_peertube">Tytuł filmu wideo</string>
|
<string name="title_video_peertube">Tytuł filmu</string>
|
||||||
<string name="join_peertube">Dołącz do Peertube</string>
|
<string name="join_peertube">Dołącz do Peertube</string>
|
||||||
<string name="agreement_check_peertube">Mam co najmniej 16 lat i zgadzam się na %1$s w tym przypadku</string>
|
<string name="agreement_check_peertube">Mam co najmniej 16 lat i zgadzam się na %1$s w tym przypadku</string>
|
||||||
<string name="edit_profile">Profil edycyjny</string>
|
<string name="edit_profile">Profil edycyjny</string>
|
||||||
@ -181,6 +229,7 @@
|
|||||||
<string name="bookmark_peertube_empty">Nie ma żadnych filmów w twoich ulubionych!</string>
|
<string name="bookmark_peertube_empty">Nie ma żadnych filmów w twoich ulubionych!</string>
|
||||||
<string name="delete_channel">Usuń kanał</string>
|
<string name="delete_channel">Usuń kanał</string>
|
||||||
<string name="action_channel_confirm_delete">Czy na pewno na stałe usuniesz ten kanał?</string>
|
<string name="action_channel_confirm_delete">Czy na pewno na stałe usuniesz ten kanał?</string>
|
||||||
|
<string name="modify_playlists">Filmy w liście odtwarzania</string>
|
||||||
<string name="no_muted">Nie ma wyciszonych kont!</string>
|
<string name="no_muted">Nie ma wyciszonych kont!</string>
|
||||||
<string name="error_display_name_channel">Musisz zdefiniować nazwę i nazwę wyświetlania dla tego kanału!</string>
|
<string name="error_display_name_channel">Musisz zdefiniować nazwę i nazwę wyświetlania dla tego kanału!</string>
|
||||||
<string name="action_channel_create">Stwórz kanał</string>
|
<string name="action_channel_create">Stwórz kanał</string>
|
||||||
@ -189,7 +238,7 @@
|
|||||||
<string name="report_comment_size">Proszę podać przyczyny</string>
|
<string name="report_comment_size">Proszę podać przyczyny</string>
|
||||||
<string name="not_logged_in">Musisz być uwierzytelniony, aby przystąpić do tej akcji!</string>
|
<string name="not_logged_in">Musisz być uwierzytelniony, aby przystąpić do tej akcji!</string>
|
||||||
<string name="successful_report">Rachunek został zgłoszony!</string>
|
<string name="successful_report">Rachunek został zgłoszony!</string>
|
||||||
<string name="successful_report_comment">The comment has been reported!</string>
|
<string name="successful_report_comment">Komentarz został zgłoszony!</string>
|
||||||
<string name="successful_video_report">Film został zgłoszony!</string>
|
<string name="successful_video_report">Film został zgłoszony!</string>
|
||||||
<string name="password_length_error">Hasło musi zawierać co najmniej 6 znaków!</string>
|
<string name="password_length_error">Hasło musi zawierać co najmniej 6 znaków!</string>
|
||||||
<string name="muted_done">Rachunek został wyciszony!</string>
|
<string name="muted_done">Rachunek został wyciszony!</string>
|
||||||
|
@ -1,5 +1,14 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
<string name="add_public_reply">Add a public reply</string>
|
||||||
|
<plurals name="number_of_replies">
|
||||||
|
<item quantity="one">%d reply</item>
|
||||||
|
<item quantity="other">%d replies</item>
|
||||||
|
</plurals>
|
||||||
|
<string name="reply">Reply</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_home">Home</string>
|
||||||
<string name="title_local">Local</string>
|
<string name="title_local">Local</string>
|
||||||
<string name="title_discover">Discover</string>
|
<string name="title_discover">Discover</string>
|
||||||
@ -34,6 +43,7 @@
|
|||||||
<string name="download">Download</string>
|
<string name="download">Download</string>
|
||||||
<string name="profile_picture">Profile picture</string>
|
<string name="profile_picture">Profile picture</string>
|
||||||
<string name="update_video">Update video</string>
|
<string name="update_video">Update video</string>
|
||||||
|
<string name="remove_from_playlist">Remove from playlist</string>
|
||||||
<string name="date_seconds">%d s</string>
|
<string name="date_seconds">%d s</string>
|
||||||
<string name="date_minutes">%d m</string>
|
<string name="date_minutes">%d m</string>
|
||||||
<string name="date_hours">%d h</string>
|
<string name="date_hours">%d h</string>
|
||||||
@ -82,6 +92,33 @@
|
|||||||
<string name="delete_comment">Delete a comment</string>
|
<string name="delete_comment">Delete a comment</string>
|
||||||
<string name="delete_comment_confirm">Are you sure to delete this comment?</string>
|
<string name="delete_comment_confirm">Are you sure to delete this comment?</string>
|
||||||
<string name="set_video_mode">Mode for videos</string>
|
<string name="set_video_mode">Mode for videos</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-array name="sort_by_array">
|
||||||
|
<item>Best match</item>
|
||||||
|
<item>Most recent</item>
|
||||||
|
<item>Least recent</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="my_videos">My videos</string>
|
<string name="my_videos">My videos</string>
|
||||||
<string name="title">Title</string>
|
<string name="title">Title</string>
|
||||||
<string name="license">License</string>
|
<string name="license">License</string>
|
||||||
@ -107,7 +144,7 @@
|
|||||||
<string name="video_settings">Video settings</string>
|
<string name="video_settings">Video settings</string>
|
||||||
<string name="app_interface">Interface</string>
|
<string name="app_interface">Interface</string>
|
||||||
<string name="set_cache_mode">Cache</string>
|
<string name="set_cache_mode">Cache</string>
|
||||||
<string name="set_video_cache_description">Définir le cache pour les vidéos (défaut 100Mo)</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_video_quality_description">Define a default quality for videos</string>
|
||||||
<string name="set_quality_mode">Resolution for videos</string>
|
<string name="set_quality_mode">Resolution for videos</string>
|
||||||
<string name="video_cache_value">Video cache: %d Mb</string>
|
<string name="video_cache_value">Video cache: %d Mb</string>
|
||||||
@ -115,6 +152,8 @@
|
|||||||
<string name="pickup_captions">Pick captions</string>
|
<string name="pickup_captions">Pick captions</string>
|
||||||
<string name="none">None</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="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">Delete video</string>
|
||||||
<string name="delete_video_confirmation">Are you sure to delete this 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>
|
<string name="no_video_to_display">No videos to display!</string>
|
||||||
@ -128,6 +167,7 @@
|
|||||||
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> published a new video: <b>%2$s</b>]]></string>
|
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> published a new video: <b>%2$s</b>]]></string>
|
||||||
<string name="peertube_video_blacklist"><![CDATA[Your video <b>%1$s</b> has been blacklisted]]></string>
|
<string name="peertube_video_blacklist"><![CDATA[Your video <b>%1$s</b> has been blacklisted]]></string>
|
||||||
<string name="peertube_video_unblacklist"><![CDATA[Your video <b>%1$s</b> has been unblacklisted]]></string>
|
<string name="peertube_video_unblacklist"><![CDATA[Your video <b>%1$s</b> has been unblacklisted]]></string>
|
||||||
|
<string name="peertube_video_report_success"><![CDATA[ Your abuse <b>%1$s</b> has been accepted]]></string>
|
||||||
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
||||||
<string name="add_public_comment">Add a public comment</string>
|
<string name="add_public_comment">Add a public comment</string>
|
||||||
<string name="send_comment">Send comment</string>
|
<string name="send_comment">Send comment</string>
|
||||||
@ -161,9 +201,15 @@
|
|||||||
<string name="account">Account</string>
|
<string name="account">Account</string>
|
||||||
<string name="report_account">Report account</string>
|
<string name="report_account">Report account</string>
|
||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
|
<item>Normal</item>
|
||||||
<item>Webview</item>
|
<item>Webview</item>
|
||||||
<item>Direct stream</item>
|
<item>Direct stream</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
<string-array name="settings_theme">
|
||||||
|
<item>Light</item>
|
||||||
|
<item>Dark</item>
|
||||||
|
<item>Automatic</item>
|
||||||
|
</string-array>
|
||||||
<string-array name="settings_video_quality">
|
<string-array name="settings_video_quality">
|
||||||
<item>High</item>
|
<item>High</item>
|
||||||
<item>Medium</item>
|
<item>Medium</item>
|
||||||
@ -181,6 +227,7 @@
|
|||||||
<string name="bookmark_peertube_empty">There are no videos in your favourites!</string>
|
<string name="bookmark_peertube_empty">There are no videos in your favourites!</string>
|
||||||
<string name="delete_channel">Remove channel</string>
|
<string name="delete_channel">Remove channel</string>
|
||||||
<string name="action_channel_confirm_delete">Are you sure to permanently delete this channel?</string>
|
<string name="action_channel_confirm_delete">Are you sure to permanently delete this channel?</string>
|
||||||
|
<string name="modify_playlists">Video in playlists</string>
|
||||||
<string name="no_muted">No muted accounts!</string>
|
<string name="no_muted">No muted accounts!</string>
|
||||||
<string name="error_display_name_channel">You must define a name and a display name for this channel!</string>
|
<string name="error_display_name_channel">You must define a name and a display name for this channel!</string>
|
||||||
<string name="action_channel_create">Create a channel</string>
|
<string name="action_channel_create">Create a channel</string>
|
||||||
|
@ -1,5 +1,15 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
<string name="add_public_reply">Add a public reply</string>
|
||||||
|
<plurals name="number_of_replies">
|
||||||
|
<item quantity="one">%d reply</item>
|
||||||
|
<item quantity="few">%d replies</item>
|
||||||
|
<item quantity="other">%d replies</item>
|
||||||
|
</plurals>
|
||||||
|
<string name="reply">Reply</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_home">Home</string>
|
||||||
<string name="title_local">Local</string>
|
<string name="title_local">Local</string>
|
||||||
<string name="title_discover">Discover</string>
|
<string name="title_discover">Discover</string>
|
||||||
@ -34,6 +44,7 @@
|
|||||||
<string name="download">Download</string>
|
<string name="download">Download</string>
|
||||||
<string name="profile_picture">Profile picture</string>
|
<string name="profile_picture">Profile picture</string>
|
||||||
<string name="update_video">Update video</string>
|
<string name="update_video">Update video</string>
|
||||||
|
<string name="remove_from_playlist">Remove from playlist</string>
|
||||||
<string name="date_seconds">%d s</string>
|
<string name="date_seconds">%d s</string>
|
||||||
<string name="date_minutes">%d m</string>
|
<string name="date_minutes">%d m</string>
|
||||||
<string name="date_hours">%d h</string>
|
<string name="date_hours">%d h</string>
|
||||||
@ -82,6 +93,33 @@
|
|||||||
<string name="delete_comment">Delete a comment</string>
|
<string name="delete_comment">Delete a comment</string>
|
||||||
<string name="delete_comment_confirm">Are you sure to delete this comment?</string>
|
<string name="delete_comment_confirm">Are you sure to delete this comment?</string>
|
||||||
<string name="set_video_mode">Mode for videos</string>
|
<string name="set_video_mode">Mode for videos</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-array name="sort_by_array">
|
||||||
|
<item>Best match</item>
|
||||||
|
<item>Most recent</item>
|
||||||
|
<item>Least recent</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="my_videos">My videos</string>
|
<string name="my_videos">My videos</string>
|
||||||
<string name="title">Title</string>
|
<string name="title">Title</string>
|
||||||
<string name="license">License</string>
|
<string name="license">License</string>
|
||||||
@ -107,7 +145,7 @@
|
|||||||
<string name="video_settings">Video settings</string>
|
<string name="video_settings">Video settings</string>
|
||||||
<string name="app_interface">Interface</string>
|
<string name="app_interface">Interface</string>
|
||||||
<string name="set_cache_mode">Cache</string>
|
<string name="set_cache_mode">Cache</string>
|
||||||
<string name="set_video_cache_description">Définir le cache pour les vidéos (défaut 100Mo)</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_video_quality_description">Define a default quality for videos</string>
|
||||||
<string name="set_quality_mode">Resolution for videos</string>
|
<string name="set_quality_mode">Resolution for videos</string>
|
||||||
<string name="video_cache_value">Video cache: %d Mb</string>
|
<string name="video_cache_value">Video cache: %d Mb</string>
|
||||||
@ -115,6 +153,8 @@
|
|||||||
<string name="pickup_captions">Pick captions</string>
|
<string name="pickup_captions">Pick captions</string>
|
||||||
<string name="none">None</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="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">Delete video</string>
|
||||||
<string name="delete_video_confirmation">Are you sure to delete this 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>
|
<string name="no_video_to_display">No videos to display!</string>
|
||||||
@ -128,6 +168,7 @@
|
|||||||
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> published a new video: <b>%2$s</b>]]></string>
|
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> published a new video: <b>%2$s</b>]]></string>
|
||||||
<string name="peertube_video_blacklist"><![CDATA[Your video <b>%1$s</b> has been blacklisted]]></string>
|
<string name="peertube_video_blacklist"><![CDATA[Your video <b>%1$s</b> has been blacklisted]]></string>
|
||||||
<string name="peertube_video_unblacklist"><![CDATA[Your video <b>%1$s</b> has been unblacklisted]]></string>
|
<string name="peertube_video_unblacklist"><![CDATA[Your video <b>%1$s</b> has been unblacklisted]]></string>
|
||||||
|
<string name="peertube_video_report_success"><![CDATA[ Your abuse <b>%1$s</b> has been accepted]]></string>
|
||||||
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
||||||
<string name="add_public_comment">Add a public comment</string>
|
<string name="add_public_comment">Add a public comment</string>
|
||||||
<string name="send_comment">Send comment</string>
|
<string name="send_comment">Send comment</string>
|
||||||
@ -161,9 +202,15 @@
|
|||||||
<string name="account">Account</string>
|
<string name="account">Account</string>
|
||||||
<string name="report_account">Report account</string>
|
<string name="report_account">Report account</string>
|
||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
|
<item>Normal</item>
|
||||||
<item>Webview</item>
|
<item>Webview</item>
|
||||||
<item>Direct stream</item>
|
<item>Direct stream</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
<string-array name="settings_theme">
|
||||||
|
<item>Light</item>
|
||||||
|
<item>Dark</item>
|
||||||
|
<item>Automatic</item>
|
||||||
|
</string-array>
|
||||||
<string-array name="settings_video_quality">
|
<string-array name="settings_video_quality">
|
||||||
<item>High</item>
|
<item>High</item>
|
||||||
<item>Medium</item>
|
<item>Medium</item>
|
||||||
@ -181,6 +228,7 @@
|
|||||||
<string name="bookmark_peertube_empty">There are no videos in your favourites!</string>
|
<string name="bookmark_peertube_empty">There are no videos in your favourites!</string>
|
||||||
<string name="delete_channel">Remove channel</string>
|
<string name="delete_channel">Remove channel</string>
|
||||||
<string name="action_channel_confirm_delete">Are you sure to permanently delete this channel?</string>
|
<string name="action_channel_confirm_delete">Are you sure to permanently delete this channel?</string>
|
||||||
|
<string name="modify_playlists">Video in playlists</string>
|
||||||
<string name="no_muted">No muted accounts!</string>
|
<string name="no_muted">No muted accounts!</string>
|
||||||
<string name="error_display_name_channel">You must define a name and a display name for this channel!</string>
|
<string name="error_display_name_channel">You must define a name and a display name for this channel!</string>
|
||||||
<string name="action_channel_create">Create a channel</string>
|
<string name="action_channel_create">Create a channel</string>
|
||||||
|
@ -1,16 +1,27 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
<string name="title_home">Главная страница</string>
|
<string name="add_public_reply">Add a public reply</string>
|
||||||
<string name="title_local">Local</string>
|
<plurals name="number_of_replies">
|
||||||
|
<item quantity="one">%d reply</item>
|
||||||
|
<item quantity="few">%d replies</item>
|
||||||
|
<item quantity="many">%d replies</item>
|
||||||
|
<item quantity="other">%d replies</item>
|
||||||
|
</plurals>
|
||||||
|
<string name="reply">Reply</string>
|
||||||
|
<string name="set_theme">Тема</string>
|
||||||
|
<string name="set_theme_description">Позволяет менять тему приложения</string>
|
||||||
|
<string name="federation_issue">Видео не может быть объединено!</string>
|
||||||
|
<string name="title_home">Главная</string>
|
||||||
|
<string name="title_local">Локальные</string>
|
||||||
<string name="title_discover">Подборка</string>
|
<string name="title_discover">Подборка</string>
|
||||||
<string name="title_notifications">Уведомления</string>
|
<string name="title_notifications">Уведомления</string>
|
||||||
<string name="title_recently_added">Недавно добавленные</string>
|
<string name="title_recently_added">Свежие</string>
|
||||||
<string name="title_trending">Популярные</string>
|
<string name="title_trending">Актуальное</string>
|
||||||
<string name="title_most_liked">Много лайков</string>
|
<string name="title_most_liked">Популярные</string>
|
||||||
<string name="toast_error">Упс! Произошла ошибка!</string>
|
<string name="toast_error">Упс! Произошла ошибка!</string>
|
||||||
<string name="title_muted">Беззвучный</string>
|
<string name="title_muted">Беззвучный</string>
|
||||||
<string name="title_channel">Каналы</string>
|
<string name="title_channel">Каналы</string>
|
||||||
<string name="do_not_list">Не показывать</string>
|
<string name="do_not_list">Скрыто</string>
|
||||||
<string name="blur">Размыть</string>
|
<string name="blur">Размыть</string>
|
||||||
<string name="display">Показать</string>
|
<string name="display">Показать</string>
|
||||||
<string name="no_opinion">Не выбрано</string>
|
<string name="no_opinion">Не выбрано</string>
|
||||||
@ -23,7 +34,7 @@
|
|||||||
<string name="action_playlist_edit">Редактировать плейлист</string>
|
<string name="action_playlist_edit">Редактировать плейлист</string>
|
||||||
<string name="close">Закрыть</string>
|
<string name="close">Закрыть</string>
|
||||||
<string name="upload_video">Загрузить</string>
|
<string name="upload_video">Загрузить</string>
|
||||||
<string name="image_preview">Предпросмотр</string>
|
<string name="image_preview">Предпросмотр изображения</string>
|
||||||
<string name="file_to_upload">Выберите файл для загрузки</string>
|
<string name="file_to_upload">Выберите файл для загрузки</string>
|
||||||
<string name="channel">Канал</string>
|
<string name="channel">Канал</string>
|
||||||
<string name="videos">Видео</string>
|
<string name="videos">Видео</string>
|
||||||
@ -34,11 +45,12 @@
|
|||||||
<string name="download">Скачать</string>
|
<string name="download">Скачать</string>
|
||||||
<string name="profile_picture">Изображение профиля</string>
|
<string name="profile_picture">Изображение профиля</string>
|
||||||
<string name="update_video">Обновить видео</string>
|
<string name="update_video">Обновить видео</string>
|
||||||
<string name="date_seconds">%d с</string>
|
<string name="remove_from_playlist">Удалить из плейлиста</string>
|
||||||
<string name="date_minutes">%d м</string>
|
<string name="date_seconds">%d сек.</string>
|
||||||
<string name="date_hours">%d ч</string>
|
<string name="date_minutes">%d мин.</string>
|
||||||
<string name="date_day">%d д</string>
|
<string name="date_hours">%d час.</string>
|
||||||
<string name="number_view_video">%s просмотров</string>
|
<string name="date_day">%d д.</string>
|
||||||
|
<string name="number_view_video">Просмотры: %s</string>
|
||||||
<string name="title_instance_login">Хост экземпляра</string>
|
<string name="title_instance_login">Хост экземпляра</string>
|
||||||
<string name="uploading">Загрузка, пожалуйста, подождите…</string>
|
<string name="uploading">Загрузка, пожалуйста, подождите…</string>
|
||||||
<string name="upload_video_success">Видео было загружено!</string>
|
<string name="upload_video_success">Видео было загружено!</string>
|
||||||
@ -82,6 +94,33 @@
|
|||||||
<string name="delete_comment">Удалить комментарий</string>
|
<string name="delete_comment">Удалить комментарий</string>
|
||||||
<string name="delete_comment_confirm">Вы уверены, что хотите удалить этот комментарий?</string>
|
<string name="delete_comment_confirm">Вы уверены, что хотите удалить этот комментарий?</string>
|
||||||
<string name="set_video_mode">Режим для видео</string>
|
<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_published_date">Дата публикации</string>
|
||||||
|
<string name="any">Любые</string>
|
||||||
|
<string name="today">Сегодня</string>
|
||||||
|
<string name="last_7_days">Последние 7 дней</string>
|
||||||
|
<string name="last_30_days">Последние 30 дней</string>
|
||||||
|
<string name="last_365_days">Последние 365 дней</string>
|
||||||
|
<string name="sepia_element_duration">Длительность</string>
|
||||||
|
<string name="duration_short"><![CDATA[Короткие (<4 мин)]]></string>
|
||||||
|
<string name="duration_medium"><![CDATA[Средние (4–10 мин)]]></string>
|
||||||
|
<string name="duration_long"><![CDATA[Длинные (> 10 мин)]]></string>
|
||||||
|
<string name="display_all_categories">Показать все категории</string>
|
||||||
|
<string name="display_all_licenses">Показать все лицензии</string>
|
||||||
|
<string name="display_all_languages">Показать все языки</string>
|
||||||
|
<string name="all_of_these_tags">Все с этими тегами</string>
|
||||||
|
<string name="one_of_these_tags">Один из этих тегов</string>
|
||||||
|
<string name="apply_filter">Применить фильтр</string>
|
||||||
|
<string-array name="sort_by_array">
|
||||||
|
<item>Лучшее совпадение</item>
|
||||||
|
<item>Последние</item>
|
||||||
|
<item>Ранние</item>
|
||||||
|
</string-array>
|
||||||
|
<string name="sort_by">Сортировать по</string>
|
||||||
|
<string name="sepia_search_hint">Ключевое слово, канал, видео и т. д.</string>
|
||||||
|
<string name="sepia_indication">Sepia Search отображает видео и каналы, которые соответствуют вашему поиску, но не являются ни издателем, ни владельцем. Если вы заметили какие-либо проблемы с видео, сообщите об этом администраторам на сайте PeerTube, где это видео опубликовано.</string>
|
||||||
<string name="my_videos">Мои видео</string>
|
<string name="my_videos">Мои видео</string>
|
||||||
<string name="title">Название</string>
|
<string name="title">Название</string>
|
||||||
<string name="license">Лицензия</string>
|
<string name="license">Лицензия</string>
|
||||||
@ -104,17 +143,19 @@
|
|||||||
<string name="change_instance">Выберите другой экземпляр</string>
|
<string name="change_instance">Выберите другой экземпляр</string>
|
||||||
<string name="my_history">История</string>
|
<string name="my_history">История</string>
|
||||||
<string name="edit">Редактировать</string>
|
<string name="edit">Редактировать</string>
|
||||||
<string name="video_settings">Video settings</string>
|
<string name="video_settings">Настройки видео</string>
|
||||||
<string name="app_interface">Interface</string>
|
<string name="app_interface">Интерфейс</string>
|
||||||
<string name="set_cache_mode">Cache</string>
|
<string name="set_cache_mode">Кэш</string>
|
||||||
<string name="set_video_cache_description">Définir le cache pour les vidéos (défaut 100Mo)</string>
|
<string name="set_video_cache_description">Определите кэш для видео (по умолчанию 100 Мб)</string>
|
||||||
<string name="set_video_quality_description">Определить качество видео по умолчанию</string>
|
<string name="set_video_quality_description">Определить качество видео по умолчанию</string>
|
||||||
<string name="set_quality_mode">Разрешение для видео</string>
|
<string name="set_quality_mode">Разрешение для видео</string>
|
||||||
<string name="video_cache_value">Video cache: %d Mb</string>
|
<string name="video_cache_value">Видео кэш: %d Мб</string>
|
||||||
<string name="captions">Субтитры</string>
|
<string name="captions">Субтитры</string>
|
||||||
<string name="pickup_captions">Выбрать субтитры</string>
|
<string name="pickup_captions">Выбрать субтитры</string>
|
||||||
<string name="none">Ничто</string>
|
<string name="none">Ничто</string>
|
||||||
<string name="set_video_mode_description">Позволяет изменить режим воспроизведения видео (по умолчанию, потоковой или через браузер).</string>
|
<string name="set_video_mode_description">Позволяет изменить режим воспроизведения видео (по умолчанию, потоковый или через браузер).</string>
|
||||||
|
<string name="delete_account_comment">Удалить комментарии аккаунта</string>
|
||||||
|
<string name="delete_account_comment_confirm">Вы действительно хотите удалить все комментарии этого аккаунта?</string>
|
||||||
<string name="delete_video">Удалить видео</string>
|
<string name="delete_video">Удалить видео</string>
|
||||||
<string name="delete_video_confirmation">Вы уверены, что хотите удалить это видео?</string>
|
<string name="delete_video_confirmation">Вы уверены, что хотите удалить это видео?</string>
|
||||||
<string name="no_video_to_display">Нет видео для отображения!</string>
|
<string name="no_video_to_display">Нет видео для отображения!</string>
|
||||||
@ -126,8 +167,9 @@
|
|||||||
<string name="peertube_video_import_success"><![CDATA[Ваше видео <b>%1$s</b> успешно импортировано]]></string>
|
<string name="peertube_video_import_success"><![CDATA[Ваше видео <b>%1$s</b> успешно импортировано]]></string>
|
||||||
<string name="peertube_video_import_error"><![CDATA[При импорте вашего видео <b>%1$s</b> произошла ошибка]]></string>
|
<string name="peertube_video_import_error"><![CDATA[При импорте вашего видео <b>%1$s</b> произошла ошибка]]></string>
|
||||||
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> опубликовал новое видео: <b>%2$s</b>]]></string>
|
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> опубликовал новое видео: <b>%2$s</b>]]></string>
|
||||||
<string name="peertube_video_blacklist"><![CDATA[Ваше видео <b>%1$s</b> занесено в черный список]]></string>
|
<string name="peertube_video_blacklist"><![CDATA[Ваше видео <b>%1$s</b> занесено в чёрный список]]></string>
|
||||||
<string name="peertube_video_unblacklist"><![CDATA[Ваше видео <b>%1$s</b> удалено из черного списка]]></string>
|
<string name="peertube_video_unblacklist"><![CDATA[Ваше видео <b>%1$s</b> удалено из чёрного списка]]></string>
|
||||||
|
<string name="peertube_video_report_success"><![CDATA[ Your abuse <b>%1$s</b> has been accepted]]></string>
|
||||||
<string name="peertube_video_abuse"><![CDATA[Новый отчёт о нарушении для видео: <b>%1$s</b>]]></string>
|
<string name="peertube_video_abuse"><![CDATA[Новый отчёт о нарушении для видео: <b>%1$s</b>]]></string>
|
||||||
<string name="add_public_comment">Добавить публичный комментарий</string>
|
<string name="add_public_comment">Добавить публичный комментарий</string>
|
||||||
<string name="send_comment">Оставить комментарий</string>
|
<string name="send_comment">Оставить комментарий</string>
|
||||||
@ -161,9 +203,15 @@
|
|||||||
<string name="account">Аккаунт</string>
|
<string name="account">Аккаунт</string>
|
||||||
<string name="report_account">Пожаловаться на аккаунт</string>
|
<string name="report_account">Пожаловаться на аккаунт</string>
|
||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
|
<item>По умолчанию</item>
|
||||||
<item>Веб-просмотр</item>
|
<item>Веб-просмотр</item>
|
||||||
<item>Прямой поток</item>
|
<item>Прямой поток</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
<string-array name="settings_theme">
|
||||||
|
<item>Светлая</item>
|
||||||
|
<item>Тёмная</item>
|
||||||
|
<item>Авто</item>
|
||||||
|
</string-array>
|
||||||
<string-array name="settings_video_quality">
|
<string-array name="settings_video_quality">
|
||||||
<item>Высокое</item>
|
<item>Высокое</item>
|
||||||
<item>Среднее</item>
|
<item>Среднее</item>
|
||||||
@ -181,6 +229,7 @@
|
|||||||
<string name="bookmark_peertube_empty">В избранном нет видео!</string>
|
<string name="bookmark_peertube_empty">В избранном нет видео!</string>
|
||||||
<string name="delete_channel">Удалить канал</string>
|
<string name="delete_channel">Удалить канал</string>
|
||||||
<string name="action_channel_confirm_delete">Вы уверены что хотите безвозвратно удалить этот канал?</string>
|
<string name="action_channel_confirm_delete">Вы уверены что хотите безвозвратно удалить этот канал?</string>
|
||||||
|
<string name="modify_playlists">Видео в плейлисте</string>
|
||||||
<string name="no_muted">Нет заблокированных аккаунтов!</string>
|
<string name="no_muted">Нет заблокированных аккаунтов!</string>
|
||||||
<string name="error_display_name_channel">Вы должны указать имя и отображаемое имя для этого канала!</string>
|
<string name="error_display_name_channel">Вы должны указать имя и отображаемое имя для этого канала!</string>
|
||||||
<string name="action_channel_create">Создать канал</string>
|
<string name="action_channel_create">Создать канал</string>
|
||||||
@ -207,17 +256,17 @@
|
|||||||
<string name="pickup_instance">Выбрать этот экземпляр</string>
|
<string name="pickup_instance">Выбрать этот экземпляр</string>
|
||||||
<string name="sensitive_video"> Неприличные видео</string>
|
<string name="sensitive_video"> Неприличные видео</string>
|
||||||
<string name="sensitive_content">Неприличный контент: %1$s</string>
|
<string name="sensitive_content">Неприличный контент: %1$s</string>
|
||||||
<string name="followers_instance">%1$s подписчиков у экземпляра</string>
|
<string name="followers_instance">Подписчиков у экземпляра: %1$s</string>
|
||||||
<string name="help">Помощь</string>
|
<string name="help">Помощь</string>
|
||||||
<string name="pickup_categories">Выбрать категории</string>
|
<string name="pickup_categories">Выбрать категории</string>
|
||||||
<string name="pickup_languages">Выбрать языки</string>
|
<string name="pickup_languages">Выбрать языки</string>
|
||||||
<string name="notification_channel_name">Информация об обновлении</string>
|
<string name="notification_channel_name">Обновить данные</string>
|
||||||
<string name="add_account">Добавление аккаунта</string>
|
<string name="add_account">Добавление аккаунта</string>
|
||||||
<string name="list_of_accounts">Список аккаунтов</string>
|
<string name="list_of_accounts">Список аккаунтов</string>
|
||||||
<string name="pause">Пауза</string>
|
<string name="pause">Пауза</string>
|
||||||
<string name="play">Воспроизвести</string>
|
<string name="play">Воспроизвести</string>
|
||||||
<string name="minimize">Свернуть</string>
|
<string name="minimize">Свернуть</string>
|
||||||
<string name="fast_rewind">Быстрое перемотка</string>
|
<string name="fast_rewind">Быстрая перемотка</string>
|
||||||
<string name="fast_forward">Перемотка вперед</string>
|
<string name="fast_forward">Перемотка вперед</string>
|
||||||
<string name="set_video_minimize">Вид свёрнутого видео</string>
|
<string name="set_video_minimize">Вид свёрнутого видео</string>
|
||||||
<string name="set_video_minimize_description">Уменьшить размер видео, когда приложение находится в фоновом режиме (Android N+)</string>
|
<string name="set_video_minimize_description">Уменьшить размер видео, когда приложение находится в фоновом режиме (Android N+)</string>
|
||||||
|
@ -148,6 +148,7 @@
|
|||||||
<string name="account">Account</string>
|
<string name="account">Account</string>
|
||||||
<string name="report_account">Report account</string>
|
<string name="report_account">Report account</string>
|
||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
|
<item>Normal</item>
|
||||||
<item>Webview</item>
|
<item>Webview</item>
|
||||||
<item>Direct stream</item>
|
<item>Direct stream</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
@ -1,5 +1,14 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
<string name="add_public_reply">Add a public reply</string>
|
||||||
|
<plurals name="number_of_replies">
|
||||||
|
<item quantity="one">%d reply</item>
|
||||||
|
<item quantity="other">%d replies</item>
|
||||||
|
</plurals>
|
||||||
|
<string name="reply">Reply</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_home">Home</string>
|
||||||
<string name="title_local">Local</string>
|
<string name="title_local">Local</string>
|
||||||
<string name="title_discover">Discover</string>
|
<string name="title_discover">Discover</string>
|
||||||
@ -34,6 +43,7 @@
|
|||||||
<string name="download">Download</string>
|
<string name="download">Download</string>
|
||||||
<string name="profile_picture">Profile picture</string>
|
<string name="profile_picture">Profile picture</string>
|
||||||
<string name="update_video">Update video</string>
|
<string name="update_video">Update video</string>
|
||||||
|
<string name="remove_from_playlist">Remove from playlist</string>
|
||||||
<string name="date_seconds">%d s</string>
|
<string name="date_seconds">%d s</string>
|
||||||
<string name="date_minutes">%d m</string>
|
<string name="date_minutes">%d m</string>
|
||||||
<string name="date_hours">%d h</string>
|
<string name="date_hours">%d h</string>
|
||||||
@ -82,6 +92,33 @@
|
|||||||
<string name="delete_comment">Delete a comment</string>
|
<string name="delete_comment">Delete a comment</string>
|
||||||
<string name="delete_comment_confirm">Are you sure to delete this comment?</string>
|
<string name="delete_comment_confirm">Are you sure to delete this comment?</string>
|
||||||
<string name="set_video_mode">Mode for videos</string>
|
<string name="set_video_mode">Mode for videos</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-array name="sort_by_array">
|
||||||
|
<item>Best match</item>
|
||||||
|
<item>Most recent</item>
|
||||||
|
<item>Least recent</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="my_videos">My videos</string>
|
<string name="my_videos">My videos</string>
|
||||||
<string name="title">Title</string>
|
<string name="title">Title</string>
|
||||||
<string name="license">License</string>
|
<string name="license">License</string>
|
||||||
@ -107,7 +144,7 @@
|
|||||||
<string name="video_settings">Video settings</string>
|
<string name="video_settings">Video settings</string>
|
||||||
<string name="app_interface">Interface</string>
|
<string name="app_interface">Interface</string>
|
||||||
<string name="set_cache_mode">Cache</string>
|
<string name="set_cache_mode">Cache</string>
|
||||||
<string name="set_video_cache_description">Définir le cache pour les vidéos (défaut 100Mo)</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_video_quality_description">Define a default quality for videos</string>
|
||||||
<string name="set_quality_mode">Resolution for videos</string>
|
<string name="set_quality_mode">Resolution for videos</string>
|
||||||
<string name="video_cache_value">Video cache: %d Mb</string>
|
<string name="video_cache_value">Video cache: %d Mb</string>
|
||||||
@ -115,6 +152,8 @@
|
|||||||
<string name="pickup_captions">Pick captions</string>
|
<string name="pickup_captions">Pick captions</string>
|
||||||
<string name="none">None</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="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">Delete video</string>
|
||||||
<string name="delete_video_confirmation">Are you sure to delete this 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>
|
<string name="no_video_to_display">No videos to display!</string>
|
||||||
@ -128,6 +167,7 @@
|
|||||||
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> published a new video: <b>%2$s</b>]]></string>
|
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> published a new video: <b>%2$s</b>]]></string>
|
||||||
<string name="peertube_video_blacklist"><![CDATA[Your video <b>%1$s</b> has been blacklisted]]></string>
|
<string name="peertube_video_blacklist"><![CDATA[Your video <b>%1$s</b> has been blacklisted]]></string>
|
||||||
<string name="peertube_video_unblacklist"><![CDATA[Your video <b>%1$s</b> has been unblacklisted]]></string>
|
<string name="peertube_video_unblacklist"><![CDATA[Your video <b>%1$s</b> has been unblacklisted]]></string>
|
||||||
|
<string name="peertube_video_report_success"><![CDATA[ Your abuse <b>%1$s</b> has been accepted]]></string>
|
||||||
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
||||||
<string name="add_public_comment">Add a public comment</string>
|
<string name="add_public_comment">Add a public comment</string>
|
||||||
<string name="send_comment">Send comment</string>
|
<string name="send_comment">Send comment</string>
|
||||||
@ -161,9 +201,15 @@
|
|||||||
<string name="account">Account</string>
|
<string name="account">Account</string>
|
||||||
<string name="report_account">Report account</string>
|
<string name="report_account">Report account</string>
|
||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
|
<item>Normal</item>
|
||||||
<item>Webview</item>
|
<item>Webview</item>
|
||||||
<item>Direct stream</item>
|
<item>Direct stream</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
<string-array name="settings_theme">
|
||||||
|
<item>Light</item>
|
||||||
|
<item>Dark</item>
|
||||||
|
<item>Automatic</item>
|
||||||
|
</string-array>
|
||||||
<string-array name="settings_video_quality">
|
<string-array name="settings_video_quality">
|
||||||
<item>High</item>
|
<item>High</item>
|
||||||
<item>Medium</item>
|
<item>Medium</item>
|
||||||
@ -181,6 +227,7 @@
|
|||||||
<string name="bookmark_peertube_empty">There are no videos in your favourites!</string>
|
<string name="bookmark_peertube_empty">There are no videos in your favourites!</string>
|
||||||
<string name="delete_channel">Remove channel</string>
|
<string name="delete_channel">Remove channel</string>
|
||||||
<string name="action_channel_confirm_delete">Are you sure to permanently delete this channel?</string>
|
<string name="action_channel_confirm_delete">Are you sure to permanently delete this channel?</string>
|
||||||
|
<string name="modify_playlists">Video in playlists</string>
|
||||||
<string name="no_muted">No muted accounts!</string>
|
<string name="no_muted">No muted accounts!</string>
|
||||||
<string name="error_display_name_channel">You must define a name and a display name for this channel!</string>
|
<string name="error_display_name_channel">You must define a name and a display name for this channel!</string>
|
||||||
<string name="action_channel_create">Create a channel</string>
|
<string name="action_channel_create">Create a channel</string>
|
||||||
|
@ -148,6 +148,7 @@
|
|||||||
<string name="account">Account</string>
|
<string name="account">Account</string>
|
||||||
<string name="report_account">Report account</string>
|
<string name="report_account">Report account</string>
|
||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
|
<item>Normal</item>
|
||||||
<item>Webview</item>
|
<item>Webview</item>
|
||||||
<item>Direct stream</item>
|
<item>Direct stream</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
@ -148,6 +148,7 @@
|
|||||||
<string name="account">Account</string>
|
<string name="account">Account</string>
|
||||||
<string name="report_account">Report account</string>
|
<string name="report_account">Report account</string>
|
||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
|
<item>Normal</item>
|
||||||
<item>Webview</item>
|
<item>Webview</item>
|
||||||
<item>Direct stream</item>
|
<item>Direct stream</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
@ -148,6 +148,7 @@
|
|||||||
<string name="account">Account</string>
|
<string name="account">Account</string>
|
||||||
<string name="report_account">Report account</string>
|
<string name="report_account">Report account</string>
|
||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
|
<item>Normal</item>
|
||||||
<item>Webview</item>
|
<item>Webview</item>
|
||||||
<item>Direct stream</item>
|
<item>Direct stream</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
@ -1,5 +1,13 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
<string name="add_public_reply">Add a public reply</string>
|
||||||
|
<plurals name="number_of_replies">
|
||||||
|
<item quantity="other">%d replies</item>
|
||||||
|
</plurals>
|
||||||
|
<string name="reply">Reply</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_home">Home</string>
|
||||||
<string name="title_local">Local</string>
|
<string name="title_local">Local</string>
|
||||||
<string name="title_discover">Discover</string>
|
<string name="title_discover">Discover</string>
|
||||||
@ -34,6 +42,7 @@
|
|||||||
<string name="download">Download</string>
|
<string name="download">Download</string>
|
||||||
<string name="profile_picture">Profile picture</string>
|
<string name="profile_picture">Profile picture</string>
|
||||||
<string name="update_video">Update video</string>
|
<string name="update_video">Update video</string>
|
||||||
|
<string name="remove_from_playlist">Remove from playlist</string>
|
||||||
<string name="date_seconds">%d s</string>
|
<string name="date_seconds">%d s</string>
|
||||||
<string name="date_minutes">%d m</string>
|
<string name="date_minutes">%d m</string>
|
||||||
<string name="date_hours">%d h</string>
|
<string name="date_hours">%d h</string>
|
||||||
@ -82,6 +91,33 @@
|
|||||||
<string name="delete_comment">Delete a comment</string>
|
<string name="delete_comment">Delete a comment</string>
|
||||||
<string name="delete_comment_confirm">Are you sure to delete this comment?</string>
|
<string name="delete_comment_confirm">Are you sure to delete this comment?</string>
|
||||||
<string name="set_video_mode">Mode for videos</string>
|
<string name="set_video_mode">Mode for videos</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-array name="sort_by_array">
|
||||||
|
<item>Best match</item>
|
||||||
|
<item>Most recent</item>
|
||||||
|
<item>Least recent</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="my_videos">My videos</string>
|
<string name="my_videos">My videos</string>
|
||||||
<string name="title">Title</string>
|
<string name="title">Title</string>
|
||||||
<string name="license">License</string>
|
<string name="license">License</string>
|
||||||
@ -107,7 +143,7 @@
|
|||||||
<string name="video_settings">Video settings</string>
|
<string name="video_settings">Video settings</string>
|
||||||
<string name="app_interface">Interface</string>
|
<string name="app_interface">Interface</string>
|
||||||
<string name="set_cache_mode">Cache</string>
|
<string name="set_cache_mode">Cache</string>
|
||||||
<string name="set_video_cache_description">Définir le cache pour les vidéos (défaut 100Mo)</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_video_quality_description">Define a default quality for videos</string>
|
||||||
<string name="set_quality_mode">Resolution for videos</string>
|
<string name="set_quality_mode">Resolution for videos</string>
|
||||||
<string name="video_cache_value">Video cache: %d Mb</string>
|
<string name="video_cache_value">Video cache: %d Mb</string>
|
||||||
@ -115,6 +151,8 @@
|
|||||||
<string name="pickup_captions">Pick captions</string>
|
<string name="pickup_captions">Pick captions</string>
|
||||||
<string name="none">None</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="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">Delete video</string>
|
||||||
<string name="delete_video_confirmation">Are you sure to delete this 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>
|
<string name="no_video_to_display">No videos to display!</string>
|
||||||
@ -128,6 +166,7 @@
|
|||||||
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> published a new video: <b>%2$s</b>]]></string>
|
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> published a new video: <b>%2$s</b>]]></string>
|
||||||
<string name="peertube_video_blacklist"><![CDATA[Your video <b>%1$s</b> has been blacklisted]]></string>
|
<string name="peertube_video_blacklist"><![CDATA[Your video <b>%1$s</b> has been blacklisted]]></string>
|
||||||
<string name="peertube_video_unblacklist"><![CDATA[Your video <b>%1$s</b> has been unblacklisted]]></string>
|
<string name="peertube_video_unblacklist"><![CDATA[Your video <b>%1$s</b> has been unblacklisted]]></string>
|
||||||
|
<string name="peertube_video_report_success"><![CDATA[ Your abuse <b>%1$s</b> has been accepted]]></string>
|
||||||
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
||||||
<string name="add_public_comment">Add a public comment</string>
|
<string name="add_public_comment">Add a public comment</string>
|
||||||
<string name="send_comment">Send comment</string>
|
<string name="send_comment">Send comment</string>
|
||||||
@ -161,9 +200,15 @@
|
|||||||
<string name="account">Account</string>
|
<string name="account">Account</string>
|
||||||
<string name="report_account">Report account</string>
|
<string name="report_account">Report account</string>
|
||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
|
<item>Normal</item>
|
||||||
<item>Webview</item>
|
<item>Webview</item>
|
||||||
<item>Direct stream</item>
|
<item>Direct stream</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
<string-array name="settings_theme">
|
||||||
|
<item>Light</item>
|
||||||
|
<item>Dark</item>
|
||||||
|
<item>Automatic</item>
|
||||||
|
</string-array>
|
||||||
<string-array name="settings_video_quality">
|
<string-array name="settings_video_quality">
|
||||||
<item>High</item>
|
<item>High</item>
|
||||||
<item>Medium</item>
|
<item>Medium</item>
|
||||||
@ -181,6 +226,7 @@
|
|||||||
<string name="bookmark_peertube_empty">There are no videos in your favourites!</string>
|
<string name="bookmark_peertube_empty">There are no videos in your favourites!</string>
|
||||||
<string name="delete_channel">Remove channel</string>
|
<string name="delete_channel">Remove channel</string>
|
||||||
<string name="action_channel_confirm_delete">Are you sure to permanently delete this channel?</string>
|
<string name="action_channel_confirm_delete">Are you sure to permanently delete this channel?</string>
|
||||||
|
<string name="modify_playlists">Video in playlists</string>
|
||||||
<string name="no_muted">No muted accounts!</string>
|
<string name="no_muted">No muted accounts!</string>
|
||||||
<string name="error_display_name_channel">You must define a name and a display name for this channel!</string>
|
<string name="error_display_name_channel">You must define a name and a display name for this channel!</string>
|
||||||
<string name="action_channel_create">Create a channel</string>
|
<string name="action_channel_create">Create a channel</string>
|
||||||
|
@ -1,5 +1,13 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
<string name="add_public_reply">Add a public reply</string>
|
||||||
|
<plurals name="number_of_replies">
|
||||||
|
<item quantity="other">%d replies</item>
|
||||||
|
</plurals>
|
||||||
|
<string name="reply">Reply</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_home">Home</string>
|
||||||
<string name="title_local">Local</string>
|
<string name="title_local">Local</string>
|
||||||
<string name="title_discover">Discover</string>
|
<string name="title_discover">Discover</string>
|
||||||
@ -34,6 +42,7 @@
|
|||||||
<string name="download">Download</string>
|
<string name="download">Download</string>
|
||||||
<string name="profile_picture">Profile picture</string>
|
<string name="profile_picture">Profile picture</string>
|
||||||
<string name="update_video">Update video</string>
|
<string name="update_video">Update video</string>
|
||||||
|
<string name="remove_from_playlist">Remove from playlist</string>
|
||||||
<string name="date_seconds">%d s</string>
|
<string name="date_seconds">%d s</string>
|
||||||
<string name="date_minutes">%d m</string>
|
<string name="date_minutes">%d m</string>
|
||||||
<string name="date_hours">%d h</string>
|
<string name="date_hours">%d h</string>
|
||||||
@ -82,6 +91,33 @@
|
|||||||
<string name="delete_comment">Delete a comment</string>
|
<string name="delete_comment">Delete a comment</string>
|
||||||
<string name="delete_comment_confirm">Are you sure to delete this comment?</string>
|
<string name="delete_comment_confirm">Are you sure to delete this comment?</string>
|
||||||
<string name="set_video_mode">Mode for videos</string>
|
<string name="set_video_mode">Mode for videos</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-array name="sort_by_array">
|
||||||
|
<item>Best match</item>
|
||||||
|
<item>Most recent</item>
|
||||||
|
<item>Least recent</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="my_videos">My videos</string>
|
<string name="my_videos">My videos</string>
|
||||||
<string name="title">Title</string>
|
<string name="title">Title</string>
|
||||||
<string name="license">License</string>
|
<string name="license">License</string>
|
||||||
@ -107,7 +143,7 @@
|
|||||||
<string name="video_settings">Video settings</string>
|
<string name="video_settings">Video settings</string>
|
||||||
<string name="app_interface">Interface</string>
|
<string name="app_interface">Interface</string>
|
||||||
<string name="set_cache_mode">Cache</string>
|
<string name="set_cache_mode">Cache</string>
|
||||||
<string name="set_video_cache_description">Définir le cache pour les vidéos (défaut 100Mo)</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_video_quality_description">Define a default quality for videos</string>
|
||||||
<string name="set_quality_mode">Resolution for videos</string>
|
<string name="set_quality_mode">Resolution for videos</string>
|
||||||
<string name="video_cache_value">Video cache: %d Mb</string>
|
<string name="video_cache_value">Video cache: %d Mb</string>
|
||||||
@ -115,6 +151,8 @@
|
|||||||
<string name="pickup_captions">Pick captions</string>
|
<string name="pickup_captions">Pick captions</string>
|
||||||
<string name="none">None</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="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">Delete video</string>
|
||||||
<string name="delete_video_confirmation">Are you sure to delete this 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>
|
<string name="no_video_to_display">No videos to display!</string>
|
||||||
@ -128,6 +166,7 @@
|
|||||||
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> published a new video: <b>%2$s</b>]]></string>
|
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> published a new video: <b>%2$s</b>]]></string>
|
||||||
<string name="peertube_video_blacklist"><![CDATA[Your video <b>%1$s</b> has been blacklisted]]></string>
|
<string name="peertube_video_blacklist"><![CDATA[Your video <b>%1$s</b> has been blacklisted]]></string>
|
||||||
<string name="peertube_video_unblacklist"><![CDATA[Your video <b>%1$s</b> has been unblacklisted]]></string>
|
<string name="peertube_video_unblacklist"><![CDATA[Your video <b>%1$s</b> has been unblacklisted]]></string>
|
||||||
|
<string name="peertube_video_report_success"><![CDATA[ Your abuse <b>%1$s</b> has been accepted]]></string>
|
||||||
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
||||||
<string name="add_public_comment">Add a public comment</string>
|
<string name="add_public_comment">Add a public comment</string>
|
||||||
<string name="send_comment">Send comment</string>
|
<string name="send_comment">Send comment</string>
|
||||||
@ -161,9 +200,15 @@
|
|||||||
<string name="account">Account</string>
|
<string name="account">Account</string>
|
||||||
<string name="report_account">Report account</string>
|
<string name="report_account">Report account</string>
|
||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
|
<item>Normal</item>
|
||||||
<item>Webview</item>
|
<item>Webview</item>
|
||||||
<item>Direct stream</item>
|
<item>Direct stream</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
<string-array name="settings_theme">
|
||||||
|
<item>Light</item>
|
||||||
|
<item>Dark</item>
|
||||||
|
<item>Automatic</item>
|
||||||
|
</string-array>
|
||||||
<string-array name="settings_video_quality">
|
<string-array name="settings_video_quality">
|
||||||
<item>High</item>
|
<item>High</item>
|
||||||
<item>Medium</item>
|
<item>Medium</item>
|
||||||
@ -181,6 +226,7 @@
|
|||||||
<string name="bookmark_peertube_empty">There are no videos in your favourites!</string>
|
<string name="bookmark_peertube_empty">There are no videos in your favourites!</string>
|
||||||
<string name="delete_channel">Remove channel</string>
|
<string name="delete_channel">Remove channel</string>
|
||||||
<string name="action_channel_confirm_delete">Are you sure to permanently delete this channel?</string>
|
<string name="action_channel_confirm_delete">Are you sure to permanently delete this channel?</string>
|
||||||
|
<string name="modify_playlists">Video in playlists</string>
|
||||||
<string name="no_muted">No muted accounts!</string>
|
<string name="no_muted">No muted accounts!</string>
|
||||||
<string name="error_display_name_channel">You must define a name and a display name for this channel!</string>
|
<string name="error_display_name_channel">You must define a name and a display name for this channel!</string>
|
||||||
<string name="action_channel_create">Create a channel</string>
|
<string name="action_channel_create">Create a channel</string>
|
||||||
|
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>
|
@ -1,5 +1,22 @@
|
|||||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||||
<string name="app_name" translatable="false">Tubelab</string>
|
<string name="app_name" translatable="false">Tubelab</string>
|
||||||
|
<string name="set_video_mode_choice" translatable="false">set_video_mode_choice</string>
|
||||||
|
<string name="set_video_minimize_choice" translatable="false">set_video_minimize_choice</string>
|
||||||
|
<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="add_public_reply">Add a public reply</string>
|
||||||
|
|
||||||
|
<plurals name="number_of_replies">
|
||||||
|
<item quantity="one">%d reply</item>
|
||||||
|
<item quantity="other">%d replies</item>
|
||||||
|
</plurals>
|
||||||
|
<string name="reply">Reply</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_home">Home</string>
|
||||||
<string name="title_local">Local</string>
|
<string name="title_local">Local</string>
|
||||||
<string name="title_discover">Discover</string>
|
<string name="title_discover">Discover</string>
|
||||||
@ -36,7 +53,7 @@
|
|||||||
<string name="download">Download</string>
|
<string name="download">Download</string>
|
||||||
<string name="profile_picture">Profile picture</string>
|
<string name="profile_picture">Profile picture</string>
|
||||||
<string name="update_video">Update video</string>
|
<string name="update_video">Update video</string>
|
||||||
|
<string name="remove_from_playlist">Remove from playlist</string>
|
||||||
|
|
||||||
<string name="date_seconds">%d s</string>
|
<string name="date_seconds">%d s</string>
|
||||||
<string name="date_minutes">%d m</string>
|
<string name="date_minutes">%d m</string>
|
||||||
@ -110,6 +127,37 @@
|
|||||||
<string name="delete_comment_confirm">Are you sure to delete this comment?</string>
|
<string name="delete_comment_confirm">Are you sure to delete this comment?</string>
|
||||||
<string name="set_video_mode">Mode for videos</string>
|
<string name="set_video_mode">Mode for videos</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-array name="sort_by_array">
|
||||||
|
<item>Best match</item>
|
||||||
|
<item>Most recent</item>
|
||||||
|
<item>Least recent</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="my_videos">My videos</string>
|
<string name="my_videos">My videos</string>
|
||||||
<string name="title">Title</string>
|
<string name="title">Title</string>
|
||||||
<string name="license">License</string>
|
<string name="license">License</string>
|
||||||
@ -139,13 +187,9 @@
|
|||||||
<string name="video_settings">Video settings</string>
|
<string name="video_settings">Video settings</string>
|
||||||
<string name="app_interface">Interface</string>
|
<string name="app_interface">Interface</string>
|
||||||
|
|
||||||
<string name="set_video_mode_choice" translatable="false">set_video_mode_choice</string>
|
|
||||||
<string name="set_video_minimize_choice" translatable="false">set_video_minimize_choice</string>
|
|
||||||
<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_cache_mode">Cache</string>
|
<string name="set_cache_mode">Cache</string>
|
||||||
<string name="set_video_cache_description">Définir le cache pour les vidéos (défaut 100Mo)</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_video_quality_description">Define a default quality for videos</string>
|
||||||
<string name="set_quality_mode">Resolution for videos</string>
|
<string name="set_quality_mode">Resolution for videos</string>
|
||||||
<string name="video_cache_value">Video cache: %d Mb</string>
|
<string name="video_cache_value">Video cache: %d Mb</string>
|
||||||
@ -155,6 +199,8 @@
|
|||||||
<string name="none">None</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="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">Delete video</string>
|
||||||
<string name="delete_video_confirmation">Are you sure to delete this video?</string>
|
<string name="delete_video_confirmation">Are you sure to delete this video?</string>
|
||||||
@ -170,6 +216,7 @@
|
|||||||
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> published a new video: <b>%2$s</b>]]></string>
|
<string name="peertube_video_from_subscription"><![CDATA[<b>%1$s</b> published a new video: <b>%2$s</b>]]></string>
|
||||||
<string name="peertube_video_blacklist"><![CDATA[Your video <b>%1$s</b> has been blacklisted]]></string>
|
<string name="peertube_video_blacklist"><![CDATA[Your video <b>%1$s</b> has been blacklisted]]></string>
|
||||||
<string name="peertube_video_unblacklist"><![CDATA[Your video <b>%1$s</b> has been unblacklisted]]></string>
|
<string name="peertube_video_unblacklist"><![CDATA[Your video <b>%1$s</b> has been unblacklisted]]></string>
|
||||||
|
<string name="peertube_video_report_success"><![CDATA[ Your abuse <b>%1$s</b> has been accepted]]></string>
|
||||||
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
<string name="peertube_video_abuse"><![CDATA[New abuse report for video: <b>%1$s</b>]]></string>
|
||||||
<string name="add_public_comment">Add a public comment</string>
|
<string name="add_public_comment">Add a public comment</string>
|
||||||
<string name="send_comment">Send comment</string>
|
<string name="send_comment">Send comment</string>
|
||||||
@ -206,10 +253,19 @@
|
|||||||
<string name="report_account">Report account</string>
|
<string name="report_account">Report account</string>
|
||||||
|
|
||||||
<string-array name="settings_video_mode">
|
<string-array name="settings_video_mode">
|
||||||
|
<item>Normal</item>
|
||||||
<item>Webview</item>
|
<item>Webview</item>
|
||||||
<item>Direct stream</item>
|
<item>Direct stream</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
|
|
||||||
|
<string-array name="settings_theme">
|
||||||
|
<item>Light</item>
|
||||||
|
<item>Dark</item>
|
||||||
|
<item>Automatic</item>
|
||||||
|
</string-array>
|
||||||
|
|
||||||
|
|
||||||
<string-array name="settings_video_quality">
|
<string-array name="settings_video_quality">
|
||||||
<item>High</item>
|
<item>High</item>
|
||||||
<item>Medium</item>
|
<item>Medium</item>
|
||||||
@ -234,6 +290,7 @@
|
|||||||
<string name="delete_channel">Remove channel</string>
|
<string name="delete_channel">Remove channel</string>
|
||||||
<string name="action_channel_confirm_delete">Are you sure to permanently delete this channel?</string>
|
<string name="action_channel_confirm_delete">Are you sure to permanently delete this channel?</string>
|
||||||
|
|
||||||
|
<string name="modify_playlists">Video in playlists</string>
|
||||||
<string name="no_muted">No muted accounts!</string>
|
<string name="no_muted">No muted accounts!</string>
|
||||||
|
|
||||||
<string name="error_display_name_channel">You must define a name and a display name for this channel!</string>
|
<string name="error_display_name_channel">You must define a name and a display name for this channel!</string>
|
||||||
|
@ -1,17 +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>
|
|
||||||
</resources>
|
|
@ -58,6 +58,11 @@
|
|||||||
android:configChanges="orientation|screenSize"
|
android:configChanges="orientation|screenSize"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:windowSoftInputMode="stateAlwaysHidden" />
|
android:windowSoftInputMode="stateAlwaysHidden" />
|
||||||
|
<activity
|
||||||
|
android:name=".ShowAccountActivity"
|
||||||
|
android:configChanges="orientation|screenSize"
|
||||||
|
android:label="@string/app_name"
|
||||||
|
android:windowSoftInputMode="stateAlwaysHidden" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".AccountActivity"
|
android:name=".AccountActivity"
|
||||||
android:configChanges="orientation|screenSize"
|
android:configChanges="orientation|screenSize"
|
||||||
@ -86,10 +91,15 @@
|
|||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:windowSoftInputMode="stateAlwaysHidden" />
|
android:windowSoftInputMode="stateAlwaysHidden" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".MyVideosActivity"
|
android:name=".VideosTimelineActivity"
|
||||||
android:configChanges="orientation|screenSize"
|
android:configChanges="orientation|screenSize"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:windowSoftInputMode="stateAlwaysHidden" />
|
android:windowSoftInputMode="stateAlwaysHidden" />
|
||||||
|
<activity
|
||||||
|
android:name=".SepiaSearchActivity"
|
||||||
|
android:configChanges="orientation|screenSize"
|
||||||
|
android:label="@string/sepia_search"
|
||||||
|
android:windowSoftInputMode="stateAlwaysHidden" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".WebviewActivity"
|
android:name=".WebviewActivity"
|
||||||
android:configChanges="keyboardHidden|orientation|screenSize"
|
android:configChanges="keyboardHidden|orientation|screenSize"
|
||||||
|
2684
app/src/main/assets/emoji.csv
Normal file
2684
app/src/main/assets/emoji.csv
Normal file
File diff suppressed because it is too large
Load Diff
@ -195,7 +195,7 @@ public class AllPlaylistsActivity extends AppCompatActivity {
|
|||||||
Toasty.error(AllPlaylistsActivity.this, getString(R.string.error_channel_mandatory), Toast.LENGTH_LONG).show();
|
Toasty.error(AllPlaylistsActivity.this, getString(R.string.error_channel_mandatory), Toast.LENGTH_LONG).show();
|
||||||
} else {
|
} else {
|
||||||
if (privacyToSend != null) {
|
if (privacyToSend != null) {
|
||||||
playlistElement.setPrivacy((int) privacyItem.getId());
|
playlistElement.setPrivacy(privacyItem.getId());
|
||||||
}
|
}
|
||||||
new Thread(() -> {
|
new Thread(() -> {
|
||||||
String playlistId;
|
String playlistId;
|
||||||
@ -310,7 +310,7 @@ public class AllPlaylistsActivity extends AppCompatActivity {
|
|||||||
if (playlistToEdit != null) {
|
if (playlistToEdit != null) {
|
||||||
Item privacy = playlistToEdit.getPrivacy();
|
Item privacy = playlistToEdit.getPrivacy();
|
||||||
if (privacy.getId() > 0) {
|
if (privacy.getId() > 0) {
|
||||||
set_upload_privacy.setSelection((int) privacy.getId() - 1);
|
set_upload_privacy.setSelection(privacy.getId() - 1);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
set_upload_privacy.setSelection(2);
|
set_upload_privacy.setSelection(2);
|
||||||
@ -345,7 +345,7 @@ public class AllPlaylistsActivity extends AppCompatActivity {
|
|||||||
Item privacy = playlistToEdit.getPrivacy();
|
Item privacy = playlistToEdit.getPrivacy();
|
||||||
|
|
||||||
if (privacy.getId() > 0) {
|
if (privacy.getId() > 0) {
|
||||||
set_upload_privacy.setSelection((int) privacy.getId() - 1);
|
set_upload_privacy.setSelection(privacy.getId() - 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,12 +15,16 @@ package app.fedilab.fedilabtube;
|
|||||||
* see <http://www.gnu.org/licenses>. */
|
* see <http://www.gnu.org/licenses>. */
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
|
|
||||||
import androidx.multidex.MultiDex;
|
import androidx.multidex.MultiDex;
|
||||||
import androidx.multidex.MultiDexApplication;
|
import androidx.multidex.MultiDexApplication;
|
||||||
|
|
||||||
import net.gotev.uploadservice.UploadService;
|
import net.gotev.uploadservice.UploadService;
|
||||||
|
|
||||||
|
import app.fedilab.fedilabtube.helper.Helper;
|
||||||
|
import app.fedilab.fedilabtube.helper.ThemeHelper;
|
||||||
|
|
||||||
public class FedilabTube extends MultiDexApplication {
|
public class FedilabTube extends MultiDexApplication {
|
||||||
@Override
|
@Override
|
||||||
protected void attachBaseContext(Context base) {
|
protected void attachBaseContext(Context base) {
|
||||||
@ -29,7 +33,12 @@ public class FedilabTube extends MultiDexApplication {
|
|||||||
MultiDex.install(FedilabTube.this);
|
MultiDex.install(FedilabTube.this);
|
||||||
|
|
||||||
UploadService.NAMESPACE = BuildConfig.APPLICATION_ID;
|
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 -> {
|
pickup_languages.setOnClickListener(v -> {
|
||||||
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(InstancePickerActivity.this);
|
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(InstancePickerActivity.this);
|
||||||
|
|
||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
if (languages.size() > 0) {
|
if (languages.size() > 0) {
|
||||||
Iterator<Map.Entry<String, String>> it = languages.entrySet().iterator();
|
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());
|
LinkedHashMap<Integer, String> categories = new LinkedHashMap<>(peertubeInformation.getCategories());
|
||||||
checkedItemsCategory = new boolean[categories.size()];
|
checkedItemsCategory = new boolean[categories.size()];
|
||||||
itemsLabelCategory = new String[categories.size()];
|
itemsLabelCategory = new String[categories.size()];
|
||||||
|
@ -134,6 +134,7 @@ public class LoginActivity extends AppCompatActivity {
|
|||||||
String[] emailArray = login_uid.getText().toString().split("@");
|
String[] emailArray = login_uid.getText().toString().split("@");
|
||||||
if (emailArray.length > 1 && !Arrays.asList(Helper.valideEmails).contains(emailArray[1])) {
|
if (emailArray.length > 1 && !Arrays.asList(Helper.valideEmails).contains(emailArray[1])) {
|
||||||
Toasty.error(LoginActivity.this, getString(R.string.email_error_domain, emailArray[1])).show();
|
Toasty.error(LoginActivity.this, getString(R.string.email_error_domain, emailArray[1])).show();
|
||||||
|
connectionButton.setEnabled(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
host = emailArray[1];
|
host = emailArray[1];
|
||||||
@ -141,6 +142,7 @@ public class LoginActivity extends AppCompatActivity {
|
|||||||
} else {
|
} else {
|
||||||
if (login_instance == null || login_instance.getText() == null || login_instance.getText().toString().trim().length() == 0) {
|
if (login_instance == null || login_instance.getText() == null || login_instance.getText().toString().trim().length() == 0) {
|
||||||
Toasty.error(LoginActivity.this, getString(R.string.not_valide_instance)).show();
|
Toasty.error(LoginActivity.this, getString(R.string.not_valide_instance)).show();
|
||||||
|
connectionButton.setEnabled(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
instance = host = login_instance.getText().toString().trim().toLowerCase();
|
instance = host = login_instance.getText().toString().trim().toLowerCase();
|
||||||
@ -215,6 +217,7 @@ public class LoginActivity extends AppCompatActivity {
|
|||||||
} catch (Error error) {
|
} catch (Error error) {
|
||||||
Error.displayError(LoginActivity.this, error);
|
Error.displayError(LoginActivity.this, error);
|
||||||
error.printStackTrace();
|
error.printStackTrace();
|
||||||
|
runOnUiThread(() -> connectionButton.setEnabled(true));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}).start();
|
}).start();
|
||||||
|
@ -22,6 +22,7 @@ import android.content.SharedPreferences;
|
|||||||
import android.database.sqlite.SQLiteDatabase;
|
import android.database.sqlite.SQLiteDatabase;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.os.Handler;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
@ -32,15 +33,11 @@ import androidx.appcompat.app.AlertDialog;
|
|||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.appcompat.widget.SearchView;
|
import androidx.appcompat.widget.SearchView;
|
||||||
import androidx.appcompat.widget.Toolbar;
|
import androidx.appcompat.widget.Toolbar;
|
||||||
import androidx.navigation.NavController;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.navigation.NavGraph;
|
import androidx.fragment.app.FragmentManager;
|
||||||
import androidx.navigation.NavInflater;
|
|
||||||
import androidx.navigation.Navigation;
|
|
||||||
import androidx.navigation.fragment.NavHostFragment;
|
|
||||||
import androidx.navigation.ui.AppBarConfiguration;
|
|
||||||
import androidx.navigation.ui.NavigationUI;
|
|
||||||
|
|
||||||
import com.google.android.material.bottomnavigation.BottomNavigationView;
|
import com.google.android.material.bottomnavigation.BottomNavigationView;
|
||||||
|
import com.kobakei.ratethisapp.RateThisApp;
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
@ -56,6 +53,8 @@ import app.fedilab.fedilabtube.client.entities.PeertubeInformation;
|
|||||||
import app.fedilab.fedilabtube.client.entities.Token;
|
import app.fedilab.fedilabtube.client.entities.Token;
|
||||||
import app.fedilab.fedilabtube.client.entities.UserMe;
|
import app.fedilab.fedilabtube.client.entities.UserMe;
|
||||||
import app.fedilab.fedilabtube.client.entities.WellKnownNodeinfo;
|
import app.fedilab.fedilabtube.client.entities.WellKnownNodeinfo;
|
||||||
|
import app.fedilab.fedilabtube.fragment.DisplayOverviewFragment;
|
||||||
|
import app.fedilab.fedilabtube.fragment.DisplayVideosFragment;
|
||||||
import app.fedilab.fedilabtube.helper.Helper;
|
import app.fedilab.fedilabtube.helper.Helper;
|
||||||
import app.fedilab.fedilabtube.services.RetrieveInfoService;
|
import app.fedilab.fedilabtube.services.RetrieveInfoService;
|
||||||
import app.fedilab.fedilabtube.sqlite.AccountDAO;
|
import app.fedilab.fedilabtube.sqlite.AccountDAO;
|
||||||
@ -70,6 +69,44 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
public static PeertubeInformation peertubeInformation;
|
public static PeertubeInformation peertubeInformation;
|
||||||
|
|
||||||
public static int PICK_INSTANCE = 5641;
|
public static int PICK_INSTANCE = 5641;
|
||||||
|
final FragmentManager fm = getSupportFragmentManager();
|
||||||
|
Fragment active;
|
||||||
|
private DisplayVideosFragment recentFragment, locaFragment, trendingFragment, subscriptionFragment, mostLikedFragment;
|
||||||
|
private DisplayOverviewFragment overviewFragment;
|
||||||
|
|
||||||
|
private final BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
|
||||||
|
= item -> {
|
||||||
|
DisplayVideosFragment displayVideosFragment = null;
|
||||||
|
int itemId = item.getItemId();
|
||||||
|
if (itemId == R.id.navigation_subscription) {
|
||||||
|
displayVideosFragment = subscriptionFragment;
|
||||||
|
setTitle(R.string.subscriptions);
|
||||||
|
} else if (itemId == R.id.navigation_trending) {
|
||||||
|
setTitle(R.string.title_trending);
|
||||||
|
displayVideosFragment = trendingFragment;
|
||||||
|
} else if (itemId == R.id.navigation_most_liked) {
|
||||||
|
setTitle(R.string.title_most_liked);
|
||||||
|
displayVideosFragment = mostLikedFragment;
|
||||||
|
} else if (itemId == R.id.navigation_recently_added) {
|
||||||
|
setTitle(R.string.title_recently_added);
|
||||||
|
displayVideosFragment = recentFragment;
|
||||||
|
} else if (itemId == R.id.navigation_local) {
|
||||||
|
setTitle(R.string.title_local);
|
||||||
|
displayVideosFragment = locaFragment;
|
||||||
|
} else if (itemId == R.id.navigation_discover) {
|
||||||
|
setTitle(R.string.title_discover);
|
||||||
|
fm.beginTransaction().hide(active).show(overviewFragment).commit();
|
||||||
|
active = overviewFragment;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (displayVideosFragment != null) {
|
||||||
|
fm.beginTransaction().hide(active).show(displayVideosFragment).commit();
|
||||||
|
active = displayVideosFragment;
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@ -80,6 +117,73 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
setSupportActionBar(toolbar);
|
setSupportActionBar(toolbar);
|
||||||
|
|
||||||
BottomNavigationView navView = findViewById(R.id.nav_view);
|
BottomNavigationView navView = findViewById(R.id.nav_view);
|
||||||
|
|
||||||
|
navView.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
|
||||||
|
|
||||||
|
Fragment fragment = getSupportFragmentManager().findFragmentByTag("5");
|
||||||
|
if(fragment != null)
|
||||||
|
getSupportFragmentManager().beginTransaction().remove(fragment).commit();
|
||||||
|
fragment = getSupportFragmentManager().findFragmentByTag("4");
|
||||||
|
if(fragment != null)
|
||||||
|
getSupportFragmentManager().beginTransaction().remove(fragment).commit();
|
||||||
|
fragment = getSupportFragmentManager().findFragmentByTag("3");
|
||||||
|
if(fragment != null)
|
||||||
|
getSupportFragmentManager().beginTransaction().remove(fragment).commit();
|
||||||
|
fragment = getSupportFragmentManager().findFragmentByTag("2");
|
||||||
|
if(fragment != null)
|
||||||
|
getSupportFragmentManager().beginTransaction().remove(fragment).commit();
|
||||||
|
fragment = getSupportFragmentManager().findFragmentByTag("1");
|
||||||
|
if(fragment != null)
|
||||||
|
getSupportFragmentManager().beginTransaction().remove(fragment).commit();
|
||||||
|
|
||||||
|
recentFragment = new DisplayVideosFragment();
|
||||||
|
Bundle bundle = new Bundle();
|
||||||
|
bundle.putSerializable(Helper.TIMELINE_TYPE, TimelineVM.TimelineType.RECENT);
|
||||||
|
recentFragment.setArguments(bundle);
|
||||||
|
|
||||||
|
locaFragment = new DisplayVideosFragment();
|
||||||
|
bundle = new Bundle();
|
||||||
|
bundle.putSerializable(Helper.TIMELINE_TYPE, TimelineVM.TimelineType.LOCAL);
|
||||||
|
locaFragment.setArguments(bundle);
|
||||||
|
|
||||||
|
trendingFragment = new DisplayVideosFragment();
|
||||||
|
bundle = new Bundle();
|
||||||
|
bundle.putSerializable(Helper.TIMELINE_TYPE, TimelineVM.TimelineType.TRENDING);
|
||||||
|
trendingFragment.setArguments(bundle);
|
||||||
|
|
||||||
|
subscriptionFragment = new DisplayVideosFragment();
|
||||||
|
bundle = new Bundle();
|
||||||
|
bundle.putSerializable(Helper.TIMELINE_TYPE, TimelineVM.TimelineType.SUBSCRIBTIONS);
|
||||||
|
subscriptionFragment.setArguments(bundle);
|
||||||
|
|
||||||
|
mostLikedFragment = new DisplayVideosFragment();
|
||||||
|
bundle = new Bundle();
|
||||||
|
bundle.putSerializable(Helper.TIMELINE_TYPE, TimelineVM.TimelineType.MOST_LIKED);
|
||||||
|
mostLikedFragment.setArguments(bundle);
|
||||||
|
|
||||||
|
overviewFragment = new DisplayOverviewFragment();
|
||||||
|
|
||||||
|
if( active == null) {
|
||||||
|
active = overviewFragment;
|
||||||
|
}
|
||||||
|
fm.beginTransaction().add(R.id.nav_host_fragment, locaFragment, "5").hide(locaFragment).commit();
|
||||||
|
|
||||||
|
if (!Helper.isLoggedIn(MainActivity.this)) {
|
||||||
|
fm.beginTransaction().add(R.id.nav_host_fragment, recentFragment, "4").hide(recentFragment).commit();
|
||||||
|
fm.beginTransaction().add(R.id.nav_host_fragment, mostLikedFragment, "3").hide(mostLikedFragment).commit();
|
||||||
|
fm.beginTransaction().add(R.id.nav_host_fragment, trendingFragment, "2").hide(trendingFragment).commit();
|
||||||
|
fm.beginTransaction().add(R.id.nav_host_fragment, overviewFragment, "1").commit();
|
||||||
|
}
|
||||||
|
toolbar.setOnClickListener(v->{
|
||||||
|
if(active instanceof DisplayVideosFragment) {
|
||||||
|
((DisplayVideosFragment) active).scrollToTop();
|
||||||
|
}else if(active instanceof DisplayOverviewFragment) {
|
||||||
|
((DisplayOverviewFragment) active).scrollToTop();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
setTitle(R.string.title_discover);
|
||||||
|
|
||||||
if (Helper.isLoggedIn(MainActivity.this)) {
|
if (Helper.isLoggedIn(MainActivity.this)) {
|
||||||
navView.inflateMenu(R.menu.bottom_nav_menu_connected);
|
navView.inflateMenu(R.menu.bottom_nav_menu_connected);
|
||||||
final SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
final SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
@ -102,6 +206,17 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
runOnUiThread(() -> Helper.logoutCurrentUser(MainActivity.this, account));
|
runOnUiThread(() -> Helper.logoutCurrentUser(MainActivity.this, account));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
runOnUiThread(() -> {
|
||||||
|
//To avoid a token issue with subscriptions, adding fragment is done when the token is refreshed.
|
||||||
|
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();
|
UserMe userMe = new RetrofitPeertubeAPI(MainActivity.this, instance, token.getAccess_token()).verifyCredentials();
|
||||||
if (userMe != null && userMe.getAccount() != null) {
|
if (userMe != null && userMe.getAccount() != null) {
|
||||||
new AccountDAO(MainActivity.this, db).updateAccount(userMe.getAccount());
|
new AccountDAO(MainActivity.this, db).updateAccount(userMe.getAccount());
|
||||||
@ -110,14 +225,16 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
editor.putString(Helper.PREF_KEY_NAME, account.getUsername());
|
editor.putString(Helper.PREF_KEY_NAME, account.getUsername());
|
||||||
//Sync languages from server
|
//Sync languages from server
|
||||||
List<String> videoLanguageServer = userMe.getVideoLanguages();
|
List<String> videoLanguageServer = userMe.getVideoLanguages();
|
||||||
Set<String> videoLanguageServerSet = new TreeSet<>(videoLanguageServer);
|
if( videoLanguageServer != null) {
|
||||||
videoLanguageServerSet.addAll(videoLanguageServer);
|
Set<String> videoLanguageServerSet = new TreeSet<>(videoLanguageServer);
|
||||||
Set<String> videoLanguageLocal = sharedpreferences.getStringSet(getString(R.string.set_video_language_choice), null);
|
videoLanguageServerSet.addAll(videoLanguageServer);
|
||||||
if (videoLanguageServerSet.size() > 0 && videoLanguageLocal != null) {
|
Set<String> videoLanguageLocal = sharedpreferences.getStringSet(getString(R.string.set_video_language_choice), null);
|
||||||
videoLanguageServer.addAll(videoLanguageLocal);
|
if (videoLanguageServerSet.size() > 0 && videoLanguageLocal != null) {
|
||||||
|
videoLanguageServer.addAll(videoLanguageLocal);
|
||||||
|
}
|
||||||
|
editor.putStringSet(getString(R.string.set_video_language_choice), videoLanguageServerSet);
|
||||||
|
editor.apply();
|
||||||
}
|
}
|
||||||
editor.putStringSet(getString(R.string.set_video_language_choice), videoLanguageServerSet);
|
|
||||||
editor.apply();
|
|
||||||
}
|
}
|
||||||
} catch (Error error) {
|
} catch (Error error) {
|
||||||
error.printStackTrace();
|
error.printStackTrace();
|
||||||
@ -128,41 +245,14 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
} else {
|
} else {
|
||||||
navView.inflateMenu(R.menu.bottom_nav_menu);
|
navView.inflateMenu(R.menu.bottom_nav_menu);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Passing each menu ID as a set of Ids because each
|
|
||||||
// menu should be considered as top level destinations.
|
|
||||||
AppBarConfiguration appBarConfiguration;
|
|
||||||
//Bottom menu won't be the same if the user is authenticated
|
|
||||||
//When the user is authenticated, the subscription entry will be added and the local one removed.
|
|
||||||
if (Helper.isLoggedIn(MainActivity.this)) {
|
|
||||||
appBarConfiguration = new AppBarConfiguration.Builder(
|
|
||||||
R.id.navigation_discover, R.id.navigation_subscription, R.id.navigation_trending, R.id.navigation_local, R.id.navigation_recently_added)
|
|
||||||
.build();
|
|
||||||
} else {
|
|
||||||
appBarConfiguration = new AppBarConfiguration.Builder(
|
|
||||||
R.id.navigation_discover, R.id.navigation_trending, R.id.navigation_most_liked, R.id.navigation_recently_added, R.id.navigation_home)
|
|
||||||
.build();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
startInForeground();
|
startInForeground();
|
||||||
NavHostFragment navHostFragment = (NavHostFragment) getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment);
|
|
||||||
if (navHostFragment != null) {
|
|
||||||
NavInflater inflater = navHostFragment.getNavController().getNavInflater();
|
|
||||||
NavGraph graph;
|
|
||||||
//the menu is inflated for authenticated or not authenticated account
|
|
||||||
if (Helper.isLoggedIn(MainActivity.this)) {
|
|
||||||
graph = inflater.inflate(R.navigation.mobile_navigation_connected);
|
|
||||||
} else {
|
|
||||||
graph = inflater.inflate(R.navigation.mobile_navigation);
|
|
||||||
}
|
|
||||||
navHostFragment.getNavController().setGraph(graph);
|
|
||||||
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
|
|
||||||
NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
|
|
||||||
NavigationUI.setupWithNavController(navView, navController);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if(BuildConfig.google_restriction && BuildConfig.full_instances) {
|
||||||
|
RateThisApp.onCreate(this);
|
||||||
|
RateThisApp.showRateDialogIfNeeded(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
private void startInForeground() {
|
private void startInForeground() {
|
||||||
Intent notificationIntent = new Intent(this, RetrieveInfoService.class);
|
Intent notificationIntent = new Intent(this, RetrieveInfoService.class);
|
||||||
@ -207,6 +297,7 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
MenuItem historyItem = menu.findItem(R.id.action_history);
|
MenuItem historyItem = menu.findItem(R.id.action_history);
|
||||||
MenuItem mostLikedItem = menu.findItem(R.id.action_most_liked);
|
MenuItem mostLikedItem = menu.findItem(R.id.action_most_liked);
|
||||||
MenuItem settingsItem = menu.findItem(R.id.action_settings);
|
MenuItem settingsItem = menu.findItem(R.id.action_settings);
|
||||||
|
MenuItem sepiaSearchItem = menu.findItem(R.id.action_sepia_search);
|
||||||
if (Helper.isLoggedIn(MainActivity.this)) {
|
if (Helper.isLoggedIn(MainActivity.this)) {
|
||||||
instanceItem.setVisible(false);
|
instanceItem.setVisible(false);
|
||||||
uploadItem.setVisible(true);
|
uploadItem.setVisible(true);
|
||||||
@ -224,6 +315,9 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
settingsItem.setVisible(true);
|
settingsItem.setVisible(true);
|
||||||
mostLikedItem.setVisible(false);
|
mostLikedItem.setVisible(false);
|
||||||
}
|
}
|
||||||
|
if( !BuildConfig.full_instances) {
|
||||||
|
sepiaSearchItem.setVisible(false);
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -254,21 +348,21 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
return true;
|
return true;
|
||||||
} else if (item.getItemId() == R.id.action_myvideos) {
|
} else if (item.getItemId() == R.id.action_myvideos) {
|
||||||
Intent intent = new Intent(MainActivity.this, MyVideosActivity.class);
|
Intent intent = new Intent(MainActivity.this, VideosTimelineActivity.class);
|
||||||
Bundle bundle = new Bundle();
|
Bundle bundle = new Bundle();
|
||||||
bundle.putSerializable("type", TimelineVM.TimelineType.MY_VIDEOS);
|
bundle.putSerializable("type", TimelineVM.TimelineType.MY_VIDEOS);
|
||||||
intent.putExtras(bundle);
|
intent.putExtras(bundle);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
return true;
|
return true;
|
||||||
} else if (item.getItemId() == R.id.action_history) {
|
} else if (item.getItemId() == R.id.action_history) {
|
||||||
Intent intent = new Intent(MainActivity.this, MyVideosActivity.class);
|
Intent intent = new Intent(MainActivity.this, VideosTimelineActivity.class);
|
||||||
Bundle bundle = new Bundle();
|
Bundle bundle = new Bundle();
|
||||||
bundle.putSerializable("type", TimelineVM.TimelineType.HISTORY);
|
bundle.putSerializable("type", TimelineVM.TimelineType.HISTORY);
|
||||||
intent.putExtras(bundle);
|
intent.putExtras(bundle);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
return true;
|
return true;
|
||||||
} else if (item.getItemId() == R.id.action_most_liked) {
|
} else if (item.getItemId() == R.id.action_most_liked) {
|
||||||
Intent intent = new Intent(MainActivity.this, MyVideosActivity.class);
|
Intent intent = new Intent(MainActivity.this, VideosTimelineActivity.class);
|
||||||
Bundle bundle = new Bundle();
|
Bundle bundle = new Bundle();
|
||||||
bundle.putSerializable("type", TimelineVM.TimelineType.MOST_LIKED);
|
bundle.putSerializable("type", TimelineVM.TimelineType.MOST_LIKED);
|
||||||
intent.putExtras(bundle);
|
intent.putExtras(bundle);
|
||||||
@ -278,7 +372,11 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
Intent intent = new Intent(MainActivity.this, AllPlaylistsActivity.class);
|
Intent intent = new Intent(MainActivity.this, AllPlaylistsActivity.class);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
return true;
|
return true;
|
||||||
} else if (item.getItemId() == R.id.action_about) {
|
}else if(item.getItemId() == R.id.action_sepia_search) {
|
||||||
|
Intent intent = new Intent(MainActivity.this, SepiaSearchActivity.class);
|
||||||
|
startActivity(intent);
|
||||||
|
return true;
|
||||||
|
}else if (item.getItemId() == R.id.action_about) {
|
||||||
Intent intent = new Intent(MainActivity.this, AboutActivity.class);
|
Intent intent = new Intent(MainActivity.this, AboutActivity.class);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
return true;
|
return true;
|
||||||
@ -286,6 +384,14 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setActive(DisplayVideosFragment displayVideosFragment){
|
||||||
|
this.active = displayVideosFragment;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSubscriptionFragment(DisplayVideosFragment displayVideosFragment) {
|
||||||
|
this.subscriptionFragment = displayVideosFragment;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onNewIntent(Intent intent) {
|
protected void onNewIntent(Intent intent) {
|
||||||
super.onNewIntent(intent);
|
super.onNewIntent(intent);
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -224,7 +224,7 @@ public class PeertubeEditUploadActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
|
|
||||||
TimelineVM feedsViewModel = new ViewModelProvider(PeertubeEditUploadActivity.this).get(TimelineVM.class);
|
TimelineVM feedsViewModel = new ViewModelProvider(PeertubeEditUploadActivity.this).get(TimelineVM.class);
|
||||||
feedsViewModel.getMyVideo(videoId).observe(PeertubeEditUploadActivity.this, this::manageVIewVideo);
|
feedsViewModel.getMyVideo(null, videoId).observe(PeertubeEditUploadActivity.this, this::manageVIewVideo);
|
||||||
channels = new LinkedHashMap<>();
|
channels = new LinkedHashMap<>();
|
||||||
|
|
||||||
setTitle(R.string.edit_video);
|
setTitle(R.string.edit_video);
|
||||||
@ -457,12 +457,12 @@ public class PeertubeEditUploadActivity extends AppCompatActivity {
|
|||||||
videoParams.setDescription(description);
|
videoParams.setDescription(description);
|
||||||
videoParams.setNsfw(isNSFW1);
|
videoParams.setNsfw(isNSFW1);
|
||||||
videoParams.setCommentsEnabled(commentEnabled1);
|
videoParams.setCommentsEnabled(commentEnabled1);
|
||||||
videoParams.setCategory((int) finalCategoryToSend.getId());
|
videoParams.setCategory(finalCategoryToSend.getId());
|
||||||
videoParams.setLicence(String.valueOf(finalLicenseToSend.getId()));
|
videoParams.setLicence(String.valueOf(finalLicenseToSend.getId()));
|
||||||
videoParams.setLanguage(finalLanguageToSend.getId());
|
videoParams.setLanguage(finalLanguageToSend.getId());
|
||||||
|
|
||||||
videoParams.setChannelId(channelToSendId);
|
videoParams.setChannelId(channelToSendId);
|
||||||
videoParams.setPrivacy((int) finalPrivacyToSend.getId());
|
videoParams.setPrivacy(finalPrivacyToSend.getId());
|
||||||
List<String> tags = p_video_tags.getTags();
|
List<String> tags = p_video_tags.getTags();
|
||||||
videoParams.setTags(tags);
|
videoParams.setTags(tags);
|
||||||
set_upload_submit.setEnabled(false);
|
set_upload_submit.setEnabled(false);
|
||||||
@ -671,7 +671,7 @@ public class PeertubeEditUploadActivity extends AppCompatActivity {
|
|||||||
set_upload_submit.setEnabled(true);
|
set_upload_submit.setEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings({"unused", "RedundantSuppression"})
|
||||||
public void manageVIewPostActions(RetrofitPeertubeAPI.ActionType statusAction, APIResponse apiResponse) {
|
public void manageVIewPostActions(RetrofitPeertubeAPI.ActionType statusAction, APIResponse apiResponse) {
|
||||||
Intent intent = new Intent(PeertubeEditUploadActivity.this, MainActivity.class);
|
Intent intent = new Intent(PeertubeEditUploadActivity.this, MainActivity.class);
|
||||||
intent.putExtra(Helper.INTENT_ACTION, Helper.RELOAD_MYVIDEOS);
|
intent.putExtra(Helper.INTENT_ACTION, Helper.RELOAD_MYVIDEOS);
|
||||||
|
@ -145,9 +145,11 @@ public class PeertubeRegisterActivity extends AppCompatActivity {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
String[] emailArray = email.getText().toString().split("@");
|
String[] emailArray = email.getText().toString().split("@");
|
||||||
if (emailArray.length > 1 && !Arrays.asList(Helper.valideEmails).contains(emailArray[1])) {
|
if (!BuildConfig.full_instances) {
|
||||||
Toasty.error(PeertubeRegisterActivity.this, getString(R.string.email_error_domain, emailArray[1])).show();
|
if (emailArray.length > 1 && !Arrays.asList(Helper.valideEmails).contains(emailArray[1])) {
|
||||||
return;
|
Toasty.error(PeertubeRegisterActivity.this, getString(R.string.email_error_domain, emailArray[1])).show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (password.getText().toString().trim().length() < 8) {
|
if (password.getText().toString().trim().length() < 8) {
|
||||||
|
@ -16,46 +16,21 @@ package app.fedilab.fedilabtube;
|
|||||||
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
|
||||||
import android.widget.RelativeLayout;
|
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.lifecycle.ViewModelProvider;
|
import androidx.fragment.app.FragmentTransaction;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
|
||||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import app.fedilab.fedilabtube.client.data.PlaylistData;
|
||||||
import java.util.List;
|
import app.fedilab.fedilabtube.fragment.DisplayVideosFragment;
|
||||||
|
import app.fedilab.fedilabtube.helper.Helper;
|
||||||
import app.fedilab.fedilabtube.client.APIResponse;
|
import app.fedilab.fedilabtube.viewmodel.TimelineVM;
|
||||||
import app.fedilab.fedilabtube.client.data.PlaylistData.Playlist;
|
|
||||||
import app.fedilab.fedilabtube.client.data.VideoData.Video;
|
|
||||||
import app.fedilab.fedilabtube.client.data.VideoPlaylistData;
|
|
||||||
import app.fedilab.fedilabtube.drawer.PeertubeAdapter;
|
|
||||||
import app.fedilab.fedilabtube.viewmodel.PlaylistsVM;
|
|
||||||
import es.dmoral.toasty.Toasty;
|
import es.dmoral.toasty.Toasty;
|
||||||
|
|
||||||
import static app.fedilab.fedilabtube.viewmodel.PlaylistsVM.action.GET_LIST_VIDEOS;
|
|
||||||
|
|
||||||
|
|
||||||
public class PlaylistsActivity extends AppCompatActivity {
|
public class PlaylistsActivity extends AppCompatActivity {
|
||||||
|
|
||||||
|
|
||||||
LinearLayoutManager mLayoutManager;
|
|
||||||
private RelativeLayout mainLoader, nextElementLoader, textviewNoAction;
|
|
||||||
private SwipeRefreshLayout swipeRefreshLayout;
|
|
||||||
private boolean swiped;
|
|
||||||
private List<Video> peertubes;
|
|
||||||
private String max_id;
|
|
||||||
private Playlist playlist;
|
|
||||||
private boolean firstLoad;
|
|
||||||
private boolean flag_loading;
|
|
||||||
private PeertubeAdapter peertubeAdapter;
|
|
||||||
private PlaylistsVM viewModel;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
@ -65,72 +40,30 @@ public class PlaylistsActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
|
|
||||||
setContentView(R.layout.activity_playlists);
|
setContentView(R.layout.activity_playlists);
|
||||||
peertubes = new ArrayList<>();
|
|
||||||
|
|
||||||
RecyclerView lv_playlist = findViewById(R.id.lv_playlist);
|
|
||||||
mainLoader = findViewById(R.id.loader);
|
|
||||||
nextElementLoader = findViewById(R.id.loading_next_status);
|
|
||||||
textviewNoAction = findViewById(R.id.no_action);
|
|
||||||
mainLoader.setVisibility(View.VISIBLE);
|
|
||||||
swipeRefreshLayout = findViewById(R.id.swipeContainer);
|
|
||||||
|
|
||||||
|
|
||||||
max_id = null;
|
PlaylistData.Playlist playlist;
|
||||||
flag_loading = true;
|
|
||||||
firstLoad = true;
|
|
||||||
swiped = false;
|
|
||||||
|
|
||||||
|
|
||||||
mainLoader.setVisibility(View.VISIBLE);
|
|
||||||
nextElementLoader.setVisibility(View.GONE);
|
|
||||||
|
|
||||||
peertubeAdapter = new PeertubeAdapter(this.peertubes);
|
|
||||||
|
|
||||||
lv_playlist.setAdapter(peertubeAdapter);
|
|
||||||
mLayoutManager = new LinearLayoutManager(PlaylistsActivity.this);
|
|
||||||
lv_playlist.setLayoutManager(mLayoutManager);
|
|
||||||
|
|
||||||
Bundle b = getIntent().getExtras();
|
Bundle b = getIntent().getExtras();
|
||||||
if (b != null) {
|
if (b != null) {
|
||||||
playlist = b.getParcelable("playlist");
|
playlist = b.getParcelable("playlist");
|
||||||
|
if (playlist == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
Toasty.error(PlaylistsActivity.this, getString(R.string.toast_error), Toast.LENGTH_LONG).show();
|
Toasty.error(PlaylistsActivity.this, getString(R.string.toast_error), Toast.LENGTH_LONG).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (getSupportActionBar() != null)
|
|
||||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
|
||||||
|
|
||||||
setTitle(playlist.getDisplayName());
|
setTitle(playlist.getDisplayName());
|
||||||
|
if (savedInstanceState == null) {
|
||||||
|
DisplayVideosFragment displayVideosFragment = new DisplayVideosFragment();
|
||||||
|
Bundle bundle = new Bundle();
|
||||||
|
bundle.putSerializable(Helper.TIMELINE_TYPE, TimelineVM.TimelineType.VIDEOS_IN_PLAYLIST);
|
||||||
|
bundle.putSerializable("playlistId", playlist.getId());
|
||||||
|
displayVideosFragment.setArguments(bundle);
|
||||||
|
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
|
||||||
|
ft.add(R.id.nav_host_fragment, displayVideosFragment).commit();
|
||||||
|
}
|
||||||
|
|
||||||
viewModel = new ViewModelProvider(PlaylistsActivity.this).get(PlaylistsVM.class);
|
|
||||||
lv_playlist.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
|
||||||
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
|
|
||||||
int firstVisibleItem = mLayoutManager.findFirstVisibleItemPosition();
|
|
||||||
if (dy > 0) {
|
|
||||||
int visibleItemCount = mLayoutManager.getChildCount();
|
|
||||||
int totalItemCount = mLayoutManager.getItemCount();
|
|
||||||
if (firstVisibleItem + visibleItemCount == totalItemCount) {
|
|
||||||
if (!flag_loading) {
|
|
||||||
flag_loading = true;
|
|
||||||
viewModel.manage(GET_LIST_VIDEOS, playlist, null).observe(PlaylistsActivity.this, apiResponse -> manageVIewPlaylists(PlaylistsVM.action.GET_LIST_VIDEOS, apiResponse));
|
|
||||||
nextElementLoader.setVisibility(View.VISIBLE);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
nextElementLoader.setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
swipeRefreshLayout.setOnRefreshListener(() -> {
|
|
||||||
max_id = null;
|
|
||||||
firstLoad = true;
|
|
||||||
flag_loading = true;
|
|
||||||
swiped = true;
|
|
||||||
viewModel.manage(GET_LIST_VIDEOS, playlist, null).observe(PlaylistsActivity.this, apiResponse -> manageVIewPlaylists(PlaylistsVM.action.GET_LIST_VIDEOS, apiResponse));
|
|
||||||
});
|
|
||||||
viewModel.manage(GET_LIST_VIDEOS, playlist, null).observe(PlaylistsActivity.this, apiResponse -> manageVIewPlaylists(PlaylistsVM.action.GET_LIST_VIDEOS, apiResponse));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -143,45 +76,4 @@ public class PlaylistsActivity extends AppCompatActivity {
|
|||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void manageVIewPlaylists(PlaylistsVM.action actionType, APIResponse apiResponse) {
|
|
||||||
mainLoader.setVisibility(View.GONE);
|
|
||||||
nextElementLoader.setVisibility(View.GONE);
|
|
||||||
if (apiResponse.getError() != null) {
|
|
||||||
Toasty.error(PlaylistsActivity.this, apiResponse.getError().getError(), Toast.LENGTH_LONG).show();
|
|
||||||
swipeRefreshLayout.setRefreshing(false);
|
|
||||||
swiped = false;
|
|
||||||
flag_loading = false;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (actionType == GET_LIST_VIDEOS) {
|
|
||||||
|
|
||||||
int previousPosition = this.peertubes.size();
|
|
||||||
List<VideoPlaylistData.VideoPlaylist> videoPlaylists = apiResponse.getVideoPlaylist();
|
|
||||||
List<Video> videos = new ArrayList<>();
|
|
||||||
for (VideoPlaylistData.VideoPlaylist v : videoPlaylists) {
|
|
||||||
videos.add(v.getVideo());
|
|
||||||
}
|
|
||||||
max_id = apiResponse.getMax_id();
|
|
||||||
flag_loading = (max_id == null);
|
|
||||||
if (!swiped && firstLoad && videos.size() == 0)
|
|
||||||
textviewNoAction.setVisibility(View.VISIBLE);
|
|
||||||
else
|
|
||||||
textviewNoAction.setVisibility(View.GONE);
|
|
||||||
|
|
||||||
if (swiped) {
|
|
||||||
if (previousPosition > 0) {
|
|
||||||
this.peertubes.subList(0, previousPosition).clear();
|
|
||||||
peertubeAdapter.notifyItemRangeRemoved(0, previousPosition);
|
|
||||||
}
|
|
||||||
swiped = false;
|
|
||||||
}
|
|
||||||
if (videos.size() > 0) {
|
|
||||||
this.peertubes.addAll(videos);
|
|
||||||
peertubeAdapter.notifyItemRangeInserted(previousPosition, videos.size());
|
|
||||||
}
|
|
||||||
swipeRefreshLayout.setRefreshing(false);
|
|
||||||
firstLoad = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,399 @@
|
|||||||
|
package app.fedilab.fedilabtube;
|
||||||
|
/* 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.content.Context;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.view.MenuItem;
|
||||||
|
import android.view.View;
|
||||||
|
import android.widget.AdapterView;
|
||||||
|
import android.widget.ArrayAdapter;
|
||||||
|
import android.widget.Button;
|
||||||
|
import android.widget.RadioGroup;
|
||||||
|
import android.widget.Spinner;
|
||||||
|
|
||||||
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
import androidx.fragment.app.FragmentTransaction;
|
||||||
|
|
||||||
|
import com.mancj.materialsearchbar.MaterialSearchBar;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.GregorianCalendar;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import app.fedilab.fedilabtube.client.entities.SepiaSearch;
|
||||||
|
import app.fedilab.fedilabtube.fragment.DisplaySepiaSearchFragment;
|
||||||
|
import app.fedilab.fedilabtube.helper.Helper;
|
||||||
|
import mabbas007.tagsedittext.TagsEditText;
|
||||||
|
|
||||||
|
import static app.fedilab.fedilabtube.MainActivity.peertubeInformation;
|
||||||
|
import static app.fedilab.fedilabtube.PeertubeActivity.hideKeyboard;
|
||||||
|
|
||||||
|
|
||||||
|
public class SepiaSearchActivity extends AppCompatActivity {
|
||||||
|
|
||||||
|
|
||||||
|
private SepiaSearch sepiaSearchVideo, sepiaSearchChannel;
|
||||||
|
private TagsEditText sepia_element_all_of_tags, sepia_element_one_of_tags;
|
||||||
|
private MaterialSearchBar searchBar;
|
||||||
|
private ConstraintLayout filter_elements;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
|
setContentView(R.layout.activity_sepia_search);
|
||||||
|
|
||||||
|
sepiaSearchVideo = new SepiaSearch();
|
||||||
|
sepiaSearchChannel = new SepiaSearch();
|
||||||
|
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
|
sepiaSearchVideo.setCount(String.valueOf(sharedpreferences.getInt(Helper.SET_VIDEOS_PER_PAGE, Helper.VIDEOS_PER_PAGE)));
|
||||||
|
sepiaSearchVideo.setDurationMin(0);
|
||||||
|
sepiaSearchVideo.setDurationMax(9999999);
|
||||||
|
sepiaSearchVideo.setStart("0");
|
||||||
|
sepiaSearchVideo.setSort("-match");
|
||||||
|
if (getSupportActionBar() != null)
|
||||||
|
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||||
|
|
||||||
|
|
||||||
|
Button filter = findViewById(R.id.filter);
|
||||||
|
filter_elements = findViewById(R.id.filter_elements);
|
||||||
|
filter.setOnClickListener(view -> {
|
||||||
|
if( filter_elements.getVisibility() == View.VISIBLE) {
|
||||||
|
filter_elements.setVisibility(View.GONE);
|
||||||
|
}else{
|
||||||
|
filter_elements.setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
RadioGroup sepia_element_nsfw = findViewById(R.id.sepia_element_nsfw);
|
||||||
|
sepia_element_nsfw.setOnCheckedChangeListener((group, checkedId) -> sepiaSearchVideo.setNsfw(checkedId != R.id.sepia_element_nsfw_no));
|
||||||
|
|
||||||
|
RadioGroup radio_date = findViewById(R.id.radio_date);
|
||||||
|
radio_date.setOnCheckedChangeListener((group, checkedId) -> {
|
||||||
|
if (checkedId == R.id.sepia_element_published_date_today) {
|
||||||
|
Calendar cal = GregorianCalendar.getInstance();
|
||||||
|
cal.set(Calendar.HOUR_OF_DAY, 0);
|
||||||
|
cal.set(Calendar.MINUTE, 0);
|
||||||
|
cal.set(Calendar.SECOND, 0);
|
||||||
|
cal.set(Calendar.MILLISECOND, 0);
|
||||||
|
sepiaSearchVideo.setStartDate(cal.getTime());
|
||||||
|
} else if (checkedId == R.id.sepia_element_published_date_last_7_days) {
|
||||||
|
Calendar cal;
|
||||||
|
cal = GregorianCalendar.getInstance();
|
||||||
|
cal.setTime(new Date());
|
||||||
|
cal.add(Calendar.DAY_OF_YEAR, -7);
|
||||||
|
sepiaSearchVideo.setStartDate(cal.getTime());
|
||||||
|
} else if (checkedId == R.id.sepia_element_published_date_last_30_days) {
|
||||||
|
Calendar cal;
|
||||||
|
cal = GregorianCalendar.getInstance();
|
||||||
|
cal.setTime(new Date());
|
||||||
|
cal.add(Calendar.DAY_OF_YEAR, -30);
|
||||||
|
sepiaSearchVideo.setStartDate(cal.getTime());
|
||||||
|
} else if (checkedId == R.id.sepia_element_published_date_last_365_days) {
|
||||||
|
Calendar cal;
|
||||||
|
cal = GregorianCalendar.getInstance();
|
||||||
|
cal.setTime(new Date());
|
||||||
|
cal.add(Calendar.DAY_OF_YEAR, -365);
|
||||||
|
sepiaSearchVideo.setStartDate(cal.getTime());
|
||||||
|
} else {
|
||||||
|
sepiaSearchVideo.setStartDate(null);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
RadioGroup duration = findViewById(R.id.duration);
|
||||||
|
duration.setOnCheckedChangeListener((group, checkedId) -> {
|
||||||
|
if (checkedId == R.id.sepia_element_duration_short) {
|
||||||
|
sepiaSearchVideo.setDurationMin(0);
|
||||||
|
sepiaSearchVideo.setDurationMax(240);
|
||||||
|
} else if (checkedId == R.id.sepia_element_duration_medium) {
|
||||||
|
sepiaSearchVideo.setDurationMin(240);
|
||||||
|
sepiaSearchVideo.setDurationMax(600);
|
||||||
|
} else if (checkedId == R.id.sepia_element_duration_long) {
|
||||||
|
sepiaSearchVideo.setDurationMin(600);
|
||||||
|
sepiaSearchVideo.setDurationMax(999999999);
|
||||||
|
} else {
|
||||||
|
sepiaSearchVideo.setDurationMin(0);
|
||||||
|
sepiaSearchVideo.setDurationMax(999999999);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Spinner sort_by = findViewById(R.id.sort_by);
|
||||||
|
ArrayAdapter<String> adapterSortBy = new ArrayAdapter<>(SepiaSearchActivity.this,
|
||||||
|
android.R.layout.simple_spinner_dropdown_item, getResources().getStringArray(R.array.sort_by_array));
|
||||||
|
sort_by.setAdapter(adapterSortBy);
|
||||||
|
sort_by.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||||
|
@Override
|
||||||
|
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
||||||
|
String orderby, channelOrderBy;
|
||||||
|
switch (position){
|
||||||
|
case 1:
|
||||||
|
orderby = "-publishedAt";
|
||||||
|
channelOrderBy = "-createdAt";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
orderby = "publishedAt";
|
||||||
|
channelOrderBy = "createdAt";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
orderby = "-match";
|
||||||
|
channelOrderBy = null;
|
||||||
|
}
|
||||||
|
sepiaSearchVideo.setSort(orderby);
|
||||||
|
sepiaSearchChannel.setSort(channelOrderBy);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onNothingSelected(AdapterView<?> parent) {
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Spinner sepia_element_category = findViewById(R.id.sepia_element_category);
|
||||||
|
Spinner sepia_element_license = findViewById(R.id.sepia_element_license);
|
||||||
|
Spinner sepia_element_language = findViewById(R.id.sepia_element_language);
|
||||||
|
|
||||||
|
sepia_element_all_of_tags = findViewById(R.id.sepia_element_all_of_tags);
|
||||||
|
sepia_element_one_of_tags = findViewById(R.id.sepia_element_one_of_tags);
|
||||||
|
|
||||||
|
LinkedHashMap<Integer, String> categories = new LinkedHashMap<>(peertubeInformation.getCategories());
|
||||||
|
LinkedHashMap<Integer, String> licences = new LinkedHashMap<>(peertubeInformation.getLicences());
|
||||||
|
LinkedHashMap<String, String> languages = new LinkedHashMap<>(peertubeInformation.getLanguages());
|
||||||
|
LinkedHashMap<String, String> translations = new LinkedHashMap<>(peertubeInformation.getTranslations());
|
||||||
|
|
||||||
|
//Populate catgories
|
||||||
|
String[] categoriesA = new String[categories.size()+1];
|
||||||
|
categoriesA[0] = getString(R.string.display_all_categories);
|
||||||
|
Iterator<Map.Entry<Integer, String>> it = categories.entrySet().iterator();
|
||||||
|
int i = 1;
|
||||||
|
while (it.hasNext()) {
|
||||||
|
Map.Entry<Integer, String> pair = it.next();
|
||||||
|
if (translations.size() == 0 || !translations.containsKey(pair.getValue()))
|
||||||
|
categoriesA[i] = pair.getValue();
|
||||||
|
else
|
||||||
|
categoriesA[i] = translations.get(pair.getValue());
|
||||||
|
it.remove();
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
ArrayAdapter<String> adapterCatgories = new ArrayAdapter<>(SepiaSearchActivity.this,
|
||||||
|
android.R.layout.simple_spinner_dropdown_item, categoriesA);
|
||||||
|
sepia_element_category.setAdapter(adapterCatgories);
|
||||||
|
|
||||||
|
|
||||||
|
//Populate licenses
|
||||||
|
String[] licensesA = new String[licences.size()+1];
|
||||||
|
licensesA[0] = getString(R.string.display_all_licenses);
|
||||||
|
it = licences.entrySet().iterator();
|
||||||
|
i = 1;
|
||||||
|
while (it.hasNext()) {
|
||||||
|
Map.Entry<Integer, String> pair = it.next();
|
||||||
|
if (translations.size() == 0 || !translations.containsKey(pair.getValue()))
|
||||||
|
licensesA[i] = pair.getValue();
|
||||||
|
else
|
||||||
|
licensesA[i] = translations.get(pair.getValue());
|
||||||
|
it.remove();
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
ArrayAdapter<String> adapterLicenses = new ArrayAdapter<>(SepiaSearchActivity.this,
|
||||||
|
android.R.layout.simple_spinner_dropdown_item, licensesA);
|
||||||
|
sepia_element_license.setAdapter(adapterLicenses);
|
||||||
|
|
||||||
|
//Populate languages
|
||||||
|
String[] languagesA = new String[languages.size()+1];
|
||||||
|
languagesA[0] = getString(R.string.display_all_languages);
|
||||||
|
Iterator<Map.Entry<String, String>> itl = languages.entrySet().iterator();
|
||||||
|
i = 1;
|
||||||
|
while (itl.hasNext()) {
|
||||||
|
Map.Entry<String, String> pair = itl.next();
|
||||||
|
if (translations.size() == 0 || !translations.containsKey(pair.getValue()))
|
||||||
|
languagesA[i] = pair.getValue();
|
||||||
|
else
|
||||||
|
languagesA[i] = translations.get(pair.getValue());
|
||||||
|
itl.remove();
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
ArrayAdapter<String> adapterLanguages = new ArrayAdapter<>(SepiaSearchActivity.this,
|
||||||
|
android.R.layout.simple_spinner_dropdown_item, languagesA);
|
||||||
|
sepia_element_language.setAdapter(adapterLanguages);
|
||||||
|
|
||||||
|
|
||||||
|
sepia_element_license.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||||
|
@Override
|
||||||
|
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
||||||
|
updateLicensePosition(position);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onNothingSelected(AdapterView<?> parent) {
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
//Manage categories
|
||||||
|
sepia_element_category.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||||
|
@Override
|
||||||
|
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
||||||
|
updateCategoryPosition(position);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onNothingSelected(AdapterView<?> parent) {
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
//Manage languages
|
||||||
|
sepia_element_language.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||||
|
@Override
|
||||||
|
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
||||||
|
updateLanguagesPosition(position);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onNothingSelected(AdapterView<?> parent) {
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
searchBar = findViewById(R.id.searchBar);
|
||||||
|
|
||||||
|
searchBar.setOnSearchActionListener(new MaterialSearchBar.OnSearchActionListener() {
|
||||||
|
@Override
|
||||||
|
public void onSearchStateChanged(boolean enabled) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSearchConfirmed(CharSequence text) {
|
||||||
|
makeSearch();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onButtonClicked(int buttonCode) {
|
||||||
|
makeSearch();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Button apply_filter = findViewById(R.id.apply_filter);
|
||||||
|
apply_filter.setOnClickListener(v-> makeSearch());
|
||||||
|
|
||||||
|
searchBar.openSearch();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void makeSearch(){
|
||||||
|
hideKeyboard(SepiaSearchActivity.this);
|
||||||
|
sepiaSearchVideo.setStart("0");
|
||||||
|
if( sepia_element_one_of_tags.getTags().size() > 0 ) {
|
||||||
|
sepiaSearchVideo.setTagsOneOf(sepia_element_one_of_tags.getTags());
|
||||||
|
}else{
|
||||||
|
sepiaSearchVideo.setTagsOneOf(null);
|
||||||
|
}
|
||||||
|
if( sepia_element_all_of_tags.getTags().size() > 0 ) {
|
||||||
|
sepiaSearchVideo.setTagsAllOf(sepia_element_all_of_tags.getTags());
|
||||||
|
}else{
|
||||||
|
sepiaSearchVideo.setTagsAllOf(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
Fragment fragment = getSupportFragmentManager().findFragmentByTag("SEPIA_SEARCH");
|
||||||
|
if(fragment != null)
|
||||||
|
getSupportFragmentManager().beginTransaction().remove(fragment).commit();
|
||||||
|
filter_elements.setVisibility(View.GONE);
|
||||||
|
sepiaSearchVideo.setSearch(searchBar.getText());
|
||||||
|
DisplaySepiaSearchFragment displaySepiaSearchFragment = new DisplaySepiaSearchFragment();
|
||||||
|
Bundle bundle = new Bundle();
|
||||||
|
bundle.putParcelable("sepiaSearchVideo", sepiaSearchVideo);
|
||||||
|
displaySepiaSearchFragment.setArguments(bundle);
|
||||||
|
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
|
||||||
|
ft.add(R.id.container, displaySepiaSearchFragment,"SEPIA_SEARCH").commit();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
|
if (item.getItemId() == android.R.id.home) {
|
||||||
|
finish();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return super.onOptionsItemSelected(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateLanguagesPosition(int position) {
|
||||||
|
LinkedHashMap<String, String> languagesCheck = new LinkedHashMap<>(peertubeInformation.getLanguages());
|
||||||
|
Iterator<Map.Entry<String, String>> it = languagesCheck.entrySet().iterator();
|
||||||
|
int i = 0;
|
||||||
|
while (it.hasNext()) {
|
||||||
|
Map.Entry<String, String> pair = it.next();
|
||||||
|
if (i == position && position > 0) {
|
||||||
|
List<String> languages = new ArrayList<>();
|
||||||
|
languages.add(pair.getKey());
|
||||||
|
sepiaSearchVideo.setBoostLanguages(languages);
|
||||||
|
break;
|
||||||
|
}else {
|
||||||
|
sepiaSearchVideo.setBoostLanguages(null);
|
||||||
|
}
|
||||||
|
it.remove();
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateCategoryPosition(int position) {
|
||||||
|
LinkedHashMap<Integer, String> categoriesCheck = new LinkedHashMap<>(peertubeInformation.getCategories());
|
||||||
|
Iterator<Map.Entry<Integer, String>> it = categoriesCheck.entrySet().iterator();
|
||||||
|
int i = 0;
|
||||||
|
while (it.hasNext()) {
|
||||||
|
Map.Entry<Integer, String> pair = it.next();
|
||||||
|
if (i == position && position > 0 ) {
|
||||||
|
List<Integer> categories = new ArrayList<>();
|
||||||
|
categories.add(pair.getKey());
|
||||||
|
sepiaSearchVideo.setCategoryOneOf(categories);
|
||||||
|
break;
|
||||||
|
}else {
|
||||||
|
sepiaSearchVideo.setCategoryOneOf(null);
|
||||||
|
}
|
||||||
|
it.remove();
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateLicensePosition(int position) {
|
||||||
|
LinkedHashMap<Integer, String> licensesCheck = new LinkedHashMap<>(peertubeInformation.getLicences());
|
||||||
|
Iterator<Map.Entry<Integer, String>> it = licensesCheck.entrySet().iterator();
|
||||||
|
int i = 0;
|
||||||
|
while (it.hasNext()) {
|
||||||
|
Map.Entry<Integer, String> pair = it.next();
|
||||||
|
if (i == position && position > 0) {
|
||||||
|
List<Integer> licenses = new ArrayList<>();
|
||||||
|
licenses.add(pair.getKey());
|
||||||
|
sepiaSearchVideo.setLicenceOneOf(licenses);
|
||||||
|
break;
|
||||||
|
}else {
|
||||||
|
sepiaSearchVideo.setLicenceOneOf(null);
|
||||||
|
}
|
||||||
|
it.remove();
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -14,9 +14,6 @@ package app.fedilab.fedilabtube;
|
|||||||
* You should have received a copy of the GNU General Public License along with TubeLab; if not,
|
* You should have received a copy of the GNU General Public License along with TubeLab; if not,
|
||||||
* see <http://www.gnu.org/licenses>. */
|
* see <http://www.gnu.org/licenses>. */
|
||||||
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.content.SharedPreferences;
|
|
||||||
import android.content.res.ColorStateList;
|
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.text.Html;
|
import android.text.Html;
|
||||||
@ -26,8 +23,6 @@ import android.view.LayoutInflater;
|
|||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.widget.Button;
|
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
@ -36,7 +31,6 @@ import android.widget.Toast;
|
|||||||
|
|
||||||
import androidx.appcompat.app.AlertDialog;
|
import androidx.appcompat.app.AlertDialog;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.core.content.ContextCompat;
|
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.fragment.app.FragmentManager;
|
import androidx.fragment.app.FragmentManager;
|
||||||
import androidx.fragment.app.FragmentStatePagerAdapter;
|
import androidx.fragment.app.FragmentStatePagerAdapter;
|
||||||
@ -48,45 +42,34 @@ import com.google.android.material.tabs.TabLayout;
|
|||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import app.fedilab.fedilabtube.client.APIResponse;
|
import app.fedilab.fedilabtube.client.APIResponse;
|
||||||
import app.fedilab.fedilabtube.client.RetrofitPeertubeAPI;
|
import app.fedilab.fedilabtube.client.RetrofitPeertubeAPI;
|
||||||
import app.fedilab.fedilabtube.client.data.ChannelData.Channel;
|
import app.fedilab.fedilabtube.client.data.AccountData;
|
||||||
import app.fedilab.fedilabtube.fragment.DisplayAccountsFragment;
|
import app.fedilab.fedilabtube.fragment.DisplayAccountsFragment;
|
||||||
|
import app.fedilab.fedilabtube.fragment.DisplayChannelsFragment;
|
||||||
import app.fedilab.fedilabtube.fragment.DisplayVideosFragment;
|
import app.fedilab.fedilabtube.fragment.DisplayVideosFragment;
|
||||||
import app.fedilab.fedilabtube.helper.Helper;
|
import app.fedilab.fedilabtube.helper.Helper;
|
||||||
import app.fedilab.fedilabtube.viewmodel.ChannelsVM;
|
import app.fedilab.fedilabtube.viewmodel.AccountsVM;
|
||||||
import app.fedilab.fedilabtube.viewmodel.PostActionsVM;
|
import app.fedilab.fedilabtube.viewmodel.PostActionsVM;
|
||||||
import app.fedilab.fedilabtube.viewmodel.RelationshipVM;
|
|
||||||
import app.fedilab.fedilabtube.viewmodel.TimelineVM;
|
import app.fedilab.fedilabtube.viewmodel.TimelineVM;
|
||||||
import es.dmoral.toasty.Toasty;
|
import es.dmoral.toasty.Toasty;
|
||||||
|
|
||||||
import static androidx.core.text.HtmlCompat.FROM_HTML_MODE_LEGACY;
|
import static androidx.core.text.HtmlCompat.FROM_HTML_MODE_LEGACY;
|
||||||
import static app.fedilab.fedilabtube.client.RetrofitPeertubeAPI.ActionType.FOLLOW;
|
|
||||||
import static app.fedilab.fedilabtube.client.RetrofitPeertubeAPI.ActionType.MUTE;
|
import static app.fedilab.fedilabtube.client.RetrofitPeertubeAPI.ActionType.MUTE;
|
||||||
import static app.fedilab.fedilabtube.client.RetrofitPeertubeAPI.ActionType.REPORT_ACCOUNT;
|
import static app.fedilab.fedilabtube.client.RetrofitPeertubeAPI.ActionType.REPORT_ACCOUNT;
|
||||||
import static app.fedilab.fedilabtube.client.RetrofitPeertubeAPI.ActionType.UNFOLLOW;
|
|
||||||
import static app.fedilab.fedilabtube.client.RetrofitPeertubeAPI.DataType.CHANNEL;
|
|
||||||
import static app.fedilab.fedilabtube.helper.Helper.getLiveInstance;
|
|
||||||
import static app.fedilab.fedilabtube.helper.Helper.isLoggedIn;
|
|
||||||
|
|
||||||
|
|
||||||
public class ShowAccountActivity extends AppCompatActivity {
|
public class ShowAccountActivity extends AppCompatActivity {
|
||||||
|
|
||||||
|
|
||||||
private Button account_follow;
|
|
||||||
private ViewPager mPager;
|
private ViewPager mPager;
|
||||||
private TabLayout tabLayout;
|
private TabLayout tabLayout;
|
||||||
private TextView account_note, subscriber_count;
|
private TextView account_note, subscriber_count;
|
||||||
private List<Map<String, Boolean>> relationship;
|
|
||||||
private ImageView account_pp;
|
private ImageView account_pp;
|
||||||
private TextView account_dn;
|
private TextView account_dn;
|
||||||
private Channel channel;
|
private AccountData.Account account;
|
||||||
private action doAction;
|
private String accountAcct;
|
||||||
private String channelAcct;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@ -94,15 +77,13 @@ public class ShowAccountActivity extends AppCompatActivity {
|
|||||||
setContentView(R.layout.activity_show_account);
|
setContentView(R.layout.activity_show_account);
|
||||||
setTitle("");
|
setTitle("");
|
||||||
Bundle b = getIntent().getExtras();
|
Bundle b = getIntent().getExtras();
|
||||||
account_follow = findViewById(R.id.account_follow);
|
|
||||||
subscriber_count = findViewById(R.id.subscriber_count);
|
subscriber_count = findViewById(R.id.subscriber_count);
|
||||||
account_follow.setEnabled(false);
|
|
||||||
account_pp = findViewById(R.id.account_pp);
|
account_pp = findViewById(R.id.account_pp);
|
||||||
account_dn = findViewById(R.id.account_dn);
|
account_dn = findViewById(R.id.account_dn);
|
||||||
account_pp.setBackgroundResource(R.drawable.account_pp_border);
|
account_pp.setBackgroundResource(R.drawable.account_pp_border);
|
||||||
if (b != null) {
|
if (b != null) {
|
||||||
channel = b.getParcelable("channel");
|
account = b.getParcelable("account");
|
||||||
channelAcct = b.getString("channelId");
|
accountAcct = b.getString("accountAcct");
|
||||||
} else {
|
} else {
|
||||||
Toasty.error(ShowAccountActivity.this, getString(R.string.toast_error_loading_account), Toast.LENGTH_LONG).show();
|
Toasty.error(ShowAccountActivity.this, getString(R.string.toast_error_loading_account), Toast.LENGTH_LONG).show();
|
||||||
}
|
}
|
||||||
@ -114,11 +95,9 @@ public class ShowAccountActivity extends AppCompatActivity {
|
|||||||
tabLayout = findViewById(R.id.account_tabLayout);
|
tabLayout = findViewById(R.id.account_tabLayout);
|
||||||
account_note = findViewById(R.id.account_note);
|
account_note = findViewById(R.id.account_note);
|
||||||
|
|
||||||
|
manageAccount();
|
||||||
ChannelsVM viewModel = new ViewModelProvider(ShowAccountActivity.this).get(ChannelsVM.class);
|
AccountsVM viewModel = new ViewModelProvider(ShowAccountActivity.this).get(AccountsVM.class);
|
||||||
|
viewModel.getAccount(accountAcct == null ? account.getUsername() + "@" + account.getHost() : accountAcct).observe(ShowAccountActivity.this, this::manageViewAccounts);
|
||||||
manageChannel();
|
|
||||||
viewModel.get(CHANNEL, channelAcct == null ? channel.getName() + "@" + channel.getHost() : channelAcct).observe(ShowAccountActivity.this, this::manageViewAccounts);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -137,7 +116,7 @@ public class ShowAccountActivity extends AppCompatActivity {
|
|||||||
return true;
|
return true;
|
||||||
} else if (item.getItemId() == R.id.action_mute) {
|
} else if (item.getItemId() == R.id.action_mute) {
|
||||||
PostActionsVM viewModel = new ViewModelProvider(ShowAccountActivity.this).get(PostActionsVM.class);
|
PostActionsVM viewModel = new ViewModelProvider(ShowAccountActivity.this).get(PostActionsVM.class);
|
||||||
viewModel.post(MUTE, channel.getOwnerAccount() != null ? channel.getOwnerAccount().getAcct() : channel.getAcct(), null).observe(ShowAccountActivity.this, apiResponse -> manageVIewPostActions(MUTE, apiResponse));
|
viewModel.post(MUTE, accountAcct == null ? account.getUsername() + "@" + account.getHost() : accountAcct, null).observe(ShowAccountActivity.this, apiResponse -> manageVIewPostActions(MUTE, apiResponse));
|
||||||
} else if (item.getItemId() == R.id.action_report) {
|
} else if (item.getItemId() == R.id.action_report) {
|
||||||
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(ShowAccountActivity.this);
|
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(ShowAccountActivity.this);
|
||||||
LayoutInflater inflater1 = getLayoutInflater();
|
LayoutInflater inflater1 = getLayoutInflater();
|
||||||
@ -150,7 +129,7 @@ public class ShowAccountActivity extends AppCompatActivity {
|
|||||||
Toasty.info(ShowAccountActivity.this, getString(R.string.report_comment_size), Toasty.LENGTH_LONG).show();
|
Toasty.info(ShowAccountActivity.this, getString(R.string.report_comment_size), Toasty.LENGTH_LONG).show();
|
||||||
} else {
|
} else {
|
||||||
PostActionsVM viewModel = new ViewModelProvider(ShowAccountActivity.this).get(PostActionsVM.class);
|
PostActionsVM viewModel = new ViewModelProvider(ShowAccountActivity.this).get(PostActionsVM.class);
|
||||||
viewModel.post(REPORT_ACCOUNT, channel.getId(), report_content.getText().toString()).observe(ShowAccountActivity.this, apiResponse -> manageVIewPostActions(REPORT_ACCOUNT, apiResponse));
|
viewModel.post(REPORT_ACCOUNT, account.getId(), report_content.getText().toString()).observe(ShowAccountActivity.this, apiResponse -> manageVIewPostActions(REPORT_ACCOUNT, apiResponse));
|
||||||
dialog.dismiss();
|
dialog.dismiss();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -160,30 +139,18 @@ public class ShowAccountActivity extends AppCompatActivity {
|
|||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void manageChannel() {
|
private void manageAccount() {
|
||||||
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE);
|
|
||||||
|
|
||||||
String accountIdRelation = channel.getAcct();
|
|
||||||
if (isLoggedIn(ShowAccountActivity.this)) {
|
|
||||||
RelationshipVM viewModel = new ViewModelProvider(ShowAccountActivity.this).get(RelationshipVM.class);
|
|
||||||
List<String> uids = new ArrayList<>();
|
|
||||||
uids.add(accountIdRelation);
|
|
||||||
viewModel.get(uids).observe(ShowAccountActivity.this, this::manageVIewRelationship);
|
|
||||||
}
|
|
||||||
|
|
||||||
setTitle(channel.getAcct());
|
|
||||||
|
|
||||||
|
setTitle(account.getAcct());
|
||||||
|
|
||||||
mPager = findViewById(R.id.account_viewpager);
|
mPager = findViewById(R.id.account_viewpager);
|
||||||
|
tabLayout.addTab(tabLayout.newTab().setText(getString(R.string.channels)));
|
||||||
tabLayout.addTab(tabLayout.newTab().setText(getString(R.string.videos)));
|
tabLayout.addTab(tabLayout.newTab().setText(getString(R.string.videos)));
|
||||||
mPager.setOffscreenPageLimit(1);
|
mPager.setOffscreenPageLimit(2);
|
||||||
|
|
||||||
|
|
||||||
PagerAdapter mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager());
|
PagerAdapter mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager());
|
||||||
mPager.setAdapter(mPagerAdapter);
|
mPager.setAdapter(mPagerAdapter);
|
||||||
ViewGroup.LayoutParams params = tabLayout.getLayoutParams();
|
|
||||||
params.height = 0;
|
|
||||||
tabLayout.setLayoutParams(params);
|
|
||||||
mPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
mPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
||||||
@ -222,112 +189,26 @@ public class ShowAccountActivity extends AppCompatActivity {
|
|||||||
switch (tab.getPosition()) {
|
switch (tab.getPosition()) {
|
||||||
case 0:
|
case 0:
|
||||||
if (fragment != null) {
|
if (fragment != null) {
|
||||||
DisplayVideosFragment displayVideosFragment = ((DisplayVideosFragment) fragment);
|
DisplayChannelsFragment displayChannelsFragment = ((DisplayChannelsFragment) fragment);
|
||||||
displayVideosFragment.scrollToTop();
|
displayChannelsFragment.scrollToTop();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
if (fragment != null) {
|
if (fragment != null) {
|
||||||
DisplayAccountsFragment displayAccountsFragment = ((DisplayAccountsFragment) fragment);
|
DisplayVideosFragment displayVideosFragment = ((DisplayVideosFragment) fragment);
|
||||||
displayAccountsFragment.scrollToTop();
|
displayVideosFragment.scrollToTop();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
account_dn.setText(channel.getDisplayName());
|
account_dn.setText(account.getDisplayName());
|
||||||
|
|
||||||
|
manageNotes(account);
|
||||||
manageNotes(channel);
|
Helper.loadGiF(ShowAccountActivity.this, account.getAvatar() != null ? account.getAvatar().getPath() : null, account_pp);
|
||||||
Helper.loadGiF(ShowAccountActivity.this, channel.getAvatar() != null ? channel.getAvatar().getPath() : null, account_pp);
|
|
||||||
//Follow button
|
|
||||||
String target = channel.getAcct();
|
|
||||||
|
|
||||||
account_follow.setOnClickListener(v -> {
|
|
||||||
if (doAction == action.NOTHING) {
|
|
||||||
Toasty.info(ShowAccountActivity.this, getString(R.string.nothing_to_do), Toast.LENGTH_LONG).show();
|
|
||||||
} else if (doAction == action.FOLLOW) {
|
|
||||||
account_follow.setEnabled(false);
|
|
||||||
PostActionsVM viewModel = new ViewModelProvider(ShowAccountActivity.this).get(PostActionsVM.class);
|
|
||||||
viewModel.post(FOLLOW, target, null).observe(ShowAccountActivity.this, apiResponse -> manageVIewPostActions(FOLLOW, apiResponse));
|
|
||||||
} else if (doAction == action.UNFOLLOW) {
|
|
||||||
boolean confirm_unfollow = sharedpreferences.getBoolean(Helper.SET_UNFOLLOW_VALIDATION, true);
|
|
||||||
if (confirm_unfollow) {
|
|
||||||
AlertDialog.Builder unfollowConfirm = new AlertDialog.Builder(ShowAccountActivity.this);
|
|
||||||
unfollowConfirm.setTitle(getString(R.string.unfollow_confirm));
|
|
||||||
unfollowConfirm.setMessage(channel.getAcct());
|
|
||||||
unfollowConfirm.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss());
|
|
||||||
unfollowConfirm.setPositiveButton(R.string.yes, (dialog, which) -> {
|
|
||||||
account_follow.setEnabled(false);
|
|
||||||
PostActionsVM viewModel = new ViewModelProvider(ShowAccountActivity.this).get(PostActionsVM.class);
|
|
||||||
viewModel.post(UNFOLLOW, target, null).observe(ShowAccountActivity.this, apiResponse -> manageVIewPostActions(UNFOLLOW, apiResponse));
|
|
||||||
dialog.dismiss();
|
|
||||||
});
|
|
||||||
unfollowConfirm.show();
|
|
||||||
} else {
|
|
||||||
account_follow.setEnabled(false);
|
|
||||||
PostActionsVM viewModel = new ViewModelProvider(ShowAccountActivity.this).get(PostActionsVM.class);
|
|
||||||
viewModel.post(UNFOLLOW, target, null).observe(ShowAccountActivity.this, apiResponse -> manageVIewPostActions(UNFOLLOW, apiResponse));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void manageVIewRelationship(APIResponse apiResponse) {
|
|
||||||
|
|
||||||
if (apiResponse.getError() != null) {
|
|
||||||
Toasty.error(ShowAccountActivity.this, apiResponse.getError().getError(), Toast.LENGTH_LONG).show();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
this.relationship = apiResponse.getRelationships();
|
|
||||||
manageButtonVisibility();
|
|
||||||
|
|
||||||
invalidateOptionsMenu();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
//Manages the visibility of the button
|
|
||||||
private void manageButtonVisibility() {
|
|
||||||
if (relationship == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
|
||||||
int[][] states = new int[][]{
|
|
||||||
new int[]{android.R.attr.state_enabled}, // enabled
|
|
||||||
new int[]{-android.R.attr.state_enabled}, // disabled
|
|
||||||
new int[]{-android.R.attr.state_checked}, // unchecked
|
|
||||||
new int[]{android.R.attr.state_pressed} // pressed
|
|
||||||
};
|
|
||||||
|
|
||||||
int[] colors = new int[]{
|
|
||||||
ContextCompat.getColor(ShowAccountActivity.this, Helper.getColorAccent()),
|
|
||||||
ContextCompat.getColor(ShowAccountActivity.this, Helper.getColorAccent()),
|
|
||||||
ContextCompat.getColor(ShowAccountActivity.this, Helper.getColorAccent()),
|
|
||||||
ContextCompat.getColor(ShowAccountActivity.this, Helper.getColorAccent())
|
|
||||||
};
|
|
||||||
account_follow.setBackgroundTintList(new ColorStateList(states, colors));
|
|
||||||
}
|
|
||||||
account_follow.setEnabled(true);
|
|
||||||
|
|
||||||
boolean isFollowing = relationship.get(0).get(channel.getAcct());
|
|
||||||
if (isFollowing) {
|
|
||||||
account_follow.setText(R.string.action_unfollow);
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
|
||||||
account_follow.setBackgroundTintList(ColorStateList.valueOf(ContextCompat.getColor(ShowAccountActivity.this, R.color.red_1)));
|
|
||||||
}
|
|
||||||
doAction = action.UNFOLLOW;
|
|
||||||
account_follow.setVisibility(View.VISIBLE);
|
|
||||||
} else {
|
|
||||||
account_follow.setText(R.string.action_follow);
|
|
||||||
doAction = action.FOLLOW;
|
|
||||||
account_follow.setVisibility(View.VISIBLE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
@ -345,47 +226,31 @@ public class ShowAccountActivity extends AppCompatActivity {
|
|||||||
Toasty.error(ShowAccountActivity.this, apiResponse.getError().getError(), Toast.LENGTH_LONG).show();
|
Toasty.error(ShowAccountActivity.this, apiResponse.getError().getError(), Toast.LENGTH_LONG).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
String target = channel.getAcct();
|
if (statusAction == RetrofitPeertubeAPI.ActionType.MUTE) {
|
||||||
//IF action is unfollow or mute, sends an intent to remove statuses
|
|
||||||
if (statusAction == RetrofitPeertubeAPI.ActionType.UNFOLLOW) {
|
|
||||||
Bundle b = new Bundle();
|
|
||||||
b.putString("receive_action", apiResponse.getTargetedId());
|
|
||||||
Intent intentBC = new Intent(Helper.RECEIVE_ACTION);
|
|
||||||
intentBC.putExtras(b);
|
|
||||||
}
|
|
||||||
if (statusAction == RetrofitPeertubeAPI.ActionType.UNFOLLOW || statusAction == RetrofitPeertubeAPI.ActionType.FOLLOW) {
|
|
||||||
RelationshipVM viewModel = new ViewModelProvider(ShowAccountActivity.this).get(RelationshipVM.class);
|
|
||||||
List<String> uris = new ArrayList<>();
|
|
||||||
uris.add(target);
|
|
||||||
viewModel.get(uris).observe(ShowAccountActivity.this, this::manageVIewRelationship);
|
|
||||||
} else if (statusAction == RetrofitPeertubeAPI.ActionType.MUTE) {
|
|
||||||
Toasty.info(ShowAccountActivity.this, getString(R.string.muted_done), Toast.LENGTH_LONG).show();
|
Toasty.info(ShowAccountActivity.this, getString(R.string.muted_done), Toast.LENGTH_LONG).show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void manageViewAccounts(APIResponse apiResponse) {
|
public void manageViewAccounts(APIResponse apiResponse) {
|
||||||
if (apiResponse.getChannels() != null && apiResponse.getChannels().size() == 1) {
|
if (apiResponse.getAccounts() != null && apiResponse.getAccounts().size() == 1) {
|
||||||
Channel channel = apiResponse.getChannels().get(0);
|
AccountData.Account account = apiResponse.getAccounts().get(0);
|
||||||
if (this.channel == null) {
|
if (this.account == null) {
|
||||||
this.channel = channel;
|
this.account = account;
|
||||||
manageChannel();
|
manageAccount();
|
||||||
}
|
}
|
||||||
if (channel.getOwnerAccount() != null) {
|
subscriber_count.setText(getString(R.string.followers_count, Helper.withSuffix(account.getFollowersCount())));
|
||||||
this.channel.setOwnerAccount(channel.getOwnerAccount());
|
|
||||||
}
|
|
||||||
subscriber_count.setText(getString(R.string.followers_count, Helper.withSuffix(channel.getFollowersCount())));
|
|
||||||
subscriber_count.setVisibility(View.VISIBLE);
|
subscriber_count.setVisibility(View.VISIBLE);
|
||||||
manageNotes(channel);
|
manageNotes(account);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void manageNotes(Channel channel) {
|
private void manageNotes(AccountData.Account account) {
|
||||||
if (channel.getDescription() != null && channel.getDescription().compareTo("null") != 0 && channel.getDescription().trim().length() > 0) {
|
if (account.getDescription() != null && account.getDescription().compareTo("null") != 0 && account.getDescription().trim().length() > 0) {
|
||||||
SpannableString spannableString;
|
SpannableString spannableString;
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
|
||||||
spannableString = new SpannableString(Html.fromHtml(channel.getDescription(), FROM_HTML_MODE_LEGACY));
|
spannableString = new SpannableString(Html.fromHtml(account.getDescription(), FROM_HTML_MODE_LEGACY));
|
||||||
else
|
else
|
||||||
spannableString = new SpannableString(Html.fromHtml(channel.getDescription()));
|
spannableString = new SpannableString(Html.fromHtml(account.getDescription()));
|
||||||
|
|
||||||
account_note.setText(spannableString, TextView.BufferType.SPANNABLE);
|
account_note.setText(spannableString, TextView.BufferType.SPANNABLE);
|
||||||
account_note.setMovementMethod(LinkMovementMethod.getInstance());
|
account_note.setMovementMethod(LinkMovementMethod.getInstance());
|
||||||
@ -395,11 +260,6 @@ public class ShowAccountActivity extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum action {
|
|
||||||
FOLLOW,
|
|
||||||
UNFOLLOW,
|
|
||||||
NOTHING
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pager adapter for the 2 fragments
|
* Pager adapter for the 2 fragments
|
||||||
@ -415,25 +275,24 @@ public class ShowAccountActivity extends AppCompatActivity {
|
|||||||
public Fragment getItem(int position) {
|
public Fragment getItem(int position) {
|
||||||
Bundle bundle = new Bundle();
|
Bundle bundle = new Bundle();
|
||||||
if (position == 0) {
|
if (position == 0) {
|
||||||
DisplayVideosFragment displayVideosFragment = new DisplayVideosFragment();
|
DisplayChannelsFragment displayChannelsFragment = new DisplayChannelsFragment();
|
||||||
bundle = new Bundle();
|
bundle.putString("name", account.getAcct());
|
||||||
bundle.putSerializable("type", TimelineVM.TimelineType.USER_VIDEOS);
|
bundle.putBoolean("myChannels", false);
|
||||||
bundle.putString("channelId", channel.getAcct());
|
displayChannelsFragment.setArguments(bundle);
|
||||||
displayVideosFragment.setArguments(bundle);
|
return displayChannelsFragment;
|
||||||
return displayVideosFragment;
|
|
||||||
}
|
}
|
||||||
DisplayAccountsFragment displayAccountsFragment = new DisplayAccountsFragment();
|
DisplayVideosFragment displayVideosFragment = new DisplayVideosFragment();
|
||||||
bundle.putString("targetedid", channel.getId());
|
bundle.putSerializable(Helper.TIMELINE_TYPE, TimelineVM.TimelineType.ACCOUNT_VIDEOS);
|
||||||
bundle.putString("instance", getLiveInstance(ShowAccountActivity.this));
|
bundle.putString("channelId", account.getAcct());
|
||||||
bundle.putString("name", channel.getAcct());
|
bundle.putString("peertube_instance", account.getHost());
|
||||||
displayAccountsFragment.setArguments(bundle);
|
displayVideosFragment.setArguments(bundle);
|
||||||
return displayAccountsFragment;
|
return displayVideosFragment;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getCount() {
|
public int getCount() {
|
||||||
return 1;
|
return 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,7 +70,6 @@ import static app.fedilab.fedilabtube.client.RetrofitPeertubeAPI.ActionType.MUTE
|
|||||||
import static app.fedilab.fedilabtube.client.RetrofitPeertubeAPI.ActionType.REPORT_ACCOUNT;
|
import static app.fedilab.fedilabtube.client.RetrofitPeertubeAPI.ActionType.REPORT_ACCOUNT;
|
||||||
import static app.fedilab.fedilabtube.client.RetrofitPeertubeAPI.ActionType.UNFOLLOW;
|
import static app.fedilab.fedilabtube.client.RetrofitPeertubeAPI.ActionType.UNFOLLOW;
|
||||||
import static app.fedilab.fedilabtube.client.RetrofitPeertubeAPI.DataType.CHANNEL;
|
import static app.fedilab.fedilabtube.client.RetrofitPeertubeAPI.DataType.CHANNEL;
|
||||||
import static app.fedilab.fedilabtube.helper.Helper.getLiveInstance;
|
|
||||||
import static app.fedilab.fedilabtube.helper.Helper.isLoggedIn;
|
import static app.fedilab.fedilabtube.helper.Helper.isLoggedIn;
|
||||||
|
|
||||||
|
|
||||||
@ -81,17 +80,19 @@ public class ShowChannelActivity extends AppCompatActivity {
|
|||||||
private ViewPager mPager;
|
private ViewPager mPager;
|
||||||
private TabLayout tabLayout;
|
private TabLayout tabLayout;
|
||||||
private TextView account_note, subscriber_count;
|
private TextView account_note, subscriber_count;
|
||||||
private List<Map<String, Boolean>> relationship;
|
private Map<String, Boolean> relationship;
|
||||||
private ImageView account_pp;
|
private ImageView account_pp;
|
||||||
private TextView account_dn;
|
private TextView account_dn;
|
||||||
private Channel channel;
|
private Channel channel;
|
||||||
private action doAction;
|
private action doAction;
|
||||||
private String channelAcct;
|
private String channelAcct;
|
||||||
|
private boolean sepiaSearch;
|
||||||
|
private String peertubeInstance;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_show_account);
|
setContentView(R.layout.activity_show_channel);
|
||||||
setTitle("");
|
setTitle("");
|
||||||
Bundle b = getIntent().getExtras();
|
Bundle b = getIntent().getExtras();
|
||||||
account_follow = findViewById(R.id.account_follow);
|
account_follow = findViewById(R.id.account_follow);
|
||||||
@ -103,6 +104,9 @@ public class ShowChannelActivity extends AppCompatActivity {
|
|||||||
if (b != null) {
|
if (b != null) {
|
||||||
channel = b.getParcelable("channel");
|
channel = b.getParcelable("channel");
|
||||||
channelAcct = b.getString("channelId");
|
channelAcct = b.getString("channelId");
|
||||||
|
sepiaSearch = b.getBoolean("sepia_search", false);
|
||||||
|
peertubeInstance = b.getString("peertube_instance", null);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
Toasty.error(ShowChannelActivity.this, getString(R.string.toast_error_loading_account), Toast.LENGTH_LONG).show();
|
Toasty.error(ShowChannelActivity.this, getString(R.string.toast_error_loading_account), Toast.LENGTH_LONG).show();
|
||||||
}
|
}
|
||||||
@ -116,14 +120,14 @@ public class ShowChannelActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
|
|
||||||
ChannelsVM viewModel = new ViewModelProvider(ShowChannelActivity.this).get(ChannelsVM.class);
|
ChannelsVM viewModel = new ViewModelProvider(ShowChannelActivity.this).get(ChannelsVM.class);
|
||||||
viewModel.get(CHANNEL, channelAcct == null ? channel.getAcct() : channelAcct).observe(ShowChannelActivity.this, this::manageViewAccounts);
|
viewModel.get(sepiaSearch?peertubeInstance:null, CHANNEL, channelAcct == null ? channel.getAcct() : channelAcct).observe(ShowChannelActivity.this, this::manageViewAccounts);
|
||||||
manageChannel();
|
manageChannel();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCreateOptionsMenu(@NotNull Menu menu) {
|
public boolean onCreateOptionsMenu(@NotNull Menu menu) {
|
||||||
getMenuInflater().inflate(R.menu.main_account, menu);
|
getMenuInflater().inflate(R.menu.main_account, menu);
|
||||||
if (!Helper.isLoggedIn(ShowChannelActivity.this)) {
|
if (!Helper.isLoggedIn(ShowChannelActivity.this) || sepiaSearch) {
|
||||||
menu.findItem(R.id.action_mute).setVisible(false);
|
menu.findItem(R.id.action_mute).setVisible(false);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@ -163,7 +167,7 @@ public class ShowChannelActivity extends AppCompatActivity {
|
|||||||
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE);
|
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE);
|
||||||
|
|
||||||
String accountIdRelation = channel.getAcct();
|
String accountIdRelation = channel.getAcct();
|
||||||
if (isLoggedIn(ShowChannelActivity.this)) {
|
if (isLoggedIn(ShowChannelActivity.this) && !sepiaSearch) {
|
||||||
RelationshipVM viewModel = new ViewModelProvider(ShowChannelActivity.this).get(RelationshipVM.class);
|
RelationshipVM viewModel = new ViewModelProvider(ShowChannelActivity.this).get(RelationshipVM.class);
|
||||||
List<String> uids = new ArrayList<>();
|
List<String> uids = new ArrayList<>();
|
||||||
uids.add(accountIdRelation);
|
uids.add(accountIdRelation);
|
||||||
@ -239,7 +243,7 @@ public class ShowChannelActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
|
|
||||||
manageNotes(channel);
|
manageNotes(channel);
|
||||||
Helper.loadGiF(ShowChannelActivity.this, channel.getAvatar() != null ? channel.getAvatar().getPath() : null, account_pp);
|
Helper.loadGiF(ShowChannelActivity.this, sepiaSearch?peertubeInstance:null, channel.getAvatar() != null ? channel.getAvatar().getPath() : null, account_pp);
|
||||||
//Follow button
|
//Follow button
|
||||||
String target = channel.getAcct();
|
String target = channel.getAcct();
|
||||||
|
|
||||||
@ -311,19 +315,18 @@ public class ShowChannelActivity extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
account_follow.setEnabled(true);
|
account_follow.setEnabled(true);
|
||||||
|
|
||||||
boolean isFollowing = relationship.get(0).get(channel.getAcct());
|
boolean isFollowing = relationship.get(channel.getAcct());
|
||||||
if (isFollowing) {
|
if (isFollowing) {
|
||||||
account_follow.setText(R.string.action_unfollow);
|
account_follow.setText(R.string.action_unfollow);
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||||
account_follow.setBackgroundTintList(ColorStateList.valueOf(ContextCompat.getColor(ShowChannelActivity.this, R.color.red_1)));
|
account_follow.setBackgroundTintList(ColorStateList.valueOf(ContextCompat.getColor(ShowChannelActivity.this, R.color.red_1)));
|
||||||
}
|
}
|
||||||
doAction = action.UNFOLLOW;
|
doAction = action.UNFOLLOW;
|
||||||
account_follow.setVisibility(View.VISIBLE);
|
|
||||||
} else {
|
} else {
|
||||||
account_follow.setText(R.string.action_follow);
|
account_follow.setText(R.string.action_follow);
|
||||||
doAction = action.FOLLOW;
|
doAction = action.FOLLOW;
|
||||||
account_follow.setVisibility(View.VISIBLE);
|
|
||||||
}
|
}
|
||||||
|
account_follow.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -412,21 +415,14 @@ public class ShowChannelActivity extends AppCompatActivity {
|
|||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public Fragment getItem(int position) {
|
public Fragment getItem(int position) {
|
||||||
|
DisplayVideosFragment displayVideosFragment = new DisplayVideosFragment();
|
||||||
Bundle bundle = new Bundle();
|
Bundle bundle = new Bundle();
|
||||||
if (position == 0) {
|
bundle.putSerializable(Helper.TIMELINE_TYPE, TimelineVM.TimelineType.CHANNEL_VIDEOS);
|
||||||
DisplayVideosFragment displayVideosFragment = new DisplayVideosFragment();
|
bundle.putString("channelId", channel.getAcct());
|
||||||
bundle = new Bundle();
|
bundle.putString("peertube_instance", channel.getHost());
|
||||||
bundle.putSerializable("timelineType", TimelineVM.TimelineType.USER_VIDEOS);
|
bundle.putBoolean("sepia_search", sepiaSearch);
|
||||||
bundle.putString("channelId", channel.getAcct());
|
displayVideosFragment.setArguments(bundle);
|
||||||
displayVideosFragment.setArguments(bundle);
|
return displayVideosFragment;
|
||||||
return displayVideosFragment;
|
|
||||||
}
|
|
||||||
DisplayAccountsFragment displayAccountsFragment = new DisplayAccountsFragment();
|
|
||||||
bundle.putString("targetedid", channel.getId());
|
|
||||||
bundle.putString("instance", getLiveInstance(ShowChannelActivity.this));
|
|
||||||
bundle.putString("name", channel.getAcct());
|
|
||||||
displayAccountsFragment.setArguments(bundle);
|
|
||||||
return displayAccountsFragment;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -21,10 +21,11 @@ import androidx.appcompat.app.AppCompatActivity;
|
|||||||
import androidx.fragment.app.FragmentTransaction;
|
import androidx.fragment.app.FragmentTransaction;
|
||||||
|
|
||||||
import app.fedilab.fedilabtube.fragment.DisplayVideosFragment;
|
import app.fedilab.fedilabtube.fragment.DisplayVideosFragment;
|
||||||
|
import app.fedilab.fedilabtube.helper.Helper;
|
||||||
import app.fedilab.fedilabtube.viewmodel.TimelineVM;
|
import app.fedilab.fedilabtube.viewmodel.TimelineVM;
|
||||||
|
|
||||||
|
|
||||||
public class MyVideosActivity extends AppCompatActivity {
|
public class VideosTimelineActivity extends AppCompatActivity {
|
||||||
|
|
||||||
private TimelineVM.TimelineType type;
|
private TimelineVM.TimelineType type;
|
||||||
|
|
||||||
@ -43,8 +44,6 @@ public class MyVideosActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
if (type == TimelineVM.TimelineType.MY_VIDEOS) {
|
if (type == TimelineVM.TimelineType.MY_VIDEOS) {
|
||||||
setTitle(R.string.my_videos);
|
setTitle(R.string.my_videos);
|
||||||
} else if (type == TimelineVM.TimelineType.SUBSCRIBTIONS) {
|
|
||||||
setTitle(R.string.subscriptions);
|
|
||||||
} else if (type == TimelineVM.TimelineType.HISTORY) {
|
} else if (type == TimelineVM.TimelineType.HISTORY) {
|
||||||
setTitle(R.string.my_history);
|
setTitle(R.string.my_history);
|
||||||
} else if (type == TimelineVM.TimelineType.MOST_LIKED) {
|
} else if (type == TimelineVM.TimelineType.MOST_LIKED) {
|
||||||
@ -54,7 +53,7 @@ public class MyVideosActivity extends AppCompatActivity {
|
|||||||
if (savedInstanceState == null) {
|
if (savedInstanceState == null) {
|
||||||
DisplayVideosFragment displayVideosFragment = new DisplayVideosFragment();
|
DisplayVideosFragment displayVideosFragment = new DisplayVideosFragment();
|
||||||
Bundle bundle = new Bundle();
|
Bundle bundle = new Bundle();
|
||||||
bundle.putSerializable("type", type);
|
bundle.putSerializable(Helper.TIMELINE_TYPE, type);
|
||||||
displayVideosFragment.setArguments(bundle);
|
displayVideosFragment.setArguments(bundle);
|
||||||
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
|
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
|
||||||
ft.add(R.id.container, displayVideosFragment).commit();
|
ft.add(R.id.container, displayVideosFragment).commit();
|
@ -129,21 +129,20 @@ public class WebviewActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
switch (item.getItemId()) {
|
int itemId = item.getItemId();
|
||||||
case android.R.id.home:
|
if (itemId == android.R.id.home) {
|
||||||
finish();
|
finish();
|
||||||
return true;
|
return true;
|
||||||
case R.id.action_go:
|
} else if (itemId == R.id.action_go) {
|
||||||
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
|
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
|
||||||
try {
|
try {
|
||||||
startActivity(browserIntent);
|
startActivity(browserIntent);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Toasty.error(WebviewActivity.this, getString(R.string.toast_error), Toast.LENGTH_LONG).show();
|
Toasty.error(WebviewActivity.this, getString(R.string.toast_error), Toast.LENGTH_LONG).show();
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
default:
|
|
||||||
return super.onOptionsItemSelected(item);
|
|
||||||
}
|
}
|
||||||
|
return super.onOptionsItemSelected(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setUrl(String newUrl) {
|
public void setUrl(String newUrl) {
|
||||||
|
@ -46,10 +46,11 @@ public class APIResponse {
|
|||||||
private List<CommentData.Comment> comments = null;
|
private List<CommentData.Comment> comments = null;
|
||||||
private List<Block> muted;
|
private List<Block> muted;
|
||||||
private List<VideoPlaylist> videoPlaylist;
|
private List<VideoPlaylist> videoPlaylist;
|
||||||
|
private CommentData.CommentThreadData commentThreadData;
|
||||||
private List<NotificationData.Notification> peertubeNotifications = null;
|
private List<NotificationData.Notification> peertubeNotifications = null;
|
||||||
private List<PlaylistData.Playlist> playlists = null;
|
private List<PlaylistData.Playlist> playlists = null;
|
||||||
private List<String> domains = null;
|
private List<String> domains = null;
|
||||||
private List<Map<String, Boolean>> relationships = null;
|
private Map<String, Boolean> relationships = null;
|
||||||
private List<CaptionData.Caption> captions = null;
|
private List<CaptionData.Caption> captions = null;
|
||||||
private Error error = null;
|
private Error error = null;
|
||||||
private String since_id, max_id;
|
private String since_id, max_id;
|
||||||
@ -152,11 +153,11 @@ public class APIResponse {
|
|||||||
this.statusCode = statusCode;
|
this.statusCode = statusCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Map<String, Boolean>> getRelationships() {
|
public Map<String, Boolean> getRelationships() {
|
||||||
return relationships;
|
return relationships;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRelationships(List<Map<String, Boolean>> relationships) {
|
public void setRelationships(Map<String, Boolean> relationships) {
|
||||||
this.relationships = relationships;
|
this.relationships = relationships;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -247,4 +248,12 @@ public class APIResponse {
|
|||||||
public void setVideoExistPlaylist(Map<String, List<PlaylistExist>> videoExistPlaylist) {
|
public void setVideoExistPlaylist(Map<String, List<PlaylistExist>> videoExistPlaylist) {
|
||||||
this.videoExistPlaylist = videoExistPlaylist;
|
this.videoExistPlaylist = videoExistPlaylist;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public CommentData.CommentThreadData getCommentThreadData() {
|
||||||
|
return commentThreadData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCommentThreadData(CommentData.CommentThreadData commentThreadData) {
|
||||||
|
this.commentThreadData = commentThreadData;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,7 @@ package app.fedilab.fedilabtube.client;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
import app.fedilab.fedilabtube.client.data.AccountData;
|
import app.fedilab.fedilabtube.client.data.AccountData;
|
||||||
import app.fedilab.fedilabtube.client.data.BlockData;
|
import app.fedilab.fedilabtube.client.data.BlockData;
|
||||||
import app.fedilab.fedilabtube.client.data.CaptionData;
|
import app.fedilab.fedilabtube.client.data.CaptionData;
|
||||||
@ -55,8 +56,9 @@ import retrofit2.http.Path;
|
|||||||
import retrofit2.http.Query;
|
import retrofit2.http.Query;
|
||||||
import retrofit2.http.QueryMap;
|
import retrofit2.http.QueryMap;
|
||||||
|
|
||||||
|
@SuppressWarnings({"unused", "RedundantSuppression"})
|
||||||
public interface PeertubeService {
|
public interface PeertubeService {
|
||||||
|
|
||||||
@GET("instances")
|
@GET("instances")
|
||||||
Call<InstanceData> getInstances(@QueryMap Map<String, String> params, @Query("nsfwPolicy[]") String nsfwPolicy, @Query("categoriesOr[]") List<Integer> categories, @Query("languagesOr[]") List<String> languages);
|
Call<InstanceData> getInstances(@QueryMap Map<String, String> params, @Query("nsfwPolicy[]") String nsfwPolicy, @Query("categoriesOr[]") List<Integer> categories, @Query("languagesOr[]") List<String> languages);
|
||||||
|
|
||||||
@ -65,7 +67,7 @@ public interface PeertubeService {
|
|||||||
Call<WellKnownNodeinfo> getWellKnownNodeinfo();
|
Call<WellKnownNodeinfo> getWellKnownNodeinfo();
|
||||||
|
|
||||||
@GET("{nodeInfoPath}")
|
@GET("{nodeInfoPath}")
|
||||||
Call<WellKnownNodeinfo.NodeInfo> getNodeinfo(@Path("nodeInfoPath") String nodeInfoPath);
|
Call<WellKnownNodeinfo.NodeInfo> getNodeinfo(@Path(value = "nodeInfoPath", encoded = true) String nodeInfoPath);
|
||||||
|
|
||||||
@GET("{captionContent}")
|
@GET("{captionContent}")
|
||||||
Call<String> getCaptionContent(@Path("captionContent") String captionContent);
|
Call<String> getCaptionContent(@Path("captionContent") String captionContent);
|
||||||
@ -116,7 +118,7 @@ public interface PeertubeService {
|
|||||||
//Timelines Authenticated
|
//Timelines Authenticated
|
||||||
//Subscriber timeline
|
//Subscriber timeline
|
||||||
@GET("users/me/subscriptions/videos?sort=-publishedAt")
|
@GET("users/me/subscriptions/videos?sort=-publishedAt")
|
||||||
Call<VideoData> getSubscriptionVideos(@Header("Authorization") String credentials, @Query("start") String maxId, @Query("languageOneOf") List<String> languageOneOf);
|
Call<VideoData> getSubscriptionVideos(@Header("Authorization") String credentials, @Query("start") String maxId, @Query("count") String count, @Query("languageOneOf") List<String> languageOneOf);
|
||||||
|
|
||||||
//Overview videos
|
//Overview videos
|
||||||
@GET("overviews/videos")
|
@GET("overviews/videos")
|
||||||
@ -124,31 +126,31 @@ public interface PeertubeService {
|
|||||||
|
|
||||||
//Most liked videos
|
//Most liked videos
|
||||||
@GET("videos?sort=-likes")
|
@GET("videos?sort=-likes")
|
||||||
Call<VideoData> getMostLikedVideos(@Query("start") String maxId, @Query("languageOneOf") List<String> languageOneOf);
|
Call<VideoData> getMostLikedVideos(@Query("start") String maxId, @Query("count") String count, @Query("languageOneOf") List<String> languageOneOf);
|
||||||
|
|
||||||
//Most liked videos
|
//Most liked videos
|
||||||
@GET("videos?sort=-trending")
|
@GET("videos?sort=-trending")
|
||||||
Call<VideoData> getTrendingVideos(@Query("start") String maxId, @Query("languageOneOf") List<String> languageOneOf);
|
Call<VideoData> getTrendingVideos(@Query("start") String maxId, @Query("count") String count, @Query("languageOneOf") List<String> languageOneOf);
|
||||||
|
|
||||||
//Recently added videos
|
//Recently added videos
|
||||||
@GET("videos?sort=-publishedAt")
|
@GET("videos?sort=-publishedAt")
|
||||||
Call<VideoData> getRecentlyAddedVideos(@Query("start") String maxId, @Query("languageOneOf") List<String> languageOneOf);
|
Call<VideoData> getRecentlyAddedVideos(@Query("start") String maxId, @Query("count") String count, @Query("languageOneOf") List<String> languageOneOf);
|
||||||
|
|
||||||
//Local videos
|
//Local videos
|
||||||
@GET("videos?sort=-publishedAt&filter=local")
|
@GET("videos?sort=-publishedAt&filter=local")
|
||||||
Call<VideoData> getLocalVideos(@Query("start") String maxId, @Query("languageOneOf") List<String> languageOneOf);
|
Call<VideoData> getLocalVideos(@Query("start") String maxId, @Query("count") String count, @Query("languageOneOf") List<String> languageOneOf);
|
||||||
|
|
||||||
//History
|
//History
|
||||||
@GET("users/me/history/videos")
|
@GET("users/me/history/videos")
|
||||||
Call<VideoData> getHistory(@Header("Authorization") String credentials, @Query("start") String maxId);
|
Call<VideoData> getHistory(@Header("Authorization") String credentials, @Query("start") String maxId, @Query("count") String count);
|
||||||
|
|
||||||
//Search
|
//Search
|
||||||
@GET("search/videos")
|
@GET("search/videos")
|
||||||
Call<VideoData> searchVideos(@Query("search") String search, @Query("start") String maxId);
|
Call<VideoData> searchVideos(@Query("search") String search, @Query("start") String maxId, @Query("count") String count);
|
||||||
|
|
||||||
//Get notifications
|
//Get notifications
|
||||||
@GET("users/me/notifications")
|
@GET("users/me/notifications")
|
||||||
Call<NotificationData> getNotifications(@Header("Authorization") String credentials, @Query("start") String maxId, @Query("since_id") String sinceId);
|
Call<NotificationData> getNotifications(@Header("Authorization") String credentials, @Query("start") String maxId, @Query("count") String count, @Query("since_id") String sinceId);
|
||||||
|
|
||||||
//Get/Post/Update/Delete video
|
//Get/Post/Update/Delete video
|
||||||
//Get a video
|
//Get a video
|
||||||
@ -160,11 +162,11 @@ public interface PeertubeService {
|
|||||||
|
|
||||||
//Get my video
|
//Get my video
|
||||||
@GET("users/me/videos?sort=-publishedAt")
|
@GET("users/me/videos?sort=-publishedAt")
|
||||||
Call<VideoData> getMyVideos(@Header("Authorization") String credentials, @Query("start") String maxId);
|
Call<VideoData> getMyVideos(@Header("Authorization") String credentials, @Query("start") String maxId, @Query("count") String count);
|
||||||
|
|
||||||
//Get my video
|
//Get my video
|
||||||
@GET("accounts/{name}/videos?sort=-publishedAt")
|
@GET("accounts/{name}/videos?sort=-publishedAt")
|
||||||
Call<VideoData.Video> getVideosForAccount(@Query("start") String maxId);
|
Call<VideoData> getVideosForAccount(@Path("name") String name, @Query("start") String maxId, @Query("count") String count);
|
||||||
|
|
||||||
@Multipart
|
@Multipart
|
||||||
@PUT("videos/{id}")
|
@PUT("videos/{id}")
|
||||||
@ -211,7 +213,7 @@ public interface PeertubeService {
|
|||||||
Call<ChannelData> getAllChannels();
|
Call<ChannelData> getAllChannels();
|
||||||
|
|
||||||
@GET("video-channels/{channelHandle}/videos")
|
@GET("video-channels/{channelHandle}/videos")
|
||||||
Call<VideoData> getChannelVideos(@Path("channelHandle") String channelHandle, @Query("start") String maxId);
|
Call<VideoData> getChannelVideos(@Path("channelHandle") String channelHandle, @Query("start") String maxId, @Query("count") String count);
|
||||||
|
|
||||||
@POST("video-channels")
|
@POST("video-channels")
|
||||||
Call<ChannelData.ChannelCreation> addChannel(@Header("Authorization") String credentials, @Body ChannelParams channelParams);
|
Call<ChannelData.ChannelCreation> addChannel(@Header("Authorization") String credentials, @Body ChannelParams channelParams);
|
||||||
@ -227,6 +229,11 @@ public interface PeertubeService {
|
|||||||
@GET("video-playlists")
|
@GET("video-playlists")
|
||||||
Call<PlaylistData> getPlaylists();
|
Call<PlaylistData> getPlaylists();
|
||||||
|
|
||||||
|
|
||||||
|
//Get a single account
|
||||||
|
@GET("accounts/{accountHandle}")
|
||||||
|
Call<AccountData.Account> getAccount(@Path("accountHandle") String accountHandle);
|
||||||
|
|
||||||
//Get/Post/Update/Delete playlist
|
//Get/Post/Update/Delete playlist
|
||||||
@GET("accounts/{accountHandle}/video-playlists")
|
@GET("accounts/{accountHandle}/video-playlists")
|
||||||
Call<PlaylistData> getPlaylistsForAccount(@Header("Authorization") String credentials, @Path("accountHandle") String accountHandle);
|
Call<PlaylistData> getPlaylistsForAccount(@Header("Authorization") String credentials, @Path("accountHandle") String accountHandle);
|
||||||
@ -235,10 +242,10 @@ public interface PeertubeService {
|
|||||||
Call<PlaylistData.Playlist> getPlaylist(@Path("id") String id);
|
Call<PlaylistData.Playlist> getPlaylist(@Path("id") String id);
|
||||||
|
|
||||||
@GET("video-playlists/{id}/videos")
|
@GET("video-playlists/{id}/videos")
|
||||||
Call<VideoPlaylistData> getVideosPlayList(@Header("Authorization") String credentials, @Path("id") String id);
|
Call<VideoPlaylistData> getVideosPlayList(@Header("Authorization") String credentials, @Path("id") String id, @Query("start") String maxId, @Query("count") String count);
|
||||||
|
|
||||||
@GET("users/me/video-playlists/videos-exist")
|
@GET("users/me/video-playlists/videos-exist")
|
||||||
Call<Map<String, List<PlaylistExist>>> getVideoExistsInPlaylist(@Header("Authorization") String credentials, @Query("videoIds") String videoIds);
|
Call<Map<String, List<PlaylistExist>>> getVideoExistsInPlaylist(@Header("Authorization") String credentials, @Query("videoIds") List<String> videoIds);
|
||||||
|
|
||||||
@Multipart
|
@Multipart
|
||||||
@POST("video-playlists")
|
@POST("video-playlists")
|
||||||
@ -287,13 +294,10 @@ public interface PeertubeService {
|
|||||||
//Subscribe/Unsubscribe
|
//Subscribe/Unsubscribe
|
||||||
//subscribers
|
//subscribers
|
||||||
@GET("users/me/subscriptions")
|
@GET("users/me/subscriptions")
|
||||||
Call<AccountData> getSubscription(@Header("Authorization") String credentials, @Query("start") String maxId);
|
Call<ChannelData> getSubscription(@Header("Authorization") String credentials, @Query("start") String maxId, @Query("count") String count);
|
||||||
|
|
||||||
@GET("users/me/subscriptions/exist")
|
@GET("users/me/subscriptions/exist")
|
||||||
Call<List<Map<String, Boolean>>> getSubscriptionsExist(@Header("Authorization") String credentials, @Query("uris") List<String> uris);
|
Call<Map<String, Boolean>> getSubscriptionsExist(@Header("Authorization") String credentials, @Query("uris") List<String> uris);
|
||||||
|
|
||||||
@GET("users/me/subscriptions/exist")
|
|
||||||
Call<Map<String, Boolean>> getSubscriptionExists(@Header("Authorization") String credentials, @Query("uris") String uris);
|
|
||||||
|
|
||||||
@FormUrlEncoded
|
@FormUrlEncoded
|
||||||
@POST("users/me/subscriptions")
|
@POST("users/me/subscriptions")
|
||||||
@ -305,7 +309,7 @@ public interface PeertubeService {
|
|||||||
//Mute/Unmute
|
//Mute/Unmute
|
||||||
//Muted accounts
|
//Muted accounts
|
||||||
@GET("users/me/blocklist/accounts")
|
@GET("users/me/blocklist/accounts")
|
||||||
Call<BlockData> getMuted(@Header("Authorization") String credentials, @Query("start") String maxId);
|
Call<BlockData> getMuted(@Header("Authorization") String credentials, @Query("start") String maxId, @Query("count") String count);
|
||||||
|
|
||||||
@FormUrlEncoded
|
@FormUrlEncoded
|
||||||
@POST("users/me/blocklist/accounts")
|
@POST("users/me/blocklist/accounts")
|
||||||
@ -327,25 +331,28 @@ public interface PeertubeService {
|
|||||||
|
|
||||||
//Comment
|
//Comment
|
||||||
@GET("videos/{id}/comment-threads")
|
@GET("videos/{id}/comment-threads")
|
||||||
Call<CommentData> getComments(@Path("id") String id, @Query("start") String maxId);
|
Call<CommentData> getComments(@Path("id") String id, @Query("start") String maxId, @Query("count") String count);
|
||||||
|
|
||||||
@GET("videos/{id}/comment-threads/{threadId}")
|
@GET("videos/{id}/comment-threads/{threadId}")
|
||||||
Call<CommentData> getReplies(@Path("id") String id, @Path("threadId") String threadId);
|
Call<CommentData.CommentThreadData> getReplies(@Path("id") String id, @Path("threadId") String threadId);
|
||||||
|
|
||||||
@FormUrlEncoded
|
@FormUrlEncoded
|
||||||
@POST("videos/{id}/comment-threads")
|
@POST("videos/{id}/comment-threads")
|
||||||
Call<String> postComment(@Header("Authorization") String credentials, @Path("id") String id, @Field("text") String text);
|
Call<CommentData.CommentPosted> postComment(@Header("Authorization") String credentials, @Path("id") String id, @Field("text") String text);
|
||||||
|
|
||||||
@FormUrlEncoded
|
@FormUrlEncoded
|
||||||
@POST("videos/{id}/comments/{commentId}")
|
@POST("videos/{id}/comments/{commentId}")
|
||||||
Call<String> postReply(@Header("Authorization") String credentials, @Path("id") String id, @Path("commentId") String commentId, @Field("text") String text);
|
Call<CommentData.CommentPosted> postReply(@Header("Authorization") String credentials, @Path("id") String id, @Path("commentId") String commentId, @Field("text") String text);
|
||||||
|
|
||||||
@DELETE("videos/{id}/comments/{commentId}")
|
@DELETE("videos/{id}/comments/{commentId}")
|
||||||
Call<String> deleteComment(@Header("Authorization") String credentials, @Path("id") String id, @Path("commentId") String 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"})
|
@Headers({"Content-Type: application/json", "Cache-Control: max-age=640000"})
|
||||||
@POST("abuses")
|
@POST("abuses")
|
||||||
Call<String> report(
|
Call<Report.ReportReturn> report(
|
||||||
@Header("Authorization") String credentials,
|
@Header("Authorization") String credentials,
|
||||||
@Body Report report);
|
@Body Report report);
|
||||||
|
|
||||||
|
@ -25,6 +25,7 @@ import android.os.Looper;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
|
import java.net.URL;
|
||||||
import java.net.URLDecoder;
|
import java.net.URLDecoder;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
@ -78,18 +79,22 @@ import retrofit2.Response;
|
|||||||
import retrofit2.Retrofit;
|
import retrofit2.Retrofit;
|
||||||
import retrofit2.converter.gson.GsonConverterFactory;
|
import retrofit2.converter.gson.GsonConverterFactory;
|
||||||
|
|
||||||
|
@SuppressWarnings({"unused", "RedundantSuppression"})
|
||||||
public class RetrofitPeertubeAPI {
|
public class RetrofitPeertubeAPI {
|
||||||
|
|
||||||
private String finalUrl;
|
private final String finalUrl;
|
||||||
private Context _context;
|
private final Context _context;
|
||||||
private String instance;
|
private final String instance;
|
||||||
private String token;
|
private String token;
|
||||||
private Set<String> selection;
|
private Set<String> selection;
|
||||||
|
private final String count;
|
||||||
|
|
||||||
public RetrofitPeertubeAPI(Context context) {
|
public RetrofitPeertubeAPI(Context context) {
|
||||||
_context = context;
|
_context = context;
|
||||||
instance = Helper.getLiveInstance(context);
|
instance = Helper.getLiveInstance(context);
|
||||||
finalUrl = "https://" + Helper.getLiveInstance(context) + "/api/v1/";
|
finalUrl = "https://" + Helper.getLiveInstance(context) + "/api/v1/";
|
||||||
|
SharedPreferences sharedpreferences = _context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
|
count = String.valueOf(sharedpreferences.getInt(Helper.SET_VIDEOS_PER_PAGE, Helper.VIDEOS_PER_PAGE));
|
||||||
}
|
}
|
||||||
|
|
||||||
public RetrofitPeertubeAPI(Context context, String instance, String token) {
|
public RetrofitPeertubeAPI(Context context, String instance, String token) {
|
||||||
@ -97,6 +102,8 @@ public class RetrofitPeertubeAPI {
|
|||||||
this.instance = instance;
|
this.instance = instance;
|
||||||
this.token = token;
|
this.token = token;
|
||||||
finalUrl = "https://" + instance + "/api/v1/";
|
finalUrl = "https://" + instance + "/api/v1/";
|
||||||
|
SharedPreferences sharedpreferences = _context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
|
count = String.valueOf(sharedpreferences.getInt(Helper.SET_VIDEOS_PER_PAGE, Helper.VIDEOS_PER_PAGE));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void updateCredential(Activity activity, String token, String client_id, String client_secret, String refresh_token, String host) {
|
public static void updateCredential(Activity activity, String token, String client_id, String client_secret, String refresh_token, String host) {
|
||||||
@ -231,7 +238,8 @@ public class RetrofitPeertubeAPI {
|
|||||||
public APIResponse getNotifications(String max_id, String since_id) {
|
public APIResponse getNotifications(String max_id, String since_id) {
|
||||||
APIResponse apiResponse = new APIResponse();
|
APIResponse apiResponse = new APIResponse();
|
||||||
PeertubeService peertubeService = init();
|
PeertubeService peertubeService = init();
|
||||||
Call<NotificationData> notificationsCall = peertubeService.getNotifications("Bearer " + token, max_id, since_id);
|
|
||||||
|
Call<NotificationData> notificationsCall = peertubeService.getNotifications("Bearer " + token, max_id, "20", since_id);
|
||||||
try {
|
try {
|
||||||
Response<NotificationData> response = notificationsCall.execute();
|
Response<NotificationData> response = notificationsCall.execute();
|
||||||
if (response.isSuccessful() && response.body() != null) {
|
if (response.isSuccessful() && response.body() != null) {
|
||||||
@ -284,7 +292,7 @@ public class RetrofitPeertubeAPI {
|
|||||||
public APIResponse getVideosForChannel(String channelId, String max_id) {
|
public APIResponse getVideosForChannel(String channelId, String max_id) {
|
||||||
APIResponse apiResponse = new APIResponse();
|
APIResponse apiResponse = new APIResponse();
|
||||||
PeertubeService peertubeService = init();
|
PeertubeService peertubeService = init();
|
||||||
Call<VideoData> videoCall = peertubeService.getChannelVideos(channelId, max_id);
|
Call<VideoData> videoCall = peertubeService.getChannelVideos(channelId, max_id, count);
|
||||||
if (videoCall != null) {
|
if (videoCall != null) {
|
||||||
try {
|
try {
|
||||||
Response<VideoData> response = videoCall.execute();
|
Response<VideoData> response = videoCall.execute();
|
||||||
@ -303,32 +311,39 @@ public class RetrofitPeertubeAPI {
|
|||||||
return apiResponse;
|
return apiResponse;
|
||||||
}
|
}
|
||||||
|
|
||||||
public APIResponse getTL(TimelineVM.TimelineType timelineType, String max_id) {
|
public APIResponse getTL(TimelineVM.TimelineType timelineType, String max_id, String forAccount) {
|
||||||
APIResponse apiResponse = new APIResponse();
|
APIResponse apiResponse = new APIResponse();
|
||||||
PeertubeService peertubeService = init();
|
PeertubeService peertubeService = init();
|
||||||
Call<VideoData> videoCall = null;
|
Call<VideoData> videoCall = null;
|
||||||
ArrayList<String> filter = selection != null ? new ArrayList<>(selection) : null;
|
ArrayList<String> filter = selection != null ? new ArrayList<>(selection) : null;
|
||||||
switch (timelineType) {
|
switch (timelineType) {
|
||||||
case MY_VIDEOS:
|
case MY_VIDEOS:
|
||||||
videoCall = peertubeService.getMyVideos(getToken(), max_id);
|
videoCall = peertubeService.getMyVideos(getToken(), max_id, count);
|
||||||
|
break;
|
||||||
|
case ACCOUNT_VIDEOS:
|
||||||
|
videoCall = peertubeService.getVideosForAccount(forAccount, max_id, count);
|
||||||
break;
|
break;
|
||||||
case SUBSCRIBTIONS:
|
case SUBSCRIBTIONS:
|
||||||
videoCall = peertubeService.getSubscriptionVideos(getToken(), max_id, filter);
|
if (forAccount == null) {
|
||||||
|
videoCall = peertubeService.getSubscriptionVideos(getToken(), max_id, count, filter);
|
||||||
|
} else {
|
||||||
|
videoCall = peertubeService.getChannelVideos(forAccount, max_id, count);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case MOST_LIKED:
|
case MOST_LIKED:
|
||||||
videoCall = peertubeService.getMostLikedVideos(max_id, filter);
|
videoCall = peertubeService.getMostLikedVideos(max_id, count, filter);
|
||||||
break;
|
break;
|
||||||
case LOCAL:
|
case LOCAL:
|
||||||
videoCall = peertubeService.getLocalVideos(max_id, filter);
|
videoCall = peertubeService.getLocalVideos(max_id, count, filter);
|
||||||
break;
|
break;
|
||||||
case TRENDING:
|
case TRENDING:
|
||||||
videoCall = peertubeService.getTrendingVideos(max_id, filter);
|
videoCall = peertubeService.getTrendingVideos(max_id, count, filter);
|
||||||
break;
|
break;
|
||||||
case HISTORY:
|
case HISTORY:
|
||||||
videoCall = peertubeService.getHistory(getToken(), max_id);
|
videoCall = peertubeService.getHistory(getToken(), max_id, count);
|
||||||
break;
|
break;
|
||||||
case RECENT:
|
case RECENT:
|
||||||
videoCall = peertubeService.getRecentlyAddedVideos(max_id, filter);
|
videoCall = peertubeService.getRecentlyAddedVideos(max_id, count, filter);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (videoCall != null) {
|
if (videoCall != null) {
|
||||||
@ -378,21 +393,19 @@ public class RetrofitPeertubeAPI {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if users via their uris are following the authenticated user
|
* Retrieves playlists for a video *synchronously*
|
||||||
*
|
*
|
||||||
* @param uris List<String>
|
* @param videoIds List<String> ids of videos
|
||||||
* @return APIResponse
|
* @return APIResponse
|
||||||
*/
|
*/
|
||||||
public APIResponse isFollowing(String uris) {
|
public APIResponse getVideosExist(List<String> videoIds) {
|
||||||
APIResponse apiResponse = new APIResponse();
|
|
||||||
PeertubeService peertubeService = init();
|
PeertubeService peertubeService = init();
|
||||||
Call<Map<String, Boolean>> followingCall = peertubeService.getSubscriptionExists(getToken(), uris);
|
APIResponse apiResponse = new APIResponse();
|
||||||
try {
|
try {
|
||||||
Response<Map<String, Boolean>> response = followingCall.execute();
|
Call<Map<String, List<PlaylistExist>>> videoExistsInPlaylist = peertubeService.getVideoExistsInPlaylist(getToken(), videoIds);
|
||||||
if (response.isSuccessful()) {
|
Response<Map<String, List<PlaylistExist>>> response = videoExistsInPlaylist.execute();
|
||||||
List<Map<String, Boolean>> relations = new ArrayList<>();
|
if (response.isSuccessful() && response.body() != null) {
|
||||||
relations.add(response.body());
|
apiResponse.setVideoExistPlaylist(response.body());
|
||||||
apiResponse.setRelationships(relations);
|
|
||||||
} else {
|
} else {
|
||||||
setError(apiResponse, response.code(), response.errorBody());
|
setError(apiResponse, response.code(), response.errorBody());
|
||||||
}
|
}
|
||||||
@ -402,6 +415,7 @@ public class RetrofitPeertubeAPI {
|
|||||||
return apiResponse;
|
return apiResponse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if users via their uris are following the authenticated user
|
* Check if users via their uris are following the authenticated user
|
||||||
*
|
*
|
||||||
@ -411,9 +425,9 @@ public class RetrofitPeertubeAPI {
|
|||||||
public APIResponse areFollowing(List<String> uris) {
|
public APIResponse areFollowing(List<String> uris) {
|
||||||
APIResponse apiResponse = new APIResponse();
|
APIResponse apiResponse = new APIResponse();
|
||||||
PeertubeService peertubeService = init();
|
PeertubeService peertubeService = init();
|
||||||
Call<List<Map<String, Boolean>>> followingCall = peertubeService.getSubscriptionsExist(getToken(), uris);
|
Call<Map<String, Boolean>> followingCall = peertubeService.getSubscriptionsExist(getToken(), uris);
|
||||||
try {
|
try {
|
||||||
Response<List<Map<String, Boolean>>> response = followingCall.execute();
|
Response<Map<String, Boolean>> response = followingCall.execute();
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
apiResponse.setRelationships(response.body());
|
apiResponse.setRelationships(response.body());
|
||||||
} else {
|
} else {
|
||||||
@ -543,10 +557,17 @@ public class RetrofitPeertubeAPI {
|
|||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
String lang = null;
|
String lang = Locale.getDefault().getLanguage();
|
||||||
if (PeertubeInformation.langueMapped.containsKey(Locale.getDefault().getLanguage()))
|
if (lang.contains("-")) {
|
||||||
lang = PeertubeInformation.langueMapped.get(Locale.getDefault().getLanguage());
|
if (!lang.split("-")[0].trim().toLowerCase().startsWith("zh")) {
|
||||||
|
lang = lang.split("-")[0];
|
||||||
|
} else {
|
||||||
|
lang = lang.split("-")[0] + "-" + lang.split("-")[1].toUpperCase();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if( lang == null || lang.trim().length() == 0) {
|
||||||
|
lang = "en";
|
||||||
|
}
|
||||||
Call<Map<String, String>> translations = initTranslation().getTranslations(lang);
|
Call<Map<String, String>> translations = initTranslation().getTranslations(lang);
|
||||||
try {
|
try {
|
||||||
Response<Map<String, String>> response = translations.execute();
|
Response<Map<String, String>> response = translations.execute();
|
||||||
@ -556,7 +577,23 @@ public class RetrofitPeertubeAPI {
|
|||||||
Error error = new Error();
|
Error error = new Error();
|
||||||
error.setStatusCode(response.code());
|
error.setStatusCode(response.code());
|
||||||
if (response.errorBody() != null) {
|
if (response.errorBody() != null) {
|
||||||
error.setError(response.errorBody().string());
|
translations = initTranslation().getTranslations("en");
|
||||||
|
try {
|
||||||
|
response = translations.execute();
|
||||||
|
if (response.isSuccessful()) {
|
||||||
|
peertubeInformation.setTranslations(response.body());
|
||||||
|
} else {
|
||||||
|
error = new Error();
|
||||||
|
error.setStatusCode(response.code());
|
||||||
|
if (response.errorBody() != null) {
|
||||||
|
error.setError(response.errorBody().string());
|
||||||
|
} else {
|
||||||
|
error.setError(_context.getString(R.string.toast_error));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
error.setError(_context.getString(R.string.toast_error));
|
error.setError(_context.getString(R.string.toast_error));
|
||||||
}
|
}
|
||||||
@ -610,7 +647,7 @@ public class RetrofitPeertubeAPI {
|
|||||||
*/
|
*/
|
||||||
public APIResponse searchPeertube(String query, String max_id) {
|
public APIResponse searchPeertube(String query, String max_id) {
|
||||||
PeertubeService peertubeService = init();
|
PeertubeService peertubeService = init();
|
||||||
Call<VideoData> searchVideosCall = peertubeService.searchVideos(query, max_id);
|
Call<VideoData> searchVideosCall = peertubeService.searchVideos(query, max_id, count);
|
||||||
APIResponse apiResponse = new APIResponse();
|
APIResponse apiResponse = new APIResponse();
|
||||||
try {
|
try {
|
||||||
Response<VideoData> response = searchVideosCall.execute();
|
Response<VideoData> response = searchVideosCall.execute();
|
||||||
@ -661,12 +698,12 @@ public class RetrofitPeertubeAPI {
|
|||||||
|
|
||||||
public APIResponse report(Report report) {
|
public APIResponse report(Report report) {
|
||||||
PeertubeService peertubeService = init();
|
PeertubeService peertubeService = init();
|
||||||
Call<String> report1 = peertubeService.report(getToken(), report);
|
Call<Report.ReportReturn> report1 = peertubeService.report(getToken(), report);
|
||||||
APIResponse apiResponse = new APIResponse();
|
APIResponse apiResponse = new APIResponse();
|
||||||
try {
|
try {
|
||||||
Response<String> response = report1.execute();
|
Response<Report.ReportReturn> response = report1.execute();
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful() && response.body() != null) {
|
||||||
apiResponse.setActionReturn(response.body());
|
apiResponse.setActionReturn(response.body().getItemStr().getLabel());
|
||||||
} else {
|
} else {
|
||||||
setError(apiResponse, response.code(), response.errorBody());
|
setError(apiResponse, response.code(), response.errorBody());
|
||||||
}
|
}
|
||||||
@ -785,6 +822,9 @@ public class RetrofitPeertubeAPI {
|
|||||||
case PEERTUBEDELETECOMMENT:
|
case PEERTUBEDELETECOMMENT:
|
||||||
postCall = peertubeService.deleteComment(getToken(), id, element);
|
postCall = peertubeService.deleteComment(getToken(), id, element);
|
||||||
break;
|
break;
|
||||||
|
case PEERTUBE_DELETE_ALL_COMMENT_FOR_ACCOUNT:
|
||||||
|
postCall = peertubeService.deleteAllCommentForAccount(getToken(), id, element);
|
||||||
|
break;
|
||||||
case DELETE_CHANNEL:
|
case DELETE_CHANNEL:
|
||||||
postCall = peertubeService.deleteChannel(getToken(), id);
|
postCall = peertubeService.deleteChannel(getToken(), id);
|
||||||
break;
|
break;
|
||||||
@ -807,6 +847,38 @@ public class RetrofitPeertubeAPI {
|
|||||||
return apiResponse;
|
return apiResponse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get single account by its handle
|
||||||
|
*
|
||||||
|
* @param accountHandle String
|
||||||
|
* @return APIResponse
|
||||||
|
*/
|
||||||
|
public APIResponse getAccount(String accountHandle) {
|
||||||
|
PeertubeService peertubeService = init();
|
||||||
|
Call<AccountData.Account> accountDataCall = peertubeService.getAccount(accountHandle);
|
||||||
|
APIResponse apiResponse = new APIResponse();
|
||||||
|
if (accountDataCall != null) {
|
||||||
|
try {
|
||||||
|
Response<AccountData.Account> response = accountDataCall.execute();
|
||||||
|
if (response.isSuccessful() && response.body() != null) {
|
||||||
|
List<AccountData.Account> accountList = new ArrayList<>();
|
||||||
|
accountList.add(response.body());
|
||||||
|
apiResponse.setAccounts(accountList);
|
||||||
|
} else {
|
||||||
|
setError(apiResponse, response.code(), response.errorBody());
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
Error error = new Error();
|
||||||
|
error.setError(_context.getString(R.string.toast_error));
|
||||||
|
apiResponse.setError(error);
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return apiResponse;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get muted accounts
|
* Get muted accounts
|
||||||
*
|
*
|
||||||
@ -815,7 +887,7 @@ public class RetrofitPeertubeAPI {
|
|||||||
*/
|
*/
|
||||||
public APIResponse getMuted(String maxId) {
|
public APIResponse getMuted(String maxId) {
|
||||||
PeertubeService peertubeService = init();
|
PeertubeService peertubeService = init();
|
||||||
Call<BlockData> accountDataCall = peertubeService.getMuted("Bearer " + token, maxId);
|
Call<BlockData> accountDataCall = peertubeService.getMuted("Bearer " + token, maxId, count);
|
||||||
APIResponse apiResponse = new APIResponse();
|
APIResponse apiResponse = new APIResponse();
|
||||||
if (accountDataCall != null) {
|
if (accountDataCall != null) {
|
||||||
try {
|
try {
|
||||||
@ -843,13 +915,13 @@ public class RetrofitPeertubeAPI {
|
|||||||
*/
|
*/
|
||||||
public APIResponse getSubscribtions(String maxId) {
|
public APIResponse getSubscribtions(String maxId) {
|
||||||
PeertubeService peertubeService = init();
|
PeertubeService peertubeService = init();
|
||||||
Call<AccountData> accountDataCall = peertubeService.getSubscription("Bearer " + token, maxId);
|
Call<ChannelData> channelDataCall = peertubeService.getSubscription("Bearer " + token, maxId, count);
|
||||||
APIResponse apiResponse = new APIResponse();
|
APIResponse apiResponse = new APIResponse();
|
||||||
if (accountDataCall != null) {
|
if (channelDataCall != null) {
|
||||||
try {
|
try {
|
||||||
Response<AccountData> response = accountDataCall.execute();
|
Response<ChannelData> response = channelDataCall.execute();
|
||||||
if (response.isSuccessful() && response.body() != null) {
|
if (response.isSuccessful() && response.body() != null) {
|
||||||
apiResponse.setAccounts(response.body().data);
|
apiResponse.setChannels(response.body().data);
|
||||||
} else {
|
} else {
|
||||||
setError(apiResponse, response.code(), response.errorBody());
|
setError(apiResponse, response.code(), response.errorBody());
|
||||||
}
|
}
|
||||||
@ -933,13 +1005,18 @@ public class RetrofitPeertubeAPI {
|
|||||||
* @return APIResponse
|
* @return APIResponse
|
||||||
*/
|
*/
|
||||||
public WellKnownNodeinfo.NodeInfo getNodeInfo() {
|
public WellKnownNodeinfo.NodeInfo getNodeInfo() {
|
||||||
PeertubeService peertubeService = init();
|
PeertubeService peertubeService = initTranslation();
|
||||||
try {
|
try {
|
||||||
Call<WellKnownNodeinfo> wellKnownNodeinfoCall = peertubeService.getWellKnownNodeinfo();
|
Call<WellKnownNodeinfo> wellKnownNodeinfoCall = peertubeService.getWellKnownNodeinfo();
|
||||||
Response<WellKnownNodeinfo> response = wellKnownNodeinfoCall.execute();
|
Response<WellKnownNodeinfo> response = wellKnownNodeinfoCall.execute();
|
||||||
if (response.isSuccessful() && response.body() != null) {
|
if (response.isSuccessful() && response.body() != null) {
|
||||||
if (response.body().getHref() != null) {
|
int size = response.body().getLinks().size();
|
||||||
Call<WellKnownNodeinfo.NodeInfo> nodeinfo = peertubeService.getNodeinfo(response.body().getHref());
|
String url = response.body().getLinks().get(size - 1).getHref();
|
||||||
|
if (size > 0 && url != null) {
|
||||||
|
peertubeService = initTranslation();
|
||||||
|
String path = new URL(url).getPath();
|
||||||
|
path = path.replaceFirst("/", "").trim();
|
||||||
|
Call<WellKnownNodeinfo.NodeInfo> nodeinfo = peertubeService.getNodeinfo(path);
|
||||||
Response<WellKnownNodeinfo.NodeInfo> responseNodeInfo = nodeinfo.execute();
|
Response<WellKnownNodeinfo.NodeInfo> responseNodeInfo = nodeinfo.execute();
|
||||||
return responseNodeInfo.body();
|
return responseNodeInfo.body();
|
||||||
}
|
}
|
||||||
@ -968,7 +1045,6 @@ public class RetrofitPeertubeAPI {
|
|||||||
try {
|
try {
|
||||||
Response<ChannelData> response = channelDataCall.execute();
|
Response<ChannelData> response = channelDataCall.execute();
|
||||||
if (response.isSuccessful() && response.body() != null) {
|
if (response.isSuccessful() && response.body() != null) {
|
||||||
|
|
||||||
apiResponse.setChannels(response.body().data);
|
apiResponse.setChannels(response.body().data);
|
||||||
} else {
|
} else {
|
||||||
setError(apiResponse, response.code(), response.errorBody());
|
setError(apiResponse, response.code(), response.errorBody());
|
||||||
@ -1054,30 +1130,6 @@ public class RetrofitPeertubeAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Retrieves playlists for a video *synchronously*
|
|
||||||
*
|
|
||||||
* @param videoIds List<String> ids of videos
|
|
||||||
* @return APIResponse
|
|
||||||
*/
|
|
||||||
public APIResponse getVideosExist(String videoIds) {
|
|
||||||
PeertubeService peertubeService = init();
|
|
||||||
APIResponse apiResponse = new APIResponse();
|
|
||||||
try {
|
|
||||||
Call<Map<String, List<PlaylistExist>>> videoExistsInPlaylist = peertubeService.getVideoExistsInPlaylist(getToken(), videoIds);
|
|
||||||
Response<Map<String, List<PlaylistExist>>> response = videoExistsInPlaylist.execute();
|
|
||||||
if (response.isSuccessful() && response.body() != null) {
|
|
||||||
apiResponse.setVideoExistPlaylist(response.body());
|
|
||||||
} else {
|
|
||||||
setError(apiResponse, response.code(), response.errorBody());
|
|
||||||
}
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
return apiResponse;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves playlist *synchronously*
|
* Retrieves playlist *synchronously*
|
||||||
*
|
*
|
||||||
@ -1086,12 +1138,11 @@ public class RetrofitPeertubeAPI {
|
|||||||
* @param videoId String id of the video
|
* @param videoId String id of the video
|
||||||
* @return APIResponse
|
* @return APIResponse
|
||||||
*/
|
*/
|
||||||
public APIResponse playlistAction(PlaylistsVM.action type, String playlistId, String videoId, String acct) {
|
public APIResponse playlistAction(PlaylistsVM.action type, String playlistId, String videoId, String acct, String max_id) {
|
||||||
PeertubeService peertubeService = init();
|
PeertubeService peertubeService = init();
|
||||||
|
|
||||||
APIResponse apiResponse = new APIResponse();
|
APIResponse apiResponse = new APIResponse();
|
||||||
try {
|
try {
|
||||||
|
|
||||||
if (type == PlaylistsVM.action.GET_PLAYLIST_INFO) {
|
if (type == PlaylistsVM.action.GET_PLAYLIST_INFO) {
|
||||||
Call<PlaylistData.Playlist> playlistCall = peertubeService.getPlaylist(playlistId);
|
Call<PlaylistData.Playlist> playlistCall = peertubeService.getPlaylist(playlistId);
|
||||||
Response<PlaylistData.Playlist> response = playlistCall.execute();
|
Response<PlaylistData.Playlist> response = playlistCall.execute();
|
||||||
@ -1109,10 +1160,11 @@ public class RetrofitPeertubeAPI {
|
|||||||
if (response.isSuccessful() && response.body() != null) {
|
if (response.isSuccessful() && response.body() != null) {
|
||||||
apiResponse.setPlaylists(response.body().data);
|
apiResponse.setPlaylists(response.body().data);
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
setError(apiResponse, response.code(), response.errorBody());
|
setError(apiResponse, response.code(), response.errorBody());
|
||||||
}
|
}
|
||||||
} else if (type == PlaylistsVM.action.GET_LIST_VIDEOS) {
|
} else if (type == PlaylistsVM.action.GET_LIST_VIDEOS) {
|
||||||
Call<VideoPlaylistData> videosPlayList = peertubeService.getVideosPlayList(getToken(), playlistId);
|
Call<VideoPlaylistData> videosPlayList = peertubeService.getVideosPlayList(getToken(), playlistId, max_id, count);
|
||||||
Response<VideoPlaylistData> response = videosPlayList.execute();
|
Response<VideoPlaylistData> response = videosPlayList.execute();
|
||||||
if (response.isSuccessful() && response.body() != null) {
|
if (response.isSuccessful() && response.body() != null) {
|
||||||
apiResponse.setVideoPlaylist(response.body().data);
|
apiResponse.setVideoPlaylist(response.body().data);
|
||||||
@ -1178,7 +1230,7 @@ public class RetrofitPeertubeAPI {
|
|||||||
APIResponse apiResponse = new APIResponse();
|
APIResponse apiResponse = new APIResponse();
|
||||||
try {
|
try {
|
||||||
if (type == CommentVM.action.GET_THREAD) {
|
if (type == CommentVM.action.GET_THREAD) {
|
||||||
Call<CommentData> commentsCall = peertubeService.getComments(videoId, max_id);
|
Call<CommentData> commentsCall = peertubeService.getComments(videoId, max_id, count);
|
||||||
Response<CommentData> response = commentsCall.execute();
|
Response<CommentData> response = commentsCall.execute();
|
||||||
if (response.isSuccessful() && response.body() != null) {
|
if (response.isSuccessful() && response.body() != null) {
|
||||||
apiResponse.setComments(response.body().data);
|
apiResponse.setComments(response.body().data);
|
||||||
@ -1186,10 +1238,10 @@ public class RetrofitPeertubeAPI {
|
|||||||
setError(apiResponse, response.code(), response.errorBody());
|
setError(apiResponse, response.code(), response.errorBody());
|
||||||
}
|
}
|
||||||
} else if (type == CommentVM.action.GET_REPLIES) {
|
} else if (type == CommentVM.action.GET_REPLIES) {
|
||||||
Call<CommentData> commentsCall = peertubeService.getReplies(videoId, forCommentId);
|
Call<CommentData.CommentThreadData> commentsCall = peertubeService.getReplies(videoId, forCommentId);
|
||||||
Response<CommentData> response = commentsCall.execute();
|
Response<CommentData.CommentThreadData> response = commentsCall.execute();
|
||||||
if (response.isSuccessful() && response.body() != null) {
|
if (response.isSuccessful() && response.body() != null) {
|
||||||
apiResponse.setComments(response.body().data);
|
apiResponse.setCommentThreadData(response.body());
|
||||||
} else {
|
} else {
|
||||||
setError(apiResponse, response.code(), response.errorBody());
|
setError(apiResponse, response.code(), response.errorBody());
|
||||||
}
|
}
|
||||||
@ -1218,18 +1270,22 @@ public class RetrofitPeertubeAPI {
|
|||||||
APIResponse apiResponse = new APIResponse();
|
APIResponse apiResponse = new APIResponse();
|
||||||
try {
|
try {
|
||||||
if (type == ActionType.ADD_COMMENT) {
|
if (type == ActionType.ADD_COMMENT) {
|
||||||
Call<String> stringCall = peertubeService.postComment(getToken(), videoId, text);
|
Call<CommentData.CommentPosted> commentPostedCall = peertubeService.postComment(getToken(), videoId, text);
|
||||||
Response<String> response = stringCall.execute();
|
Response<CommentData.CommentPosted> response = commentPostedCall.execute();
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful() && response.body() != null) {
|
||||||
apiResponse.setActionReturn(response.body());
|
List<CommentData.Comment> comments = new ArrayList<>();
|
||||||
|
comments.add(response.body().getComment());
|
||||||
|
apiResponse.setComments(comments);
|
||||||
} else {
|
} else {
|
||||||
setError(apiResponse, response.code(), response.errorBody());
|
setError(apiResponse, response.code(), response.errorBody());
|
||||||
}
|
}
|
||||||
} else if (type == ActionType.REPLY) {
|
} else if (type == ActionType.REPLY) {
|
||||||
Call<String> stringCall = peertubeService.postReply(getToken(), videoId, toCommentId, text);
|
Call<CommentData.CommentPosted> commentPostedCall = peertubeService.postReply(getToken(), videoId, toCommentId, text);
|
||||||
Response<String> response = stringCall.execute();
|
Response<CommentData.CommentPosted> response = commentPostedCall.execute();
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful() && response.body() != null) {
|
||||||
apiResponse.setActionReturn(response.body());
|
List<CommentData.Comment> comments = new ArrayList<>();
|
||||||
|
comments.add(response.body().getComment());
|
||||||
|
apiResponse.setComments(comments);
|
||||||
} else {
|
} else {
|
||||||
setError(apiResponse, response.code(), response.errorBody());
|
setError(apiResponse, response.code(), response.errorBody());
|
||||||
}
|
}
|
||||||
@ -1332,6 +1388,7 @@ public class RetrofitPeertubeAPI {
|
|||||||
APIResponse apiResponse = new APIResponse();
|
APIResponse apiResponse = new APIResponse();
|
||||||
try {
|
try {
|
||||||
Response<VideoData.Video> response = video.execute();
|
Response<VideoData.Video> response = video.execute();
|
||||||
|
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
List<VideoData.Video> videos = new ArrayList<>();
|
List<VideoData.Video> videos = new ArrayList<>();
|
||||||
videos.add(response.body());
|
videos.add(response.body());
|
||||||
@ -1372,6 +1429,7 @@ public class RetrofitPeertubeAPI {
|
|||||||
UNMUTE,
|
UNMUTE,
|
||||||
RATEVIDEO,
|
RATEVIDEO,
|
||||||
PEERTUBEDELETECOMMENT,
|
PEERTUBEDELETECOMMENT,
|
||||||
|
PEERTUBE_DELETE_ALL_COMMENT_FOR_ACCOUNT,
|
||||||
PEERTUBEDELETEVIDEO,
|
PEERTUBEDELETEVIDEO,
|
||||||
REPORT_VIDEO,
|
REPORT_VIDEO,
|
||||||
REPORT_ACCOUNT,
|
REPORT_ACCOUNT,
|
||||||
|
@ -0,0 +1,86 @@
|
|||||||
|
package app.fedilab.fedilabtube.client;
|
||||||
|
/* 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 java.io.IOException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
|
import app.fedilab.fedilabtube.client.data.VideoData;
|
||||||
|
import app.fedilab.fedilabtube.client.entities.SepiaSearch;
|
||||||
|
import app.fedilab.fedilabtube.helper.Helper;
|
||||||
|
import retrofit2.Call;
|
||||||
|
import retrofit2.Response;
|
||||||
|
import retrofit2.Retrofit;
|
||||||
|
import retrofit2.converter.gson.GsonConverterFactory;
|
||||||
|
|
||||||
|
public class RetrofitSepiaSearchAPI {
|
||||||
|
|
||||||
|
|
||||||
|
private String finalUrl;
|
||||||
|
|
||||||
|
|
||||||
|
public RetrofitSepiaSearchAPI() {
|
||||||
|
finalUrl = "https://search.joinpeertube.org/api/v1/";
|
||||||
|
}
|
||||||
|
|
||||||
|
private SepiaSearchService init() {
|
||||||
|
Retrofit retrofit = new Retrofit.Builder()
|
||||||
|
.baseUrl(finalUrl)
|
||||||
|
.addConverterFactory(GsonConverterFactory.create())
|
||||||
|
.build();
|
||||||
|
return retrofit.create(SepiaSearchService.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return videos for a sepia search
|
||||||
|
* @param sepiaSearch SepiaSearch
|
||||||
|
* @return VideoData
|
||||||
|
*/
|
||||||
|
public VideoData getVideos(SepiaSearch sepiaSearch) {
|
||||||
|
SepiaSearchService sepiaSearchService = init();
|
||||||
|
SimpleDateFormat fmtOut = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.ENGLISH);
|
||||||
|
String startDate = null;
|
||||||
|
if(sepiaSearch.getStartDate() != null) {
|
||||||
|
startDate = fmtOut.format(sepiaSearch.getStartDate());
|
||||||
|
}
|
||||||
|
Call<VideoData> videoDataCall = sepiaSearchService.getVideos(
|
||||||
|
sepiaSearch.getStart(),
|
||||||
|
sepiaSearch.getCount(),
|
||||||
|
sepiaSearch.getSearch(),
|
||||||
|
sepiaSearch.getDurationMin(),
|
||||||
|
sepiaSearch.getDurationMax(),
|
||||||
|
startDate,
|
||||||
|
sepiaSearch.getBoostLanguages(),
|
||||||
|
sepiaSearch.getCategoryOneOf(),
|
||||||
|
sepiaSearch.getLicenceOneOf(),
|
||||||
|
sepiaSearch.getTagsOneOf(),
|
||||||
|
sepiaSearch.getTagsAllOf(),
|
||||||
|
sepiaSearch.isNsfw(),
|
||||||
|
sepiaSearch.getSort());
|
||||||
|
|
||||||
|
try {
|
||||||
|
Response<VideoData> response = videoDataCall.execute();
|
||||||
|
if (response.isSuccessful() && response.body() != null) {
|
||||||
|
return response.body();
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,54 @@
|
|||||||
|
package app.fedilab.fedilabtube.client;
|
||||||
|
/* 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 java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import app.fedilab.fedilabtube.client.data.ChannelData;
|
||||||
|
import app.fedilab.fedilabtube.client.data.VideoData;
|
||||||
|
import retrofit2.Call;
|
||||||
|
import retrofit2.http.GET;
|
||||||
|
import retrofit2.http.Query;
|
||||||
|
|
||||||
|
interface SepiaSearchService {
|
||||||
|
|
||||||
|
@GET("search/videos")
|
||||||
|
Call<VideoData> getVideos(
|
||||||
|
@Query("start") String maxId,
|
||||||
|
@Query("count") String count,
|
||||||
|
@Query("search") String search,
|
||||||
|
@Query("durationMin") int durationMin,
|
||||||
|
@Query("durationMax") int durationMax,
|
||||||
|
@Query("startDate") String startDate,
|
||||||
|
@Query("boostLanguages") List<String> languageOneOf,
|
||||||
|
@Query("categoryOneOf") List<Integer> categoryOneOf,
|
||||||
|
@Query("licenceOneOf") List<Integer> licenceOneOf,
|
||||||
|
@Query("tagsOneOf") List<String> tagsOneOf,
|
||||||
|
@Query("tagsAllOf") List<String> tagsAllOf,
|
||||||
|
@Query("nsfw") boolean nsfw,
|
||||||
|
@Query("sort") String sort
|
||||||
|
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
@GET("search/channels")
|
||||||
|
Call<ChannelData> getChannels(
|
||||||
|
@Query("search") String search,
|
||||||
|
@Query("start") String maxId,
|
||||||
|
@Query("count") String count
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
@ -25,7 +25,7 @@ import java.util.List;
|
|||||||
import app.fedilab.fedilabtube.client.entities.Avatar;
|
import app.fedilab.fedilabtube.client.entities.Avatar;
|
||||||
|
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings({"unused", "RedundantSuppression"})
|
||||||
public class AccountData {
|
public class AccountData {
|
||||||
|
|
||||||
@SerializedName("total")
|
@SerializedName("total")
|
||||||
@ -77,7 +77,7 @@ public class AccountData {
|
|||||||
private String client_id;
|
private String client_id;
|
||||||
private String client_secret;
|
private String client_secret;
|
||||||
private String refresh_token;
|
private String refresh_token;
|
||||||
private boolean selected;
|
|
||||||
|
|
||||||
public Account() {
|
public Account() {
|
||||||
}
|
}
|
||||||
@ -197,14 +197,6 @@ public class AccountData {
|
|||||||
this.url = url;
|
this.url = url;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isSelected() {
|
|
||||||
return selected;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSelected(boolean selected) {
|
|
||||||
this.selected = selected;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getAcct() {
|
public String getAcct() {
|
||||||
return name + "@" + host;
|
return name + "@" + host;
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,7 @@ import com.google.gson.annotations.SerializedName;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@SuppressWarnings({"unused", "RedundantSuppression"})
|
||||||
public class BlockData {
|
public class BlockData {
|
||||||
|
|
||||||
@SerializedName("total")
|
@SerializedName("total")
|
||||||
|
@ -20,7 +20,7 @@ import java.util.List;
|
|||||||
|
|
||||||
import app.fedilab.fedilabtube.client.entities.ItemStr;
|
import app.fedilab.fedilabtube.client.entities.ItemStr;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings({"unused", "RedundantSuppression"})
|
||||||
public class CaptionData {
|
public class CaptionData {
|
||||||
|
|
||||||
@SerializedName("total")
|
@SerializedName("total")
|
||||||
|
@ -27,7 +27,7 @@ import app.fedilab.fedilabtube.client.entities.Avatar;
|
|||||||
import app.fedilab.fedilabtube.client.entities.ItemStr;
|
import app.fedilab.fedilabtube.client.entities.ItemStr;
|
||||||
import app.fedilab.fedilabtube.client.entities.ViewsPerDay;
|
import app.fedilab.fedilabtube.client.entities.ViewsPerDay;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings({"unused", "RedundantSuppression"})
|
||||||
public class ChannelData {
|
public class ChannelData {
|
||||||
|
|
||||||
@SerializedName("total")
|
@SerializedName("total")
|
||||||
@ -80,6 +80,7 @@ public class ChannelData {
|
|||||||
@SerializedName("viewsPerDay")
|
@SerializedName("viewsPerDay")
|
||||||
private List<ViewsPerDay> viewsPerDays;
|
private List<ViewsPerDay> viewsPerDays;
|
||||||
private String acct;
|
private String acct;
|
||||||
|
private boolean selected;
|
||||||
|
|
||||||
public Channel() {
|
public Channel() {
|
||||||
}
|
}
|
||||||
@ -243,6 +244,14 @@ public class ChannelData {
|
|||||||
this.viewsPerDays = viewsPerDays;
|
this.viewsPerDays = viewsPerDays;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isSelected() {
|
||||||
|
return selected;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSelected(boolean selected) {
|
||||||
|
this.selected = selected;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int describeContents() {
|
public int describeContents() {
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -19,7 +19,7 @@ import com.google.gson.annotations.SerializedName;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings({"unused", "RedundantSuppression"})
|
||||||
public class CommentData {
|
public class CommentData {
|
||||||
|
|
||||||
@SerializedName("total")
|
@SerializedName("total")
|
||||||
@ -56,6 +56,8 @@ public class CommentData {
|
|||||||
private String url;
|
private String url;
|
||||||
@SerializedName("videoId")
|
@SerializedName("videoId")
|
||||||
private String videoId;
|
private String videoId;
|
||||||
|
private boolean isReply = false;
|
||||||
|
private boolean isReplyViewOpen = false;
|
||||||
|
|
||||||
|
|
||||||
public AccountData.Account getAccount() {
|
public AccountData.Account getAccount() {
|
||||||
@ -161,8 +163,63 @@ public class CommentData {
|
|||||||
public void setVideoId(String videoId) {
|
public void setVideoId(String videoId) {
|
||||||
this.videoId = videoId;
|
this.videoId = videoId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isReply() {
|
||||||
|
return isReply;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setReply(boolean reply) {
|
||||||
|
isReply = reply;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isReplyViewOpen() {
|
||||||
|
return isReplyViewOpen;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setReplyViewOpen(boolean replyViewOpen) {
|
||||||
|
isReplyViewOpen = replyViewOpen;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static class CommentThreadData {
|
||||||
|
|
||||||
|
@SerializedName("comment")
|
||||||
|
public Comment comment;
|
||||||
|
@SerializedName("children")
|
||||||
|
public List<CommentThreadData> children;
|
||||||
|
|
||||||
|
public Comment getComment() {
|
||||||
|
return comment;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setComment(Comment comment) {
|
||||||
|
this.comment = comment;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<CommentThreadData> getChildren() {
|
||||||
|
return children;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setChildren(List<CommentThreadData> children) {
|
||||||
|
this.children = children;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class CommentPosted{
|
||||||
|
@SerializedName("comment")
|
||||||
|
private Comment comment;
|
||||||
|
|
||||||
|
public Comment getComment() {
|
||||||
|
return comment;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setComment(Comment comment) {
|
||||||
|
this.comment = comment;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public static class NotificationComment {
|
public static class NotificationComment {
|
||||||
@SerializedName("id")
|
@SerializedName("id")
|
||||||
private String id;
|
private String id;
|
||||||
|
@ -7,7 +7,7 @@ import com.google.gson.annotations.SerializedName;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings({"unused", "RedundantSuppression"})
|
||||||
public class InstanceData {
|
public class InstanceData {
|
||||||
|
|
||||||
@SerializedName("total")
|
@SerializedName("total")
|
||||||
|
@ -23,7 +23,7 @@ import app.fedilab.fedilabtube.client.entities.VideoBlacklist;
|
|||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License along with TubeLab; if not,
|
* You should have received a copy of the GNU General Public License along with TubeLab; if not,
|
||||||
* see <http://www.gnu.org/licenses>. */
|
* see <http://www.gnu.org/licenses>. */
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings({"unused", "RedundantSuppression"})
|
||||||
public class NotificationData {
|
public class NotificationData {
|
||||||
|
|
||||||
@SerializedName("total")
|
@SerializedName("total")
|
||||||
@ -46,6 +46,8 @@ public class NotificationData {
|
|||||||
private CommentData.NotificationComment comment;
|
private CommentData.NotificationComment comment;
|
||||||
@SerializedName("videoAbuse")
|
@SerializedName("videoAbuse")
|
||||||
private VideoAbuse videoAbuse;
|
private VideoAbuse videoAbuse;
|
||||||
|
@SerializedName("abuse")
|
||||||
|
private VideoAbuse.Abuse abuse;
|
||||||
@SerializedName("videoBlacklist")
|
@SerializedName("videoBlacklist")
|
||||||
private VideoBlacklist videoBlacklist;
|
private VideoBlacklist videoBlacklist;
|
||||||
@SerializedName("account")
|
@SerializedName("account")
|
||||||
@ -153,5 +155,13 @@ public class NotificationData {
|
|||||||
public void setUpdatedAt(Date updatedAt) {
|
public void setUpdatedAt(Date updatedAt) {
|
||||||
this.updatedAt = updatedAt;
|
this.updatedAt = updatedAt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public VideoAbuse.Abuse getAbuse() {
|
||||||
|
return abuse;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAbuse(VideoAbuse.Abuse abuse) {
|
||||||
|
this.abuse = abuse;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@ import java.util.List;
|
|||||||
|
|
||||||
import app.fedilab.fedilabtube.client.entities.Item;
|
import app.fedilab.fedilabtube.client.entities.Item;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings({"unused", "RedundantSuppression"})
|
||||||
public class PlaylistData {
|
public class PlaylistData {
|
||||||
|
|
||||||
@SerializedName("total")
|
@SerializedName("total")
|
||||||
|
@ -30,11 +30,12 @@ import app.fedilab.fedilabtube.client.data.AccountData.Account;
|
|||||||
import app.fedilab.fedilabtube.client.entities.File;
|
import app.fedilab.fedilabtube.client.entities.File;
|
||||||
import app.fedilab.fedilabtube.client.entities.Item;
|
import app.fedilab.fedilabtube.client.entities.Item;
|
||||||
import app.fedilab.fedilabtube.client.entities.ItemStr;
|
import app.fedilab.fedilabtube.client.entities.ItemStr;
|
||||||
|
import app.fedilab.fedilabtube.client.entities.PlaylistExist;
|
||||||
import app.fedilab.fedilabtube.client.entities.StreamingPlaylists;
|
import app.fedilab.fedilabtube.client.entities.StreamingPlaylists;
|
||||||
import app.fedilab.fedilabtube.helper.Helper;
|
import app.fedilab.fedilabtube.helper.Helper;
|
||||||
|
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings({"unused", "RedundantSuppression"})
|
||||||
public class VideoData {
|
public class VideoData {
|
||||||
|
|
||||||
@SerializedName("total")
|
@SerializedName("total")
|
||||||
@ -80,6 +81,8 @@ public class VideoData {
|
|||||||
private int duration;
|
private int duration;
|
||||||
@SerializedName("embedPath")
|
@SerializedName("embedPath")
|
||||||
private String embedPath;
|
private String embedPath;
|
||||||
|
@SerializedName("embedUrl")
|
||||||
|
private String embedUrl;
|
||||||
@SerializedName("files")
|
@SerializedName("files")
|
||||||
private List<File> files;
|
private List<File> files;
|
||||||
@SerializedName("id")
|
@SerializedName("id")
|
||||||
@ -129,6 +132,7 @@ public class VideoData {
|
|||||||
private boolean hasTitle = false;
|
private boolean hasTitle = false;
|
||||||
private String title;
|
private String title;
|
||||||
private titleType titleType;
|
private titleType titleType;
|
||||||
|
private List<PlaylistExist> playlistExists;
|
||||||
|
|
||||||
public Video() {
|
public Video() {
|
||||||
}
|
}
|
||||||
@ -149,6 +153,7 @@ public class VideoData {
|
|||||||
this.downloadEnabled = in.readByte() != 0;
|
this.downloadEnabled = in.readByte() != 0;
|
||||||
this.duration = in.readInt();
|
this.duration = in.readInt();
|
||||||
this.embedPath = in.readString();
|
this.embedPath = in.readString();
|
||||||
|
this.embedUrl = in.readString();
|
||||||
this.files = new ArrayList<>();
|
this.files = new ArrayList<>();
|
||||||
in.readList(this.files, File.class.getClassLoader());
|
in.readList(this.files, File.class.getClassLoader());
|
||||||
this.id = in.readString();
|
this.id = in.readString();
|
||||||
@ -182,24 +187,34 @@ public class VideoData {
|
|||||||
public String getFileUrl(String resolution, Context context) {
|
public String getFileUrl(String resolution, Context context) {
|
||||||
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
boolean streamService = sharedpreferences.getInt(Helper.SET_VIDEO_MODE, Helper.VIDEO_MODE_NORMAL) == Helper.VIDEO_MODE_STREAMING;
|
boolean streamService = sharedpreferences.getInt(Helper.SET_VIDEO_MODE, Helper.VIDEO_MODE_NORMAL) == Helper.VIDEO_MODE_STREAMING;
|
||||||
if (resolution != null) {
|
if (files != null && files.size() > 0) {
|
||||||
for (File file : files) {
|
if (resolution != null) {
|
||||||
if (file.getResolutions().getLabel().compareTo(resolution) == 0) {
|
for (File file : files) {
|
||||||
if (streamService) {
|
if (file.getResolutions().getLabel().compareTo(resolution) == 0) {
|
||||||
return file.getMagnetUri();
|
if (streamService) {
|
||||||
} else {
|
return file.getMagnetUri();
|
||||||
return file.getFileUrl();
|
} else {
|
||||||
|
return file.getFileUrl();
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
File file = Helper.defaultFile(context, files);
|
||||||
if (streamService) {
|
if (file != null) {
|
||||||
return Helper.defaultFile(context, files).getMagnetUri();
|
if (streamService) {
|
||||||
} else {
|
return file.getMagnetUri();
|
||||||
return Helper.defaultFile(context, files).getFileUrl();
|
} else {
|
||||||
|
return file.getFileUrl();
|
||||||
|
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
} else if (streamingPlaylists != null && streamingPlaylists.size() > 0) {
|
||||||
|
return streamingPlaylists.get(0).getPlaylistUrl();
|
||||||
}
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getTorrentUrl(String resolution, Context context) {
|
public String getTorrentUrl(String resolution, Context context) {
|
||||||
@ -337,6 +352,14 @@ public class VideoData {
|
|||||||
this.embedPath = embedPath;
|
this.embedPath = embedPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getEmbedUrl() {
|
||||||
|
return embedUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEmbedUrl(String embedUrl) {
|
||||||
|
this.embedUrl = embedUrl;
|
||||||
|
}
|
||||||
|
|
||||||
public List<File> getFiles() {
|
public List<File> getFiles() {
|
||||||
return files;
|
return files;
|
||||||
}
|
}
|
||||||
@ -545,6 +568,14 @@ public class VideoData {
|
|||||||
this.titleType = titleType;
|
this.titleType = titleType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<PlaylistExist> getPlaylistExists() {
|
||||||
|
return playlistExists;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPlaylistExists(List<PlaylistExist> playlistExists) {
|
||||||
|
this.playlistExists = playlistExists;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int describeContents() {
|
public int describeContents() {
|
||||||
return 0;
|
return 0;
|
||||||
@ -565,6 +596,7 @@ public class VideoData {
|
|||||||
dest.writeByte(this.downloadEnabled ? (byte) 1 : (byte) 0);
|
dest.writeByte(this.downloadEnabled ? (byte) 1 : (byte) 0);
|
||||||
dest.writeInt(this.duration);
|
dest.writeInt(this.duration);
|
||||||
dest.writeString(this.embedPath);
|
dest.writeString(this.embedPath);
|
||||||
|
dest.writeString(this.embedUrl);
|
||||||
dest.writeList(this.files);
|
dest.writeList(this.files);
|
||||||
dest.writeString(this.id);
|
dest.writeString(this.id);
|
||||||
dest.writeByte(this.isLocal ? (byte) 1 : (byte) 0);
|
dest.writeByte(this.isLocal ? (byte) 1 : (byte) 0);
|
||||||
|
@ -20,7 +20,7 @@ import com.google.gson.annotations.SerializedName;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings({"unused", "RedundantSuppression"})
|
||||||
public class VideoPlaylistData {
|
public class VideoPlaylistData {
|
||||||
|
|
||||||
@SerializedName("total")
|
@SerializedName("total")
|
||||||
|
@ -14,7 +14,7 @@ package app.fedilab.fedilabtube.client.entities;
|
|||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License along with TubeLab; if not,
|
* You should have received a copy of the GNU General Public License along with TubeLab; if not,
|
||||||
* see <http://www.gnu.org/licenses>. */
|
* see <http://www.gnu.org/licenses>. */
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings({"unused", "RedundantSuppression"})
|
||||||
public class AccountCreation {
|
public class AccountCreation {
|
||||||
|
|
||||||
private String username;
|
private String username;
|
||||||
|
@ -16,6 +16,7 @@ package app.fedilab.fedilabtube.client.entities;
|
|||||||
|
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
@SuppressWarnings({"unused", "RedundantSuppression"})
|
||||||
public class Actor {
|
public class Actor {
|
||||||
@SerializedName("type")
|
@SerializedName("type")
|
||||||
private String type;
|
private String type;
|
||||||
|
@ -16,7 +16,7 @@ package app.fedilab.fedilabtube.client.entities;
|
|||||||
|
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings({"unused", "RedundantSuppression"})
|
||||||
public class ActorFollow {
|
public class ActorFollow {
|
||||||
|
|
||||||
@SerializedName("id")
|
@SerializedName("id")
|
||||||
|
@ -21,7 +21,7 @@ import java.util.Date;
|
|||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License along with TubeLab; if not,
|
* You should have received a copy of the GNU General Public License along with TubeLab; if not,
|
||||||
* see <http://www.gnu.org/licenses>. */
|
* see <http://www.gnu.org/licenses>. */
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings({"unused", "RedundantSuppression"})
|
||||||
public class Avatar implements Parcelable {
|
public class Avatar implements Parcelable {
|
||||||
|
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ package app.fedilab.fedilabtube.client.entities;
|
|||||||
|
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings({"unused", "RedundantSuppression"})
|
||||||
public class CaptionsParams {
|
public class CaptionsParams {
|
||||||
|
|
||||||
@SerializedName("captionLanguage")
|
@SerializedName("captionLanguage")
|
||||||
|
@ -16,7 +16,7 @@ package app.fedilab.fedilabtube.client.entities;
|
|||||||
|
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings({"unused", "RedundantSuppression"})
|
||||||
public class ChannelParams {
|
public class ChannelParams {
|
||||||
|
|
||||||
@SerializedName("displayName")
|
@SerializedName("displayName")
|
||||||
|
@ -22,6 +22,7 @@ import android.widget.Toast;
|
|||||||
import app.fedilab.fedilabtube.R;
|
import app.fedilab.fedilabtube.R;
|
||||||
import es.dmoral.toasty.Toasty;
|
import es.dmoral.toasty.Toasty;
|
||||||
|
|
||||||
|
@SuppressWarnings({"unused", "RedundantSuppression"})
|
||||||
public class Error extends Throwable {
|
public class Error extends Throwable {
|
||||||
|
|
||||||
private String error = null;
|
private String error = null;
|
||||||
|
@ -3,7 +3,7 @@ package app.fedilab.fedilabtube.client.entities;
|
|||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings({"unused", "RedundantSuppression"})
|
||||||
public class File {
|
public class File {
|
||||||
|
|
||||||
@SerializedName("fileDownloadUrl")
|
@SerializedName("fileDownloadUrl")
|
||||||
|
@ -16,6 +16,7 @@ package app.fedilab.fedilabtube.client.entities;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@SuppressWarnings({"unused", "RedundantSuppression"})
|
||||||
public class InstanceParams {
|
public class InstanceParams {
|
||||||
|
|
||||||
private boolean healthy = true;
|
private boolean healthy = true;
|
||||||
|
@ -19,6 +19,7 @@ import android.os.Parcelable;
|
|||||||
|
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
@SuppressWarnings({"unused", "RedundantSuppression"})
|
||||||
public class Item implements Parcelable {
|
public class Item implements Parcelable {
|
||||||
|
|
||||||
public static final Parcelable.Creator<Item> CREATOR = new Parcelable.Creator<Item>() {
|
public static final Parcelable.Creator<Item> CREATOR = new Parcelable.Creator<Item>() {
|
||||||
|
@ -19,7 +19,7 @@ import android.os.Parcelable;
|
|||||||
|
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings({"unused", "RedundantSuppression"})
|
||||||
public class ItemStr implements Parcelable {
|
public class ItemStr implements Parcelable {
|
||||||
|
|
||||||
public static final Creator<ItemStr> CREATOR = new Creator<ItemStr>() {
|
public static final Creator<ItemStr> CREATOR = new Creator<ItemStr>() {
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user