[mobile] support folder for search

pull/123/head
FongMi 3 years ago
parent a49deccdce
commit dc6c75dd0c
  1. 15
      app/src/mobile/AndroidManifest.xml
  2. 6
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/CollectActivity.java
  3. 48
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/VodActivity.java
  4. 10
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java
  5. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java
  6. 29
      app/src/mobile/res/layout/activity_vod.xml
  7. 5
      app/src/mobile/res/layout/adapter_vod_folder.xml

@ -31,6 +31,11 @@
</intent-filter>
</activity>
<activity
android:name=".ui.activity.CollectActivity"
android:configChanges="screenSize|smallestScreenSize|screenLayout"
android:screenOrientation="fullUser" />
<activity
android:name=".ui.activity.DetailActivity"
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
@ -41,11 +46,6 @@
android:supportsPictureInPicture="true"
android:theme="@style/AppTheme.Detail" />
<activity
android:name=".ui.activity.CollectActivity"
android:configChanges="screenSize|smallestScreenSize|screenLayout"
android:screenOrientation="fullUser" />
<activity
android:name=".ui.activity.HistoryActivity"
android:configChanges="screenSize|smallestScreenSize|screenLayout"
@ -65,6 +65,11 @@
android:screenOrientation="sensorLandscape"
android:supportsPictureInPicture="true" />
<activity
android:name=".ui.activity.VodActivity"
android:configChanges="screenSize|smallestScreenSize|screenLayout"
android:screenOrientation="fullUser" />
<activity
android:name=".ui.activity.ScanActivity"
android:configChanges="screenSize|smallestScreenSize|screenLayout"

@ -21,6 +21,7 @@ import com.fongmi.android.tv.R;
import com.fongmi.android.tv.api.ApiConfig;
import com.fongmi.android.tv.bean.Collect;
import com.fongmi.android.tv.bean.Hot;
import com.fongmi.android.tv.bean.Result;
import com.fongmi.android.tv.bean.Site;
import com.fongmi.android.tv.bean.Suggest;
import com.fongmi.android.tv.bean.Vod;
@ -34,8 +35,8 @@ import com.fongmi.android.tv.ui.adapter.RecordAdapter;
import com.fongmi.android.tv.ui.adapter.VodAdapter;
import com.fongmi.android.tv.ui.adapter.WordAdapter;
import com.fongmi.android.tv.ui.base.BaseActivity;
import com.fongmi.android.tv.ui.custom.CustomTextListener;
import com.fongmi.android.tv.ui.base.ViewType;
import com.fongmi.android.tv.ui.custom.CustomTextListener;
import com.fongmi.android.tv.ui.custom.dialog.SiteDialog;
import com.fongmi.android.tv.utils.PauseThreadPoolExecutor;
import com.fongmi.android.tv.utils.Prefers;
@ -261,7 +262,8 @@ public class CollectActivity extends BaseActivity implements SiteCallback, WordA
@Override
public void onItemClick(Vod item) {
DetailActivity.start(this, item.getSiteKey(), item.getVodId(), item.getVodName());
if (item.isFolder()) VodActivity.start(this, item.getSiteKey(), Result.folder(item));
else DetailActivity.start(this, item.getSiteKey(), item.getVodId(), item.getVodName());
}
@Override

@ -0,0 +1,48 @@
package com.fongmi.android.tv.ui.activity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import androidx.viewbinding.ViewBinding;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.bean.Class;
import com.fongmi.android.tv.bean.Result;
import com.fongmi.android.tv.databinding.ActivityVodBinding;
import com.fongmi.android.tv.ui.base.BaseActivity;
import com.fongmi.android.tv.ui.fragment.TypeFragment;
public class VodActivity extends BaseActivity {
private ActivityVodBinding mBinding;
public static void start(Activity activity, String key, Result result) {
if (result == null || result.getTypes().isEmpty()) return;
Intent intent = new Intent(activity, VodActivity.class);
intent.putExtra("key", key);
intent.putExtra("result", result.toString());
activity.startActivity(intent);
}
private String getKey() {
return getIntent().getStringExtra("key");
}
private String getResult() {
return getIntent().getStringExtra("result");
}
@Override
protected ViewBinding getBinding() {
return mBinding = ActivityVodBinding.inflate(getLayoutInflater());
}
@Override
protected void initView(Bundle savedInstanceState) {
Result result = Result.fromJson(getResult());
Class type = result.getTypes().get(0);
mBinding.text.setText(type.getTypeName());
getSupportFragmentManager().beginTransaction().replace(R.id.container, TypeFragment.newInstance(getKey(), type.getTypeId(), type.getTypeFlag().equals("1"))).commitAllowingStateLoss();
}
}

@ -13,7 +13,6 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import androidx.viewbinding.ViewBinding;
import com.fongmi.android.tv.Product;
import com.fongmi.android.tv.api.ApiConfig;
import com.fongmi.android.tv.bean.Result;
import com.fongmi.android.tv.bean.Vod;
import com.fongmi.android.tv.databinding.FragmentTypeBinding;
@ -38,8 +37,9 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac
private List<String> mTypeIds;
private VodAdapter mAdapter;
public static TypeFragment newInstance(String typeId, boolean folder) {
public static TypeFragment newInstance(String key, String typeId, boolean folder) {
Bundle args = new Bundle();
args.putString("key", key);
args.putString("typeId", typeId);
args.putBoolean("folder", folder);
TypeFragment fragment = new TypeFragment();
@ -47,6 +47,10 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac
return fragment;
}
private String getKey() {
return getArguments().getString("key");
}
private String getTypeId() {
return getArguments().getString("typeId");
}
@ -115,7 +119,7 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac
if (page.equals("1")) mAdapter.clear();
if (page.equals("1") && !mBinding.swipeLayout.isRefreshing()) mBinding.progressLayout.showProgress();
if (isHome() && page.equals("1")) setAdapter(getParent().getResult());
else mViewModel.categoryContent(ApiConfig.get().getHome().getKey(), typeId, page, true, mExtends);
else mViewModel.categoryContent(getKey(), typeId, page, true, mExtends);
}
private void setAdapter(Result result) {

@ -300,7 +300,7 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal
@Override
public Fragment getItem(int position) {
Class type = mAdapter.get(position);
return TypeFragment.newInstance(type.getTypeId(), type.getTypeFlag().equals("1"));
return TypeFragment.newInstance(getSite().getKey(), type.getTypeId(), type.getTypeFlag().equals("1"));
}
@Override

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:orientation="vertical">
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="12dp"
android:background="@drawable/selector_item_round"
android:gravity="center"
android:singleLine="true"
android:textColor="@color/white"
android:textSize="14sp"
tools:text="電影" />
<androidx.fragment.app.FragmentContainerView
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>

@ -15,7 +15,6 @@
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginStart="12dp"
android:layout_marginEnd="12dp"
android:scaleType="fitCenter"
app:shapeAppearanceOverlay="@style/Vod.Grid"
tools:src="@drawable/ic_img_error" />
@ -24,7 +23,9 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:orientation="vertical">
android:orientation="vertical"
android:paddingStart="12dp"
android:paddingEnd="12dp">
<TextView
android:id="@+id/name"

Loading…
Cancel
Save