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(); WallConfig.get().clear();
LiveConfig.get().clear(); LiveConfig.get().clear();
ApiConfig.get().clear(); ApiConfig.get().clear();
AppDatabase.backup();
Server.get().stop(); Server.get().stop();
Source.get().exit(); Source.get().exit();
} }

@ -115,6 +115,7 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
mBinding.vodHome.setOnClickListener(this::onVodHome); mBinding.vodHome.setOnClickListener(this::onVodHome);
mBinding.live.setOnLongClickListener(this::onLiveEdit); mBinding.live.setOnLongClickListener(this::onLiveEdit);
mBinding.liveHome.setOnClickListener(this::onLiveHome); mBinding.liveHome.setOnClickListener(this::onLiveHome);
mBinding.backup.setOnLongClickListener(this::onBackupAuto);
mBinding.vodHistory.setOnClickListener(this::onVodHistory); mBinding.vodHistory.setOnClickListener(this::onVodHistory);
mBinding.version.setOnLongClickListener(this::onVersionDev); mBinding.version.setOnLongClickListener(this::onVersionDev);
mBinding.liveHistory.setOnClickListener(this::onLiveHistory); 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); 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() { public static int getWall() {
return Prefers.getInt("wall", 1); return Prefers.getInt("wall", 1);
} }
@ -97,22 +121,6 @@ public class Setting {
Prefers.put("size", size); 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) { public static int getViewType(int viewType) {
return Prefers.getInt("viewType", viewType); return Prefers.getInt("viewType", viewType);
} }
@ -137,6 +145,54 @@ public class Setting {
Prefers.put("scale_live", scale); 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() { public static boolean isBootLive() {
return Prefers.getBoolean("boot_live"); return Prefers.getBoolean("boot_live");
} }
@ -185,14 +241,6 @@ public class Setting {
Prefers.put("danmu", danmu); 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() { public static boolean isCaption() {
return Prefers.getBoolean("caption"); return Prefers.getBoolean("caption");
} }
@ -201,14 +249,6 @@ public class Setting {
Prefers.put("caption", caption); 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() { public static boolean isTunnel() {
return Prefers.getBoolean("exo_tunnel"); return Prefers.getBoolean("exo_tunnel");
} }
@ -217,44 +257,12 @@ public class Setting {
Prefers.put("exo_tunnel", tunnel); Prefers.put("exo_tunnel", tunnel);
} }
public static int getHttp() { public static boolean isBackupAuto() {
return Prefers.getInt("exo_http"); return Prefers.getBoolean("backup_auto");
}
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() { public static void putBackupAuto(boolean auto) {
return Prefers.getInt("flag"); Prefers.put("backup_auto", auto);
}
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 float getThumbnail() { public static float getThumbnail() {

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

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

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

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

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

@ -123,6 +123,7 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
mBinding.vodHome.setOnClickListener(this::onVodHome); mBinding.vodHome.setOnClickListener(this::onVodHome);
mBinding.live.setOnLongClickListener(this::onLiveEdit); mBinding.live.setOnLongClickListener(this::onLiveEdit);
mBinding.liveHome.setOnClickListener(this::onLiveHome); mBinding.liveHome.setOnClickListener(this::onLiveHome);
mBinding.backup.setOnLongClickListener(this::onBackupAuto);
mBinding.vodHistory.setOnClickListener(this::onVodHistory); mBinding.vodHistory.setOnClickListener(this::onVodHistory);
mBinding.version.setOnLongClickListener(this::onVersionDev); mBinding.version.setOnLongClickListener(this::onVersionDev);
mBinding.liveHistory.setOnClickListener(this::onLiveHistory); 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 @Override
public void onHiddenChanged(boolean hidden) { public void onHiddenChanged(boolean hidden) {
if (hidden || player == null || decode == null) return; if (hidden || player == null || decode == null) return;

Loading…
Cancel
Save