pull/137/head
FongMi 3 years ago
parent 12dd3aefe3
commit 13415d7566
  1. 17
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/CollectActivity.java
  2. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  3. 12
      app/src/main/java/com/fongmi/android/tv/model/SiteViewModel.java
  4. 5
      app/src/main/java/com/fongmi/android/tv/utils/Updater.java

@ -37,7 +37,7 @@ public class CollectActivity extends BaseActivity {
private ActivityCollectBinding mBinding;
private ArrayObjectAdapter mAdapter;
private ExecutorService mService;
private ExecutorService mExecutor;
private SiteViewModel mViewModel;
private PageAdapter mPageAdapter;
private List<Site> mSites;
@ -61,6 +61,7 @@ public class CollectActivity extends BaseActivity {
@Override
protected void initView() {
mExecutor = Executors.newFixedThreadPool(5);
setRecyclerView();
setViewModel();
setPager();
@ -97,6 +98,7 @@ public class CollectActivity extends BaseActivity {
private void setViewModel() {
mViewModel = new ViewModelProvider(this).get(SiteViewModel.class);
mViewModel.result.observe(this, result -> {
if (mExecutor == null) return;
mAdapter.add(Collect.create(result.getList()));
getFragment().addVideo(result.getList());
mPageAdapter.notifyDataSetChanged();
@ -119,9 +121,8 @@ public class CollectActivity extends BaseActivity {
private void search() {
mAdapter.add(Collect.all());
mPageAdapter.notifyDataSetChanged();
mService = Executors.newFixedThreadPool(5);
mBinding.result.setText(getString(R.string.collect_result, getKeyword()));
for (Site site : mSites) mService.execute(() -> mViewModel.searchContent(site, getKeyword()));
for (Site site : mSites) mExecutor.execute(() -> mViewModel.searchContent(site, getKeyword()));
}
private CollectFragment getFragment() {
@ -129,11 +130,11 @@ public class CollectActivity extends BaseActivity {
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mService == null) return;
mService.shutdownNow();
mService = null;
public void onBackPressed() {
super.onBackPressed();
if (mExecutor == null) return;
mExecutor.shutdownNow();
mExecutor = null;
}
class PageAdapter extends FragmentStatePagerAdapter {

@ -64,7 +64,6 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
public static void start(Activity activity) {
activity.startActivity(new Intent(activity, HomeActivity.class));
activity.finish();
Updater.check();
}
@Override
@ -78,6 +77,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
Clock.start(mBinding.time);
Server.get().start();
Players.get().init();
Updater.check(this);
setRecyclerView();
setViewModel();
setAdapter();

@ -28,7 +28,7 @@ public class SiteViewModel extends ViewModel {
public MutableLiveData<Result> result;
public MutableLiveData<Result> player;
public ExecutorService service;
public ExecutorService executor;
public SiteViewModel() {
this.result = new MutableLiveData<>();
@ -180,11 +180,11 @@ public class SiteViewModel extends ViewModel {
}
private void execute(MutableLiveData<Result> result, Callable<Result> callable) {
if (service != null) service.shutdownNow();
service = Executors.newFixedThreadPool(2);
service.execute(() -> {
if (executor != null) executor.shutdownNow();
executor = Executors.newFixedThreadPool(2);
executor.execute(() -> {
try {
if (!Thread.interrupted()) result.postValue(service.submit(callable).get(15, TimeUnit.SECONDS));
if (!Thread.interrupted()) result.postValue(executor.submit(callable).get(15, TimeUnit.SECONDS));
} catch (Throwable e) {
e.printStackTrace();
if (e instanceof InterruptedException) return;
@ -195,6 +195,6 @@ public class SiteViewModel extends ViewModel {
@Override
protected void onCleared() {
if (service != null) service.shutdownNow();
if (executor != null) executor.shutdownNow();
}
}

@ -1,5 +1,7 @@
package com.fongmi.android.tv.utils;
import android.app.Activity;
import com.fongmi.android.tv.BuildConfig;
import com.fongmi.android.tv.net.OKHttp;
@ -12,7 +14,7 @@ public class Updater {
private static final String URL = "https://github.com/FongMi/TV/raw/main/release/leanback.json";
private static final String PROXY = "https://ghproxy.com/";
public static void check() {
public static void check(Activity activity) {
new Thread(() -> new Updater().connect(URL, 0)).start();
}
@ -25,6 +27,7 @@ public class Updater {
JSONObject object = new JSONObject(OKHttp.newCall(target).execute().body().string());
int version = object.optInt("version");
String url = object.optString("url");
String desc = object.optString("desc");
if (retry > 0) url = PROXY + url;
if (version <= BuildConfig.VERSION_CODE) FileUtil.clearDir(getApk());
else FileUtil.openFile(FileUtil.write(getApk(), OKHttp.newCall(url).execute().body().bytes()));

Loading…
Cancel
Save