package com.yidianling.user.mine;

import android.annotation.SuppressLint;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.ydl.ydlcommon.base.BaseActivity;
import com.ydl.ydlcommon.bean.StatusBarOptions;
import com.ydl.ydlcommon.data.http.RxUtils;
import com.ydl.ydlcommon.data.http.ThrowableConsumer;
import com.ydl.ydlcommon.modular.ModularServiceManager;
import com.ydl.ydlcommon.utils.remind.ToastHelper;
import com.yidianling.common.tools.ToastUtil;
import com.yidianling.im.api.service.IImService;
import com.yidianling.user.R;
import com.yidianling.user.UserHelper;
import com.yidianling.user.http.UserHttp;
import com.yidianling.user.http.UserHttpImpl;
import com.yidianling.user.http.request.UserInfoParam;

import org.jetbrains.annotations.NotNull;

import io.reactivex.android.schedulers.AndroidSchedulers;


/**
 * 个人资料--个人简介
 * Created by hgw on 2017/3/24.
 */

public class PersonalDesActivity extends BaseActivity {

//    @BindView(R.id.image_back)
    ImageView imageBack;
//    @BindView(R.id.tv_center_title)
    TextView tvCenterTitle;
//    @BindView(R.id.text_save)
    TextView textSave;
//    @BindView(R.id.rela_toolBar)
    RelativeLayout relaToolBar;
//    @BindView(R.id.edit_des)
    EditText editDes;
    @NotNull
    @Override
    public StatusBarOptions getStatusViewOptions() {
        return new StatusBarOptions(true,true);
    }
    @Override
    protected int layoutResId() {
        return R.layout.user_mine_activity_personal_des;
    }

    @Override
    protected void initDataAndEvent() {
        imageBack = findViewById(R.id.image_back);
        tvCenterTitle = findViewById(R.id.tv_center_title);
        editDes = findViewById(R.id.edit_des);
        textSave = findViewById(R.id.text_save);
        imageBack.setOnClickListener(v -> {
            finish();
        });
        textSave.setOnClickListener(v -> {
            updateInfo("home_desc", editDes.getText().toString());
        });
        init();
    }


    private void init() {
        String desc = "";
        try {
            desc = ModularServiceManager.INSTANCE.provide(IImService.class).getUserInfoDescription();
        } catch (Exception e) {}
        editDes.setText(desc);
    }

    @SuppressLint("CheckResult")
    private void updateInfo(final String changType, final String value) {
        showProgressDialog("保存中");
        UserHttp userHttp = UserHttpImpl.Companion.getInstance();
        userHttp.setUserInfo(new UserInfoParam(changType, value))
                .filter(objectBaseResponse -> changType.equals("home_desc"))
                .compose(RxUtils.resultData())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(o -> {
                    dismissProgressDialog();
                    UserHelper.INSTANCE.getUserInfo().getUserInfo().setDescription(value);
                    ToastUtil.toastShort("保存成功");
                    finish();
                }, new ThrowableConsumer() {
                    @Override
                    public void accept(@NotNull String msg) {
                        dismissProgressDialog();
                        ToastHelper.Companion.show(msg);
                    }
                });
    }
}