diff --git a/app/src/main/java/com/github/tvbox/osc/bean/VodInfo.java b/app/src/main/java/com/github/tvbox/osc/bean/VodInfo.java index a296a8ea..66736b49 100644 --- a/app/src/main/java/com/github/tvbox/osc/bean/VodInfo.java +++ b/app/src/main/java/com/github/tvbox/osc/bean/VodInfo.java @@ -8,6 +8,7 @@ import java.util.Collections; import java.util.Comparator; import java.util.LinkedHashMap; import java.util.List; +import java.util.Set; /** * @author pj567 @@ -48,6 +49,7 @@ public class VodInfo implements Serializable { public int playIndex = 0; public String sourceKey; public String playerCfg = ""; + public boolean reverseSort = false; public void setVideo(Movie.Video video) { last = video.last; @@ -101,6 +103,13 @@ public class VodInfo implements Serializable { } } + public void reverse() { + Set flags = seriesMap.keySet(); + for (String flag : flags) { + Collections.reverse(seriesMap.get(flag)); + } + } + public static class VodSeriesFlag implements Serializable { public String name; diff --git a/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java b/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java index 45f21c9c..348368ee 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java @@ -71,6 +71,7 @@ public class DetailActivity extends BaseActivity { private TextView tvDirector; private TextView tvDes; private TextView tvPlay; + private TextView tvSort; private TextView tvQuickSearch; private TextView tvCollect; private TvRecyclerView mGridViewFlag; @@ -112,6 +113,7 @@ public class DetailActivity extends BaseActivity { tvDirector = findViewById(R.id.tvDirector); tvDes = findViewById(R.id.tvDes); tvPlay = findViewById(R.id.tvPlay); + tvSort = findViewById(R.id.tvSort); tvCollect = findViewById(R.id.tvCollect); tvQuickSearch = findViewById(R.id.tvQuickSearch); mEmptyPlayList = findViewById(R.id.mEmptyPlaylist); @@ -125,6 +127,17 @@ public class DetailActivity extends BaseActivity { mGridViewFlag.setLayoutManager(new V7LinearLayoutManager(this.mContext, 0, false)); seriesFlagAdapter = new SeriesFlagAdapter(); mGridViewFlag.setAdapter(seriesFlagAdapter); + tvSort.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (vodInfo != null && vodInfo.seriesMap.size() > 0) { + vodInfo.reverseSort = !vodInfo.reverseSort; + vodInfo.reverse(); + insertVod(sourceKey, vodInfo); + seriesAdapter.notifyDataSetChanged(); + } + } + }); tvPlay.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -313,10 +326,16 @@ public class DetailActivity extends BaseActivity { vodInfo.playIndex = Math.max(vodInfoRecord.playIndex, 0); vodInfo.playFlag = vodInfoRecord.playFlag; vodInfo.playerCfg = vodInfoRecord.playerCfg; + vodInfo.reverseSort = vodInfoRecord.reverseSort; } else { vodInfo.playIndex = 0; vodInfo.playFlag = null; vodInfo.playerCfg = ""; + vodInfo.reverseSort = false; + } + + if (vodInfo.reverseSort) { + vodInfo.reverse(); } if (vodInfo.playFlag == null || !vodInfo.seriesMap.containsKey(vodInfo.playFlag)) diff --git a/app/src/main/res/drawable/button_detail_sort.xml b/app/src/main/res/drawable/button_detail_sort.xml new file mode 100644 index 00000000..329aaef6 --- /dev/null +++ b/app/src/main/res/drawable/button_detail_sort.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_detail.xml b/app/src/main/res/layout/activity_detail.xml index db89cb8b..b58b462d 100644 --- a/app/src/main/res/layout/activity_detail.xml +++ b/app/src/main/res/layout/activity_detail.xml @@ -137,7 +137,7 @@ + + #FF6600 #00FF0A #CBF46A + #90CA09 #BD0CADE2 #FF0057 #FF5F00