选中filter后图标变色

pull/73/head
Harold 3 years ago
parent 3da3ebec20
commit b002eda0b8
  1. 9
      app/src/main/java/com/github/tvbox/osc/bean/MovieSort.java
  2. 1
      app/src/main/java/com/github/tvbox/osc/event/RefreshEvent.java
  3. 19
      app/src/main/java/com/github/tvbox/osc/ui/activity/HomeActivity.java
  4. 9
      app/src/main/java/com/github/tvbox/osc/ui/fragment/GridFragment.java
  5. 9
      app/src/main/res/drawable/icon_filter_color.xml
  6. 11
      app/src/main/res/layout/item_home_sort.xml

@ -42,6 +42,15 @@ public class MovieSort implements Serializable {
this.name = name;
}
public int filterSelectCount() {
int count = 0;
for (String filter : filterSelect.values()) {
if (!filter.isEmpty()) {
count++;
}
}
return count;
}
@Override
public int compareTo(SortData o) {

@ -19,6 +19,7 @@ public class RefreshEvent {
public static final int TYPE_EPG_URL_CHANGE = 10;
public static final int TYPE_SETTING_SEARCH_TV = 11;
public static final int TYPE_SUBTITLE_SIZE_CHANGE = 12;
public static final int TYPE_FILTER_CHANGE = 13;
public int type;
public Object obj;

@ -79,6 +79,7 @@ public class HomeActivity extends BaseActivity {
private SourceViewModel sourceViewModel;
private SortAdapter sortAdapter;
private HomePageAdapter pageAdapter;
private View currentView;
private List<BaseLazyFragment> fragments = new ArrayList<>();
private boolean isDownOrUp = false;
private boolean sortChange = false;
@ -147,6 +148,7 @@ public class HomeActivity extends BaseActivity {
view.animate().scaleX(1.0f).scaleY(1.0f).setDuration(300).start();
textView.setTextColor(HomeActivity.this.getResources().getColor(R.color.color_BBFFFFFF));
view.findViewById(R.id.tvFilter).setVisibility(View.GONE);
view.findViewById(R.id.tvFilterColor).setVisibility(View.GONE);
}
textView.invalidate();
}
@ -159,6 +161,7 @@ public class HomeActivity extends BaseActivity {
public void onItemSelected(TvRecyclerView tvRecyclerView, View view, int position) {
if (view != null) {
HomeActivity.this.currentView = view;
HomeActivity.this.isDownOrUp = false;
HomeActivity.this.sortChange = true;
view.animate().scaleX(1.1f).scaleY(1.1f).setInterpolator(new BounceInterpolator()).setDuration(300).start();
@ -166,8 +169,10 @@ public class HomeActivity extends BaseActivity {
textView.getPaint().setFakeBoldText(true);
textView.setTextColor(HomeActivity.this.getResources().getColor(R.color.color_FFFFFF));
textView.invalidate();
if (!sortAdapter.getItem(position).filters.isEmpty())
view.findViewById(R.id.tvFilter).setVisibility(View.VISIBLE);
MovieSort.SortData sortData = sortAdapter.getItem(position);
if (!sortData.filters.isEmpty()) {
showFilterIcon(sortData.filterSelectCount());
}
HomeActivity.this.sortFocusView = view;
HomeActivity.this.sortFocused = position;
mHandler.removeCallbacks(mDataRunnable);
@ -479,9 +484,19 @@ public class HomeActivity extends BaseActivity {
newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
HomeActivity.this.startActivity(newIntent);
}
} else if (event.type == RefreshEvent.TYPE_FILTER_CHANGE) {
if (currentView != null) {
showFilterIcon((int) event.obj);
}
}
}
private void showFilterIcon(int count) {
boolean visible = count > 0;
currentView.findViewById(R.id.tvFilterColor).setVisibility(visible ? View.VISIBLE : View.GONE);
currentView.findViewById(R.id.tvFilter).setVisibility(visible ? View.GONE : View.VISIBLE);
}
private Runnable mDataRunnable = new Runnable() {
@Override
public void run() {

@ -15,6 +15,7 @@ import com.github.tvbox.osc.bean.AbsXml;
import com.github.tvbox.osc.bean.Movie;
import com.github.tvbox.osc.bean.MovieSort;
import com.github.tvbox.osc.bean.SourceBean;
import com.github.tvbox.osc.event.RefreshEvent;
import com.github.tvbox.osc.ui.activity.DetailActivity;
import com.github.tvbox.osc.ui.activity.FastSearchActivity;
import com.github.tvbox.osc.ui.activity.SearchActivity;
@ -32,6 +33,8 @@ import java.util.Stack;
import android.view.ViewGroup;
import android.widget.Toast;
import org.greenrobot.eventbus.EventBus;
/**
* @author pj567
* @date :2020/12/21
@ -287,9 +290,15 @@ public class GridFragment extends BaseLazyFragment {
showLoading();
isLoad = false;
scrollTop();
toggleFilterColor();
sourceViewModel.getList(sortData, page);
}
private void toggleFilterColor() {
int count = sortData.filterSelectCount();
EventBus.getDefault().post(new RefreshEvent(RefreshEvent.TYPE_FILTER_CHANGE, count));
}
public boolean isTop() {
return isTop;
}

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:viewportWidth="1024"
android:viewportHeight="1024">
<path
android:pathData="M540.44,541.27l255.72,-370.61L227.84,170.67l255.72,370.61L483.56,832.5l56.89,34.13L540.44,541.27zM426.67,559L168.7,185.14a45.51,45.51 0,0 1,-8.05 -25.85c0,-25.14 20.38,-45.51 45.51,-45.51h611.68c9.23,0 18.25,2.81 25.85,8.05 20.69,14.27 25.89,42.62 11.61,63.31L597.33,559v408.12l-170.67,-102.4v-305.72z"
android:fillColor="#FF5F00"/>
</vector>

@ -29,4 +29,15 @@
android:layout_marginLeft="@dimen/vs_3"
android:src="@drawable/icon_filter"
android:visibility="gone" />
<ImageView
android:id="@+id/tvFilterColor"
android:layout_width="@dimen/vs_30"
android:layout_height="@dimen/vs_30"
android:layout_gravity="center"
android:layout_marginStart="@dimen/vs_3"
android:layout_marginLeft="@dimen/vs_3"
android:src="@drawable/icon_filter_color"
android:visibility="gone" />
</LinearLayout>
Loading…
Cancel
Save