package com.dayu.qiheonlinelibrary.net.progress; 
 | 
  
 | 
import android.content.Context; 
 | 
import android.content.DialogInterface; 
 | 
import android.os.Handler; 
 | 
import android.os.Message; 
 | 
  
 | 
  
 | 
/** 
 | 
 * Created by qwy on 16/3/10. 
 | 
 * 展示进度对话框 
 | 
 */ 
 | 
public class ProgressDialogHandler extends Handler { 
 | 
  
 | 
    public static final int SHOW_PROGRESS_DIALOG = 1; 
 | 
    public static final int DISMISS_PROGRESS_DIALOG = 2; 
 | 
  
 | 
    private NetLoadingDialog pd; 
 | 
  
 | 
    private Context context; 
 | 
    private boolean cancelable; 
 | 
    private ProgressCancelListener mProgressCancelListener; 
 | 
  
 | 
  
 | 
    public ProgressDialogHandler(Context context, ProgressCancelListener mProgressCancelListener, 
 | 
                                 boolean cancelable) { 
 | 
        super(); 
 | 
        this.context = context; 
 | 
        this.mProgressCancelListener = mProgressCancelListener; 
 | 
        this.cancelable = cancelable; 
 | 
    } 
 | 
  
 | 
    private void initProgressDialog() { 
 | 
        try { 
 | 
            if (pd == null) { 
 | 
                pd = new NetLoadingDialog(context); 
 | 
                pd.setCancelable(cancelable); 
 | 
  
 | 
                if (cancelable) { 
 | 
                    pd.setOnCancelListener(new DialogInterface.OnCancelListener() { 
 | 
                        @Override 
 | 
                        public void onCancel(DialogInterface dialogInterface) { 
 | 
                            if (mProgressCancelListener != null) 
 | 
                            mProgressCancelListener.onCancelProgress(); 
 | 
                        } 
 | 
                    }); 
 | 
                } 
 | 
  
 | 
                if (!pd.isShowing()) { 
 | 
                    pd.startAnim(); 
 | 
                } 
 | 
            } 
 | 
        } catch (Exception e) { 
 | 
            e.printStackTrace(); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    private void dismissProgressDialog() { 
 | 
        if (pd != null) { 
 | 
            try { 
 | 
                if (pd.isShowing()) { 
 | 
                    pd.dismiss(); 
 | 
                } 
 | 
                pd.stopAnim(); 
 | 
                pd = null; 
 | 
            } catch (Exception e) { 
 | 
                e.printStackTrace(); 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public void handleMessage(Message msg) { 
 | 
        switch (msg.what) { 
 | 
            case SHOW_PROGRESS_DIALOG: 
 | 
                initProgressDialog(); 
 | 
                break; 
 | 
            case DISMISS_PROGRESS_DIALOG: 
 | 
                dismissProgressDialog(); 
 | 
                break; 
 | 
        } 
 | 
    } 
 | 
  
 | 
} 
 |