Add auto backup

pull/171/head
FongMi 2 years ago
parent d706f7c006
commit b2e708c354
  1. 1
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  2. 7
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java
  3. 144
      app/src/main/java/com/fongmi/android/tv/Setting.java
  4. 9
      app/src/main/java/com/fongmi/android/tv/db/AppDatabase.java
  5. 1
      app/src/main/res/values-zh-rCN/strings.xml
  6. 1
      app/src/main/res/values-zh-rTW/strings.xml
  7. 1
      app/src/main/res/values/strings.xml
  8. 1
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java
  9. 7
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java

@ -463,6 +463,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
WallConfig.get().clear();
LiveConfig.get().clear();
ApiConfig.get().clear();
AppDatabase.backup();
Server.get().stop();
Source.get().exit();
}

@ -115,6 +115,7 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
mBinding.vodHome.setOnClickListener(this::onVodHome);
mBinding.live.setOnLongClickListener(this::onLiveEdit);
mBinding.liveHome.setOnClickListener(this::onLiveHome);
mBinding.backup.setOnLongClickListener(this::onBackupAuto);
mBinding.vodHistory.setOnClickListener(this::onVodHistory);
mBinding.version.setOnLongClickListener(this::onVersionDev);
mBinding.liveHistory.setOnClickListener(this::onLiveHistory);
@ -362,4 +363,10 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
}
}));
}
private boolean onBackupAuto(View view) {
Setting.putBackupAuto(!Setting.isBackupAuto());
mBinding.backupText.setText(AppDatabase.getDate());
return true;
}
}

@ -33,6 +33,30 @@ public class Setting {
Prefers.put("keep", keep);
}
public static String getKeyword() {
return Prefers.getString("keyword");
}
public static void putKeyword(String keyword) {
Prefers.put("keyword", keyword);
}
public static String getHot() {
return Prefers.getString("hot");
}
public static void putHot(String hot) {
Prefers.put("hot", hot);
}
public static String getUa() {
return Prefers.getString("ua");
}
public static void putUa(String ua) {
Prefers.put("ua", ua);
}
public static int getWall() {
return Prefers.getInt("wall", 1);
}
@ -97,22 +121,6 @@ public class Setting {
Prefers.put("size", size);
}
public static String getKeyword() {
return Prefers.getString("keyword");
}
public static void putKeyword(String keyword) {
Prefers.put("keyword", keyword);
}
public static String getHot() {
return Prefers.getString("hot");
}
public static void putHot(String hot) {
Prefers.put("hot", hot);
}
public static int getViewType(int viewType) {
return Prefers.getInt("viewType", viewType);
}
@ -137,6 +145,54 @@ public class Setting {
Prefers.put("scale_live", scale);
}
public static int getSubtitle() {
return Math.max(Prefers.getInt("subtitle", 16), 14);
}
public static void putSubtitle(int subtitle) {
Prefers.put("subtitle", subtitle);
}
public static int getHttp() {
return Prefers.getInt("exo_http");
}
public static void putHttp(int http) {
Prefers.put("exo_http", http);
}
public static int getBuffer() {
return Math.min(Math.max(Prefers.getInt("exo_buffer"), 1), 15);
}
public static void putBuffer(int buffer) {
Prefers.put("exo_buffer", buffer);
}
public static int getFlag() {
return Prefers.getInt("flag");
}
public static void putFlag(int mode) {
Prefers.put("flag", mode);
}
public static int getBackground() {
return Prefers.getInt("background", 2);
}
public static void putBackground(int background) {
Prefers.put("background", background);
}
public static int getSiteMode() {
return Prefers.getInt("site_mode");
}
public static void putSiteMode(int mode) {
Prefers.put("site_mode", mode);
}
public static boolean isBootLive() {
return Prefers.getBoolean("boot_live");
}
@ -185,14 +241,6 @@ public class Setting {
Prefers.put("danmu", danmu);
}
public static String getUa() {
return Prefers.getString("ua");
}
public static void putUa(String ua) {
Prefers.put("ua", ua);
}
public static boolean isCaption() {
return Prefers.getBoolean("caption");
}
@ -201,14 +249,6 @@ public class Setting {
Prefers.put("caption", caption);
}
public static int getSubtitle() {
return Math.max(Prefers.getInt("subtitle", 16), 14);
}
public static void putSubtitle(int subtitle) {
Prefers.put("subtitle", subtitle);
}
public static boolean isTunnel() {
return Prefers.getBoolean("exo_tunnel");
}
@ -217,44 +257,12 @@ public class Setting {
Prefers.put("exo_tunnel", tunnel);
}
public static int getHttp() {
return Prefers.getInt("exo_http");
}
public static void putHttp(int http) {
Prefers.put("exo_http", http);
}
public static int getBuffer() {
return Math.min(Math.max(Prefers.getInt("exo_buffer"), 1), 15);
}
public static void putBuffer(int buffer) {
Prefers.put("exo_buffer", buffer);
public static boolean isBackupAuto() {
return Prefers.getBoolean("backup_auto");
}
public static int getFlag() {
return Prefers.getInt("flag");
}
public static void putFlag(int mode) {
Prefers.put("flag", mode);
}
public static int getBackground() {
return Prefers.getInt("background", 2);
}
public static void putBackground(int background) {
Prefers.put("background", background);
}
public static int getSiteMode() {
return Prefers.getInt("site_mode");
}
public static void putSiteMode(int mode) {
Prefers.put("site_mode", mode);
public static void putBackupAuto(boolean auto) {
Prefers.put("backup_auto", auto);
}
public static float getThumbnail() {

@ -10,6 +10,7 @@ import androidx.room.migration.Migration;
import androidx.sqlite.db.SupportSQLiteDatabase;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.Setting;
import com.fongmi.android.tv.bean.Config;
import com.fongmi.android.tv.bean.Device;
@ -23,6 +24,7 @@ import com.fongmi.android.tv.db.dao.HistoryDao;
import com.fongmi.android.tv.db.dao.KeepDao;
import com.fongmi.android.tv.db.dao.SiteDao;
import com.fongmi.android.tv.db.dao.TrackDao;
import com.fongmi.android.tv.utils.ResUtil;
import com.fongmi.android.tv.utils.Util;
import com.github.catvod.utils.Path;
import com.github.catvod.utils.Prefers;
@ -46,14 +48,17 @@ public abstract class AppDatabase extends RoomDatabase {
}
public static String getDate() {
File file = new File(Path.tv(), NAME);
return file.exists() ? Util.format(new SimpleDateFormat("yyyyMMdd", Locale.getDefault()), file.lastModified()) : "";
return Setting.isBackupAuto() ? ResUtil.getString(R.string.setting_backup_auto) : getBackupKey().exists() ? Util.format(new SimpleDateFormat("yyyyMMdd", Locale.getDefault()), getBackupKey().lastModified()) : "";
}
public static File getBackupKey() {
return new File(Path.tv(), "." + Util.getDeviceId());
}
public static void backup() {
if (Setting.isBackupAuto()) backup(new com.fongmi.android.tv.impl.Callback());
}
public static void backup(com.fongmi.android.tv.impl.Callback callback) {
App.execute(() -> {
File db = App.get().getDatabasePath(NAME).getAbsoluteFile();

@ -83,6 +83,7 @@
<string name="setting_proxy">Proxy</string>
<string name="setting_cache">缓存</string>
<string name="setting_backup">备份</string>
<string name="setting_backup_auto">自动</string>
<string name="setting_version">版本</string>
<string name="setting_storage">权限</string>
<string name="setting_off">关闭</string>

@ -83,6 +83,7 @@
<string name="setting_proxy">Proxy</string>
<string name="setting_cache">暫存</string>
<string name="setting_backup">備份</string>
<string name="setting_backup_auto">自動</string>
<string name="setting_version">版本</string>
<string name="setting_storage">權限</string>
<string name="setting_off">關閉</string>

@ -83,6 +83,7 @@
<string name="setting_proxy">Proxy</string>
<string name="setting_cache">Cache</string>
<string name="setting_backup">Backup</string>
<string name="setting_backup_auto">Auto</string>
<string name="setting_version">Version</string>
<string name="setting_storage">Permission</string>
<string name="setting_off">Off</string>

@ -206,6 +206,7 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt
WallConfig.get().clear();
LiveConfig.get().clear();
ApiConfig.get().clear();
AppDatabase.backup();
Source.get().exit();
Server.get().stop();
}

@ -123,6 +123,7 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
mBinding.vodHome.setOnClickListener(this::onVodHome);
mBinding.live.setOnLongClickListener(this::onLiveEdit);
mBinding.liveHome.setOnClickListener(this::onLiveHome);
mBinding.backup.setOnLongClickListener(this::onBackupAuto);
mBinding.vodHistory.setOnClickListener(this::onVodHistory);
mBinding.version.setOnLongClickListener(this::onVersionDev);
mBinding.liveHistory.setOnClickListener(this::onLiveHistory);
@ -370,6 +371,12 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
}));
}
private boolean onBackupAuto(View view) {
Setting.putBackupAuto(!Setting.isBackupAuto());
mBinding.backupText.setText(AppDatabase.getDate());
return true;
}
@Override
public void onHiddenChanged(boolean hidden) {
if (hidden || player == null || decode == null) return;

Loading…
Cancel
Save