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(); } } }