diff --git a/app/src/main/java/com/github/tvbox/osc/ui/dialog/SelectDialog.java b/app/src/main/java/com/github/tvbox/osc/ui/dialog/SelectDialog.java index 53e787c7..358fe05f 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/dialog/SelectDialog.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/dialog/SelectDialog.java @@ -5,6 +5,7 @@ import android.os.Bundle; import android.widget.TextView; import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; import com.github.tvbox.osc.R; import com.github.tvbox.osc.ui.adapter.SelectDialogAdapter; @@ -12,6 +13,8 @@ import com.owen.tvrecyclerview.widget.TvRecyclerView; import org.jetbrains.annotations.NotNull; +import java.util.List; + public class SelectDialog extends BaseDialog { public SelectDialog(@NonNull @NotNull Context context) { super(context); @@ -27,8 +30,17 @@ public class SelectDialog extends BaseDialog { ((TextView) findViewById(R.id.title)).setText(tip); } - public void setAdapter(SelectDialogAdapter adapter) { + public void setAdapter(SelectDialogAdapter.SelectDialogInterface sourceBeanSelectDialogInterface, DiffUtil.ItemCallback sourceBeanItemCallback, List data, int select) { + SelectDialogAdapter adapter = new SelectDialogAdapter(sourceBeanSelectDialogInterface, sourceBeanItemCallback); + adapter.setData(data, select); TvRecyclerView tvRecyclerView = ((TvRecyclerView) findViewById(R.id.list)); tvRecyclerView.setAdapter(adapter); + tvRecyclerView.setSelectedPosition(select); + tvRecyclerView.post(new Runnable() { + @Override + public void run() { + tvRecyclerView.scrollToPosition(select); + } + }); } } diff --git a/app/src/main/java/com/github/tvbox/osc/ui/fragment/ModelSettingFragment.java b/app/src/main/java/com/github/tvbox/osc/ui/fragment/ModelSettingFragment.java index b3a86e79..22baa78f 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/fragment/ModelSettingFragment.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/fragment/ModelSettingFragment.java @@ -170,7 +170,7 @@ public class ModelSettingFragment extends BaseLazyFragment { if (sites.size() > 0) { SelectDialog dialog = new SelectDialog<>(mActivity); dialog.setTip("请选择首页数据源"); - SelectDialogAdapter selectAdapter = new SelectDialogAdapter(new SelectDialogAdapter.SelectDialogInterface() { + dialog.setAdapter(new SelectDialogAdapter.SelectDialogInterface() { @Override public void click(SourceBean value, int pos) { ApiConfig.get().setSourceBean(value); @@ -191,9 +191,7 @@ public class ModelSettingFragment extends BaseLazyFragment { public boolean areContentsTheSame(@NonNull @NotNull SourceBean oldItem, @NonNull @NotNull SourceBean newItem) { return oldItem.getKey().equals(newItem.getKey()); } - }); - selectAdapter.setData(sites, sites.indexOf(ApiConfig.get().getHomeSourceBean())); - dialog.setAdapter(selectAdapter); + }, sites, sites.indexOf(ApiConfig.get().getHomeSourceBean())); dialog.show(); } } @@ -240,9 +238,9 @@ public class ModelSettingFragment extends BaseLazyFragment { } } - SelectDialog dialog = new SelectDialog<>(mActivity); - dialog.setTip("请选择Ijk解码"); - SelectDialogAdapter selectAdapter = new SelectDialogAdapter(new SelectDialogAdapter.SelectDialogInterface() { + SelectDialog dialog = new SelectDialog<>(mActivity); + dialog.setTip("请选择IJK解码"); + dialog.setAdapter(new SelectDialogAdapter.SelectDialogInterface() { @Override public void click(IJKCode value, int pos) { value.selected(true); @@ -263,9 +261,7 @@ public class ModelSettingFragment extends BaseLazyFragment { public boolean areContentsTheSame(@NonNull @NotNull IJKCode oldItem, @NonNull @NotNull IJKCode newItem) { return oldItem.getName().equals(newItem.getName()); } - }); - selectAdapter.setData(ijkCodes, defaultPos); - dialog.setAdapter(selectAdapter); + }, ijkCodes, defaultPos); dialog.show(); } }); @@ -278,9 +274,9 @@ public class ModelSettingFragment extends BaseLazyFragment { players.add(0); players.add(1); players.add(2); - SelectDialog dialog = new SelectDialog<>(mActivity); + SelectDialog dialog = new SelectDialog<>(mActivity); dialog.setTip("请选择默认播放器"); - SelectDialogAdapter selectAdapter = new SelectDialogAdapter(new SelectDialogAdapter.SelectDialogInterface() { + dialog.setAdapter(new SelectDialogAdapter.SelectDialogInterface() { @Override public void click(Integer value, int pos) { Hawk.put(HawkConfig.PLAY_TYPE, value); @@ -302,9 +298,7 @@ public class ModelSettingFragment extends BaseLazyFragment { public boolean areContentsTheSame(@NonNull @NotNull Integer oldItem, @NonNull @NotNull Integer newItem) { return oldItem.intValue() == newItem.intValue(); } - }); - selectAdapter.setData(players, defaultPos); - dialog.setAdapter(selectAdapter); + }, players, defaultPos); dialog.show(); } }); @@ -316,9 +310,9 @@ public class ModelSettingFragment extends BaseLazyFragment { ArrayList renders = new ArrayList<>(); renders.add(0); renders.add(1); - SelectDialog dialog = new SelectDialog<>(mActivity); + SelectDialog dialog = new SelectDialog<>(mActivity); dialog.setTip("请选择默认渲染方式"); - SelectDialogAdapter selectAdapter = new SelectDialogAdapter(new SelectDialogAdapter.SelectDialogInterface() { + dialog.setAdapter(new SelectDialogAdapter.SelectDialogInterface() { @Override public void click(Integer value, int pos) { Hawk.put(HawkConfig.PLAY_RENDER, value); @@ -340,9 +334,7 @@ public class ModelSettingFragment extends BaseLazyFragment { public boolean areContentsTheSame(@NonNull @NotNull Integer oldItem, @NonNull @NotNull Integer newItem) { return oldItem.intValue() == newItem.intValue(); } - }); - selectAdapter.setData(renders, defaultPos); - dialog.setAdapter(selectAdapter); + }, renders, defaultPos); dialog.show(); } }); diff --git a/app/src/main/res/drawable/dialog_button_01.xml b/app/src/main/res/drawable/dialog_button_01.xml index 4960389e..44cf47bf 100644 --- a/app/src/main/res/drawable/dialog_button_01.xml +++ b/app/src/main/res/drawable/dialog_button_01.xml @@ -2,13 +2,13 @@ - - + + - + diff --git a/app/src/main/res/layout/dialog_select.xml b/app/src/main/res/layout/dialog_select.xml index 38ac1abb..ca3da7f7 100644 --- a/app/src/main/res/layout/dialog_select.xml +++ b/app/src/main/res/layout/dialog_select.xml @@ -6,10 +6,10 @@ android:layout_height="match_parent"> + android:background="@drawable/dialog_bg_01"> - + - + android:layout_gravity="center" + android:background="@drawable/dialog_bg_01" + android:orientation="vertical" + android:padding="@dimen/vs_30"> - + - \ No newline at end of file + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_dialog_select.xml b/app/src/main/res/layout/item_dialog_select.xml index c732b2c9..04a4dcc1 100644 --- a/app/src/main/res/layout/item_dialog_select.xml +++ b/app/src/main/res/layout/item_dialog_select.xml @@ -6,7 +6,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" - android:background="@drawable/source_focus" + android:background="@drawable/dialog_button_01" android:clickable="true" android:focusable="true" android:gravity="center" diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index d01c280b..c508712e 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -1,6 +1,5 @@ - #058AF4 #6200EE #3700B3 #03DAC5 @@ -20,6 +19,7 @@ #66000000 #CC000000 #02F8E1 + #353744 #CC353744 #6c3d3d3d #bbffffff diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 1660e6f2..0df56eb0 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -73,6 +73,7 @@ 360mm 390mm 400mm + 440mm 410mm 470mm 480mm