package com.taoke.autopay.android.ui;
|
|
import android.os.Bundle;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
|
import androidx.annotation.NonNull;
|
import androidx.annotation.Nullable;
|
|
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
|
import com.taoke.autopay.android.R;
|
import com.taoke.autopay.android.databinding.FragmentFilterBinding;
|
|
public class FilterFragment extends BottomSheetDialogFragment {
|
|
private FragmentFilterBinding mViewBinding;
|
|
private FilterListener mListener;
|
|
private int mSortType;
|
private int mSubmitTime;
|
private int mStatus;
|
|
@Nullable
|
@Override
|
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
mViewBinding = FragmentFilterBinding.inflate(inflater, container, false);
|
return mViewBinding.getRoot();
|
}
|
|
@Override
|
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
{
|
int sortId = mSortType == 1 ? R.id.rb_sort_new : R.id.rb_sort_old;
|
int timeId = mSubmitTime == 0 ? R.id.rb_today
|
: (mSubmitTime == 1 ? R.id.rb_yesterday : (mSubmitTime == 2 ? R.id.rb_this_week : R.id.rb_this_month));
|
int statusId = mStatus == 0 ? R.id.rb_status_all
|
: (mStatus == 1 ? R.id.rb_status_not_handled : (mStatus == 2 ? R.id.rb_status_handled : R.id.rb_status_error));
|
mViewBinding.rgSortType.check(sortId);
|
mViewBinding.rgSubmitTime.check(timeId);
|
mViewBinding.rgHandleStatus.check(statusId);
|
}
|
|
mViewBinding.btnClose.setOnClickListener(v -> dismiss());
|
mViewBinding.btnReset.setOnClickListener(v -> {
|
mViewBinding.rgSortType.check(R.id.rb_sort_new);
|
mViewBinding.rgSubmitTime.check(R.id.rb_today);
|
mViewBinding.rgHandleStatus.check(R.id.rb_status_all);
|
});
|
mViewBinding.btnConfirm.setOnClickListener(v -> {
|
int sortId = mViewBinding.rgSortType.getCheckedRadioButtonId();
|
int timeId = mViewBinding.rgSubmitTime.getCheckedRadioButtonId();
|
int statusId = mViewBinding.rgHandleStatus.getCheckedRadioButtonId();
|
dismiss();
|
int sortType = sortId == R.id.rb_sort_new ? 1 : 0;
|
int submitTime = timeId == R.id.rb_today ? 0 : (timeId == R.id.rb_yesterday ? 1 : (timeId == R.id.rb_this_week ? 2 : 3));
|
int status = statusId == R.id.rb_status_all ? 0 : (statusId == R.id.rb_status_not_handled ? 1 : (statusId == R.id.rb_status_handled ? 2 : 3));
|
if (mListener != null) {
|
mListener.onFilter(sortType, submitTime, status);
|
}
|
});
|
|
}
|
|
public FilterFragment setListener(FilterListener listener) {
|
this.mListener = listener;
|
return this;
|
}
|
|
public FilterFragment setData(int sortType, int submitTime, int status) {
|
this.mSortType = sortType;
|
this.mSubmitTime = submitTime;
|
this.mStatus = status;
|
return this;
|
}
|
|
public interface FilterListener {
|
void onFilter(int sortType, int submitTime, int status);
|
}
|
}
|