package com.example.dialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.view.ContextThemeWrapper;
public class ProgressDialogFragment extends DialogFragment
{
public static ProgressDialogFragment newInstance()
{
ProgressDialogFragment fragment = new ProgressDialogFragment();
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setCancelable(false);
setRetainInstance(true);
}
@Override
public void onDestroyView()
{
// http://code.google.com/p/android/issues/detail?id=17423
if(getDialog() != null && getRetainInstance()) getDialog().setDismissMessage(null);
super.onDestroyView();
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState)
{
ContextThemeWrapper context = new ContextThemeWrapper(getActivity(), getTheme(true));
ProgressDialog dialog = new ProgressDialog(context);
dialog.setMessage("progress");
dialog.setIndeterminate(true);
dialog.setCancelable(false);
return dialog;
}
public void dismiss()
{
getDialog().dismiss();
}
private int getTheme(boolean light)
{
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH)
{
return light ? android.R.style.Theme_DeviceDefault_Light_Dialog : android.R.style.Theme_DeviceDefault_Dialog;
}
else if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
{
return light ? android.R.style.Theme_Holo_Light_Dialog : android.R.style.Theme_Holo_Dialog;
}
else
{
return android.R.style.Theme_Dialog;
}
}
}