diff --git a/CHANGELOG.md b/CHANGELOG.md
index 278d0ce..52bc736 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,12 @@
+### Version 1.0.53 Tag: v1.0.53 (2021-01-24)
+ - Making X in pip mode stop background audio properly (@dhk2)
+ - Adding clear search history option to settings menu (@dhk2)
+ - Fix no language selected defaults to all video languages
+ - Updated icon library
+ - Added buffering indicator to video playback
+ - Fixed blank video issues on servers offering 0p video.
+ - Updated translations
+
### Version 1.0.52 Tag: v1.0.52 (2021-01-17)
- Implemented edit server in server book (@kosharskiy)
- Updated translations
diff --git a/app/build.gradle b/app/build.gradle
index ef4901c..0f94fb4 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -109,11 +109,11 @@ dependencies {
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"
implementation "androidx.fragment:fragment-ktx:$fragment_version"
- implementation 'de.hdodenhof:circleimageview:3.0.0'
+ implementation 'de.hdodenhof:circleimageview:3.1.0'
// font awesome
- implementation "com.mikepenz:iconics-core:3.1.0"
- implementation 'com.mikepenz:fontawesome-typeface:5.3.1.1@aar'
+ implementation 'com.mikepenz:iconics-core:5.2.4'
+ implementation 'com.mikepenz:fontawesome-typeface:5.9.0.2-kotlin@aar'
// http client / REST
implementation 'com.squareup.okhttp3:okhttp:4.9.0'
@@ -141,10 +141,10 @@ dependencies {
implementation "com.google.android.exoplayer:extension-okhttp:$exoplayer"
// date formatter
- implementation 'org.ocpsoft.prettytime:prettytime:4.0.4.Final'
+ implementation 'org.ocpsoft.prettytime:prettytime:5.0.0.Final'
// Version comparison
- implementation 'org.apache.maven:maven-artifact:3.5.0'
+ implementation 'org.apache.maven:maven-artifact:3.6.3'
// database lib
implementation "androidx.room:room-runtime:$room_version"
@@ -162,7 +162,7 @@ dependencies {
implementation 'androidx.preference:preference-ktx:1.1.1'
// testing
- testImplementation 'junit:junit:4.13'
+ testImplementation 'junit:junit:4.13.1'
androidTestImplementation 'androidx.test:runner:1.3.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
androidTestImplementation "androidx.room:room-testing:$room_version"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3091705..a872992 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -67,6 +67,13 @@
android:exported="false" />
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/net/schueller/peertube/activity/AccountActivity.java b/app/src/main/java/net/schueller/peertube/activity/AccountActivity.java
index f9006d3..6f933cd 100644
--- a/app/src/main/java/net/schueller/peertube/activity/AccountActivity.java
+++ b/app/src/main/java/net/schueller/peertube/activity/AccountActivity.java
@@ -24,12 +24,11 @@ import android.view.Menu;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
-import android.widget.Toast;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.google.android.material.bottomnavigation.LabelVisibilityMode;
-import com.mikepenz.fontawesome_typeface_library.FontAwesome;
import com.mikepenz.iconics.IconicsDrawable;
+import com.mikepenz.iconics.typeface.library.fontawesome.FontAwesome;
import com.squareup.picasso.Picasso;
import net.schueller.peertube.R;
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 147a3c6..fdc65e5 100644
--- a/app/src/main/java/net/schueller/peertube/activity/SettingsActivity.java
+++ b/app/src/main/java/net/schueller/peertube/activity/SettingsActivity.java
@@ -20,6 +20,7 @@ import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
+import android.provider.SearchRecentSuggestions;
import android.util.Log;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AlertDialog.Builder;
@@ -30,6 +31,7 @@ import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.SwitchPreference;
import net.schueller.peertube.BuildConfig;
import net.schueller.peertube.R;
+import net.schueller.peertube.provider.SearchSuggestionsProvider;
public class SettingsActivity extends CommonActivity {
@@ -108,6 +110,28 @@ public class SettingsActivity extends CommonActivity {
return true;
});
}
+ //clear search history buttonish
+ Preference button = findPreference(getString(R.string.pref_clear_history_key));
+ button.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
+ @Override
+ public boolean onPreferenceClick(Preference preference) {
+ new Builder(preference.getContext())
+ .setTitle(R.string.clear_search_history)
+ .setMessage(R.string.clear_search_history_prompt)
+ .setIcon(R.drawable.ic_info_black_24dp)
+ .setNegativeButton(R.string.pref_insecure_confirm_no, (dialog, whichButton) -> {
+ // do nothing
+ })
+ .setPositiveButton(R.string.pref_insecure_confirm_yes, (dialog, whichButton) -> {
+ // OK has been pressed
+ SearchRecentSuggestions suggestions = new SearchRecentSuggestions(getContext(),
+ SearchSuggestionsProvider.AUTHORITY,
+ SearchSuggestionsProvider.MODE);
+ suggestions.clearHistory();
+ }).create().show();
+ return true;
+ }
+ });
}
}
}
\ No newline at end of file
diff --git a/app/src/main/java/net/schueller/peertube/activity/VideoListActivity.java b/app/src/main/java/net/schueller/peertube/activity/VideoListActivity.java
index a760c4a..8ee78a6 100644
--- a/app/src/main/java/net/schueller/peertube/activity/VideoListActivity.java
+++ b/app/src/main/java/net/schueller/peertube/activity/VideoListActivity.java
@@ -50,11 +50,10 @@ import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
-import android.widget.Toast;
-import com.mikepenz.fontawesome_typeface_library.FontAwesome;
import com.mikepenz.iconics.IconicsDrawable;
+import com.mikepenz.iconics.typeface.library.fontawesome.FontAwesome;
import net.schueller.peertube.R;
import net.schueller.peertube.adapter.VideoAdapter;
import net.schueller.peertube.helper.APIUrlHelper;
@@ -130,15 +129,15 @@ public class VideoListActivity extends CommonActivity {
// Set an icon in the ActionBar
menu.findItem(R.id.action_account).setIcon(
- new IconicsDrawable(this, FontAwesome.Icon.faw_user_circle).actionBar());
+ new IconicsDrawable(this, FontAwesome.Icon.faw_user_circle));
menu.findItem(R.id.action_server_address_book).setIcon(
- new IconicsDrawable(this, FontAwesome.Icon.faw_server).actionBar());
+ new IconicsDrawable(this, FontAwesome.Icon.faw_server));
MenuItem searchMenuItem = menu.findItem(R.id.action_search);
searchMenuItem.setIcon(
- new IconicsDrawable(this, FontAwesome.Icon.faw_search).actionBar());
+ new IconicsDrawable(this, FontAwesome.Icon.faw_search));
// Get the SearchView and set the searchable configuration
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
@@ -324,13 +323,16 @@ public class VideoListActivity extends CommonActivity {
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
String nsfw = sharedPref.getBoolean(getString(R.string.pref_show_nsfw_key), false) ? "both" : "false";
- Locale locale = getResources().getConfiguration().locale;
- String country = locale.getLanguage();
+//
+// Locale locale = getResources().getConfiguration().locale;
+// String country = locale.getLanguage();
+//
+// HashSet countries = new HashSet<>(1);
+// countries.add(country);
- HashSet countries = new HashSet<>(1);
- countries.add(country);
+ // We set this to default to null so that on initial start there are videos listed.
+ Set languages = sharedPref.getStringSet(getString(R.string.pref_video_language_key), null);
- Set languages = sharedPref.getStringSet(getString(R.string.pref_video_language_key), countries);
String apiBaseURL = APIUrlHelper.getUrlWithVersion(this);
GetVideoDataService service = RetrofitInstance.getRetrofitInstance(apiBaseURL, APIUrlHelper.useInsecureConnection(this)).create(GetVideoDataService.class);
diff --git a/app/src/main/java/net/schueller/peertube/adapter/ChannelAdapter.java b/app/src/main/java/net/schueller/peertube/adapter/ChannelAdapter.java
index 3e92433..55fbb02 100644
--- a/app/src/main/java/net/schueller/peertube/adapter/ChannelAdapter.java
+++ b/app/src/main/java/net/schueller/peertube/adapter/ChannelAdapter.java
@@ -115,7 +115,7 @@ public class ChannelAdapter extends RecyclerView.Adapter {
diff --git a/app/src/main/java/net/schueller/peertube/adapter/ServerSearchAdapter.java b/app/src/main/java/net/schueller/peertube/adapter/ServerSearchAdapter.java
index 6a2c74f..ab9dac9 100644
--- a/app/src/main/java/net/schueller/peertube/adapter/ServerSearchAdapter.java
+++ b/app/src/main/java/net/schueller/peertube/adapter/ServerSearchAdapter.java
@@ -119,7 +119,7 @@ public class ServerSearchAdapter extends RecyclerView.Adapter {
//
diff --git a/app/src/main/java/net/schueller/peertube/adapter/VideoAdapter.java b/app/src/main/java/net/schueller/peertube/adapter/VideoAdapter.java
index 5c720d3..36b5c81 100644
--- a/app/src/main/java/net/schueller/peertube/adapter/VideoAdapter.java
+++ b/app/src/main/java/net/schueller/peertube/adapter/VideoAdapter.java
@@ -131,7 +131,7 @@ public class VideoAdapter extends RecyclerView.Adapter {
diff --git a/app/src/main/java/net/schueller/peertube/fragment/VideoMenuQualityFragment.java b/app/src/main/java/net/schueller/peertube/fragment/VideoMenuQualityFragment.java
index d1de80f..04c5485 100644
--- a/app/src/main/java/net/schueller/peertube/fragment/VideoMenuQualityFragment.java
+++ b/app/src/main/java/net/schueller/peertube/fragment/VideoMenuQualityFragment.java
@@ -52,9 +52,9 @@ public class VideoMenuQualityFragment extends BottomSheetDialogFragment {
if (autoQualityFile == null) {
autoQualityFile = new File();
Resolution autoQualityResolution = new Resolution();
- autoQualityResolution.setId(0);
+ autoQualityResolution.setId(999999);
autoQualityResolution.setLabel(context.getString(R.string.menu_video_options_quality_automated));
- autoQualityFile.setId(0);
+ autoQualityFile.setId(999999);
autoQualityFile.setResolution(autoQualityResolution);
}
if (!mFiles.contains(autoQualityFile)) {
@@ -74,7 +74,7 @@ public class VideoMenuQualityFragment extends BottomSheetDialogFragment {
false);
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(getContext());
- Integer videoQuality = sharedPref.getInt(getString(R.string.pref_quality_key), 0);
+ Integer videoQuality = sharedPref.getInt(getString(R.string.pref_quality_key), 999999);
for (File file : mFiles) {
@@ -95,11 +95,13 @@ public class VideoMenuQualityFragment extends BottomSheetDialogFragment {
for (File fileV : mFiles) {
TextView iconViewV = view.findViewById(fileV.getResolution().getId());
- iconViewV.setText("");
+ if (iconViewV != null) {
+ iconViewV.setText("");
+ }
}
iconView.setText(R.string.video_quality_active_icon);
- new Iconics.IconicsBuilder().ctx(getContext()).on(iconView).build();
+ new Iconics.Builder().on(iconView).build();
//TODO: set new video quality on running video
@@ -112,7 +114,7 @@ public class VideoMenuQualityFragment extends BottomSheetDialogFragment {
// Set current
if (videoQuality.equals(file.getResolution().getId())) {
iconView.setText(R.string.video_quality_active_icon);
- new Iconics.IconicsBuilder().ctx(getContext()).on(iconView).build();
+ new Iconics.Builder().on(iconView).build();
}
}
diff --git a/app/src/main/java/net/schueller/peertube/fragment/VideoMenuSpeedFragment.java b/app/src/main/java/net/schueller/peertube/fragment/VideoMenuSpeedFragment.java
index da7a2fa..c43f084 100644
--- a/app/src/main/java/net/schueller/peertube/fragment/VideoMenuSpeedFragment.java
+++ b/app/src/main/java/net/schueller/peertube/fragment/VideoMenuSpeedFragment.java
@@ -100,7 +100,7 @@ public class VideoMenuSpeedFragment extends BottomSheetDialogFragment {
videoPlayerService.setPlayBackSpeed(speed);
icon.setText(R.string.video_speed_active_icon);
- new Iconics.IconicsBuilder().ctx(getContext()).on(icon).build();
+ new Iconics.Builder().on(icon).build();
}
}
\ No newline at end of file
diff --git a/app/src/main/java/net/schueller/peertube/fragment/VideoMetaDataFragment.java b/app/src/main/java/net/schueller/peertube/fragment/VideoMetaDataFragment.java
index d7f30f7..7061288 100644
--- a/app/src/main/java/net/schueller/peertube/fragment/VideoMetaDataFragment.java
+++ b/app/src/main/java/net/schueller/peertube/fragment/VideoMetaDataFragment.java
@@ -105,7 +105,7 @@ public class VideoMetaDataFragment extends Fragment {
Button thumbsUpButton = activity.findViewById(R.id.video_thumbs_up);
defaultTextColor = thumbsUpButton.getTextColors();
thumbsUpButton.setText(R.string.video_thumbs_up_icon);
- new Iconics.IconicsBuilder().ctx(context).on(thumbsUpButton).build();
+ new Iconics.Builder().on(thumbsUpButton).build();
thumbsUpButton.setOnClickListener(v -> {
rateVideo(true, video);
});
@@ -113,7 +113,7 @@ public class VideoMetaDataFragment extends Fragment {
// Thumbs Down
Button thumbsDownButton = activity.findViewById(R.id.video_thumbs_down);
thumbsDownButton.setText(R.string.video_thumbs_down_icon);
- new Iconics.IconicsBuilder().ctx(context).on(thumbsDownButton).build();
+ new Iconics.Builder().on(thumbsDownButton).build();
thumbsDownButton.setOnClickListener(v -> {
rateVideo(false, video);
});
@@ -145,7 +145,7 @@ public class VideoMetaDataFragment extends Fragment {
// Share
Button videoShareButton = activity.findViewById(R.id.video_share);
videoShareButton.setText(R.string.video_share_icon);
- new Iconics.IconicsBuilder().ctx(context).on(videoShareButton).build();
+ new Iconics.Builder().on(videoShareButton).build();
videoShareButton.setOnClickListener(v ->
{
leaveAppExpected = true;
@@ -155,7 +155,7 @@ public class VideoMetaDataFragment extends Fragment {
// Download
Button videoDownloadButton = activity.findViewById(R.id.video_download);
videoDownloadButton.setText(R.string.video_download_icon);
- new Iconics.IconicsBuilder().ctx(context).on(videoDownloadButton).build();
+ new Iconics.Builder().on(videoDownloadButton).build();
videoDownloadButton.setOnClickListener(v -> {
// get permission to store file
if (ActivityCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
@@ -235,7 +235,7 @@ public class VideoMetaDataFragment extends Fragment {
// more button
TextView moreButton = activity.findViewById(R.id.moreButton);
moreButton.setText(R.string.video_more_icon);
- new Iconics.IconicsBuilder().ctx(context).on(moreButton).build();
+ new Iconics.Builder().on(moreButton).build();
moreButton.setOnClickListener(v -> {
PopupMenu popup = new PopupMenu(context, v);
@@ -260,7 +260,7 @@ public class VideoMetaDataFragment extends Fragment {
// video player options
TextView videoOptions = activity.findViewById(R.id.exo_more);
videoOptions.setText(R.string.video_more_icon);
- new Iconics.IconicsBuilder().ctx(context).on(videoOptions).build();
+ new Iconics.Builder().on(videoOptions).build();
videoOptions.setOnClickListener(v -> {
VideoOptionsFragment videoOptionsFragment =
diff --git a/app/src/main/java/net/schueller/peertube/fragment/VideoOptionsFragment.java b/app/src/main/java/net/schueller/peertube/fragment/VideoOptionsFragment.java
index 6f66fe9..3914d34 100644
--- a/app/src/main/java/net/schueller/peertube/fragment/VideoOptionsFragment.java
+++ b/app/src/main/java/net/schueller/peertube/fragment/VideoOptionsFragment.java
@@ -77,7 +77,7 @@ public class VideoOptionsFragment extends BottomSheetDialogFragment {
iconView.setText(R.string.video_option_speed_icon);
- new Iconics.IconicsBuilder().ctx(getContext()).on(iconView).build();
+ new Iconics.Builder().on(iconView).build();
textView.setOnClickListener(view1 -> {
VideoMenuSpeedFragment videoMenuSpeedFragment =
VideoMenuSpeedFragment.newInstance(videoPlayerService);
@@ -92,7 +92,7 @@ public class VideoOptionsFragment extends BottomSheetDialogFragment {
TextView textView2 = menuRow2.findViewById(R.id.video_quality_text);
textView2.setText(String.format(getString(R.string.menu_video_options_quality), getCurrentVideoQuality(files)));
iconView2.setText(R.string.video_option_quality_icon);
- new Iconics.IconicsBuilder().ctx(getContext()).on(iconView2).build();
+ new Iconics.Builder().on(iconView2).build();
textView2.setOnClickListener(view1 -> {
VideoMenuQualityFragment videoMenuQualityFragment =
VideoMenuQualityFragment.newInstance(getContext(), files);
@@ -107,7 +107,7 @@ public class VideoOptionsFragment extends BottomSheetDialogFragment {
private String getCurrentVideoQuality(ArrayList files) {
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(getContext());
- Integer videoQuality = sharedPref.getInt(getString(R.string.pref_quality_key), 0);
+ Integer videoQuality = sharedPref.getInt(getString(R.string.pref_quality_key), 999999);
for (File file : files) {
if (videoQuality.equals(file.getResolution().getId())) {
diff --git a/app/src/main/java/net/schueller/peertube/fragment/VideoPlayerFragment.java b/app/src/main/java/net/schueller/peertube/fragment/VideoPlayerFragment.java
index f63f3de..b51a988 100644
--- a/app/src/main/java/net/schueller/peertube/fragment/VideoPlayerFragment.java
+++ b/app/src/main/java/net/schueller/peertube/fragment/VideoPlayerFragment.java
@@ -162,7 +162,7 @@ public class VideoPlayerFragment extends Fragment implements VideoRendererEventL
FrameLayout fullscreenButton = activity.findViewById(R.id.exo_fullscreen_button);
fullscreenText.setText(R.string.video_expand_icon);
- new Iconics.IconicsBuilder().ctx(context).on(fullscreenText).build();
+ new Iconics.Builder().on(fullscreenText).build();
fullscreenButton.setOnClickListener(view -> {
Log.d(TAG, "Fullscreen");
@@ -239,12 +239,12 @@ public class VideoPlayerFragment extends Fragment implements VideoRendererEventL
torrentStream.startStream(stream);
} else {
- Integer videoQuality = sharedPref.getInt(getString(R.string.pref_quality_key), 0);
+ Integer videoQuality = sharedPref.getInt(getString(R.string.pref_quality_key), 999999);
- //get video qualities
- /// #
+ // get video qualities
+ // TODO: if auto is set all versions except 0p should be added to a track and have exoplayer auto select optimal bitrate
if (video.getFiles().size() > 0) {
- String urlToPlay = video.getFiles().get( 0 ).getFileUrl();
+ String urlToPlay = video.getFiles().get( 0 ).getFileUrl(); // default, take first found, usually highest res
for ( File file : video.getFiles() ) {
// Set quality if it matches
if ( file.getResolution().getId().equals( videoQuality ) ) {
@@ -321,7 +321,7 @@ public class VideoPlayerFragment extends Fragment implements VideoRendererEventL
} else {
fullscreenButton.setText(R.string.video_expand_icon);
}
- new Iconics.IconicsBuilder().ctx(getContext()).on(fullscreenButton).build();
+ new Iconics.Builder().on(fullscreenButton).build();
}
public Boolean getIsFullscreen() {
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 905aa98..0e73eca 100644
--- a/app/src/main/java/net/schueller/peertube/service/VideoPlayerService.java
+++ b/app/src/main/java/net/schueller/peertube/service/VideoPlayerService.java
@@ -44,6 +44,7 @@ import android.widget.Toast;
import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.ExoPlayerFactory;
+import com.google.android.exoplayer2.MediaItem;
import com.google.android.exoplayer2.PlaybackParameters;
import com.google.android.exoplayer2.Player;
import com.google.android.exoplayer2.SimpleExoPlayer;
@@ -53,6 +54,8 @@ import com.google.android.exoplayer2.ext.mediasession.TimelineQueueNavigator;
import com.google.android.exoplayer2.ext.okhttp.OkHttpDataSource;
import com.google.android.exoplayer2.ext.okhttp.OkHttpDataSourceFactory;
import com.google.android.exoplayer2.source.ExtractorMediaSource;
+import com.google.android.exoplayer2.source.MediaSource;
+import com.google.android.exoplayer2.source.ProgressiveMediaSource;
import com.google.android.exoplayer2.trackselection.DefaultTrackSelector;
import com.google.android.exoplayer2.ui.PlayerNotificationManager;
import com.google.android.exoplayer2.upstream.DataSource;
@@ -102,7 +105,9 @@ public class VideoPlayerService extends Service {
super.onCreate();
- player = ExoPlayerFactory.newSimpleInstance(getApplicationContext(), new DefaultTrackSelector());
+ player = new SimpleExoPlayer.Builder(getApplicationContext())
+ .setTrackSelector(new DefaultTrackSelector(getApplicationContext()))
+ .build();
// Stop player if audio device changes, e.g. headphones unplugged
player.addListener(new Player.EventListener() {
@@ -224,14 +229,18 @@ public class VideoPlayerService extends Service {
okhttpClientBuilder = getUnsafeOkHttpClientBuilder();
}
+ // Create a data source factory.
DataSource.Factory dataSourceFactory = new OkHttpDataSourceFactory(okhttpClientBuilder.build(), Util.getUserAgent(getApplicationContext(), "PeerTube"));
- // This is the MediaSource representing the media to be played.
- ExtractorMediaSource videoSource = new ExtractorMediaSource.Factory(dataSourceFactory)
- .createMediaSource(Uri.parse(currentStreamUrl));
+ // Create a progressive media source pointing to a stream uri.
+ MediaSource mediaSource = new ProgressiveMediaSource.Factory(dataSourceFactory)
+ .createMediaSource(MediaItem.fromUri(Uri.parse(currentStreamUrl)));
- // Prepare the player with the source.
- player.prepare(videoSource);
+ // Set the media source to be played.
+ player.setMediaSource(mediaSource);
+
+ // Prepare the player.
+ player.prepare();
// Auto play
player.setPlayWhenReady(true);
diff --git a/app/src/main/res/layout/fragment_video_player.xml b/app/src/main/res/layout/fragment_video_player.xml
index 5f9591c..cf0bd2a 100644
--- a/app/src/main/res/layout/fragment_video_player.xml
+++ b/app/src/main/res/layout/fragment_video_player.xml
@@ -13,7 +13,7 @@
android:background="@color/videoBackgroundColor"
app:controller_layout_id="@layout/video_playback_controls"
app:resize_mode="fixed_width"
-
+ app:show_buffering="always"
/>
diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml
index 5c41053..e9ca788 100644
--- a/app/src/main/res/values-el/strings.xml
+++ b/app/src/main/res/values-el/strings.xml
@@ -40,4 +40,9 @@
2×
1,5×
0,5×
+ Αναπαραγωγή στο παρασκήνιο
+ Εξυπηρετητής PeerTube
+ Επιλογή γλώσσας βίντεο, αντί να εμφανίζονται όλα τα βίντεο σε όλες τις γλώσσες.
+ Έκδοση
+ Άδεια χρήσης
\ No newline at end of file
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 7686ca0..208bba2 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -174,4 +174,21 @@
Continuar como audio en segundo plano
Selecciona el idioma de la interfaz de la aplicación. Reinicia para que los cambios se apliquen.
Pausar con el botón de retroceso
+ Portugués Brasileño (Lenguaje de Señas)
+ Chino (Lenguaje de señas)
+ Chino
+ Checheno
+ Chamorro
+ Catalán
+ Birmano
+ Búlgaro
+ Idioma de Señas Británico
+ Bretón
+ Bosnio
+ Bislama
+ Bengalí (Bangladés)
+ Inhabilitar certificación SSL
+ Ignorar conexiones inseguras. Usa esta opción únicamente si conoces el servidor al que te vas a conectar. Requiere reiniciar la aplicación.
+ La manera en que un vídeo responde al ser enviado al fondo
+ Pausa la reproducción de fondo al presionar atrás durante la reproducción de vídeo.
\ No newline at end of file
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index 25035ac..75d6f85 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -347,4 +347,12 @@
Configurações
Erro de acesso à rede, verifique sua conectividade
Filtrar a lista
+ Avançado
+ Você está prestes a desativar toda a validação de certificação SSL no Thorium. Desativar isso pode ser muito perigoso se o servidor peertube não estiver sob seu controle, pois um ataque man-in-the-middle pode direcionar tráfego para outro servidor sem seu conhecimento. Um atacador pode gravar senhas e outros dados pessoais.
+ Sim
+ Não
+ Aviso!
+ Salvar
+ Desativar check do certificado SSL
+ Ignorar conexões não seguras. Use isto apenas se você conhece o servidor ao qual está se conectando. Requer o reinício do app.
\ No newline at end of file
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 01208b9..2935ae4 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -360,4 +360,5 @@
Внимание!
Игнорировать незащищенные соединения. Используйте только если знаете сервер к которому подключаетесь. Требуется перезапуск приложения.
"Вы собираетесь отключить валидацию всех SSL сертификатов в Thorium. Это может быть очень опасно если peertube сервер вами не контролируется, потому что \"атака посредника\" может направить трафик на другой сервер. Злоумышленник может записывать пароли и другие личные данные."
+ Сохранить
\ No newline at end of file
diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml
index 4cda69d..48afa66 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -369,4 +369,5 @@
Gelişmiş
SSL Sertifika Denetimini Devre Dışı Bırak
Güvenli olmayan bağlantıları yok sayın. Bunu yalnızca bağlandığınız sunucuyu biliyorsanız kullanın. Uygulamanın yeniden başlatılmasını gerektirir.
+ Kaydet
\ No newline at end of file
diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml
index bac434a..a9693c7 100644
--- a/app/src/main/res/values-uk/strings.xml
+++ b/app/src/main/res/values-uk/strings.xml
@@ -323,7 +323,7 @@
UrlVideoPlayActivity
Аватар облікового запису
Ескіз відео
- " Перегляди"
+ " переглядів"
Підписки
Локальне
Нещодавнє
@@ -354,4 +354,5 @@
Увага!
Ви збираєтеся вимкнути всі перевірки сертифікатів SSL у Thorium. Це може бути дуже небезпечно якщо ви не контролюєте сервер peertube, оскільки атака «людина посередині» може направити трафік на інший сервер без вашого відома. Зловмисник може записувати паролі та інші особисті дані.
Додатково
+ Зберегти
\ No newline at end of file
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 56776c9..f104775 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -354,4 +354,5 @@
進階
停用 SSL 憑證檢查
忽略不安全的連線。僅在您了解您要連線的伺服器時才使用此選項。需要重新啟動應用程式。
+ 儲存
\ No newline at end of file
diff --git a/app/src/main/res/values/constants.xml b/app/src/main/res/values/constants.xml
index 7feb602..72c48d6 100644
--- a/app/src/main/res/values/constants.xml
+++ b/app/src/main/res/values/constants.xml
@@ -17,6 +17,7 @@
pref_accept_insecure
+ pref_clear_history
https://troll.tv
AppTheme.BLUE
diff --git a/app/src/main/res/xml/root_preferences.xml b/app/src/main/res/xml/root_preferences.xml
index 96736b3..2c76891 100644
--- a/app/src/main/res/xml/root_preferences.xml
+++ b/app/src/main/res/xml/root_preferences.xml
@@ -39,6 +39,7 @@
app:iconSpaceReserved="false"/>
+
+ />
+
diff --git a/build.gradle b/build.gradle
index b4ad13b..8f66bcf 100644
--- a/build.gradle
+++ b/build.gradle
@@ -9,7 +9,7 @@ buildscript {
jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:4.1.1'
+ classpath 'com.android.tools.build:gradle:4.1.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
diff --git a/fastlane/metadata/android/en-US/changelogs/1053.txt b/fastlane/metadata/android/en-US/changelogs/1053.txt
new file mode 100644
index 0000000..32e3723
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/1053.txt
@@ -0,0 +1,7 @@
+ - Making X in pip mode stop background audio properly (@dhk2)
+ - Adding clear search history option to settings menu (@dhk2)
+ - Fix no language selected defaults to all video languages
+ - Updated icon library
+ - Added buffering indicator to video playback
+ - Fixed blank video issues on servers offering 0p video.
+ - Updated translations
\ No newline at end of file
diff --git a/fastlane/metadata/android/tr-TR/changelogs/1051.txt b/fastlane/metadata/android/tr-TR/changelogs/1051.txt
new file mode 100644
index 0000000..2832e31
--- /dev/null
+++ b/fastlane/metadata/android/tr-TR/changelogs/1051.txt
@@ -0,0 +1,5 @@
+- ilk başlangıçta öntanımlı uygulama dili düzeltildi (@kosharskiy)
+ - Ayarlar ekranı uk ve ru dilleri çevirileri (@kosharskiy)
+ - app/build.gradle dosyası temizlendi (@kosharskiy)
+ - video üst verisi görüntüleme sorunu düzeltildi (@kosharskiy)
+ - çeviriler güncellendi
diff --git a/fastlane/metadata/android/tr-TR/changelogs/1052.txt b/fastlane/metadata/android/tr-TR/changelogs/1052.txt
new file mode 100644
index 0000000..abda6f4
--- /dev/null
+++ b/fastlane/metadata/android/tr-TR/changelogs/1052.txt
@@ -0,0 +1,2 @@
+- Sunucu defterinde sunucu düzenleme uygulandı (@kosharskiy)
+ - Çeviriler güncellendi
diff --git a/fastlane/metadata/android/uk/changelogs/1049.txt b/fastlane/metadata/android/uk/changelogs/1049.txt
index 43cda85..8de1889 100644
--- a/fastlane/metadata/android/uk/changelogs/1049.txt
+++ b/fastlane/metadata/android/uk/changelogs/1049.txt
@@ -1,7 +1,7 @@
- додано підтримку перенаправлення гіпертексту в опис (@freeboub)
- різні виправлення збоїв (@freeboub)
- уникайте звз під час виходу з програми через кнопку спільного доступу (@freeboub)
- - Додайно можливість фільтрувати список серверів (@freeboub)
+ - Додано можливість фільтрувати список серверів (@freeboub)
- Управління помилками Refactor Toast для розділення помилки мережі (@freeboub)
- збереження співвідношення сторін відео для зображення в зображенні (@freeboub)
- панель навігації не відновлювалась після виходу з альбомного режиму (@freeboub)
diff --git a/fastlane/metadata/android/uk/changelogs/1051.txt b/fastlane/metadata/android/uk/changelogs/1051.txt
new file mode 100644
index 0000000..3c4a57b
--- /dev/null
+++ b/fastlane/metadata/android/uk/changelogs/1051.txt
@@ -0,0 +1,5 @@
+- виправлено типову мову першого запуску застосунку (@kosharskiy)
+ - Налаштування перекладів екрана uk і ru мов (@kosharskiy)
+ - очищення файлу app/build.gradle (@kosharskiy)
+ - виправлено проблему показу метаданих відео (@kosharskiy)
+ - оновлено переклади
diff --git a/fastlane/metadata/android/uk/changelogs/1052.txt b/fastlane/metadata/android/uk/changelogs/1052.txt
new file mode 100644
index 0000000..0eceb4f
--- /dev/null
+++ b/fastlane/metadata/android/uk/changelogs/1052.txt
@@ -0,0 +1,2 @@
+- Реалізовано редагування сервера в книзі серверів (@kosharskiy)
+ - Оновлено переклади
diff --git a/fastlane/metadata/android/uk/full_description.txt b/fastlane/metadata/android/uk/full_description.txt
index 3110c73..373f8e8 100644
--- a/fastlane/metadata/android/uk/full_description.txt
+++ b/fastlane/metadata/android/uk/full_description.txt
@@ -1,4 +1,4 @@
-Thorium - це клієнт PeerTube, який може під'єднуватися до будь-якого сервера peertube, що працює версії v1.1.0-alpha.2 або новіших.
+Thorium — це клієнт PeerTube, який може під'єднуватися до будь-якого сервера peertube, що працює на версії v1.1.0-alpha.2 або новіших.
PeerTube - це об'єднана (ActivityPub) платформа для потокового відео, що використовує P2P (BitTorrent) безпосередньо у браузері. Додаткові відомості та перелік серверів ви знайдете за адресою https://joinpeertube.org/ .
@@ -6,7 +6,7 @@ PeerTube - це об'єднана (ActivityPub) платформа для пот
Поточні функції:
- Під'єднання до будь-якого сервера PeerTube
-- Торрент-відео або пряме відтворення
+- Торент-відео або пряме відтворення
- Пошук у PeerTube
- Завантажити / Поділитися відео
- Теми / Темний режим
@@ -14,8 +14,8 @@ PeerTube - це об'єднана (ActivityPub) платформа для пот
- Повноекранне відтворення в альбомному режимі
- Швидкість відтворення
- Фільтрувати вміст NSFW
-- Аутентифікація / Вхід
-- Вподобати / не подобається відео
+- Автентифікація / Вхід
+- Вподобати/не подобається відео
Скоро буде:
- Коментувати відео
@@ -24,7 +24,7 @@ PeerTube - це об'єднана (ActivityPub) платформа для пот
- Звіт про відео
Дозволи:
-- Доступ до сховища, необхідний для завантаження торрента або завантаження відео.
+- Доступ до сховища, необхідний для завантаження торента або завантаження відео.
Ліцензовано під загальною публічною ліцензією GNU Affero v3.0
diff --git a/fastlane/metadata/android/uk/short_description.txt b/fastlane/metadata/android/uk/short_description.txt
index 54abf3f..4963dc1 100644
--- a/fastlane/metadata/android/uk/short_description.txt
+++ b/fastlane/metadata/android/uk/short_description.txt
@@ -1 +1 @@
-Thorium - неофіційний програвач PeerTube
+Thorium — неофіційний програвач PeerTube
diff --git a/fastlane/metadata/android/uk/title.txt b/fastlane/metadata/android/uk/title.txt
index 991e4f2..d735596 100644
--- a/fastlane/metadata/android/uk/title.txt
+++ b/fastlane/metadata/android/uk/title.txt
@@ -1 +1 @@
-Thorium неоф. клієнт PeerTube
+Thorium — неофіційний клієнт PeerTube
diff --git a/fastlane/metadata/android/zh-TW/changelogs/1051.txt b/fastlane/metadata/android/zh-TW/changelogs/1051.txt
new file mode 100644
index 0000000..8ee10dd
--- /dev/null
+++ b/fastlane/metadata/android/zh-TW/changelogs/1051.txt
@@ -0,0 +1,5 @@
+- 修復第一次啟動時的預設應用程式語言 (@kosharskiy)
+ - 英式英語與俄語的設定畫面翻譯 (@kosharskiy)
+ - 清理 app/build.gradle 檔案 (@kosharskiy)
+ - 已修復影片詮釋資料顯示問題 (@kosharskiy)
+ - 更新翻譯
diff --git a/fastlane/metadata/android/zh-TW/changelogs/1052.txt b/fastlane/metadata/android/zh-TW/changelogs/1052.txt
new file mode 100644
index 0000000..fe676bd
--- /dev/null
+++ b/fastlane/metadata/android/zh-TW/changelogs/1052.txt
@@ -0,0 +1,2 @@
+- 在伺服器手冊中實作編輯伺服器 (@kosharskiy)
+ - 更新翻譯