package com.handsomezhou.customdialog.fragment;
import com.handsomezhou.customdialog.R;
import com.handsomezhou.customdialog.dialog.BaseProgressDialog;
import android.os.Handler;
import android.os.Message;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
public class ProgressDialogDemoFragment extends BaseFragment {
private static final int PROGRESS_DIALOG_SHOW_TIME_MILLIS = 5000;// ms
private static final int HANDLER_MSG_PROGRESS_DIALOG_DISPLAY = 0x01;
private static final int HANDLER_MSG_PROGRESS_DIALOG_DISAPPEAR = 0x02;
private Button mProgressDialogDemoBtn;
private BaseProgressDialog mBaseProgressDialog;
final Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case HANDLER_MSG_PROGRESS_DIALOG_DISPLAY:
break;
case HANDLER_MSG_PROGRESS_DIALOG_DISAPPEAR:
getBaseProgressDialog().hide();
break;
default:
break;
}
}
};
@Override
protected void initData() {
setContext(getActivity());
}
@Override
protected View initView(LayoutInflater inflater, ViewGroup container) {
View view=inflater.inflate(R.layout.fragment_dialog_progress_fragment_demo, container, false);
mProgressDialogDemoBtn=(Button)view.findViewById(R.id.progress_dialog_demo_btn);
setBaseProgressDialog(new BaseProgressDialog(getContext()));
return view;
}
@Override
protected void initListener() {
mProgressDialogDemoBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getBaseProgressDialog().show(getContext().getResources().getString(R.string.loading));
sendProgressDialogDisappearMsg();
}
});
}
@Override
public void onDestroy() {
clearViewDisappearMsg();
super.onDestroy();
}
public BaseProgressDialog getBaseProgressDialog() {
if(null==mBaseProgressDialog){
mBaseProgressDialog=new BaseProgressDialog(getContext());
}
return mBaseProgressDialog;
}
public void setBaseProgressDialog(BaseProgressDialog baseProgressDialog) {
mBaseProgressDialog = baseProgressDialog;
}
private void sendProgressDialogDisappearMsg() {
clearViewDisappearMsg();
handler.sendEmptyMessageDelayed(HANDLER_MSG_PROGRESS_DIALOG_DISAPPEAR,
PROGRESS_DIALOG_SHOW_TIME_MILLIS);
return;
}
private void clearViewDisappearMsg() {
if (handler.hasMessages(HANDLER_MSG_PROGRESS_DIALOG_DISAPPEAR)) {
handler.removeMessages(HANDLER_MSG_PROGRESS_DIALOG_DISAPPEAR);
}
return;
}
}