admin
2024-07-03 a40e0e51331e5e6f69e8bed5940512b29150c7a9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
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);
    }
}