History support speed

pull/123/head
FongMi 3 years ago
parent ad04a15cdc
commit bc03765465
  1. 7
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
  2. 20
      app/src/main/java/com/fongmi/android/tv/bean/History.java
  3. 8
      app/src/main/java/com/fongmi/android/tv/bean/Site.java
  4. 20
      app/src/main/java/com/fongmi/android/tv/db/AppDatabase.java
  5. 6
      app/src/main/java/com/fongmi/android/tv/player/Players.java

@ -224,7 +224,6 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
getExo().getSubtitleView().setStyle(ExoUtil.getCaptionStyle());
mBinding.control.player.setText(ResUtil.getStringArray(R.array.select_player)[Prefers.getPlayer()]);
mBinding.control.decode.setText(ResUtil.getStringArray(R.array.select_decode)[Prefers.getDecode()]);
mBinding.control.speed.setText(mPlayers.getSpeedText());
}
private void setScale(int scale) {
@ -437,10 +436,12 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
private void onSpeed() {
mBinding.control.speed.setText(mPlayers.addSpeed());
mHistory.setSpeed(mPlayers.getSpeed());
}
private boolean onSpeedLong() {
mBinding.control.speed.setText(mPlayers.toggleSpeed());
mHistory.setSpeed(mPlayers.getSpeed());
return true;
}
@ -577,6 +578,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
if (mHistory.getScale() != -1) setScale(mHistory.getScale());
mBinding.control.opening.setText(mPlayers.stringToTime(mHistory.getOpening()));
mBinding.control.ending.setText(mPlayers.stringToTime(mHistory.getEnding()));
mBinding.control.speed.setText(mPlayers.setSpeed(mHistory.getSpeed()));
}
private History createHistory() {
@ -676,7 +678,8 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
private void onPause(boolean visible) {
mBinding.widget.exoDuration.setText(mPlayers.getDurationTime());
mBinding.widget.exoPosition.setText(mPlayers.getPositionTime(0));
if (visible) showInfo(); else hideInfo();
if (visible) showInfo();
else hideInfo();
mPlayers.pause();
}

@ -29,11 +29,15 @@ public class History {
private long ending;
private long position;
private long duration;
private float speed;
private int player;
private int scale;
private int cid;
public History() {
this.speed = 1;
this.scale = -1;
this.player = -1;
}
@NonNull
@ -141,6 +145,22 @@ public class History {
this.duration = duration;
}
public float getSpeed() {
return speed;
}
public void setSpeed(float speed) {
this.speed = speed;
}
public int getPlayer() {
return player;
}
public void setPlayer(int player) {
this.player = player;
}
public int getScale() {
return scale;
}

@ -15,7 +15,7 @@ import com.google.gson.annotations.SerializedName;
import java.util.Collections;
import java.util.List;
@Entity(ignoredColumns = {"type", "api", "playUrl", "ext", "jar", "categories"})
@Entity(ignoredColumns = {"type", "api", "playUrl", "playerType", "ext", "jar", "categories"})
public class Site {
@NonNull
@ -30,6 +30,8 @@ public class Site {
private String api;
@SerializedName("playUrl")
private String playUrl;
@SerializedName("playerType")
private Integer playerType;
@SerializedName("searchable")
private Integer searchable;
@SerializedName("filterable")
@ -100,6 +102,10 @@ public class Site {
return playUrl;
}
public Integer getPlayerType() {
return playerType;
}
public Integer getSearchable() {
return searchable;
}

@ -22,7 +22,7 @@ import com.fongmi.android.tv.db.dao.SiteDao;
@Database(entities = {Config.class, Site.class, History.class, Keep.class}, version = AppDatabase.VERSION, exportSchema = false)
public abstract class AppDatabase extends RoomDatabase {
public static final int VERSION = 15;
public static final int VERSION = 16;
public static final String SYMBOL = "@@@";
private static volatile AppDatabase instance;
@ -33,7 +33,15 @@ public abstract class AppDatabase extends RoomDatabase {
}
private static AppDatabase create(Context context) {
return Room.databaseBuilder(context, AppDatabase.class, "tv").addMigrations(MIGRATION_11_12).addMigrations(MIGRATION_12_13).addMigrations(MIGRATION_13_14).addMigrations(MIGRATION_14_15).allowMainThreadQueries().fallbackToDestructiveMigration().build();
return Room.databaseBuilder(context, AppDatabase.class, "tv")
.addMigrations(MIGRATION_11_12)
.addMigrations(MIGRATION_12_13)
.addMigrations(MIGRATION_13_14)
.addMigrations(MIGRATION_14_15)
.addMigrations(MIGRATION_15_16)
.allowMainThreadQueries()
.fallbackToDestructiveMigration()
.build();
}
public abstract KeepDao getKeepDao();
@ -73,4 +81,12 @@ public abstract class AppDatabase extends RoomDatabase {
database.execSQL("ALTER TABLE History ADD COLUMN scale INTEGER DEFAULT -1 NOT NULL");
}
};
static final Migration MIGRATION_15_16 = new Migration(15, 16) {
@Override
public void migrate(@NonNull SupportSQLiteDatabase database) {
database.execSQL("ALTER TABLE History ADD COLUMN speed REAL DEFAULT 1 NOT NULL");
database.execSQL("ALTER TABLE History ADD COLUMN player INTEGER DEFAULT -1 NOT NULL");
}
};
}

@ -124,6 +124,12 @@ public class Players implements Player.Listener, IMediaPlayer.OnInfoListener, IM
return String.format(Locale.getDefault(), "%.2f", getSpeed());
}
public String setSpeed(float speed) {
exoPlayer.setPlaybackSpeed(speed);
ijkPlayer.setSpeed(speed);
return getSpeedText();
}
public String addSpeed() {
float speed = getSpeed();
float addon = speed >= 2 ? 1f : 0.25f;

Loading…
Cancel
Save