package com.ijoomer.plugins;
import android.annotation.SuppressLint;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.MotionEvent;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings.PluginState;
import android.webkit.WebView;
import android.widget.ProgressBar;
import com.ijoomer.src.R;
@SuppressLint({ "ParserError", "SetJavaScriptEnabled" })
public class PluginsVimeoWebViewActivity
extends FragmentActivity implements OnGestureListener {
WebView browser;
ViewPager pager;
Bundle savedInstance;
FragmentStatePagerAdapter adapter;
boolean isFromBigScreen = false;
boolean isFromRestore = false;
private GestureDetector gDetector;
private static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;
private static int index;
ProgressBar progressBar;
String IN_URL;
int IN_POSITION;
String [] IN_LINKS ;
int IN_WIDTH ;
int IN_HEIGHT ;
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
public void getIntentData(){
IN_URL = getIntent().getStringExtra("IN_URL");
IN_WIDTH = this.getIntent().getExtras().getInt("IN_WIDTH");
IN_HEIGHT = this.getIntent().getExtras().getInt("IN_HEIGHT");
IN_LINKS = getIntent().getStringArrayExtra("IN_LINKS");
IN_HEIGHT = IN_HEIGHT / 2;
IN_POSITION = this.getIntent().getExtras().getInt("IN_POSITION");
}
@Override
public boolean onDown(MotionEvent e) {
return false;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
progressBar.setVisibility(View.VISIBLE);
if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
getNextVideo();
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
getPreviousVideo();
}
return true;
}
@Override
public void onLongPress(MotionEvent e) {
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
return false;
}
@Override
public void onShowPress(MotionEvent e) {
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
return false;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return gDetector.onTouchEvent(event);
}
public void getNextVideo(){
try{
if((IN_LINKS.length > index )){
index = index+1;
loadVideo(index);
}
}catch (Exception e) {
index = index-1;
e.printStackTrace();
}
}
public void getPreviousVideo(){
try{
if(index>0){
index = index-1;
loadVideo(index);
}
}catch (Exception e) {
e.printStackTrace();
}
}
public void loadVideo(int index){
browser.stopLoading();
browser.setWebChromeClient(new WebChromeClient(){
@Override
public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
progressBar.setVisibility(View.VISIBLE);
}
});
String IN_URL = IN_LINKS[index];
String[] url = IN_URL.split("/");
int length = url.length;
String link = url[length-1];
String videoLink = "<!DOCTYPE HTML> <html xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:og=\"http://opengraphprotocol.org/schema/\" xmlns:fb=\"http://www.facebook.com/2008/fbml\"> <head></head> <body style=\"margin:0 0 0 0; padding:0 0 0 0;\"><iframe src=\"http://player.vimeo.com/video/"+link+"?color=\"#000000\" width="+IN_WIDTH+" height="+IN_HEIGHT+" webkitAllowFullScreen mozallowfullscreen allowFullScreen autopaly=\"1\"></iframe></body> </html> ";
browser.loadDataWithBaseURL("http://player.vimeo.com",videoLink,"text/html", "utf-8", null);
}
@SuppressWarnings("deprecation")
@Override
protected void onResume() {
super.onResume();
if(isFromRestore){
getIntentData();
}else{
getIntentData();
index = IN_POSITION;
}
try
{
browser.destroy();
}catch (Exception e) {
e.printStackTrace();
}
setContentView(R.layout.plugins_vimeo_fragment_browser);
browser = (WebView) findViewById(R.id.my_browser);
progressBar = (ProgressBar) findViewById(R.id.progressBar1);
gDetector = new GestureDetector(getBaseContext(),this);
browser.setBackgroundColor(Color.BLACK);
browser.getSettings().setJavaScriptEnabled(true);
browser.getSettings().setSupportMultipleWindows(true);
browser.setInitialScale(97);
browser.setScrollContainer(false);
browser.getLayoutParams().width = IN_WIDTH;
browser.getSettings().setPluginState(PluginState.ON);
loadVideo(index);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
try{
if(browser!=null){
browser.reload();
}
}catch (Exception e) {
e.printStackTrace();
}
isFromBigScreen = true;
outState.putInt("index",index);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
savedInstance = savedInstanceState;
isFromBigScreen = true;
isFromRestore = true;
index = savedInstance.getInt("index");
}
@Override
public void onBackPressed() {
super.onBackPressed();
try{
browser.stopLoading();
browser.destroy();
}catch (Exception e) {
e.printStackTrace();
}
}
}