package com.socks.jiandan.ui;

import android.content.Intent;
import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ImageButton;
import android.widget.ProgressBar;

import com.afollestad.materialdialogs.MaterialDialog;
import com.socks.jiandan.R;
import com.socks.jiandan.base.BaseActivity;
import com.socks.jiandan.base.JDApplication;
import com.socks.jiandan.utils.ShareUtil;
import com.socks.jiandan.utils.TextUtil;

import butterknife.ButterKnife;
import butterknife.InjectView;

public class VideoDetailActivity extends BaseActivity implements View.OnClickListener {

    @InjectView(R.id.webview)
    WebView webview;
    @InjectView(R.id.progress)
    ProgressBar progress;
    @InjectView(R.id.toolbar)
    Toolbar mToolbar;
    @InjectView(R.id.imgBtn_back)
    ImageButton imgBtn_back;
    @InjectView(R.id.imgBtn_forward)
    ImageButton imgBtn_forward;
    @InjectView(R.id.imgBtn_control)
    ImageButton imgBtn_control;

    private String url;

    private boolean isLoadFinish = false;

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

        initView();
        initData();
    }

    @Override
    public void initView() {

        ButterKnife.inject(this);
        mToolbar.setTitleTextColor(Color.WHITE);
        setSupportActionBar(mToolbar);
        mToolbar.setTitle(R.string.loading);
        mToolbar.setNavigationIcon(R.drawable.ic_actionbar_back);

        imgBtn_back.setOnClickListener(this);
        imgBtn_forward.setOnClickListener(this);
        imgBtn_control.setOnClickListener(this);

        webview.getSettings().setJavaScriptEnabled(true);
        webview.setWebChromeClient(
                new WebChromeClient() {
                    @Override
                    public void onProgressChanged(WebView view, int newProgress) {

                        if (newProgress == 100) {
                            progress.setVisibility(View.GONE);
                        } else {
                            progress.setProgress(newProgress);
                            progress.setVisibility(View.VISIBLE);
                        }

                        super.onProgressChanged(view, newProgress);
                    }
                }

        );
        webview.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                imgBtn_control.setImageResource(R.drawable.ic_action_refresh);
                isLoadFinish = true;
                mToolbar.setTitle(view.getTitle());
            }
        });

    }

    @Override
    public void initData() {
        url = getIntent().getStringExtra("url");
        webview.loadUrl(url);
    }

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

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        switch (item.getItemId()) {
            case android.R.id.home:
                finish();
                return true;
            case R.id.action_more:
                new MaterialDialog.Builder(this)
                        .items(R.array.video_more)
                        .backgroundColor(getResources().getColor(JDApplication.COLOR_OF_DIALOG))
                        .contentColor(JDApplication.COLOR_OF_DIALOG_CONTENT)
                        .itemsCallback(new MaterialDialog.ListCallback() {
                            @Override
                            public void onSelection(MaterialDialog dialog, View view, int which, CharSequence text) {
                                switch (which) {
                                    //分享
                                    case 0:
                                        ShareUtil.shareText(VideoDetailActivity.this, mToolbar.getTitle() + " " + url);
                                        break;
                                    //复制
                                    case 1:
                                        TextUtil.copy(VideoDetailActivity.this, url);
                                        break;
                                    //浏览器打开
                                    case 2:
                                        startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
                                        break;
                                }
                            }
                        }).show();
                return true;
        }

        return super.onOptionsItemSelected(item);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.imgBtn_back:
                if (webview.canGoBack()) {
                    webview.goBack();
                }
                break;
            case R.id.imgBtn_forward:
                if (webview.canGoForward()) {
                    webview.goForward();
                }
                break;
            case R.id.imgBtn_control:

                if (isLoadFinish) {
                    webview.reload();
                    isLoadFinish = false;
                } else {
                    webview.stopLoading();
                }
                break;
        }
    }

    @Override
    protected void onResume() {
        super.onResume();
        if (webview != null) {
            webview.onResume();
        }
    }

    @Override
    protected void onPause() {
        super.onPause();
        if (webview != null) {
            webview.onPause();
        }
    }
}