Merge pull request #273 from okcaptain/dev

update
pull/274/head
okcaptain 2 years ago committed by GitHub
commit f700600b13
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 2
      app/build.gradle
  2. 3
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  3. 7
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingCustomActivity.java
  4. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/dialog/EpisodeDialog.java
  5. 7
      app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java
  6. 2
      app/src/leanback/res/drawable/ic_action_choose.xml
  7. 2
      app/src/leanback/res/drawable/ic_action_size.xml
  8. 2
      app/src/leanback/res/drawable/shape_bottom_sheet.xml
  9. 11
      app/src/leanback/res/drawable/shape_trans_bottom_sheet.xml
  10. 29
      app/src/leanback/res/layout/activity_setting_custom.xml
  11. 2
      app/src/leanback/res/layout/dialog_danmu_size.xml
  12. 2
      app/src/leanback/res/layout/dialog_track.xml
  13. 14
      app/src/leanback/res/values/styles.xml
  14. 8
      app/src/main/java/com/fongmi/android/tv/Setting.java
  15. 18
      app/src/main/java/com/fongmi/android/tv/bean/Site.java
  16. 4
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  17. 8
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingCustomFragment.java
  18. 6
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java
  19. 2
      app/src/mobile/res/layout/dialog_danmu.xml
  20. 27
      app/src/mobile/res/layout/fragment_setting_custom.xml

@ -11,7 +11,7 @@ android {
minSdk 21
targetSdk 28
versionCode 225
versionName "0206"
versionName "0207"
javaCompileOptions {
annotationProcessorOptions {
arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]

@ -20,7 +20,6 @@ import com.android.cast.dlna.dmr.DLNARendererService;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.Product;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.Setting;
import com.fongmi.android.tv.Updater;
import com.fongmi.android.tv.api.config.LiveConfig;
import com.fongmi.android.tv.api.config.VodConfig;
@ -321,7 +320,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
@Override
public void onItemClick(Vod item) {
if (Setting.isAggregatedSearch()) CollectActivity.start(this, item.getVodName());
if (getHome().isIndexs()) CollectActivity.start(this, item.getVodName());
else VideoActivity.start(this, item.getVodId(), item.getVodName(), item.getVodPic());
}

@ -44,7 +44,6 @@ public class SettingCustomActivity extends BaseActivity {
mBinding.displayNetspeedText.setText(getSwitch(Setting.isDisplaySpeed()));
mBinding.displayDurationText.setText(getSwitch(Setting.isDisplayDuration()));
mBinding.speedText.setText(Setting.getPlaySpeed() + "x");
mBinding.aggregatedSearchText.setText(getSwitch(Setting.isAggregatedSearch()));
mBinding.fullscreenMenuKeyText.setText((fullscreenMenuKey = ResUtil.getStringArray(R.array.select_fullscreen_menu_key))[Setting.getFullscreenMenuKey()]);
}
@ -58,7 +57,6 @@ public class SettingCustomActivity extends BaseActivity {
mBinding.displayDuration.setOnClickListener(this::setDisplayDuration);
mBinding.speed.setOnClickListener(this::setSpeed);
mBinding.speed.setOnLongClickListener(this::resetSpeed);
mBinding.aggregatedSearch.setOnClickListener(this::setAggregatedSearch);
mBinding.fullscreenMenuKey.setOnClickListener(this::setfullscreenMenuKey);
}
@ -111,11 +109,6 @@ public class SettingCustomActivity extends BaseActivity {
return true;
}
private void setAggregatedSearch(View view) {
Setting.putAggregatedSearch(!Setting.isAggregatedSearch());
mBinding.aggregatedSearchText.setText(getSwitch(Setting.isAggregatedSearch()));
}
private void setfullscreenMenuKey(View view) {
int index = Setting.getFullscreenMenuKey();
Setting.putFullscreenMenuKey(index = index == fullscreenMenuKey.length - 1 ? 0 : ++index);

@ -18,7 +18,6 @@ import androidx.leanback.widget.ItemBridgeAdapter;
import androidx.leanback.widget.OnChildViewHolderSelectedListener;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewbinding.ViewBinding;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.Setting;
import com.fongmi.android.tv.bean.Episode;
import com.fongmi.android.tv.databinding.DialogEpisodeBinding;
@ -48,7 +47,6 @@ public class EpisodeDialog extends BaseDialog implements ArrayPresenter.OnClickL
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
setStyle(STYLE_NORMAL, R.style.TransBottomSheetDialog);
BottomSheetDialog dialog = (BottomSheetDialog) super.onCreateDialog(savedInstanceState);
dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override

@ -19,7 +19,6 @@ import androidx.viewbinding.ViewBinding;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.Product;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.Setting;
import com.fongmi.android.tv.api.config.VodConfig;
import com.fongmi.android.tv.bean.Filter;
import com.fongmi.android.tv.bean.Page;
@ -97,6 +96,10 @@ public class VodFragment extends BaseFragment implements CustomScroller.Callback
return VodConfig.get().getSite(getKey());
}
private boolean isIndexs() {
return getSite().isIndexs();
}
private Page getLastPage() {
return mPages.get(mPages.size() - 1);
}
@ -283,7 +286,7 @@ public class VodFragment extends BaseFragment implements CustomScroller.Callback
mBinding.recycler.setMoveTop(false);
getVideo(item.getVodId(), "1");
} else {
if (Setting.isAggregatedSearch()) CollectActivity.start(getActivity(), item.getVodName());
if (isIndexs()) CollectActivity.start(getActivity(), item.getVodName());
else if (!isFolder()) VideoActivity.start(getActivity(), getKey(), item.getVodId(), item.getVodName(), item.getVodPic());
else VideoActivity.start(getActivity(), getKey(), item.getVodId(), item.getVodName(), item.getVodPic(), item.getVodName());
}

@ -1,7 +1,7 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="@color/grey_600"
android:tint="@color/white"
android:viewportWidth="24"
android:viewportHeight="24">
<path

@ -1,7 +1,7 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="@color/grey_600"
android:tint="@color/white"
android:viewportWidth="960"
android:viewportHeight="960">
<path

@ -2,7 +2,7 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/white_90" />
<solid android:color="@color/black_20" />
<corners
android:topLeftRadius="12dp"

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/black_20" />
<corners
android:topLeftRadius="12dp"
android:topRightRadius="12dp" />
</shape>

@ -217,35 +217,6 @@
</LinearLayout>
<LinearLayout
android:id="@+id/aggregatedSearch"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="@drawable/selector_item"
android:focusable="true"
android:focusableInTouchMode="true"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:text="@string/setting_aggregated_search"
android:textColor="@color/white"
android:textSize="18sp" />
<TextView
android:id="@+id/aggregatedSearchText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:textColor="@color/white"
android:textSize="18sp"
tools:text="開" />
</LinearLayout>
<LinearLayout
android:id="@+id/fullscreenMenuKey"
android:layout_width="match_parent"

@ -9,7 +9,7 @@
android:id="@+id/slider"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:stepSize="0.2"
android:stepSize="0.1"
android:valueFrom="0.6"
android:valueTo="2"
app:thumbColor="@color/blue_500"

@ -18,7 +18,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="@color/grey_900"
android:textColor="@color/white"
android:textSize="16sp"
tools:text="選擇字幕" />

@ -32,18 +32,4 @@
<item name="bottomSheetStyle">@style/ModalBottomSheetDialog</item>
</style>
<style name="TransModalBottomSheetDialog" parent="Widget.Design.BottomSheet.Modal">
<item name="android:background">@drawable/shape_trans_bottom_sheet</item>
</style>
<style name="TransBottomSheetDialog" parent="Theme.MaterialComponents.Light.BottomSheetDialog">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primaryDark</item>
<item name="colorAccent">@color/accent</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="android:windowIsFloating">false</item>
<item name="bottomSheetStyle">@style/TransModalBottomSheetDialog</item>
</style>
</resources>

@ -373,14 +373,6 @@ public class Setting {
Prefers.put("play_speed", speed);
}
public static boolean isAggregatedSearch() {
return Prefers.getBoolean("aggregated_search", false);
}
public static void putAggregatedSearch(boolean search) {
Prefers.put("aggregated_search", search);
}
public static void putFullscreenMenuKey(int key) {
Prefers.put("fullscreen_menu_key", key);
}

@ -22,7 +22,7 @@ import java.util.List;
import okhttp3.Headers;
@Entity(ignoredColumns = {"api", "ext", "jar", "click", "playUrl", "type", "timeout", "playerType", "categories", "header", "style", "activated"})
@Entity(ignoredColumns = {"api", "ext", "jar", "click", "playUrl", "type", "timeout", "playerType", "categories", "header", "style", "activated", "indexs"})
public class Site implements Parcelable {
@NonNull
@ -54,6 +54,8 @@ public class Site implements Parcelable {
private Integer changeable;
@SerializedName("recordable")
private Integer recordable;
@SerializedName("indexs")
private Integer indexs;
@SerializedName("categories")
private List<String> categories;
@SerializedName("header")
@ -171,6 +173,18 @@ public class Site implements Parcelable {
this.recordable = recordable;
}
public boolean isIndexs() {
return getIndexs() == 1;
}
public Integer getIndexs() {
return indexs == null ? 0 : indexs;
}
public void setIndexs(Integer indexs) {
this.indexs = indexs;
}
public List<String> getCategories() {
return categories == null ? Collections.emptyList() : categories;
}
@ -279,6 +293,7 @@ public class Site implements Parcelable {
dest.writeValue(this.searchable);
dest.writeValue(this.changeable);
dest.writeValue(this.recordable);
dest.writeValue(this.indexs);
dest.writeStringList(this.categories);
dest.writeParcelable(this.style, flags);
dest.writeByte(this.activated ? (byte) 1 : (byte) 0);
@ -298,6 +313,7 @@ public class Site implements Parcelable {
this.searchable = (Integer) in.readValue(Integer.class.getClassLoader());
this.changeable = (Integer) in.readValue(Integer.class.getClassLoader());
this.recordable = (Integer) in.readValue(Integer.class.getClassLoader());
this.indexs = (Integer) in.readValue(Integer.class.getClassLoader());
this.categories = in.createStringArrayList();
this.style = in.readParcelable(Style.class.getClassLoader());
this.activated = in.readByte() != 0;

@ -662,7 +662,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
mBinding.control.prevRoot.setVisibility(items.size() < 2 ? View.GONE : View.VISIBLE);
mBinding.episode.setVisibility(items.size() == 0 ? View.GONE : View.VISIBLE);
mBinding.reverse.setVisibility(items.size() < 2 ? View.GONE : View.VISIBLE);
mBinding.more.setVisibility(items.size() < 10 ? View.GONE : View.VISIBLE);
mBinding.more.setVisibility(items.size() < 3 ? View.GONE : View.VISIBLE);
mEpisodeAdapter.addAll(items);
}
@ -1025,7 +1025,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
mBinding.control.danmuSetting.setVisibility(isLock() || !Setting.isDanmuLoad() || !isVisible(mBinding.danmaku) ? View.GONE : View.VISIBLE);
mBinding.control.setting.setVisibility(mHistory == null || isFullscreen() ? View.GONE : View.VISIBLE);
mBinding.control.right.rotate.setVisibility(isFullscreen() && !isLock() ? View.VISIBLE : View.GONE);
mBinding.control.keep.setVisibility(mHistory == null || isFullscreen() ? View.GONE : View.VISIBLE);
mBinding.control.keep.setVisibility(mHistory == null ? View.GONE : View.VISIBLE);
mBinding.control.right.back.setVisibility(isFullscreen() && !isLock() ? View.VISIBLE : View.GONE);
mBinding.control.parse.setVisibility(isFullscreen() && isUseParse() ? View.VISIBLE : View.GONE);
mBinding.control.action.getRoot().setVisibility(isFullscreen() ? View.VISIBLE : View.GONE);

@ -39,7 +39,6 @@ public class SettingCustomFragment extends BaseFragment {
mBinding.sizeText.setText((size = ResUtil.getStringArray(R.array.select_size))[Setting.getSize()]);
mBinding.danmuSyncText.setText(getSwitch(Setting.isDanmuSync()));
mBinding.speedText.setText(Setting.getPlaySpeed() + "x");
mBinding.aggregatedSearchText.setText(getSwitch(Setting.isAggregatedSearch()));
}
@Override
@ -49,7 +48,6 @@ public class SettingCustomFragment extends BaseFragment {
mBinding.danmuSync.setOnClickListener(this::setDanmuSync);
mBinding.speed.setOnClickListener(this::setSpeed);
mBinding.speed.setOnLongClickListener(this::resetSpeed);
mBinding.aggregatedSearch.setOnClickListener(this::setAggregatedSearch);
}
private boolean onTitle(View view) {
@ -85,10 +83,4 @@ public class SettingCustomFragment extends BaseFragment {
return true;
}
private void setAggregatedSearch(View view) {
Setting.putAggregatedSearch(!Setting.isAggregatedSearch());
mBinding.aggregatedSearchText.setText(getSwitch(Setting.isAggregatedSearch()));
}
}

@ -69,6 +69,10 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac
return isFolder() ? Style.list() : getSite().getStyle(mPages.isEmpty() ? getArguments().getParcelable("style") : getLastPage().getStyle());
}
private boolean isIndexs() {
return getSite().isIndexs();
}
private HashMap<String, String> getExtend() {
Serializable extend = getArguments().getSerializable("extend");
return extend == null ? new HashMap<>() : (HashMap<String, String>) extend;
@ -222,7 +226,7 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac
mPages.add(Page.get(item, findPosition()));
getVideo(item.getVodId(), "1");
} else {
if (Setting.isAggregatedSearch()) CollectActivity.start(getActivity(), item.getVodName());
if (isIndexs()) CollectActivity.start(getActivity(), item.getVodName());
else if (item.isManga()) DetailActivity.start(getActivity(), getKey(), item.getVodId(), item.getVodName(), item.getVodPic());
else VideoActivity.start(getActivity(), getKey(), item.getVodId(), item.getVodName(), item.getVodPic(), isFolder() ? item.getVodName() : null, false);
}

@ -84,7 +84,7 @@
android:layout_weight="3"
android:layout_height="wrap_content"
android:gravity="center_vertical|center"
android:stepSize="0.2"
android:stepSize="0.1"
android:valueFrom="0.6"
android:valueTo="2"
app:trackColorInactive="@color/blue_50" />

@ -126,33 +126,6 @@
</LinearLayout>
<LinearLayout
android:id="@+id/aggregatedSearch"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="@drawable/shape_item"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:text="@string/setting_aggregated_search"
android:textColor="@color/white"
android:textSize="16sp" />
<TextView
android:id="@+id/aggregatedSearchText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:textColor="@color/white"
android:textSize="16sp"
tools:text="開" />
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
Loading…
Cancel
Save