123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- package com.guangzhou.haochuan.jxtv.activity;
- import android.app.Activity;
- import android.app.Dialog;
- import android.app.DialogFragment;
- import android.app.FragmentManager;
- import android.content.DialogInterface;
- import android.graphics.Color;
- import android.graphics.drawable.ColorDrawable;
- import android.os.Bundle;
- import android.view.KeyEvent;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.view.Window;
- import android.widget.FrameLayout;
- import android.widget.TextView;
- import android.widget.Toast;
- import com.guangzhou.haochuan.jxtv.R;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- /**
- * Created by yunhaipiaodi on 2017/10/13.
- */
- public class VideoEndDialog extends DialogFragment{
- private OnClickListener mListener;
- private long mLastClickTime = 0;
- FrameLayout continueWatch;
- FrameLayout exit;
- @Override
- public void onCreate(Bundle savedInstanceState){
- super.onCreate(savedInstanceState);
- this.setCancelable(false);
- //Toast.makeText(getActivity(),"currentPos:" + currentPos + "; maxPos:" + maxPos,Toast.LENGTH_LONG).show();
- }
- @Override
- public void onAttach(Activity activity){
- super.onAttach(activity);
- if(activity instanceof OnClickListener){
- mListener = (OnClickListener)activity;
- }else{
- throw new RuntimeException(activity.toString()
- + " must implement VideoEndDialog.OnClickListener");
- }
- }
- @Override
- public void onStart(){
- super.onStart();
- mLastClickTime = getCurrentTime();
- //Toast.makeText(getActivity(),"mLastClickTime:" + mLastClickTime,Toast.LENGTH_LONG ).show();
- }
- private int getCurrentTime(){
- int currentTime = 0;
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HHmmss");
- currentTime = Integer.parseInt(simpleDateFormat.format(new Date()));
- return currentTime;
- }
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState)
- {
- Dialog dialog = getDialog();
- dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
- dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
- dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
- @Override
- public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
- switch (keyCode){
- case KeyEvent.KEYCODE_BACK:
- if (getCurrentTime() - mLastClickTime < 2) {
- return false;
- }else{
- VideoEndDialog.this.dismiss();
- return true;
- }
- }
- return false;
- }
- });
- View view = inflater.inflate(R.layout.video_end_dialog, container);
- continueWatch = (FrameLayout)view.findViewById(R.id.continue_watch);
- exit = (FrameLayout)view.findViewById(R.id.exit);
- setViewData();
- continueWatch.requestFocus();
- return view;
- }
- @Override
- public void show(FragmentManager manager, String tag) {
- try {
- //在每个add事务前增加一个remove事务,防止连续的add
- manager.beginTransaction().remove(this).commitAllowingStateLoss();
- super.show(manager, tag);
- } catch (Exception e) {
- //同一实例使用不同的tag会异常,这里捕获一下
- e.printStackTrace();
- }
- }
- @Override
- public void onDismiss(DialogInterface dialog) {
- super.onDismiss(dialog);
- mLastClickTime = 0;
- mListener.onDismiss();
- }
- private void setViewData(){
- continueWatch.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- mListener.onPlayCurrent();
- VideoEndDialog.this.dismiss();
- }
- });
- exit.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- mListener.onExit();
- VideoEndDialog.this.dismiss();
- }
- });
- }
- public interface OnClickListener{
- public void onPlayCurrent();
- public void onExit();
- public void onDismiss();
- }
- }
|