Update parse system - part 2

pull/123/head
FongMi 3 years ago
parent 410fe9081a
commit 6c62a748f3
  1. 15
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
  2. 2
      app/src/main/java/com/fongmi/android/tv/Constant.java
  3. 4
      app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java
  4. 14
      app/src/main/java/com/fongmi/android/tv/bean/Config.java
  5. 10
      app/src/main/java/com/fongmi/android/tv/db/AppDatabase.java
  6. 8
      app/src/main/java/com/fongmi/android/tv/utils/Prefers.java

@ -286,7 +286,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
mViewModel.player.observe(this, result -> {
boolean useParse = (result.getPlayUrl().isEmpty() && ApiConfig.get().getFlags().contains(result.getFlag())) || result.getJx() == 1;
mBinding.control.parseLayout.setVisibility(useParse ? View.VISIBLE : View.GONE);
mPlayers.start(result, useParse);
startPlay(result, useParse);
resetFocus(useParse);
});
mViewModel.result.observe(this, result -> {
@ -325,11 +325,19 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
mViewModel.playerContent(getKey(), getVodFlag().getFlag(), item.getUrl());
Clock.get().setCallback(null);
updateHistory(item, replay);
setR3Callback();
showProgress();
hideError();
}
private void startPlay(Result result, boolean useParse) {
if (result != null) {
mPlayers.start(result, useParse);
setR3Callback();
} else {
ErrorEvent.url();
}
}
private void setEmpty() {
if (getName().isEmpty()) {
mBinding.progressLayout.showEmpty();
@ -413,9 +421,8 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
private void setParseActivated(Parse item) {
ApiConfig.get().setParse(item);
Result result = mViewModel.getPlayer().getValue();
if (result != null) mPlayers.start(result, true);
notifyItemChanged(mBinding.control.parse, mParseAdapter);
startPlay(mViewModel.getPlayer().getValue(), true);
showProgress();
hideError();
}

@ -9,7 +9,7 @@ public class Constant {
//網路偵測間隔 0.5 秒
public static final int INTERVAL_TRAFFIC = 500;
//點播超時時間 30 秒
public static final int TIMEOUT_VOD = 30 * 1000;
public static final int TIMEOUT_VOD = 10 * 1000;
//直播超時時間 10 秒
public static final int TIMEOUT_LIVE = 10 * 1000;
//解析超時時間 5 秒

@ -146,7 +146,7 @@ public class ApiConfig {
}
for (JsonElement element : Json.safeListElement(object, "parses")) {
Parse parse = Parse.objectFrom(element);
if (parse.getName().equals(Prefers.getParse())) setParse(parse);
if (parse.getName().equals(config.getParse())) setParse(parse);
if (!parses.contains(parse)) parses.add(parse);
}
if (home == null) setHome(sites.isEmpty() ? new Site() : sites.get(0));
@ -241,7 +241,7 @@ public class ApiConfig {
public void setParse(Parse parse) {
this.parse = parse;
this.parse.setActivated(true);
Prefers.putParse(parse.getName());
config.parse(parse.getName()).update();
for (Parse item : parses) item.setActivated(parse);
}

@ -19,6 +19,7 @@ public class Config {
private String url;
private String json;
private String home;
private String parse;
public static Config create(String url, int type) {
return new Config(url, type);
@ -70,6 +71,14 @@ public class Config {
this.home = home;
}
public String getParse() {
return parse;
}
public void setParse(String parse) {
this.parse = parse;
}
public long getTime() {
return time;
}
@ -93,6 +102,11 @@ public class Config {
return this;
}
public Config parse(String parse) {
setParse(parse);
return this;
}
public static List<Config> getAll(int type) {
return AppDatabase.get().getConfigDao().findByType(type);
}

@ -24,7 +24,7 @@ import com.fongmi.android.tv.db.dao.TrackDao;
@Database(entities = {Keep.class, Site.class, Track.class, Config.class, History.class}, version = AppDatabase.VERSION)
public abstract class AppDatabase extends RoomDatabase {
public static final int VERSION = 17;
public static final int VERSION = 18;
public static final String SYMBOL = "@@@";
private static volatile AppDatabase instance;
@ -42,6 +42,7 @@ public abstract class AppDatabase extends RoomDatabase {
.addMigrations(MIGRATION_14_15)
.addMigrations(MIGRATION_15_16)
.addMigrations(MIGRATION_16_17)
.addMigrations(MIGRATION_17_18)
.allowMainThreadQueries()
.fallbackToDestructiveMigration()
.build();
@ -102,4 +103,11 @@ public abstract class AppDatabase extends RoomDatabase {
database.execSQL("CREATE UNIQUE INDEX IF NOT EXISTS `index_Track_key_player_type` ON `Track` (`key`, `player`, `type`)");
}
};
static final Migration MIGRATION_17_18 = new Migration(17, 18) {
@Override
public void migrate(@NonNull SupportSQLiteDatabase database) {
database.execSQL("ALTER TABLE Config ADD COLUMN parse TEXT DEFAULT NULL");
}
};
}

@ -123,14 +123,6 @@ public class Prefers {
put("size", size);
}
public static String getParse() {
return getString("parse");
}
public static void putParse(String parse) {
put("parse", parse);
}
public static String getKeyword() {
return getString("keyword");
}

Loading…
Cancel
Save