package cn.jkdev.host.activity;

import android.content.DialogInterface;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.TextInputLayout;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;

import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

import java.text.SimpleDateFormat;
import java.util.Date;

import cn.jkdev.host.R;
import cn.jkdev.host.bean.FeedbackInfo;


/**
 * Created by pan on 17-8-31.
 */

public class FeedBackActivity extends AppCompatActivity {
    private String TAG = "FeedbackActivity";
    private TextInputLayout mContent;
    private TextInputLayout mAddress;

    //FireBase
    private FirebaseDatabase database;
    private DatabaseReference myRef;


    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_feedback);

        initUI();

        initData();
    }

    private void initData() {
        database = FirebaseDatabase.getInstance();
        myRef = database.getReference("feedback");
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_feedback, menu);
        return super.onCreateOptionsMenu(menu);
    }

    private void initUI() {
        //设置对toolBar的支持
        Toolbar toolBar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolBar);
        //设置默认按钮的支持
        ActionBar supportActionBar = getSupportActionBar();
        if (supportActionBar != null) {
            supportActionBar.setDisplayHomeAsUpEnabled(true);
        }

        //获取数据
        mContent = (TextInputLayout) findViewById(R.id.til_content);
        mAddress = (TextInputLayout) findViewById(R.id.til_address);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                finish();
                break;
            case R.id.menu_feedback_submit:
                //弹出提交提示
                showDialogIfSubmit();
                break;
        }
        return super.onOptionsItemSelected(item);
    }


    private void submitFeedbackData() {
        //记录当前时间
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");
        String currentDate = dateFormat.format(new Date());
        //创建数据对象
        FeedbackInfo feedbackInfo = new FeedbackInfo(mContent.getEditText().getText().toString(),
                mAddress.getEditText().getText().toString());
        Log.i(TAG, "开始提交数据");
        //开始提交数据
        Task<Void> voidTask = myRef.child(currentDate).setValue(feedbackInfo);
        voidTask.addOnSuccessListener(new OnSuccessListener<Void>() {
            @Override
            public void onSuccess(Void aVoid) {
                Log.i(TAG, "数据提交提交成功");
            }
        });
        //结束当前界面
        finish();
        //提示信息
        Toast.makeText(getApplicationContext(), "您的反馈已经提交\n感谢您的支持", Toast.LENGTH_LONG).show();
    }

    private void showDialogIfSubmit() {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        final AlertDialog alertDialog = builder.create();
        alertDialog.setIcon(R.mipmap.ic_launcher);
        alertDialog.setTitle("提示!");
        alertDialog.setMessage("您提交的反馈信息将提交到服务器,我们会根据您的反馈对《host科学上网》进行升级和改进,是否继续?");
        alertDialog.setCancelable(false);
        alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                //提交数据
                //提交反馈
                submitFeedbackData();
                alertDialog.dismiss();
            }
        });
        alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                alertDialog.dismiss();
            }
        });
        alertDialog.show();
    }
}