pull/605/head
jhengazuki 5 months ago
parent 07a7b28387
commit fbcfd88e90
  1. 20
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/CollectActivity.java
  2. 3
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  3. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  4. 12
      app/src/main/java/com/fongmi/android/tv/model/SiteViewModel.java
  5. 4
      app/src/main/java/com/fongmi/android/tv/utils/PermissionUtil.java
  6. 3
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  7. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  8. 4
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/CollectFragment.java

@ -105,12 +105,21 @@ public class CollectActivity extends BaseActivity {
private void setViewModel() {
mViewModel = new ViewModelProvider(this).get(SiteViewModel.class);
mViewModel.search.observe(this, result -> {
if (result.getList().isEmpty()) return;
getFragment().addVideo(result.getList());
mAdapter.add(Collect.create(result.getList()));
mBinding.pager.getAdapter().notifyDataSetChanged();
});
}
private void saveKeyword() {
List<String> items = Setting.getKeyword().isEmpty() ? new ArrayList<>() : App.gson().fromJson(Setting.getKeyword(), new TypeToken<List<String>>() {}.getType());
items.remove(getKeyword());
items.add(0, getKeyword());
if (items.size() > 8) items.remove(8);
Setting.putKeyword(App.gson().toJson(items));
}
private void setPager() {
mBinding.pager.setAdapter(new PageAdapter(getSupportFragmentManager()));
}
@ -130,15 +139,6 @@ public class CollectActivity extends BaseActivity {
mViewModel.searchContent(sites, getKeyword(), false);
}
private void saveKeyword() {
List<String> items = Setting.getKeyword().isEmpty() ? new ArrayList<>() : App.gson().fromJson(Setting.getKeyword(), new TypeToken<List<String>>() {
}.getType());
items.remove(getKeyword());
items.add(0, getKeyword());
if (items.size() > 8) items.remove(8);
Setting.putKeyword(App.gson().toJson(items));
}
private void onChildSelected(@Nullable RecyclerView.ViewHolder child) {
if (mOldView != null) mOldView.setActivated(false);
if (child == null) return;
@ -156,7 +156,7 @@ public class CollectActivity extends BaseActivity {
@Override
protected void onBackInvoked() {
mViewModel.cancelAll();
mViewModel.stopSearch();
super.onBackInvoked();
}

@ -60,7 +60,6 @@ import com.fongmi.android.tv.utils.FileChooser;
import com.fongmi.android.tv.utils.ImgUtil;
import com.fongmi.android.tv.utils.KeyUtil;
import com.fongmi.android.tv.utils.Notify;
import com.fongmi.android.tv.utils.PermissionUtil;
import com.fongmi.android.tv.utils.ResUtil;
import com.fongmi.android.tv.utils.UrlUtil;
import com.github.catvod.net.OkHttp;
@ -200,7 +199,6 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
@Override
public void success() {
PermissionUtil.requestNotify(getActivity());
mBinding.progressLayout.showContent();
checkAction(getIntent());
getHistory();
@ -213,6 +211,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
@Override
public void error(String msg) {
mBinding.progressLayout.showContent();
checkAction(getIntent());
Notify.show(msg);
setFocus();
setFunc();

@ -1407,7 +1407,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
} else if (isFullscreen()) {
exitFullscreen();
} else {
mViewModel.cancelAll();
mViewModel.stopSearch();
super.onBackInvoked();
}
}

@ -209,7 +209,7 @@ public class SiteViewModel extends ViewModel {
}
public void searchContent(List<Site> sites, String keyword, boolean quick) {
for (Future<?> f : searchFutures) f.cancel(true);
stopSearch();
for (Site site : sites) searchContent(site, keyword, quick, "1");
}
@ -218,8 +218,7 @@ public class SiteViewModel extends ViewModel {
if (!page.equals("1")) execute(result, callable);
else searchFutures.add(App.submit(() -> {
try {
Result taskResult = callable.call();
if (!taskResult.getList().isEmpty()) search.postValue(taskResult);
search.postValue(callable.call());
} catch (Throwable ignored) {
}
}));
@ -277,9 +276,7 @@ public class SiteViewModel extends ViewModel {
});
}
public void cancelAll() {
if (future != null) future.cancel(true);
if (executor != null) executor.shutdownNow();
public void stopSearch() {
for (Future<?> f : searchFutures) f.cancel(true);
searchFutures.clear();
}
@ -287,6 +284,7 @@ public class SiteViewModel extends ViewModel {
@Override
protected void onCleared() {
super.onCleared();
cancelAll();
if (future != null) future.cancel(true);
if (executor != null) executor.shutdownNow();
}
}

@ -23,8 +23,4 @@ public class PermissionUtil {
public static void requestFile(Fragment fragment, Consumer<Boolean> callback) {
PermissionX.init(fragment).permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE).request(new PermissionCallback(callback));
}
public static void requestNotify(FragmentActivity activity) {
PermissionX.init(activity).permissions(PermissionX.permission.POST_NOTIFICATIONS).request(new PermissionCallback());
}
}

@ -39,7 +39,6 @@ import com.fongmi.android.tv.ui.fragment.SettingPlayerFragment;
import com.fongmi.android.tv.ui.fragment.VodFragment;
import com.fongmi.android.tv.utils.FileChooser;
import com.fongmi.android.tv.utils.Notify;
import com.fongmi.android.tv.utils.PermissionUtil;
import com.fongmi.android.tv.utils.UrlUtil;
import com.github.catvod.net.OkHttp;
import com.google.android.material.navigation.NavigationBarView;
@ -125,7 +124,6 @@ public class HomeActivity extends BaseActivity implements NavigationBarView.OnIt
@Override
public void success() {
PermissionUtil.requestNotify(getActivity());
checkAction(getIntent());
RefreshEvent.config();
RefreshEvent.video();
@ -133,6 +131,7 @@ public class HomeActivity extends BaseActivity implements NavigationBarView.OnIt
@Override
public void error(String msg) {
checkAction(getIntent());
RefreshEvent.config();
StateEvent.empty();
Notify.show(msg);

@ -1652,7 +1652,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
} else if (isFullscreen() && !isLock()) {
exitFullscreen();
} else if (!isLock()) {
mViewModel.cancelAll();
mViewModel.stopSearch();
super.onBackInvoked();
}
}

@ -125,7 +125,7 @@ public class CollectFragment extends BaseFragment implements MenuProvider, Colle
}
private void setCollect(Result result) {
if (result == null) return;
if (result == null || result.getList().isEmpty()) return;
if (mCollectAdapter.getPosition() == 0) mSearchAdapter.addAll(result.getList());
mCollectAdapter.add(Collect.create(result.getList()));
mCollectAdapter.add(result.getList());
@ -180,7 +180,7 @@ public class CollectFragment extends BaseFragment implements MenuProvider, Colle
@Override
public void onDestroyView() {
super.onDestroyView();
mViewModel.cancelAll();
mViewModel.stopSearch();
requireActivity().removeMenuProvider(this);
}
}

Loading…
Cancel
Save