diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java index 4f9cdc8a6..1116feda7 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.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(); } diff --git a/app/src/main/java/com/fongmi/android/tv/bean/History.java b/app/src/main/java/com/fongmi/android/tv/bean/History.java index 3f177bf5a..78b1f525c 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/History.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/History.java @@ -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; } diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Site.java b/app/src/main/java/com/fongmi/android/tv/bean/Site.java index a0404ef97..d56853678 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Site.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Site.java @@ -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; } diff --git a/app/src/main/java/com/fongmi/android/tv/db/AppDatabase.java b/app/src/main/java/com/fongmi/android/tv/db/AppDatabase.java index 70948eaef..f89be88a4 100644 --- a/app/src/main/java/com/fongmi/android/tv/db/AppDatabase.java +++ b/app/src/main/java/com/fongmi/android/tv/db/AppDatabase.java @@ -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"); + } + }; } diff --git a/app/src/main/java/com/fongmi/android/tv/player/Players.java b/app/src/main/java/com/fongmi/android/tv/player/Players.java index 97cb8a63e..1a83a7dfb 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/Players.java +++ b/app/src/main/java/com/fongmi/android/tv/player/Players.java @@ -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;