diff --git a/CHANGELOG.md b/CHANGELOG.md index f57e087..5e4f090 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +### Version 1.0.42 Tag: v1.0.42 (2020-07-04) + * Added appbar at the top of the SettingsActivity (@Poslovitch) + * Improved and added some French translations (@Poslovitch) + * Removed translations for untranslatable strings (@Poslovitch) + * Add stop button to expanded notification, and stop and switch to audio in video window (@dhk2) + * More data in Server search + * VideoList timestamp fix + ### Version 1.0.41 Tag: v1.0.41 (2020-06-28) * Floating window player controls fix (@dhk2) * Updated app icons diff --git a/app/build.gradle b/app/build.gradle index dd038df..701767c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -6,8 +6,8 @@ android { applicationId "net.schueller.peertube" minSdkVersion 21 targetSdkVersion 29 - versionCode 1041 - versionName "1.0.41" + versionCode 1042 + versionName "1.0.42" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" ext { libVersions = [ @@ -62,6 +62,12 @@ android { implementation "com.google.android.exoplayer:exoplayer-smoothstreaming:$libVersions.exoplayer" implementation "com.google.android.exoplayer:extension-mediasession:$libVersions.exoplayer" + // date formatter + implementation 'org.ocpsoft.prettytime:prettytime:4.0.4.Final' + + // Version comparison + implementation 'org.apache.maven:maven-artifact:3.5.0' + // testing testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test:runner:1.2.0' diff --git a/app/src/main/java/net/schueller/peertube/activity/SettingsActivity.java b/app/src/main/java/net/schueller/peertube/activity/SettingsActivity.java index 52db457..38126d2 100644 --- a/app/src/main/java/net/schueller/peertube/activity/SettingsActivity.java +++ b/app/src/main/java/net/schueller/peertube/activity/SettingsActivity.java @@ -38,12 +38,25 @@ public class SettingsActivity extends CommonActivity { .beginTransaction() .replace(R.id.settings, new SettingsFragment()) .commit(); + + // Attaching the layout to the toolbar object + Toolbar toolbar = findViewById(R.id.tool_bar_settings); + // Setting toolbar as the ActionBar with setSupportActionBar() call + setSupportActionBar(toolbar); + ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.setDisplayHomeAsUpEnabled(true); + actionBar.setHomeAsUpIndicator(R.drawable.ic_baseline_close_24); } } + @Override + public boolean onSupportNavigateUp() { + finish(); // close this activity as oppose to navigating up + return false; + } + public static class SettingsFragment extends PreferenceFragmentCompat { @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { diff --git a/app/src/main/java/net/schueller/peertube/activity/VideoPlayActivity.java b/app/src/main/java/net/schueller/peertube/activity/VideoPlayActivity.java index 3f658da..aa33eb1 100644 --- a/app/src/main/java/net/schueller/peertube/activity/VideoPlayActivity.java +++ b/app/src/main/java/net/schueller/peertube/activity/VideoPlayActivity.java @@ -21,11 +21,16 @@ package net.schueller.peertube.activity; import android.annotation.SuppressLint; import android.app.AppOpsManager; +import android.app.PendingIntent; import android.app.PictureInPictureParams; +import android.app.RemoteAction; +import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +import android.content.IntentFilter; import android.content.SharedPreferences; import android.content.res.Configuration; +import android.graphics.drawable.Icon; import android.os.Build; import android.os.Bundle; @@ -49,12 +54,18 @@ import net.schueller.peertube.fragment.VideoMetaDataFragment; import net.schueller.peertube.fragment.VideoPlayerFragment; import net.schueller.peertube.service.VideoPlayerService; + +import java.util.ArrayList; import java.util.Objects; import androidx.fragment.app.FragmentManager; //import static net.schueller.peertube.helper.Constants.BACKGROUND_PLAY_PREF_KEY; +import static com.google.android.exoplayer2.ui.PlayerNotificationManager.ACTION_PAUSE; +import static com.google.android.exoplayer2.ui.PlayerNotificationManager.ACTION_PLAY; +import static com.google.android.exoplayer2.ui.PlayerNotificationManager.ACTION_STOP; +import static net.schueller.peertube.helper.Constants.BACKGROUND_AUDIO; import static net.schueller.peertube.helper.Constants.DEFAULT_THEME; import static net.schueller.peertube.helper.Constants.THEME_PREF_KEY; @@ -62,7 +73,108 @@ public class VideoPlayActivity extends AppCompatActivity { private static final String TAG = "VideoPlayActivity"; + private static boolean floatMode = false; + private static final int REQUEST_CODE = 101; + private BroadcastReceiver receiver; + //This can only be called when in entering pip mode which can't happen if the device doesn't support pip mode. + @SuppressLint("NewApi") + public void makePipControls() { + FragmentManager fragmentManager = getSupportFragmentManager(); + VideoPlayerFragment videoPlayerFragment = (VideoPlayerFragment) fragmentManager.findFragmentById(R.id.video_player_fragment); + ArrayList actions = new ArrayList<>(); + + Intent actionIntent = new Intent(BACKGROUND_AUDIO); + PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), REQUEST_CODE, actionIntent, 0); + @SuppressLint({"NewApi", "LocalSuppress"}) Icon icon = Icon.createWithResource(getApplicationContext(), android.R.drawable.stat_sys_speakerphone); + @SuppressLint({"NewApi", "LocalSuppress"}) RemoteAction remoteAction = new RemoteAction(icon, "close pip", "from pip window custom command", pendingIntent); + actions.add(remoteAction); + + actionIntent = new Intent(ACTION_STOP); + pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), REQUEST_CODE, actionIntent, 0); + icon = Icon.createWithResource(getApplicationContext(), com.google.android.exoplayer2.ui.R.drawable.exo_notification_stop); + remoteAction = new RemoteAction(icon, "play", "stop the media", pendingIntent); + actions.add(remoteAction); + + if (videoPlayerFragment.isPaused()){ + Log.e(TAG,"setting actions with play button"); + actionIntent = new Intent(ACTION_PLAY); + pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), REQUEST_CODE, actionIntent, 0); + icon = Icon.createWithResource(getApplicationContext(), com.google.android.exoplayer2.ui.R.drawable.exo_notification_play); + remoteAction = new RemoteAction(icon, "play", "play the media", pendingIntent); + actions.add(remoteAction); + } else { + Log.e(TAG,"setting actions with pause button"); + actionIntent = new Intent(ACTION_PAUSE); + pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), REQUEST_CODE, actionIntent, 0); + icon = Icon.createWithResource(getApplicationContext(), com.google.android.exoplayer2.ui.R.drawable.exo_notification_pause); + remoteAction = new RemoteAction(icon, "pause", "pause the media", pendingIntent); + actions.add(remoteAction); + } + + + //add custom actions to pip window + PictureInPictureParams params = + new PictureInPictureParams.Builder() + .setActions(actions) + .build(); + setPictureInPictureParams(params); + + } + public void changedToPipMode() { + FragmentManager fragmentManager = getSupportFragmentManager(); + VideoPlayerFragment videoPlayerFragment = (VideoPlayerFragment) fragmentManager.findFragmentById(R.id.video_player_fragment); + + videoPlayerFragment.showControls(false); + //create custom actions + makePipControls(); + + //setup receiver to handle customer actions + IntentFilter filter = new IntentFilter(); + filter.addAction(ACTION_STOP); + filter.addAction(ACTION_PAUSE); + filter.addAction(ACTION_PLAY); + filter.addAction((BACKGROUND_AUDIO)); + receiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); + if (action.equals(ACTION_PAUSE)) { + videoPlayerFragment.pauseVideo(); + makePipControls(); + } + if (action.equals(ACTION_PLAY)) { + videoPlayerFragment.unPauseVideo(); + makePipControls(); + } + + if (action.equals(BACKGROUND_AUDIO)) { + unregisterReceiver(receiver); + finish(); + } + if (action.equals(ACTION_STOP)) { + unregisterReceiver(receiver); + finishAndRemoveTask(); + } + } + }; + registerReceiver(receiver, filter); + + Log.v(TAG, "switched to pip "); + floatMode=true; + videoPlayerFragment.showControls(false); + } + public void changedToNormalMode(){ + FragmentManager fragmentManager = getSupportFragmentManager(); + VideoPlayerFragment videoPlayerFragment = (VideoPlayerFragment) fragmentManager.findFragmentById(R.id.video_player_fragment); + + videoPlayerFragment.showControls(true); + if (receiver != null) { + unregisterReceiver(receiver); + } + Log.v(TAG,"switched to normal"); + floatMode=false; + } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -357,9 +469,11 @@ public class VideoPlayActivity extends AppCompatActivity { VideoPlayerFragment videoPlayerFragment = (VideoPlayerFragment) fragmentManager.findFragmentById(R.id.video_player_fragment); if (isInPictureInPictureMode) { + changedToPipMode(); Log.v(TAG,"switched to pip "); videoPlayerFragment.useController(false); } else { + changedToNormalMode(); Log.v(TAG,"switched to normal"); videoPlayerFragment.useController(true); } diff --git a/app/src/main/java/net/schueller/peertube/adapter/ChannelAdapter.java b/app/src/main/java/net/schueller/peertube/adapter/ChannelAdapter.java index ed4f2ea..4fbbe21 100644 --- a/app/src/main/java/net/schueller/peertube/adapter/ChannelAdapter.java +++ b/app/src/main/java/net/schueller/peertube/adapter/ChannelAdapter.java @@ -160,7 +160,7 @@ public class ChannelAdapter extends RecyclerView.Adapter= 0) { + // show NSFW Icon + if (serverList.get(position).getNSFW()) { + holder.isNSFW.setVisibility(View.VISIBLE); + } + } + + + // select server holder.itemView.setOnClickListener(v -> { -// SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(activity); -// SharedPreferences.Editor editor = sharedPref.edit(); - String serverUrl = APIUrlHelper.cleanServerUrl(serverList.get(position).getHost()); -// editor.putString("pref_api_base", serverUrl); -// editor.apply(); -// -// - Toast.makeText(activity, activity.getString(R.string.server_selection_set_server, serverUrl), Toast.LENGTH_LONG).show(); Intent intent = new Intent(); @@ -138,17 +156,19 @@ public class ServerAdapter extends RecyclerView.Adapter languages; + private Boolean autoBlacklistUserVideosEnabled; + private String defaultNSFWPolicy; + private Boolean isNSFW; private Integer totalUsers; private Integer totalVideos; private Integer totalLocalVideos; private Integer totalInstanceFollowers; private Integer totalInstanceFollowing; - private Boolean supportsIPv6; private String country; - private Integer health; + private Date createdAt; public Integer getId() { return id; @@ -93,6 +100,46 @@ public class Server { this.userVideoQuota = userVideoQuota; } + public Category getCategory() { + return category; + } + + public void setCategory(Category category) { + this.category = category; + } + + public ArrayList getLanguages() { + return languages; + } + + public void setLanguages(ArrayList languages) { + this.languages = languages; + } + + public Boolean getAutoBlacklistUserVideosEnabled() { + return autoBlacklistUserVideosEnabled; + } + + public void setAutoBlacklistUserVideosEnabled(Boolean autoBlacklistUserVideosEnabled) { + this.autoBlacklistUserVideosEnabled = autoBlacklistUserVideosEnabled; + } + + public String getDefaultNSFWPolicy() { + return defaultNSFWPolicy; + } + + public void setDefaultNSFWPolicy(String defaultNSFWPolicy) { + this.defaultNSFWPolicy = defaultNSFWPolicy; + } + + public Boolean getNSFW() { + return isNSFW; + } + + public void setNSFW(Boolean NSFW) { + isNSFW = NSFW; + } + public Integer getTotalUsers() { return totalUsers; } @@ -156,4 +203,12 @@ public class Server { public void setHealth(Integer health) { this.health = health; } + + public Date getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(Date createdAt) { + this.createdAt = createdAt; + } } \ No newline at end of file diff --git a/app/src/main/java/net/schueller/peertube/service/VideoPlayerService.java b/app/src/main/java/net/schueller/peertube/service/VideoPlayerService.java index e3fcb71..d3aa9a8 100644 --- a/app/src/main/java/net/schueller/peertube/service/VideoPlayerService.java +++ b/app/src/main/java/net/schueller/peertube/service/VideoPlayerService.java @@ -64,6 +64,7 @@ import net.schueller.peertube.model.Video; import static android.media.session.PlaybackState.ACTION_PAUSE; import static android.media.session.PlaybackState.ACTION_PLAY; +import static com.google.android.exoplayer2.ui.PlayerNotificationManager.ACTION_STOP; import static net.schueller.peertube.activity.VideoListActivity.EXTRA_VIDEOID; public class VideoPlayerService extends Service { @@ -107,6 +108,7 @@ public class VideoPlayerService extends Service { if (playbackState == ACTION_PLAY) { // this means that play is available, hence the audio is paused or stopped Log.v(TAG, "ACTION_PAUSE: " + playbackState); unregisterReceiver(myNoisyAudioStreamReceiver); + myNoisyAudioStreamReceiver=null; } } } ); @@ -243,6 +245,7 @@ public class VideoPlayerService extends Service { // don't show skip buttons in notification playerNotificationManager.setUseNavigationActions(false); + playerNotificationManager.setUseStopAction(true); playerNotificationManager.setNotificationListener( new PlayerNotificationManager.NotificationListener() { @@ -254,9 +257,18 @@ public class VideoPlayerService extends Service { @Override public void onNotificationCancelled(int notificationId) { Log.v(TAG, "onNotificationCancelled..."); + stopForeground(true); + Intent killFloat = new Intent(ACTION_STOP); + sendBroadcast(killFloat); + /* + Intent killFloat = new Intent(BROADCAST_ACTION); + Intent killFloatingWindow = new Intent(getApplicationContext(),VideoPlayActivity.class); + killFloatingWindow.putExtra("killFloat",true); + startActivity(killFloatingWindow); // TODO: only kill the notification if we no longer have a bound activity stopForeground(true); + */ } } ); diff --git a/app/src/main/res/drawable/ic_baseline_remove_red_eye_24.xml b/app/src/main/res/drawable/ic_baseline_remove_red_eye_24.xml new file mode 100644 index 0000000..a3e222a --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_remove_red_eye_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index de6591a..4fb6dcc 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -1,6 +1,21 @@ + android:layout_height="match_parent" + android:orientation="vertical"> + + + + + + diff --git a/app/src/main/res/layout/row_account_about.xml b/app/src/main/res/layout/row_account_about.xml index a02de1c..cb86831 100644 --- a/app/src/main/res/layout/row_account_about.xml +++ b/app/src/main/res/layout/row_account_about.xml @@ -50,7 +50,7 @@ android:paddingEnd="12dp" /> + + - + android:orientation="vertical"> + + + + + + + + + + + + diff --git a/app/src/main/res/layout/row_video.xml b/app/src/main/res/layout/row_video.xml index afc2c1e..398db17 100644 --- a/app/src/main/res/layout/row_video.xml +++ b/app/src/main/res/layout/row_video.xml @@ -3,6 +3,7 @@ xmlns:card_view="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" + android:focusable="true" card_view:cardCornerRadius="0dp" card_view:cardElevation="0dp" card_view:contentPadding="0dp" @@ -57,7 +58,7 @@ android:paddingEnd="12dp" /> - Thorium - نشاط تشغيل الفيديو الإعدادات تسجيل الدخول @@ -24,13 +22,9 @@ الإشتراكات الحساب - 1.0.0-alpha.7 - https://troll.tv خادوم PeerTube - \u0020-\u0020 \u0020 مشاهدات - \@ الصورة المصغرة للفيديو الصورة الرمزية للحساب عرض NSFW @@ -51,7 +45,6 @@ لاتوجد نتائج المزيد مشاركة - PeerTube الرابط غير صالح. الوضع الداكن أعد تشغيل التطبيق لتنشيط الوضع الداكن. diff --git a/app/src/main/res/values-bn/strings.xml b/app/src/main/res/values-bn/strings.xml index 7277160..0420e84 100644 --- a/app/src/main/res/values-bn/strings.xml +++ b/app/src/main/res/values-bn/strings.xml @@ -1,7 +1,5 @@ - Thorium - VideoPlayActivity সেটিংস সাইন ইন @@ -25,13 +23,9 @@ সাবস্ক্রিপশন অ্যাকাউন্ট - 1.0.0-alpha.7 - https://troll.tv পিয়ারটিউব সার্ভার - \u0020-\u0020 " দৃষ্ট" - \@ ভিডিও থাম্বনেইল অ্যাকাউন্ট অবতার নিষিদ্ধ কন্টেন্ট @@ -43,8 +37,8 @@ একটি টরেন্ট স্ট্রিমের মাধ্যমে ভিডিও প্লেব্যাক করুন। এর জন্য স্টোরেজ অনুমতির প্রয়োজন । (আলফা, স্থিতিশীল নয়!) অনুমতিপত্র -\nগাহ্নু অফেরও সাধারণ গণ অনুমতিপত্র সং.৩.০ -\n +\nগাহ্নু অফেরও সাধারণ গণ অনুমতিপত্র সং.৩.০ +\n \nএই শক্তিশালী কপিলেফট লাইসেন্সের অনুমতি এই চুক্তির উপর নির্ভরশীল যে অনুমতিপত্রের দ্বারা আবদ্ধ সকল কাজ ও পরিবর্তনের সোর্স কোড উপলব্ধ করার মাধ্যমে, যার আওতায় পড়ে অনুমতিপত্রের দ্বারা আবদ্ধ কাজের বৃহত্তর অংশ একই অনুমতিপত্রের আওতায় আনার মাধ্যমে। কপিরাইট এবং লাইসেন্স নোটিশ সংরক্ষণ করা আবশ্যক। অবদানকারীগণ তাদের পেটেন্টর অধিকার অবশ্যই দেয়, যখন একটি পরিমার্জিত সংস্করণ ব্যবহার করে একটি পরিসেবা একটি নেটওয়ার্ক দিয়ে দেয়া হয়, সম্পূর্ণ সোর্স কোড এর পরিমার্জিত সংস্করণ উপলব্ধ তৈরি করা আবশ্যক। সংস্করণ সার্চ পিয়ারটিউব @@ -52,7 +46,6 @@ ফলাফল নেই আরও শেয়ার - PeerTube অবৈধ ইউআরএল। অন্ধকার মোড অন্ধকার মোড কার্যকর করার জন্য অ্যাপ্লিকেশন রিস্টার্ট করো। @@ -157,7 +150,7 @@ লিনগালা লিথুনীয় লোজবান - + লুবা-কাতাঙ্গা লাক্সেমবোর্গীয় ম্যাসিডোনিয় মালাগাসি @@ -272,15 +265,6 @@ Normal ১.৫x 2x - {faw-check} - {faw-expand} - {faw-compress} - {faw-ellipsis-v} - {faw-thumbs-up} - {faw-thumbs-down} - {faw-share} - {faw-download} - {faw-save} ব্যাকগ্রাউন্ড প্লেব্যাক সক্রিয় থাকলে ব্যাকগ্রাউন্ডে ভিডিও প্লে করতে থাকবে। স্থানীয় @@ -298,15 +282,6 @@ ভাষা Tags - pref_token_access - pref_token_refresh - pref_token_expiration - pref_token_type - pref_auth_username - pref_auth_password - none - like - dislike গাঢ় বেগুনি অ্যাকাউন্ট সাম্প্রতিক @@ -331,4 +306,41 @@ নিচের তালিকা থেকে একটি সার্ভার নিন অথবা সরাসরি একটি সার্ভার দিন। 0.75x 1.25x + ব্যাকগ্রউন্ড প্লে এর কনফিগারেশন + লুক এবং ফিল + লগইন আছে + পেছনে অডিও স্ট্রিম হিসেবে চালু রাখুন + সম্পর্কিত + ভিডিও প্লেব্যাক + ভিডিও এর লিস্ট + আকাউন্ট + সার্ভার পাছন্দ করুন + আপনি কি এই সার্ভার রিমুভ করতে চান সার্ভার বই থেকে\? + সার্ভার রিমুভ করুন + এড্রেস বই + যোগ + পাসওয়ার্ড + ইউজারনেম + সার্চ + সার্ভার ইউআরএল + লেবেল + সাহায্য ও মতামত + লগ আউট + সঠিক ইউ আর এল দরকার + সার্ভার লেবেল দরকার + সার্ভার বই খালি আছে + লগইন সফল হয় নি! + লগইন সফল হয়েছে + বাংলা (বাংলাদেশ) + আপনি কি পুরোপুরি সার্চ ইতিহাস মুছে ফেলতে চান\? + সার্চ ইতিহাস মুছে ফেলুন + চালু ভিডিও কি করবে যখন পেছনে যাবে + অ্যান্ড্রয়েড সেটিং এ পিকচার ইন পিকচার পারমিশন বন্ধ আছে এই আয়াপ এ + অ্যান্ড্রয়েড ভার্সন ভাসমান ভিডিও সাপোর্ট করে + ভাসমান উইন্ডো তে ভিডিও চালু রাখুন + সব প্লেব্যাক বন্ধ করুন + ভাষা পছন্দ করুন অ্যাপ্লিকেশান এর জন্য। রিস্টার্ট করুন পরিবর্তন দেখার জন্য। + অ্যাপ্লিকেশান এর ভাষা + ভিডিও চলার সময় ব্যাকগ্রাউন্ড প্লে পজ হবে ব্যাক বাটন প্রেস করলে। + ব্যাক বাটন এ পজ \ No newline at end of file diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 0f3fd83..aae549c 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -16,7 +16,6 @@ Abos Konto PeerTube-Server - VideoPlayActivity Dieses Passwort ist zu kurz Dieses Passwort ist falsch Einstellungen diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 5567530..d1dab69 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -1,7 +1,5 @@ - Thorium - VideoPlayActivity Paramètres Se connecter @@ -24,13 +22,9 @@ Abonnements Compte - 1.0.0-alpha.7 - https://troll.tv Serveur Peertube - \u0020-\u0020 " vues" - \@ Miniature vidéo Avatar du compte Contenu pour adultes @@ -49,7 +43,6 @@ Pas de résultat Plus Partager - PeerTube URL invalide. Mode sombre Redémarrez l’application pour que le mode sombre soit activé. @@ -312,7 +305,7 @@ Serveur actuel 0,75× 1,25× - Livre d\'adresse + Carnet d\'adresses Identification réussie Identification échouée ! a un identifiant @@ -333,4 +326,21 @@ Langue de l\'application Mettre la lecture d\'arrière-plan en pause en appuyant sur la touche de retour pendant la lecture de la vidéo. Pause sur le bouton retour + Apparence + SettingsActivity2 + Bengalais (Bangladesh) + À propos + Compte + Paramètres de lecture en fond + Votre version Android ne supporte pas la lecture de vidéos dans une fenêtre flottante + Le mode Picture-in-Picture est désactivé pour cette applications dans les paramètres Android + Lecture de vidéos + Continuer en fond sonore + Arrêter de lire la vidéo + Continuer dans une fenêtre flottante + Sélectionner le mode de fonctionnement de la lecture de vidéo lorsque l\'application est mise en arrière-plan + Liste de vidéos + Sélectionner un serveur + Retirer un serveur + Voulez-vous vraiment retirer ce serveur de votre carnet d\'adresses ? \ No newline at end of file diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 6f96c67..abfcf6f 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -61,7 +61,6 @@ Beskrivelse: Tok del: Noe gikk galt, prøv igjen senere. - VideoPlayActivity Innvilg kontakttilgang for fullføring av e-postadresser. Populært " visninger" diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 486a798..591194e 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -1,6 +1,5 @@ - VideoPlayActivity Instellingen Inloggen Server @@ -323,4 +322,21 @@ App-taal Pauzeer het afspelen als er op de terugknop wordt gedrukt. Pauzeren na drukken op terugknop + Uiterlijk + Over + Video afspelen + Videolijst + SettingsActivity2 + Account + Server kiezen + Weet je zeker dat je deze server wilt verwijderen uit het adresboek\? + Server verwijderen + Bengaals (Bangladesh) + Hoe een video moet worden afgespeeld op de achtergrond + Picture-in-picturemachtiging is niet afgegeven voor deze app in de Android-instellingen + Deze Android-versie ondersteunt geen zwevende video\'s + Afspelen op achtergrond + Video afspelen in zwevend venster + Afspelen stoppen + Audio afspelen op achtergrond \ No newline at end of file diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 689df8d..6a7f958 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -282,7 +282,6 @@ Beskrivning: Gick med: Någonting gick snett, försök gärna igen om en stund! - VideoPlayActivity Ge åtkomst till kontakter för komplettering av e-postadresser. UrlVideoPlayActivity diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 8312c87..dcb7795 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -1,6 +1,5 @@ - İzleti Oynatma Etkinliği Ayarlar Oturum aç @@ -24,13 +23,9 @@ Abonelikler Hesap - 1.0.0-alpha.7 - https://troll.tv PeerTube Sunucusu - \u0020-\u0020 " Görüntüleme" - \@ İzleti Küçük Resmi Hesap Resmi Ahlaksız İçerik @@ -48,7 +43,6 @@ Sonuç yok Daha Paylaş - PeerTube Geçersiz bağlantı. Karanlık Kipi Karanlık kipin etkinleşmesi için uygulamayı yeniden başlatın. @@ -281,7 +275,7 @@ {faw-share} {faw-download} {faw-save} - Arkaplanda Oynatma + Arka Planda Oynatma Etkinleştirilirse, arka planda izleti oynatmaya devam eder. Yerel Hesap @@ -300,15 +294,6 @@ Oynatma hızı Kalite - pref_token_access - pref_token_refresh - pref_token_expiration - pref_token_type - pref_auth_username - pref_auth_password - none - like - dislike Hesap Yeniler İzletiler @@ -351,4 +336,21 @@ Arama Geçmişini Temizle Uygulama arayüzü için dil seçin. Değişikliklerin etkili olması için uygulamayı yeniden başlatın. Uygulama Dili + Görünüm + Hakkında + Video Oynatma + Video Listesi + SettingsActivity2 + Hesap + Sunucu Seç + Bu sunucuyu adres defterinden kaldırmak istediğinizden emin misiniz\? + Sunucuyu Kaldır + Bengalce (Bangladeş) + Arka plana giderken oynatılan bir videonun nasıl yanıt vereceği + Android Ayarlarında bu uygulama için resim içinde resim izni devre dışı + Android sürümü kayan videoyu desteklemiyor + Kayan pencerede video oynatmaya devam et + Arka planda oynatma yapılandırması + Tüm oynatmaları durdur + Arka planda ses akışı olarak devam et \ No newline at end of file diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index dbba02c..91e491e 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -63,7 +63,6 @@ 视频通过一个种子下载,此选项需要存储权限(实验阶段,不稳定!) 退出 中文 - 视频播放Activity 本字段必填 账户 最近 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index ddce667..039b46c 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -1,6 +1,5 @@ - 影片播放活動 設定 登入 伺服器 @@ -323,4 +322,21 @@ 應用程式語言 當影片播放時按下後退鈕後暫停背景播放。 在後退鈕上暫停 + 外觀與感覺 + 關於 + 影片播放 + 影片清單 + SettingsActivity2 + 帳號 + 選取伺服器 + 您確定您想要從地址簿中移除此伺服器嗎? + 移除伺服器 + 孟加拉語(孟加拉) + 播放影片到背景時如何回應 + 在 Android 設定中已停用此應用程式的畫中畫權限 + Android 版本不支援懸浮影片 + 背景播放設定 + 繼續以懸浮視窗播放影片 + 停止所有播放 + 以背景音訊串流繼續 \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9a70782..543c2a3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -372,6 +372,10 @@ About + PeerTube, a federated (ActivityPub) video streaming platform using P2P (BitTorrent) directly in the web browser with WebTorrent and Angular. + NSFW Instance + Videos: %s, Local Videos: %s + pref_token_access