pull/123/head
FongMi 4 years ago
parent 615e5ecdbf
commit 0b9c5e1db9
  1. 6
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
  2. 3
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  3. 13
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  4. 9
      app/src/leanback/res/layout/view_controller_live.xml
  5. 15
      app/src/leanback/res/layout/view_widget_live.xml
  6. 2
      app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java
  7. 3
      app/src/main/java/com/fongmi/android/tv/api/LiveConfig.java
  8. 9
      app/src/main/java/com/fongmi/android/tv/bean/History.java
  9. 11
      app/src/main/java/com/fongmi/android/tv/db/AppDatabase.java
  10. 5
      app/src/main/java/com/fongmi/android/tv/player/Players.java
  11. 8
      app/src/main/java/com/fongmi/android/tv/utils/Prefers.java

@ -157,7 +157,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
mControl.tracks.setOnClickListener(view -> onTracks());
mControl.ending.setOnClickListener(view -> onEnding());
mControl.opening.setOnClickListener(view -> onOpening());
mControl.speed.setOnLongClickListener(view -> onSpeedReset());
mControl.speed.setOnLongClickListener(view -> onSpeedLong());
mControl.ending.setOnLongClickListener(view -> onEndingReset());
mControl.opening.setOnLongClickListener(view -> onOpeningReset());
mBinding.flag.addOnChildViewHolderSelectedListener(new OnChildViewHolderSelectedListener() {
@ -406,8 +406,8 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
mControl.speed.setText(mPlayers.getSpeed());
}
private boolean onSpeedReset() {
mPlayers.resetSpeed();
private boolean onSpeedLong() {
mPlayers.toggleSpeed();
mControl.speed.setText(mPlayers.getSpeed());
return true;
}

@ -71,6 +71,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
LiveConfig.get().init();
ApiConfig.get().init().load(getCallback());
Updater.create(this).start();
Notify.progress(this);
Server.get().start();
setRecyclerView();
setViewModel();
@ -124,6 +125,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
return new Callback() {
@Override
public void success() {
Notify.dismiss();
getHistory();
getVideo();
}
@ -131,6 +133,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
@Override
public void error(int resId) {
Notify.show(resId);
Notify.dismiss();
}
};
}

@ -127,11 +127,11 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
protected void initEvent() {
mBinding.group.setListener(this);
mBinding.channel.setListener(this);
mControl.home.setOnClickListener(view -> onHome());
mControl.scale.setOnClickListener(view -> onScale());
mControl.speed.setOnClickListener(view -> onSpeed());
mControl.tracks.setOnClickListener(view -> onTracks());
mControl.speed.setOnLongClickListener(view -> onSpeedReset());
mControl.home.setOnClickListener(view -> LiveDialog.create(this).show());
mControl.speed.setOnLongClickListener(view -> onSpeedLong());
mBinding.group.addOnChildViewHolderSelectedListener(new OnChildViewHolderSelectedListener() {
@Override
public void onChildViewHolderSelected(@NonNull RecyclerView parent, @Nullable RecyclerView.ViewHolder child, int position, int subposition) {
@ -219,6 +219,11 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
hideInfo();
}
private void onHome() {
App.post(() -> getPlayerView().hideController(), 150);
LiveDialog.create(this).show();
}
private void onScale() {
int scale = getPlayerView().getResizeMode();
getPlayerView().setResizeMode(scale = scale == 4 ? 0 : scale + 1);
@ -231,8 +236,8 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
mControl.speed.setText(mPlayers.getSpeed());
}
private boolean onSpeedReset() {
mPlayers.resetSpeed();
private boolean onSpeedLong() {
mPlayers.toggleSpeed();
mControl.speed.setText(mPlayers.getSpeed());
return true;
}

@ -28,8 +28,7 @@
android:layout_height="wrap_content"
android:layout_marginEnd="12dp"
android:textColor="@color/grey_700"
android:textSize="16sp"
android:textStyle="bold"
android:textSize="18sp"
tools:text="005" />
<TextView
@ -41,8 +40,7 @@
android:scrollHorizontally="true"
android:singleLine="true"
android:textColor="@color/grey_700"
android:textSize="16sp"
android:textStyle="bold"
android:textSize="18sp"
tools:text="民視" />
<TextView
@ -54,8 +52,7 @@
android:layout_weight="1"
android:singleLine="true"
android:textColor="@color/grey_700"
android:textSize="16sp"
android:textStyle="bold"
android:textSize="18sp"
tools:text="正在播放:食神" />
<TextView

@ -35,10 +35,7 @@
android:layout_gravity="bottom"
android:background="@drawable/shape_live_info"
android:orientation="horizontal"
android:paddingStart="16dp"
android:paddingTop="16dp"
android:paddingEnd="16dp"
android:paddingBottom="16dp"
android:padding="16dp"
android:visibility="gone"
tools:visibility="visible">
@ -48,7 +45,7 @@
android:layout_height="wrap_content"
android:layout_marginEnd="12dp"
android:textColor="@color/white"
android:textSize="16sp"
android:textSize="20sp"
android:textStyle="bold"
tools:text="005" />
@ -59,7 +56,7 @@
android:layout_marginEnd="12dp"
android:singleLine="true"
android:textColor="@color/white"
android:textSize="16sp"
android:textSize="20sp"
android:textStyle="bold"
tools:text="民視" />
@ -71,7 +68,7 @@
android:layout_weight="1"
android:singleLine="true"
android:textColor="@color/white"
android:textSize="16sp"
android:textSize="20sp"
android:textStyle="bold"
tools:text="正在播放:食神" />
@ -81,7 +78,7 @@
android:layout_height="wrap_content"
android:layout_marginEnd="12dp"
android:textColor="@color/white"
android:textSize="16sp"
android:textSize="20sp"
android:textStyle="bold"
tools:text="來源 1" />
@ -90,7 +87,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:textSize="16sp"
android:textSize="20sp"
android:textStyle="bold"
tools:text="16:50" />

@ -157,7 +157,7 @@ public class ApiConfig {
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);
else if (LiveConfig.get().getHome() == null) LiveConfig.get().load();
else if (LiveConfig.isEmpty()) LiveConfig.get().load();
}
private String parseExt(String ext) {

@ -42,7 +42,7 @@ public class LiveConfig {
}
public static boolean isEmpty() {
return get().getHome() == null || get().getHome().getGroups().isEmpty();
return get().getHome() == null;
}
public LiveConfig init() {
@ -99,7 +99,6 @@ public class LiveConfig {
if (!object.has("lives")) return;
for (JsonElement element : Json.safeListElement(object, "lives")) parse(Live.objectFrom(element));
if (home == null) setHome(lives.isEmpty() ? new Live() : lives.get(0));
LiveParser.start(home);
}
private void parse(Live live) {

@ -29,6 +29,7 @@ public class History {
private long ending;
private long position;
private long duration;
private int scale;
private int cid;
public History() {
@ -139,6 +140,14 @@ public class History {
this.duration = duration;
}
public int getScale() {
return scale;
}
public void setScale(int scale) {
this.scale = scale;
}
public int getCid() {
return cid;
}

@ -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 = 14;
public static final int VERSION = 15;
public static final String SYMBOL = "@@@";
private static volatile AppDatabase instance;
@ -33,7 +33,7 @@ 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).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).allowMainThreadQueries().fallbackToDestructiveMigration().build();
}
public abstract KeepDao getKeepDao();
@ -66,4 +66,11 @@ public abstract class AppDatabase extends RoomDatabase {
database.execSQL("CREATE UNIQUE INDEX IF NOT EXISTS index_Config_url_type ON Config(url, type)");
}
};
static final Migration MIGRATION_14_15 = new Migration(14, 15) {
@Override
public void migrate(@NonNull SupportSQLiteDatabase database) {
database.execSQL("ALTER TABLE History ADD COLUMN scale INTEGER DEFAULT -1 NOT NULL");
}
};
}

@ -82,8 +82,9 @@ public class Players implements Player.Listener, AnalyticsListener, ParseTask.Ca
exoPlayer.setPlaybackSpeed(speed);
}
public void resetSpeed() {
exoPlayer.setPlaybackSpeed(1f);
public void toggleSpeed() {
float speed = exoPlayer.getPlaybackParameters().speed;
exoPlayer.setPlaybackSpeed(speed == 1 ? 3f : 1f);
}
public String getTime(long time) {

@ -108,19 +108,19 @@ public class Prefers {
}
public static int getVodScale() {
return getInt("scaleVod");
return getInt("vodScale");
}
public static void putVodScale(int scale) {
put("scaleVod", scale);
put("vodScale", scale);
}
public static int getLiveScale() {
return getInt("scaleLive", getVodScale());
return getInt("liveScale", getVodScale());
}
public static void putLiveScale(int scale) {
put("scaleLive", scale);
put("liveScale", scale);
}
public static boolean getUpdate() {

Loading…
Cancel
Save