Support adaptive track

pull/137/head
FongMi 3 years ago
parent d0690a1df9
commit dd2ef09244
  1. 14
      app/schemas/com.fongmi.android.tv.db.AppDatabase/24.json
  2. 1
      app/src/main/java/com/fongmi/android/tv/bean/History.java
  3. 9
      app/src/main/java/com/fongmi/android/tv/bean/Track.java
  4. 10
      app/src/main/java/com/fongmi/android/tv/db/AppDatabase.java
  5. 3
      app/src/main/java/com/fongmi/android/tv/db/dao/TrackDao.java
  6. 4
      app/src/main/java/com/fongmi/android/tv/ui/adapter/TrackAdapter.java
  7. 2
      app/src/main/java/com/fongmi/android/tv/ui/custom/dialog/TrackDialog.java

@ -1,8 +1,8 @@
{
"formatVersion": 1,
"database": {
"version": 23,
"identityHash": "0d186de42a589253f12a86254e20636e",
"version": 24,
"identityHash": "d6fa99526559c6a3a44f3911535b3639",
"entities": [
{
"tableName": "Keep",
@ -112,7 +112,7 @@
},
{
"tableName": "Track",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `type` INTEGER NOT NULL, `group` INTEGER NOT NULL, `track` INTEGER NOT NULL, `player` INTEGER NOT NULL, `key` TEXT, `name` TEXT, `selected` INTEGER NOT NULL)",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `type` INTEGER NOT NULL, `group` INTEGER NOT NULL, `track` INTEGER NOT NULL, `player` INTEGER NOT NULL, `key` TEXT, `name` TEXT, `selected` INTEGER NOT NULL, `adaptive` INTEGER NOT NULL)",
"fields": [
{
"fieldPath": "id",
@ -161,6 +161,12 @@
"columnName": "selected",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "adaptive",
"columnName": "adaptive",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
@ -432,7 +438,7 @@
"views": [],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '0d186de42a589253f12a86254e20636e')"
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'd6fa99526559c6a3a44f3911535b3639')"
]
}
}

@ -299,6 +299,7 @@ public class History {
public History delete() {
AppDatabase.get().getHistoryDao().delete(ApiConfig.getCid(), getKey());
AppDatabase.get().getTrackDao().delete(getKey());
return this;
}

@ -22,6 +22,7 @@ public class Track {
private String key;
private String name;
private boolean selected;
private boolean adaptive;
public Track(int type, String name) {
this.type = type;
@ -92,6 +93,14 @@ public class Track {
this.selected = selected;
}
public boolean isAdaptive() {
return adaptive;
}
public void setAdaptive(boolean adaptive) {
this.adaptive = adaptive;
}
public boolean isExo(int player) {
return getPlayer() == player && player == Players.EXO;
}

@ -27,7 +27,7 @@ import com.fongmi.android.tv.utils.Prefers;
@Database(entities = {Keep.class, Site.class, Track.class, Config.class, Device.class, History.class}, version = AppDatabase.VERSION)
public abstract class AppDatabase extends RoomDatabase {
public static final int VERSION = 23;
public static final int VERSION = 24;
public static final String SYMBOL = "@@@";
private static volatile AppDatabase instance;
@ -51,6 +51,7 @@ public abstract class AppDatabase extends RoomDatabase {
.addMigrations(MIGRATION_20_21)
.addMigrations(MIGRATION_21_22)
.addMigrations(MIGRATION_22_23)
.addMigrations(MIGRATION_23_24)
.allowMainThreadQueries()
.fallbackToDestructiveMigration()
.build();
@ -158,4 +159,11 @@ public abstract class AppDatabase extends RoomDatabase {
if (Prefers.getPlayer() == 0) Prefers.putPlayer(2);
}
};
static final Migration MIGRATION_23_24 = new Migration(23, 24) {
@Override
public void migrate(@NonNull SupportSQLiteDatabase database) {
database.execSQL("ALTER TABLE Track ADD COLUMN `adaptive` INTEGER NOT NULL DEFAULT 0");
}
};
}

@ -17,4 +17,7 @@ public abstract class TrackDao extends BaseDao<Track> {
@Insert(onConflict = OnConflictStrategy.REPLACE)
public abstract Long insert(Track item);
@Query("DELETE FROM Track WHERE `key` = :key")
public abstract void delete(String key);
}

@ -69,7 +69,9 @@ public class TrackAdapter extends RecyclerView.Adapter<TrackAdapter.ViewHolder>
@Override
public void onClick(View view) {
mListener.onItemClick(mItems.get(getLayoutPosition()).toggle());
Track item = mItems.get(getLayoutPosition()).toggle();
notifyItemChanged(getLayoutPosition());
mListener.onItemClick(item);
}
}
}

@ -84,6 +84,7 @@ public final class TrackDialog extends BaseDialog implements TrackAdapter.OnClic
if (trackGroup.getType() != type) continue;
for (int j = 0; j < trackGroup.length; j++) {
Track item = new Track(type, provider.getTrackName(trackGroup.getTrackFormat(j)));
item.setAdaptive(trackGroup.isAdaptiveSupported());
item.setSelected(trackGroup.isTrackSelected(j));
item.setPlayer(player.getPlayer());
item.setGroup(i);
@ -111,6 +112,7 @@ public final class TrackDialog extends BaseDialog implements TrackAdapter.OnClic
public void onItemClick(Track item) {
if (listener != null) listener.onTrackClick(item);
player.setTrack(List.of(item));
if (item.isAdaptive()) return;
dismiss();
}

Loading…
Cancel
Save