Add empty view

pull/102/head
FongMi 4 years ago
parent b0369c2dee
commit 81de91eec8
  1. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
  2. 1
      app/src/main/java/com/fongmi/android/tv/bean/Class.java
  3. 30
      app/src/main/java/com/fongmi/android/tv/ui/custom/ProgressLayout.java
  4. BIN
      app/src/main/res/drawable-hdpi/ic_empty.png
  5. BIN
      app/src/main/res/drawable-mdpi/ic_empty.png
  6. BIN
      app/src/main/res/drawable-xhdpi/ic_empty.png
  7. BIN
      app/src/main/res/drawable-xxhdpi/ic_empty.png
  8. BIN
      app/src/main/res/drawable-xxxhdpi/ic_empty.png
  9. 24
      app/src/main/res/layout/view_empty.xml
  10. 1
      app/src/main/res/values-zh-rCN/strings.xml
  11. 1
      app/src/main/res/values-zh-rTW/strings.xml
  12. 1
      app/src/main/res/values/strings.xml

@ -188,7 +188,7 @@ public class DetailActivity extends BaseActivity implements KeyDown.Listener {
mSiteViewModel = new ViewModelProvider(this).get(SiteViewModel.class);
mSiteViewModel.player.observe(this, result -> Players.get().setMediaSource(result));
mSiteViewModel.result.observe(this, result -> {
if (result.getList().isEmpty()) mBinding.progressLayout.showErrorText();
if (result.getList().isEmpty()) mBinding.progressLayout.showEmpty();
else setDetail(result.getList().get(0));
});
}

@ -36,7 +36,6 @@ public class Class {
}
public void toggleFilter() {
if (getFilter() == null) return;
setFilter(!getFilter());
}

@ -6,8 +6,8 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.fongmi.android.tv.databinding.ViewEmptyBinding;
import com.fongmi.android.tv.databinding.ViewProgressBinding;
import java.util.ArrayList;
@ -23,9 +23,9 @@ public class ProgressLayout extends RelativeLayout {
CONTENT, PROGRESS, ERROR
}
private View mErrorView;
private View mProgressView;
private TextView mErrorTextView;
private List<View> mContentViews = new ArrayList<View>();
private List<View> mContentViews = new ArrayList<>();
private ProgressLayout.State mState = ProgressLayout.State.CONTENT;
@ -49,18 +49,15 @@ public class ProgressLayout extends RelativeLayout {
layoutParams.addRule(CENTER_IN_PARENT);
mProgressView.setTag(TAG_PROGRESS);
addView(mProgressView, layoutParams);
mErrorTextView = new TextView(getContext());
mErrorTextView.setTag(TAG_ERROR);
layoutParams = new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParams.addRule(CENTER_IN_PARENT);
addView(mErrorTextView, layoutParams);
mErrorView = ViewEmptyBinding.inflate(LayoutInflater.from(getContext())).getRoot();
mErrorView.setTag(TAG_ERROR);
addView(mErrorView, layoutParams);
mProgressView.setVisibility(GONE);
}
@Override
public void addView(View child, int index, ViewGroup.LayoutParams params) {
super.addView(child, index, params);
if (child.getTag() == null || (!child.getTag().equals(TAG_PROGRESS) && !child.getTag().equals(TAG_ERROR))) {
mContentViews.add(child);
}
@ -74,19 +71,19 @@ public class ProgressLayout extends RelativeLayout {
switchState(ProgressLayout.State.PROGRESS, null, skipIds);
}
public void showErrorText() {
public void showEmpty() {
switchState(ProgressLayout.State.ERROR, null, Collections.<Integer>emptyList());
}
public void showErrorText(List<Integer> skipIds) {
public void showEmpty(List<Integer> skipIds) {
switchState(ProgressLayout.State.ERROR, null, skipIds);
}
public void showErrorText(String error) {
public void showEmpty(String error) {
switchState(ProgressLayout.State.ERROR, error, Collections.<Integer>emptyList());
}
public void showErrorText(String error, List<Integer> skipIds) {
public void showEmpty(String error, List<Integer> skipIds) {
switchState(ProgressLayout.State.ERROR, error, skipIds);
}
@ -114,18 +111,17 @@ public class ProgressLayout extends RelativeLayout {
mState = state;
switch (state) {
case CONTENT:
mErrorTextView.setVisibility(View.GONE);
mErrorView.setVisibility(View.GONE);
mProgressView.setVisibility(View.GONE);
setContentVisibility(true, skipIds);
break;
case PROGRESS:
mErrorTextView.setVisibility(View.GONE);
mErrorView.setVisibility(View.GONE);
mProgressView.setVisibility(View.VISIBLE);
setContentVisibility(false, skipIds);
break;
case ERROR:
mErrorTextView.setText(errorText);
mErrorTextView.setVisibility(View.VISIBLE);
mErrorView.setVisibility(View.VISIBLE);
mProgressView.setVisibility(View.GONE);
setContentVisibility(false, skipIds);
break;

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:id="@+id/icon"
android:layout_width="150dp"
android:layout_height="150dp"
android:scaleType="fitCenter"
android:src="@drawable/ic_empty" />
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/error_empty"
android:textColor="@color/white"
android:textSize="20sp" />
</LinearLayout>

@ -63,6 +63,7 @@
<string name="error_play_prev">已经是第一集了!</string>
<string name="error_play_parse">无法解析网址</string>
<string name="error_play">不支援的影片格式</string>
<string name="error_empty">找不到数据</string>
<!-- UNIT -->
<string name="second"><xliff:g name="name">%s</xliff:g></string>

@ -63,6 +63,7 @@
<string name="error_play_prev">已經是第一集了!</string>
<string name="error_play_parse">無法解析網址</string>
<string name="error_play">不支援的影片格式</string>
<string name="error_empty">找不到資料</string>
<!-- UNIT -->
<string name="second"><xliff:g name="name">%s</xliff:g></string>

@ -63,6 +63,7 @@
<string name="error_play_prev">It\'s the first episode!</string>
<string name="error_play_parse">Unable to parse url</string>
<string name="error_play">Unsupported video format</string>
<string name="error_empty">Not found</string>
<!-- UNIT -->
<string name="second"><xliff:g name="name">%s</xliff:g> s</string>

Loading…
Cancel
Save