SwitchInfoPresentation.java 5.72 KB
package com.studymachine.www.ui.presentation;

import android.content.Context;
import android.text.TextUtils;
import android.view.Display;
import android.view.View;
import android.widget.Button;

import androidx.lifecycle.LifecycleOwner;
import androidx.recyclerview.widget.RecyclerView;

import com.hjq.base.action.ClickAction;
import com.hjq.http.EasyHttp;
import com.hjq.http.listener.HttpCallback;
import com.studymachine.www.R;
import com.studymachine.www.app.AppPresentation;
import com.studymachine.www.enumtype.DictionariesEnum;
import com.studymachine.www.event.DictionariesEvent;
import com.studymachine.www.event.UserInfoEvent;
import com.studymachine.www.http.api.EditUserInfoApi;
import com.studymachine.www.http.api.GetDictionariesApi;
import com.studymachine.www.http.model.HttpData;
import com.studymachine.www.manager.ActivityManager;
import com.studymachine.www.manager.DictionariesManager;
import com.studymachine.www.manager.UserManager;
import com.studymachine.www.other.AppConfig;
import com.studymachine.www.ui.activity.BrowserActivity;
import com.studymachine.www.ui.activity.HomeActivity;
import com.studymachine.www.ui.adapter.RadioAdapter;
import com.studymachine.www.ui.fragment.HomeFragment;

import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;

import java.util.ArrayList;
import java.util.List;

public class SwitchInfoPresentation extends AppPresentation implements RadioAdapter.OnRadioListener, ClickAction {

    private RadioAdapter mGradeAdapter, mTextbookAdapter;
    private RecyclerView mRvGrade, mTextbook;
    private Button mCommitBtn;
    private GetDictionariesApi.Bean mSelectGrade, mSelectTextbook;
    private List<GetDictionariesApi.Bean> mGradeDataList = new ArrayList<>();
    private List<GetDictionariesApi.Bean> mTextbookDataList = new ArrayList<>();

    public SwitchInfoPresentation(Context outerContext, Display display) {
        super(outerContext, display);
    }

    @Override
    public int getLayout() {
        return R.layout.switch_info_fragment;
    }

    @Override
    public void initData() {
        mCommitBtn = findViewById(R.id.btn_commit);
        mRvGrade = findViewById(R.id.rv_grade);
        mTextbook = findViewById(R.id.rv_textbook);
        setOnClickListener(mCommitBtn);
        initGrade();
        initTextbook();
        DictionariesManager.getInstance().getHttpData();
    }

    private void initTextbook() {
        mTextbookDataList = DictionariesManager.getInstance().getDictionItem(DictionariesEnum.CATEGORY_KEY);
        List<GetDictionariesApi.Bean> beanList = new ArrayList<>();
        String category = UserManager.getInstance().getUserBean().getCategory();
        if (!TextUtils.isEmpty(category)) {
            for (int i = 0; i < mTextbookDataList.size(); i++) {
                if (mTextbookDataList.get(i).getValue().equals(category)) {
                    beanList.add(mTextbookDataList.get(i));
                    mSelectTextbook = mTextbookDataList.get(i);
                    break;
                }
            }
        }
        mTextbookAdapter = new RadioAdapter(getContext(), beanList);
        mTextbookAdapter.setListener(this);
        mTextbook.setAdapter(mTextbookAdapter);
        mTextbookAdapter.setData(mTextbookDataList);

    }

    private void initGrade() {
        mGradeDataList = DictionariesManager.getInstance().getDictionItem(DictionariesEnum.GRADE_KEY);
        List<GetDictionariesApi.Bean> beanList = new ArrayList<>();
        String grade = UserManager.getInstance().getUserBean().getGrade();
        if (!TextUtils.isEmpty(grade)) {
            for (int i = 0; i < mGradeDataList.size(); i++) {
                if (mGradeDataList.get(i).getValue().equals(grade)) {
                    beanList.add(mGradeDataList.get(i));
                    mSelectGrade = mGradeDataList.get(i);
                    break;
                }
            }
        }
        mGradeAdapter = new RadioAdapter(getContext(), beanList);
        mGradeAdapter.setListener(this);
        mRvGrade.setAdapter(mGradeAdapter);
        mGradeAdapter.setData(mGradeDataList);
    }


    @Override
    public void onClick(View view) {
        if (view == mCommitBtn) {
            EasyHttp.post((LifecycleOwner) getOwnerActivity())
                    .api(new EditUserInfoApi()
                            .setCategory(mSelectTextbook.getValue())
                            .setGrade(mSelectGrade.getValue()))
                    .request(new HttpCallback<HttpData>(this) {
                        @Override
                        public void onSucceed(HttpData result) {
                            UserManager.getInstance().getUserInfo();
                            BrowserActivity.start(getContext(), "https://preview.inibiru.com/creator/custom/index.html?id=12242");
                            ActivityManager.getInstance().finishAllActivities(BrowserActivity.class);
                            getOwnerActivity().finish();
                            dismiss();
                        }

                        @Override
                        public void onFail(Exception e) {
                            super.onFail(e);
                        }
                    });
        }
    }

    @Override
    public void onItemClick(RecyclerView recyclerView, int position, List<GetDictionariesApi.Bean> mSelectList) {
        if (recyclerView == mRvGrade) {
            mSelectGrade = mSelectList.get(0);
        } else if (recyclerView == mTextbook) {
            mSelectTextbook = mSelectList.get(0);
        }
    }

    @Subscribe(threadMode = ThreadMode.MAIN)
    public void onEventBus(UserInfoEvent userInfoEvent) {
    }

    @Subscribe(threadMode = ThreadMode.MAIN)
    public void onEventBus(DictionariesEvent dictionariesEvent) {
        initGrade();
        initTextbook();
    }
}