Update wall system

pull/123/head
FongMi 3 years ago
parent eb3fd5ab89
commit 119526ab34
  1. 9
      app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java
  2. 18
      app/src/main/java/com/fongmi/android/tv/api/WallConfig.java
  3. 13
      app/src/main/java/com/fongmi/android/tv/bean/Config.java
  4. 3
      app/src/main/java/com/fongmi/android/tv/db/dao/ConfigDao.java
  5. 8
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java
  6. 2
      app/src/mobile/res/color-night/nav.xml
  7. 2
      app/src/mobile/res/color/nav.xml

@ -180,10 +180,8 @@ public class ApiConfig {
}
private void initLive(JsonObject object) {
boolean hasLive = object.has("lives");
if (hasLive) Config.create(config.getUrl(), 1);
boolean loadApi = hasLive && LiveConfig.get().isSame(config.getUrl());
if (loadApi) LiveConfig.get().clear().config(Config.find(config.getUrl(), 1).update()).parse(object);
boolean load = object.has("lives") && LiveConfig.get().isSame(config.getUrl());
if (load) LiveConfig.get().clear().config(Config.find(config, 1).update()).parse(object);
else LiveConfig.get().load();
}
@ -304,8 +302,9 @@ public class ApiConfig {
}
private void setWall(String wall) {
if (Config.wall().getUrl().isEmpty()) WallConfig.get().setUrl(wall);
this.wall = wall;
boolean load = !TextUtils.isEmpty(wall) && WallConfig.get().isSame(wall);
if (load) WallConfig.get().config(Config.find(wall, config.getName(), 2).update());
}
public Site getHome() {

@ -19,6 +19,7 @@ public class WallConfig {
private Drawable drawable;
private Config config;
private boolean same;
private static class Loader {
static volatile WallConfig INSTANCE = new WallConfig();
@ -32,6 +33,10 @@ public class WallConfig {
return get().getConfig().getUrl();
}
public static String getDesc() {
return get().getConfig().getDesc();
}
public static Drawable drawable(Drawable drawable) {
if (get().drawable != null) return drawable;
get().setDrawable(drawable);
@ -45,6 +50,7 @@ public class WallConfig {
public WallConfig config(Config config) {
this.config = config;
this.same = config.getUrl().equals(ApiConfig.get().getWall());
return this;
}
@ -53,10 +59,6 @@ public class WallConfig {
return this;
}
public void setUrl(String url) {
this.config = Config.find(url, 2);
}
public Config getConfig() {
return config == null ? Config.wall() : config;
}
@ -77,12 +79,12 @@ public class WallConfig {
try {
File file = write(FileUtil.getWall(0));
if (file.exists() && file.length() > 0) refresh(0);
else setUrl(ApiConfig.get().getWall());
else config(Config.find(ApiConfig.get().getWall(), 2));
App.post(callback::success);
config.update();
} catch (Exception e) {
App.post(() -> callback.error(R.string.error_config_parse));
setUrl(ApiConfig.get().getWall());
config(Config.find(ApiConfig.get().getWall(), 2));
e.printStackTrace();
}
}
@ -94,6 +96,10 @@ public class WallConfig {
return file;
}
public boolean isSame(String url) {
return same || config.getUrl().isEmpty() || url.equals(config.getUrl());
}
public static void refresh(int index) {
Prefers.putWall(index);
RefreshEvent.wall();

@ -146,8 +146,7 @@ public class Config {
}
public static void delete(String url, int type) {
if (type == 2) AppDatabase.get().getConfigDao().delete(type);
else AppDatabase.get().getConfigDao().delete(url, type);
AppDatabase.get().getConfigDao().delete(url, type);
}
public static Config vod() {
@ -174,6 +173,16 @@ public class Config {
return item == null ? create(url, type) : item.type(type);
}
public static Config find(String url, String name, int type) {
Config item = AppDatabase.get().getConfigDao().find(url, type);
return item == null ? create(url, name, type) : item.type(type).name(name);
}
public static Config find(Config config, int type) {
Config item = AppDatabase.get().getConfigDao().find(config.getUrl(), type);
return item == null ? create(config.getUrl(), config.getName(), type) : item.type(type).name(config.getName());
}
public static Config find(Depot depot, int type) {
Config item = AppDatabase.get().getConfigDao().find(depot.getUrl(), type);
return item == null ? create(depot.getUrl(), depot.getName(), type) : item.type(type).name(depot.getName());

@ -27,7 +27,4 @@ public abstract class ConfigDao extends BaseDao<Config> {
@Query("DELETE FROM Config WHERE url = :url")
public abstract void delete(String url);
@Query("DELETE FROM Config WHERE type = :type")
public abstract void delete(int type);
}

@ -61,8 +61,8 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
@Override
protected void initView() {
mBinding.vodUrl.setText(ApiConfig.getDesc());
mBinding.wallUrl.setText(WallConfig.getUrl());
mBinding.liveUrl.setText(LiveConfig.getDesc());
mBinding.wallUrl.setText(WallConfig.getDesc());
mBinding.versionText.setText(BuildConfig.VERSION_NAME);
mBinding.sizeText.setText((size = ResUtil.getStringArray(R.array.select_size))[Prefers.getSize()]);
mBinding.scaleText.setText((scale = ResUtil.getStringArray(R.array.select_scale))[Prefers.getScale()]);
@ -114,7 +114,7 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
break;
case 2:
Notify.progress(getActivity(), true);
mBinding.wallUrl.setText(config.getUrl());
mBinding.wallUrl.setText(config.getDesc());
WallConfig.get().clear().config(config).load(getCallback(config));
break;
}
@ -143,7 +143,7 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
RefreshEvent.video();
mBinding.vodUrl.setText(ApiConfig.getDesc());
mBinding.liveUrl.setText(LiveConfig.getDesc());
mBinding.wallUrl.setText(WallConfig.getUrl());
mBinding.wallUrl.setText(WallConfig.getDesc());
break;
case 1:
Notify.dismiss();
@ -151,7 +151,7 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
break;
case 2:
Notify.dismiss();
mBinding.wallUrl.setText(WallConfig.getUrl());
mBinding.wallUrl.setText(WallConfig.getDesc());
break;
}
}

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/grey_200" android:state_checked="true" />
<item android:color="@color/accent" android:state_checked="true" />
<item android:color="@color/white" android:state_checked="false" />
</selector>

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/grey_700" android:state_checked="true" />
<item android:color="@color/accent" android:state_checked="true" />
<item android:color="@color/white" android:state_checked="false" />
</selector>
Loading…
Cancel
Save