package com.hkm.ezwebviewsample;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.Activity;
import android.app.Fragment;
import android.content.Context;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.annotation.RawRes;
import android.support.v4.view.ViewCompat;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RelativeLayout;
import com.hkm.ezwebview.Util.Fx9C;
import com.hkm.ezwebview.Util.In32;
import com.hkm.ezwebview.webviewclients.HClient;
import com.hkm.ezwebview.webviewleakfix.NonLeakingWebView;
import com.lsjwzh.widget.materialloadingprogressbar.CircleProgressBar;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* Created by hesk on 1/9/15.
*/
public class VideoFra extends Fragment {
private NonLeakingWebView block;
private CircleProgressBar betterCircleBar;
private RelativeLayout framer;
private List<String> getInternal() {
final List<String> h = new ArrayList<>();
return h;
}
private List<String> getAllow() {
final List<String> h = new ArrayList<>();
h.add("techcrunch.com");
h.add("google.com");
h.add("google.com.hk");
return h;
}
protected int get_layout_id() {
return R.layout.videof;
}
@SuppressLint("ResourceAsColor")
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
protected void initBinding(View v) {
betterCircleBar = (CircleProgressBar) v.findViewById(R.id.progressloadingbarpx);
block = (NonLeakingWebView) v.findViewById(R.id.videoplayer);
framer = (RelativeLayout) v.findViewById(R.id.framevideoplayer);
}
private void killWebView(NonLeakingWebView mWebView) {
//http://stackoverflow.com/questions/3815090/webview-and-html5-video
if (mWebView.getVisibility() == View.GONE) {
mWebView.loadUrl("about:blank");
mWebView.destroy();
}
}
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(get_layout_id(), container, false);
}
protected void completeloading() {
ViewCompat.animate(betterCircleBar).alpha(0f).withEndAction(new Runnable() {
@Override
public void run() {
betterCircleBar.setVisibility(View.GONE);
}
});
}
/**
* Called when the Fragment is no longer resumed. This is generally
* tied to {@link Activity#onPause() Activity.onPause} of the containing
* Activity's lifecycle.
*/
@Override
public void onPause() {
super.onPause();
if (block != null) {
block.onPause();
}
}
/**
* Called when the fragment is visible to the user and actively running.
* This is generally
* tied to {@link Activity#onResume() Activity.onResume} of the containing
* Activity's lifecycle.
*/
@Override
public void onResume() {
super.onResume();
if (block != null) {
block.onResume();
}
}
public void kill() {
killWebView(block);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
initBinding(view);
setup_video();
}
/**
* This is the example code
*/
private void setup_video() {
final String contentc = In32.fromFileRaw(getActivity(), R.raw.video_sample);
try {
Fx9C.setup_web_video(
this,
framer,
block,
betterCircleBar,
contentc,
new HClient.Callback() {
@Override
public void retrieveCookie(String cookie_string) {
// return In32.interceptURL_cart(url, getAllow(), getInternal(), this);
}
@Override
public boolean overridedefaultlogic(String url, Activity activity) {
return false;
}
},
new Runnable() {
/**
* Starts executing the active part of the class' code. This method is
* called when a thread is started that has been created with a class which
* implements {@code Runnable}.
*/
@Override
public void run() {
}
});
} catch (Exception e) {
}
}
}