[mobile] add home retry button

pull/123/head
FongMi 3 years ago
parent fddb22534d
commit f7737ce276
  1. 2
      app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java
  2. 6
      app/src/main/java/com/fongmi/android/tv/api/LiveConfig.java
  3. 3
      app/src/main/java/com/fongmi/android/tv/api/WallConfig.java
  4. 9
      app/src/main/java/com/fongmi/android/tv/bean/Config.java
  5. 3
      app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/ConfigDialog.java
  6. 11
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java
  7. 10
      app/src/mobile/res/drawable/ic_vod_retry.xml
  8. 4
      app/src/mobile/res/layout/dialog_cast.xml
  9. 9
      app/src/mobile/res/layout/fragment_vod.xml

@ -125,7 +125,7 @@ public class ApiConfig {
try {
checkJson(JsonParser.parseString(Decoder.getJson(config.getUrl())).getAsJsonObject(), callback);
} catch (Exception e) {
if (config.getUrl().isEmpty()) App.post(() -> callback.error(0));
if (TextUtils.isEmpty(config.getUrl())) App.post(() -> callback.error(0));
else loadCache(callback);
LiveConfig.get().load();
e.printStackTrace();

@ -1,5 +1,7 @@
package com.fongmi.android.tv.api;
import android.text.TextUtils;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.Product;
import com.fongmi.android.tv.R;
@ -87,7 +89,7 @@ public class LiveConfig {
parseConfig(Decoder.getJson(config.getUrl()), callback);
} catch (Exception e) {
e.printStackTrace();
App.post(() -> callback.error(config.getUrl().isEmpty() ? 0 : R.string.error_config_get));
App.post(() -> callback.error(TextUtils.isEmpty(config.getUrl()) ? 0 : R.string.error_config_get));
}
}
@ -186,7 +188,7 @@ public class LiveConfig {
}
public boolean isSame(String url) {
return same || config.getUrl().isEmpty() || url.equals(config.getUrl());
return same || TextUtils.isEmpty(config.getUrl()) || url.equals(config.getUrl());
}
public List<Live> getLives() {

@ -1,6 +1,7 @@
package com.fongmi.android.tv.api;
import android.graphics.drawable.Drawable;
import android.text.TextUtils;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.Product;
@ -97,7 +98,7 @@ public class WallConfig {
}
public boolean isSame(String url) {
return same || config.getUrl().isEmpty() || url.equals(config.getUrl());
return same || TextUtils.isEmpty(config.getUrl()) || url.equals(config.getUrl());
}
public static void refresh(int index) {

@ -3,6 +3,7 @@ package com.fongmi.android.tv.bean;
import android.text.TextUtils;
import androidx.room.Entity;
import androidx.room.Ignore;
import androidx.room.Index;
import androidx.room.PrimaryKey;
@ -24,7 +25,7 @@ public class Config {
private String parse;
public static Config create(int type) {
return create("", type);
return new Config(type);
}
public static Config create(String url, int type) {
@ -35,6 +36,12 @@ public class Config {
return new Config(url, name, type);
}
@Ignore
public Config(int type) {
this.type = type;
this.id = -1;
}
public Config(String url, String name, int type) {
this.url = url;
this.name = name;

@ -1,6 +1,7 @@
package com.fongmi.android.tv.ui.custom.dialog;
import android.content.DialogInterface;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.inputmethod.EditorInfo;
@ -57,8 +58,8 @@ public class ConfigDialog {
private void initView() {
binding.text.setText(url = getUrl());
binding.text.setSelection(url.length());
binding.input.setEndIconOnClickListener(this::onChoose);
binding.text.setSelection(TextUtils.isEmpty(url) ? 0 : url.length());
}
private void initEvent() {

@ -96,6 +96,7 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal
mBinding.link.setOnClickListener(this::onLink);
mBinding.logo.setOnClickListener(this::onLogo);
mBinding.keep.setOnClickListener(this::onKeep);
mBinding.retry.setOnClickListener(this::onRetry);
mBinding.filter.setOnClickListener(this::onFilter);
mBinding.search.setOnClickListener(this::onSearch);
mBinding.history.setOnClickListener(this::onHistory);
@ -155,6 +156,7 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal
EventBus.getDefault().post(result);
setFabVisible(0);
hideProgress();
checkRetry();
}
private void setFabVisible(int position) {
@ -170,6 +172,10 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal
}
}
private void checkRetry() {
mBinding.retry.setVisibility(mAdapter.getItemCount() == 0 ? View.VISIBLE : View.GONE);
}
private void onLink(View view) {
if (ApiConfig.hasPush()) LinkDialog.create(this).show();
else mBinding.link.hide();
@ -183,6 +189,10 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal
KeepActivity.start(getActivity());
}
private void onRetry(View view) {
homeContent();
}
private void onFilter(View view) {
for (Fragment fragment : getChildFragmentManager().getFragments()) if (fragment instanceof BottomSheetDialogFragment) return;
FilterDialog.create(this).filter(mAdapter.get(mBinding.pager.getCurrentItem()).getFilters()).show(getChildFragmentManager(), null);
@ -201,6 +211,7 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal
}
private void showProgress() {
mBinding.retry.setVisibility(View.GONE);
mBinding.progress.getRoot().setVisibility(View.VISIBLE);
}

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:tint="#FFFFFF"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="@android:color/white"
android:pathData="M480,800Q347,800 253.5,706.5Q160,613 160,480Q160,347 253.5,253.5Q347,160 480,160Q565,160 629,194.5Q693,229 740,289L740,160L800,160L800,414L546,414L546,354L714,354Q676,294 617,257Q558,220 480,220Q371,220 295.5,295.5Q220,371 220,480Q220,589 295.5,664.5Q371,740 480,740Q563,740 632,692.5Q701,645 728,567L790,567Q761,672 675,736Q589,800 480,800Z" />
</vector>

@ -28,14 +28,14 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:background="?attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_cast_scan" />
<ImageView
android:id="@+id/refresh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:background="?attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_cast_refresh" />
</LinearLayout>

@ -99,6 +99,15 @@
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
<ImageView
android:id="@+id/retry"
android:layout_width="56dp"
android:layout_height="56dp"
android:layout_gravity="center"
android:background="?attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_vod_retry"
android:visibility="gone" />
<include
android:id="@+id/progress"
layout="@layout/view_progress"

Loading…
Cancel
Save