Skip to content

Commit 8f61312

Browse files
committed
Local auto backup: cancel and show warning on Android 11+; upd SharedModules
1 parent f4ff5f5 commit 8f61312

File tree

14 files changed

+40
-25
lines changed

14 files changed

+40
-25
lines changed

MediaServiceCore

common/src/main/java/com/liskovsoft/smartyoutubetv2/common/app/models/playback/controllers/SuggestionsController.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ private void continueGroup(VideoGroup group, boolean showLoading) {
173173
}
174174

175175
private void continueGroup(VideoGroup group, OnVideoGroup callback, boolean showLoading) {
176-
if (group == null) {
176+
if (getPlayer() == null || group == null) {
177177
Log.e(TAG, "Can't continue group. The group is null.");
178178
return;
179179
}
@@ -208,6 +208,11 @@ private void continueGroup(VideoGroup group, OnVideoGroup callback, boolean show
208208
if (getPlayer() != null) {
209209
getPlayer().showProgressBar(false);
210210
}
211+
},
212+
() -> {
213+
if (getPlayer() != null) {
214+
getPlayer().showProgressBar(false);
215+
}
211216
}
212217
);
213218

common/src/main/java/com/liskovsoft/smartyoutubetv2/common/app/models/playback/controllers/VideoLoaderController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ private void waitMetadataSync(Video current, boolean showLoadingMsg) {
318318
} else if (!current.isSynced) { // Maybe there's nothing left. E.g. when casting from phone
319319
// Wait in a loop while suggestions have been loaded...
320320
if (showLoadingMsg) {
321-
MessageHelpers.showMessageThrottled(getContext(), R.string.wait_data_loading);
321+
MessageHelpers.showMessage(getContext(), R.string.wait_data_loading);
322322
}
323323
// Short videos next fix (suggestions aren't loaded yet)
324324
boolean isEnded = getPlayer() != null && Math.abs(getPlayer().getDurationMs() - getPlayer().getPositionMs()) < 100;

common/src/main/java/com/liskovsoft/smartyoutubetv2/common/app/presenters/settings/BackupSettingsPresenter.java

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -65,15 +65,12 @@ private void createAndShowDialog() {
6565
AppDialogPresenter settingsPresenter = AppDialogPresenter.instance(getContext());
6666

6767
appendLocalBackupCategory(settingsPresenter);
68-
69-
appendDriveBackupCategory(settingsPresenter);
70-
68+
appendGDriveBackupCategory(settingsPresenter);
7169
appendSubscriptionsBackupButton(settingsPresenter);
72-
7370
settingsPresenter.showDialog(getContext().getString(R.string.app_backup_restore), this::unhold);
7471
}
7572

76-
private void appendDriveBackupCategory(AppDialogPresenter settingsPresenter) {
73+
private void appendGDriveBackupCategory(AppDialogPresenter settingsPresenter) {
7774
settingsPresenter.appendSingleButton(UiOptionItem.from("Google Drive", optionItem -> {
7875
AppDialogPresenter settingsPresenter2 = AppDialogPresenter.instance(getContext());
7976
appendGDriveBackupSettings(settingsPresenter2);
@@ -93,7 +90,7 @@ private void appendGDriveBackupSettings(AppDialogPresenter settingsPresenter) {
9390
settingsPresenter.appendSingleButton(UiOptionItem.from(getContext().getString(R.string.app_backup), optionItem -> mGDriveBackupManager.backup()));
9491
}
9592

96-
private void appendLocalDriveAutoBackupOption(List<OptionItem> options) {
93+
private void appendLocalAutoBackupOption(List<OptionItem> options) {
9794
options.add(
9895
UiOptionItem.from(
9996
getContext().getString(R.string.auto_backup_category), option -> {
@@ -169,14 +166,13 @@ private void appendGDriveMiscButtons(AppDialogPresenter settingsPresenter) {
169166
private void appendLocalBackupCategory(AppDialogPresenter settingsPresenter) {
170167
List<OptionItem> options = new ArrayList<>();
171168

172-
appendBackupRestoreOptions(options);
173-
174-
appendLocalDriveAutoBackupOption(options);
169+
appendLocalBackupRestoreOptions(options);
170+
appendLocalAutoBackupOption(options);
175171

176172
settingsPresenter.appendStringsCategory(getContext().getString(R.string.local_backup), options);
177173
}
178174

179-
private void appendBackupRestoreOptions(List<OptionItem> options) {
175+
private void appendLocalBackupRestoreOptions(List<OptionItem> options) {
180176
BackupAndRestoreManager backupManager = new BackupAndRestoreManager(getContext());
181177

182178
String backupPath = backupManager.getBackupRootPath();

common/src/main/java/com/liskovsoft/smartyoutubetv2/common/misc/LocalDriveBackupWorker.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@
1010
import androidx.work.Worker;
1111
import androidx.work.WorkerParameters;
1212

13-
import com.liskovsoft.sharedutils.helpers.AppInfoHelpers;
13+
import com.liskovsoft.sharedutils.helpers.MessageHelpers;
1414
import com.liskovsoft.sharedutils.mylogger.Log;
15+
import com.liskovsoft.smartyoutubetv2.common.R;
1516
import com.liskovsoft.smartyoutubetv2.common.prefs.GeneralData;
17+
import com.liskovsoft.smartyoutubetv2.common.utils.Utils;
1618

1719
import java.util.concurrent.TimeUnit;
1820

@@ -34,10 +36,9 @@ public LocalDriveBackupWorker(@NonNull Context context, @NonNull WorkerParameter
3436
}
3537

3638
public static void schedule(Context context) {
37-
//if (AppInfoHelpers.getTargetSdkVersion(context) > 29) {
38-
// // Android 11+: only backup through the file manager (no shared dir)
39-
// return;
40-
//}
39+
if (Utils.isSharedDirRestricted(context)) {
40+
return;
41+
}
4142

4243
if (VERSION.SDK_INT >= 23 && GeneralData.instance(context).getLocalDriveBackupFreqDays() > 0) {
4344
WorkManager workManager = WorkManager.getInstance(context);
@@ -56,6 +57,11 @@ public static void schedule(Context context) {
5657
}
5758

5859
public static void forceSchedule(Context context) {
60+
if (Utils.isSharedDirRestricted(context)) {
61+
MessageHelpers.showLongMessage(context, R.string.local_backup_not_supported);
62+
return;
63+
}
64+
5965
new BackupAndRestoreManager(context).checkPermAndBackup();
6066
schedule(context);
6167
}

common/src/main/java/com/liskovsoft/smartyoutubetv2/common/utils/Utils.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@
6060
import androidx.work.WorkManager;
6161

6262
import com.jakewharton.processphoenix.ProcessPhoenix;
63+
import com.liskovsoft.sharedutils.helpers.AppInfoHelpers;
6364
import com.liskovsoft.sharedutils.helpers.DeviceHelpers;
6465
import com.liskovsoft.sharedutils.helpers.Helpers;
6566
import com.liskovsoft.sharedutils.helpers.MessageHelpers;
@@ -1268,15 +1269,18 @@ public void onClick(@NonNull View widget) {
12681269
return builder;
12691270
}
12701271

1272+
public static boolean isSharedDirRestricted(Context context) {
1273+
// Android 11+: only backup through the file manager (no shared dir)
1274+
return AppInfoHelpers.getRealSdkVersion(context) > 29;
1275+
}
1276+
12711277
private static void persistData(Context context) {
12721278
VideoStateService.instance(context).persistNow();
12731279
PlayerData.instance(context).persistNow();
12741280
PlayerTweaksData.instance(context).persistNow();
12751281
MainUIData.instance(context).persistNow();
12761282
GeneralData.instance(context).persistNow();
12771283
MediaServiceData mediaServiceData = MediaServiceData.instance();
1278-
if (mediaServiceData != null) {
1279-
mediaServiceData.persistNow();
1280-
}
1284+
mediaServiceData.persistNow();
12811285
}
12821286
}

common/src/main/res/values-ru/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -723,6 +723,7 @@
723723
<string name="player_time_stretching_desc">Сохраняет естественное звучание голоса при изменении скорости. Может значительно снизить производительность на некоторых устройствах.</string>
724724
<string name="queue_respects_playback_mode">Очередь учитывает режим воспроизведения</string>
725725
<string name="ignore_short_segments">Игнорировать короткие сегменты</string>
726+
<string name="local_backup_not_supported">Автобэкап на Android TV 11+ не поддерживается из-за ограничений системы. Используйте GDrive.</string>
726727
<plurals name="hours">
727728
<item quantity="one">%s час</item>
728729
<item quantity="few">%s часа</item>

common/src/main/res/values-tr/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -733,6 +733,7 @@
733733
<string name="player_time_stretching_desc">Hız değiştirildiğinde sesi doğal tutar. Bazı cihazlarda performansı önemli ölçüde düşürebilir.</string>
734734
<string name="queue_respects_playback_mode">Kuyruk oynatma modunu dikkate alır</string>
735735
<string name="ignore_short_segments">Kısa segmentleri yok say</string>
736+
<string name="local_backup_not_supported">Android TV 11+’da otomatik yedekleme sistem kısıtlamaları nedeniyle desteklenmez. Bunun yerine GDrive kullanın.</string>
736737
<plurals name="hours">
737738
<item quantity="one">%s saat</item>
738739
<item quantity="other">%s saat</item>

common/src/main/res/values-uk/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -721,6 +721,7 @@
721721
<string name="player_time_stretching_desc">Зберігає природний голос при зміні швидкості. Може суттєво знизити продуктивність на деяких пристроях.</string>
722722
<string name="queue_respects_playback_mode">Черга враховує режим відтворення</string>
723723
<string name="ignore_short_segments">Ігнорувати короткі сегменти</string>
724+
<string name="local_backup_not_supported">Автобекап на Android TV 11+ не підтримується через обмеження системи. Використовуйте GDrive.</string>
724725
<plurals name="hours">
725726
<item quantity="one">%s година</item>
726727
<item quantity="few">%s години</item>

0 commit comments

Comments
 (0)