package me.wavever.ganklock.ui.fragment;

import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.net.Uri;
import android.os.Build.VERSION;
import android.support.v7.widget.SwitchCompat;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.TextView;
import android.widget.Toast;
import me.wavever.ganklock.MyApplication;
import me.wavever.ganklock.R;
import me.wavever.ganklock.config.Config;
import me.wavever.ganklock.presenter.MorePresenter;
import me.wavever.ganklock.service.LockService;
import me.wavever.ganklock.ui.activity.AboutActivity;
import me.wavever.ganklock.ui.activity.LicenseActivity;
import me.wavever.ganklock.ui.activity.SettingActivity;
import me.wavever.ganklock.utils.PreferenceUtil;
import me.wavever.ganklock.utils.ToastUtil;
import me.wavever.ganklock.view.IMoreView;

/**
 * Created by wavever on 2016/9/18.
 */

public class MoreFragment extends BaseFragment<IMoreView, MorePresenter> implements OnClickListener {

    private TextView mTitle;
    private SwitchCompat mSwitch;
    private TextView mItemLockSetting, mItemStyleSetting, mItemFeedBack, mItemOpenSource,
        mItemEvaluate, mItemAbout;
    private Toolbar mToolbar;

    @Override protected int loadView() {
        return R.layout.fragment_more;
    }


    @Override protected void initView() {
        mToolbar = (Toolbar) mContext.findViewById(R.id.toolbar_more_fragment);
        mTitle = (TextView) mContext.findViewById(R.id.more_fragment_title);
        mItemLockSetting = (TextView) mContext.findViewById(R.id.more_fragment_item_lock_setting);
        mItemLockSetting.setOnClickListener(this);
        mItemStyleSetting = (TextView) mContext.findViewById(R.id.more_fragment_item_style_setting);
        mItemStyleSetting.setOnClickListener(this);
        mItemFeedBack = (TextView) mContext.findViewById(R.id.more_fragment_item_feedback);
        mItemFeedBack.setOnClickListener(this);
        mItemOpenSource = (TextView) mContext.findViewById(R.id.more_fragment_item_open_source);
        mItemOpenSource.setOnClickListener(this);
        mItemEvaluate = (TextView) mContext.findViewById(R.id.more_fragment_item_evaluate);
        mItemEvaluate.setOnClickListener(this);
        mItemAbout = (TextView) mContext.findViewById(R.id.more_fragment_item_about);
        mItemAbout.setOnClickListener(this);
        mSwitch = (SwitchCompat) mContext.findViewById(R.id.more_fragment_switch_button);
        mSwitch.setChecked(PreferenceUtil.getBoolean(Config.GANK_LOCK_IS_OPEN));//根据存储的布尔值来判断是否是开启状态
        mSwitch.setOnCheckedChangeListener(new OnCheckedChangeListener() {
            @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (isChecked) {
                    ToastUtil.showToastShort(mContext, "open锁屏");
                    PreferenceUtil.putBoolean(Config.GANK_LOCK_IS_OPEN, true);
                    //LockManager.startLock(true);//立即显示锁屏
                    MyApplication.getContext().startService(new Intent(MyApplication.getContext(), LockService.class));
                } else {
                    ToastUtil.showToastShort(mContext, "close锁屏");
                    PreferenceUtil.putBoolean(Config.GANK_LOCK_IS_OPEN, false);
                    MyApplication.getContext().stopService(new Intent(MyApplication.getContext(), LockService.class));
                    //LockManager.cancleLock();
                }
            }
        });
    }


    @Override public MorePresenter createPresenter() {
        return new MorePresenter();
    }


    @Override public void onClick(View v) {
        switch (v.getId()) {
            case R.id.more_fragment_item_lock_setting:
                startActivity(new Intent(mContext, SettingActivity.class));
                break;
            case R.id.more_fragment_item_feedback:
                break;
            case R.id.more_fragment_item_open_source:
                startActivity(new Intent(mContext, LicenseActivity.class));
                break;
            case R.id.more_fragment_item_evaluate:
                Uri uri = Uri.parse("market://details?id=" + mContext.getPackageName());
                Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
                try {
                    startActivity(goToMarket);
                } catch (ActivityNotFoundException e) {
                    Toast.makeText(mContext, "Couldn't launch the market !", Toast.LENGTH_SHORT).show();
                }
                break;
            case R.id.more_fragment_item_about:
                startActivity(new Intent(mContext, AboutActivity.class));
                break;
        }
    }

}