package com.openfarmanager.android.fragments; import android.os.Bundle; import android.support.v4.app.DialogFragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ProgressBar; import android.widget.TextView; import com.openfarmanager.android.R; import com.openfarmanager.android.utils.ParcelableWrapper; import java.io.Serializable; /** * Current action progress dialog with total progress bar and currently processing file */ public class FileActionProgressDialog extends BaseDialog { private TextView mTitle; private ProgressBar mProgress; private boolean mIndeterminate; public static FileActionProgressDialog newInstance(OnDismissListener listener) { FileActionProgressDialog dialog = new FileActionProgressDialog(); Bundle args = new Bundle(); args.putParcelable("listener", new ParcelableWrapper<OnDismissListener>(listener)); dialog.setArguments(args); return dialog; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setStyle(DialogFragment.STYLE_NO_TITLE, R.style.Action_Dialog); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.dialog_action_progress, container, false); mTitle = (TextView) view.findViewById(android.R.id.title); mProgress = (ProgressBar) view.findViewById(android.R.id.progress); mProgress.setIndeterminate(mIndeterminate); view.findViewById(R.id.cancel).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { dismiss(); try { //noinspection unchecked OnDismissListener listener = ((ParcelableWrapper<OnDismissListener>) getArguments().getParcelable("listener")).value; if (listener != null) { listener.onDismiss(); } } catch (NullPointerException ignore) {} } }); return view; } public void updateProgress(String currentFile, int p){ mTitle.setText(currentFile); mProgress.setProgress(p); } public void setIndeterminate(boolean value) { mIndeterminate = value; } public static interface OnDismissListener extends Serializable { void onDismiss(); } }