diff --git a/README.md b/README.md index 6a563dfd8..15ba3d04b 100644 --- a/README.md +++ b/README.md @@ -20,15 +20,15 @@ ## Screenshots -[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_1.png) -[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_2.png) -[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_3.png) -[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_4.png) -[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_5.png) -[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_6.png) -[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_7.png) -[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_8.png) -[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_9.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_01.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_02.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_03.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_04.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_05.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_06.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_07.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_08.png) +[](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_09.png) [](fastlane/metadata/android/en-US/images/phoneScreenshots/shot_10.png) [](fastlane/metadata/android/en-US/images/tenInchScreenshots/shot_11.png) [](fastlane/metadata/android/en-US/images/tenInchScreenshots/shot_12.png) diff --git a/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java b/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java index 0e4d07179..d6a656a29 100644 --- a/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java @@ -98,35 +98,54 @@ public abstract class BasePlayer implements Player.EventListener, PlaybackListener, ImageLoadingListener { public static final boolean DEBUG = !BuildConfig.BUILD_TYPE.equals("release"); - @NonNull public static final String TAG = "BasePlayer"; + @NonNull + public static final String TAG = "BasePlayer"; - @NonNull final protected Context context; + @NonNull + final protected Context context; - @NonNull final protected BroadcastReceiver broadcastReceiver; - @NonNull final protected IntentFilter intentFilter; + @NonNull + final protected BroadcastReceiver broadcastReceiver; + @NonNull + final protected IntentFilter intentFilter; - @NonNull final protected HistoryRecordManager recordManager; + @NonNull + final protected HistoryRecordManager recordManager; - @NonNull final protected CustomTrackSelector trackSelector; - @NonNull final protected PlayerDataSource dataSource; + @NonNull + final protected CustomTrackSelector trackSelector; + @NonNull + final protected PlayerDataSource dataSource; - @NonNull final private LoadControl loadControl; - @NonNull final private RenderersFactory renderFactory; + @NonNull + final private LoadControl loadControl; + @NonNull + final private RenderersFactory renderFactory; - @NonNull final private SerialDisposable progressUpdateReactor; - @NonNull final private CompositeDisposable databaseUpdateReactor; + @NonNull + final private SerialDisposable progressUpdateReactor; + @NonNull + final private CompositeDisposable databaseUpdateReactor; /*////////////////////////////////////////////////////////////////////////// // Intent //////////////////////////////////////////////////////////////////////////*/ - @NonNull public static final String REPEAT_MODE = "repeat_mode"; - @NonNull public static final String PLAYBACK_PITCH = "playback_pitch"; - @NonNull public static final String PLAYBACK_SPEED = "playback_speed"; - @NonNull public static final String PLAYBACK_SKIP_SILENCE = "playback_skip_silence"; - @NonNull public static final String PLAYBACK_QUALITY = "playback_quality"; - @NonNull public static final String PLAY_QUEUE_KEY = "play_queue_key"; - @NonNull public static final String APPEND_ONLY = "append_only"; - @NonNull public static final String SELECT_ON_APPEND = "select_on_append"; + @NonNull + public static final String REPEAT_MODE = "repeat_mode"; + @NonNull + public static final String PLAYBACK_PITCH = "playback_pitch"; + @NonNull + public static final String PLAYBACK_SPEED = "playback_speed"; + @NonNull + public static final String PLAYBACK_SKIP_SILENCE = "playback_skip_silence"; + @NonNull + public static final String PLAYBACK_QUALITY = "playback_quality"; + @NonNull + public static final String PLAY_QUEUE_KEY = "play_queue_key"; + @NonNull + public static final String APPEND_ONLY = "append_only"; + @NonNull + public static final String SELECT_ON_APPEND = "select_on_append"; /*////////////////////////////////////////////////////////////////////////// // Playback @@ -137,13 +156,18 @@ public abstract class BasePlayer implements protected PlayQueue playQueue; protected PlayQueueAdapter playQueueAdapter; - @Nullable protected MediaSourceManager playbackManager; + @Nullable + protected MediaSourceManager playbackManager; - @Nullable private PlayQueueItem currentItem; - @Nullable private MediaSourceTag currentMetadata; - @Nullable private Bitmap currentThumbnail; + @Nullable + private PlayQueueItem currentItem; + @Nullable + private MediaSourceTag currentMetadata; + @Nullable + private Bitmap currentThumbnail; - @Nullable protected Toast errorToast; + @Nullable + protected Toast errorToast; /*////////////////////////////////////////////////////////////////////////// // Player @@ -213,7 +237,8 @@ public abstract class BasePlayer implements registerBroadcastReceiver(); } - public void initListeners() {} + public void initListeners() { + } public void handleIntent(Intent intent) { if (DEBUG) Log.d(TAG, "handleIntent() called with: intent = [" + intent + "]"); @@ -297,7 +322,6 @@ public abstract class BasePlayer implements databaseUpdateReactor.clear(); progressUpdateReactor.set(null); - simpleExoPlayer = null; } /*////////////////////////////////////////////////////////////////////////// @@ -425,13 +449,15 @@ public abstract class BasePlayer implements if (!isProgressLoopRunning()) startProgressLoop(); } - public void onBuffering() {} + public void onBuffering() { + } public void onPaused() { if (isProgressLoopRunning()) stopProgressLoop(); } - public void onPausedSeek() {} + public void onPausedSeek() { + } public void onCompleted() { if (DEBUG) Log.d(TAG, "onCompleted() called"); @@ -602,19 +628,19 @@ public abstract class BasePlayer implements /** * Processes the exceptions produced by {@link com.google.android.exoplayer2.ExoPlayer ExoPlayer}. * There are multiple types of errors:

- * + *

* {@link ExoPlaybackException#TYPE_SOURCE TYPE_SOURCE}:

- * + *

* {@link ExoPlaybackException#TYPE_UNEXPECTED TYPE_UNEXPECTED}:

* If a runtime error occurred, then we can try to recover it by restarting the playback * after setting the timestamp recovery.

- * + *

* {@link ExoPlaybackException#TYPE_RENDERER TYPE_RENDERER}:

* If the renderer failed, treat the error as unrecoverable. * * @see #processSourceError(IOException) * @see Player.EventListener#onPlayerError(ExoPlaybackException) - * */ + */ @Override public void onPlayerError(ExoPlaybackException error) { if (DEBUG) Log.d(TAG, "ExoPlayer - onPlayerError() called with: " + @@ -900,8 +926,8 @@ public abstract class BasePlayer implements if (DEBUG) Log.d(TAG, "onPlayPrevious() called"); /* If current playback has run for PLAY_PREV_ACTIVATION_LIMIT_MILLIS milliseconds, - * restart current track. Also restart the track if the current track - * is the first in a queue.*/ + * restart current track. Also restart the track if the current track + * is the first in a queue.*/ if (simpleExoPlayer.getCurrentPosition() > PLAY_PREV_ACTIVATION_LIMIT_MILLIS || playQueue.getIndex() == 0) { seekToDefault(); @@ -1010,8 +1036,8 @@ public abstract class BasePlayer implements try { metadata = (MediaSourceTag) simpleExoPlayer.getCurrentTag(); } catch (IndexOutOfBoundsException | ClassCastException error) { - if(DEBUG) Log.d(TAG, "Could not update metadata: " + error.getMessage()); - if(DEBUG) error.printStackTrace(); + if (DEBUG) Log.d(TAG, "Could not update metadata: " + error.getMessage()); + if (DEBUG) error.printStackTrace(); return; } @@ -1075,7 +1101,9 @@ public abstract class BasePlayer implements currentThumbnail; } - /** Checks if the current playback is a livestream AND is playing at or beyond the live edge */ + /** + * Checks if the current playback is a livestream AND is playing at or beyond the live edge + */ @SuppressWarnings("BooleanMethodIsAlwaysInverted") public boolean isLiveEdge() { if (simpleExoPlayer == null || !isLive()) return false; @@ -1099,8 +1127,8 @@ public abstract class BasePlayer implements } catch (@NonNull IndexOutOfBoundsException ignored) { // Why would this even happen =( // But lets log it anyway. Save is save - if(DEBUG) Log.d(TAG, "Could not update metadata: " + ignored.getMessage()); - if(DEBUG) ignored.printStackTrace(); + if (DEBUG) Log.d(TAG, "Could not update metadata: " + ignored.getMessage()); + if (DEBUG) ignored.printStackTrace(); return false; } } diff --git a/app/src/main/java/us/shandian/giga/ui/adapter/MissionAdapter.java b/app/src/main/java/us/shandian/giga/ui/adapter/MissionAdapter.java index 3e6a58415..7827c822e 100644 --- a/app/src/main/java/us/shandian/giga/ui/adapter/MissionAdapter.java +++ b/app/src/main/java/us/shandian/giga/ui/adapter/MissionAdapter.java @@ -274,6 +274,7 @@ public class MissionAdapter extends RecyclerView.Adapter { return; } + if (deltaTime > 1000 && deltaDone > 0) { float speed = (float) deltaDone / deltaTime; String speedStr = Utility.formatSpeed(speed * 1000); @@ -296,6 +297,7 @@ public class MissionAdapter extends RecyclerView.Adapter { Log.v(TAG, "Mime: " + mimeType + " package: " + BuildConfig.APPLICATION_ID + ".provider"); Uri uri = FileProvider.getUriForFile(mContext, BuildConfig.APPLICATION_ID + ".provider", file); + Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setDataAndType(uri, mimeType); @@ -574,6 +576,10 @@ public class MissionAdapter extends RecyclerView.Adapter { source = menu.findItem(R.id.source); checksum = menu.findItem(R.id.checksum); + itemView.setOnClickListener((v) -> { + if(h.mission.finished) viewWithFileProvider(h); + }); + //h.itemView.setOnClickListener(v -> showDetail(h)); } diff --git a/app/src/main/res/menu/mission.xml b/app/src/main/res/menu/mission.xml index 4f7eba626..961e12fd0 100644 --- a/app/src/main/res/menu/mission.xml +++ b/app/src/main/res/menu/mission.xml @@ -1,5 +1,4 @@

- @@ -46,5 +45,4 @@ - diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 842042e16..3fad6b288 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -508,4 +508,21 @@ Сетка Автоматически + Менять яркость плеера жестом + Жест яркости + Загрузка на внешний накопитель невозможна. Сбросить расположение папки загрузки? + Внешний накопитель недоступен + Вкладки, видимые на главной странице + По умолчанию + Хотите восстановить умолчания? + Ошибка чтения сохранённых вкладок. Используются вкладки по умолчанию + Выбор + Количество подписчиков недоступно + Переключить вид + Выберите вкладку + Новая вкладка + Отписаться + Менять громкость плеера жестом + Жест громкости + diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/shot_1.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/shot_01.png similarity index 100% rename from fastlane/metadata/android/en-US/images/phoneScreenshots/shot_1.png rename to fastlane/metadata/android/en-US/images/phoneScreenshots/shot_01.png diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/shot_2.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/shot_02.png similarity index 100% rename from fastlane/metadata/android/en-US/images/phoneScreenshots/shot_2.png rename to fastlane/metadata/android/en-US/images/phoneScreenshots/shot_02.png diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/shot_3.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/shot_03.png similarity index 100% rename from fastlane/metadata/android/en-US/images/phoneScreenshots/shot_3.png rename to fastlane/metadata/android/en-US/images/phoneScreenshots/shot_03.png diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/shot_4.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/shot_04.png similarity index 100% rename from fastlane/metadata/android/en-US/images/phoneScreenshots/shot_4.png rename to fastlane/metadata/android/en-US/images/phoneScreenshots/shot_04.png diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/shot_5.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/shot_05.png similarity index 100% rename from fastlane/metadata/android/en-US/images/phoneScreenshots/shot_5.png rename to fastlane/metadata/android/en-US/images/phoneScreenshots/shot_05.png diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/shot_6.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/shot_06.png similarity index 100% rename from fastlane/metadata/android/en-US/images/phoneScreenshots/shot_6.png rename to fastlane/metadata/android/en-US/images/phoneScreenshots/shot_06.png diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/shot_7.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/shot_07.png similarity index 100% rename from fastlane/metadata/android/en-US/images/phoneScreenshots/shot_7.png rename to fastlane/metadata/android/en-US/images/phoneScreenshots/shot_07.png diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/shot_8.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/shot_08.png similarity index 100% rename from fastlane/metadata/android/en-US/images/phoneScreenshots/shot_8.png rename to fastlane/metadata/android/en-US/images/phoneScreenshots/shot_08.png diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/shot_9.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/shot_09.png similarity index 100% rename from fastlane/metadata/android/en-US/images/phoneScreenshots/shot_9.png rename to fastlane/metadata/android/en-US/images/phoneScreenshots/shot_09.png