FeedbackFragment.java 4.09 KB
package com.cnlive.gundam.user.fragment;

import android.app.ProgressDialog;
import android.databinding.DataBindingUtil;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.cnlive.gundam.R;
import com.cnlive.gundam.databinding.UserFeedbackBinding;
import com.cnlive.gundam.user.util.ToastUtil;
import com.cnlive.libs.user.IUserService;
import com.cnlive.libs.user.UserUtil;
import com.cnlive.libs.util.data.network.Callback;



/**
 * Created by luxiaoman on 2017/6/1.
 */

public class FeedbackFragment extends Fragment implements View.OnClickListener {
    private UserFeedbackBinding binding;

    //跳转页面的对话框
    private ProgressDialog dialog;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        binding = DataBindingUtil.inflate(inflater, R.layout.user_feedback, container, false);
        return binding.getRoot();
    }

    public static Fragment newInstance() {
        FeedbackFragment fragment = new FeedbackFragment();
        return fragment;
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        try {
            initToolBar();
        } catch (Exception e) {
            e.printStackTrace();
        }
        initView();
    }

    private void initToolBar(){
        //整个页面的大标题
        binding.feedbackIncludeLayout.toolbarTitle.setText("反馈意见");
    }

    private void initView() {
        //返回键
        binding.backSelector.setOnClickListener(this);
        //反馈按钮
        binding.feedback.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        int i = v.getId();
        if (i == R.id.back_selector) {//返回上一页面
            getFragmentManager().popBackStack();

        } else if (i == R.id.feedback) {
         /**
         * 用户反馈
         *
         * @param id         举报内容ID
         * @param msg        举报内容(app自己组织-不能带特殊字符&号等)
         * @param callback   回调
         */
            //显示对话框
            showDialog();
            //调用sdk的用户反馈方法
            UserUtil.feedback("id", binding.feedbackTextView.getText().toString(), feedbackcall);
        }
    }

    /**
     * 用户反馈的回调
     */
    protected FeedbackCall feedbackcall = new FeedbackCall();
    private class FeedbackCall implements Callback {
        @Override
        public void onState(int what, String extra, Object obj) {
            switch (what) {
                case IUserService.SUCCESS:
                    ToastUtil.show(getActivity(), "反馈成功");
                    getFragmentManager().popBackStack();
                    break;
                case IUserService.ERROR_PARAM:
                    ToastUtil.show(getActivity(), IUserService.message_error_param);
                    break;
                case IUserService.ERROR_FEEDBACK_INSERT_FAILED:
                    ToastUtil.show(getActivity(), IUserService.message_feedback_insert_failed);
                    break;
                case IUserService.ERROR_FEEDBACK_LENGTH:
                    ToastUtil.show(getActivity(), IUserService.message_feedback_length);
                    break;
                case IUserService.ERROR_OTHER:
                    ToastUtil.show(getActivity(), IUserService.message_error_other);
                    break;
            }
            closeDialog();
        }
    }

    /**
     * 显示对话框
     */
    public void showDialog() {
        if (dialog == null) {
            dialog = new ProgressDialog(getActivity());
            dialog.setMessage("正在提交,请稍等...");
        }
        if (!dialog.isShowing()) {
            dialog.show();
        }
    }

    /**
     * 关闭对话框
     */
    public void closeDialog() {
        if (dialog != null && dialog.isShowing()) {
            dialog.dismiss();
        }
    }
}