package co.smartreceipts.android.sync.widget.backups; import android.annotation.SuppressLint; import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.net.Uri; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.app.DialogFragment; import android.view.View; import android.widget.CheckBox; import com.google.common.base.Preconditions; import javax.inject.Inject; import co.smartreceipts.android.R; import co.smartreceipts.android.activities.NavigationHandler; import dagger.android.support.AndroidSupportInjection; public class ImportLocalBackupDialogFragment extends DialogFragment implements DialogInterface.OnClickListener { private static final String ARG_SMR_URI = "arg_smr_uri"; @Inject NavigationHandler navigationHandler; private Uri mUri; private CheckBox mOverwriteCheckBox; public static ImportLocalBackupDialogFragment newInstance(@NonNull Uri uri) { final ImportLocalBackupDialogFragment fragment = new ImportLocalBackupDialogFragment(); final Bundle args = new Bundle(); args.putParcelable(ARG_SMR_URI, uri); fragment.setArguments(args); return fragment; } @Override public void onAttach(Context context) { AndroidSupportInjection.inject(this); super.onAttach(context); } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); mUri = getArguments().getParcelable(ARG_SMR_URI); Preconditions.checkNotNull(mUri, "ImportBackupDialogFragment requires a valid SMR Uri"); } @SuppressLint("InflateParams") @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { final View dialogView = getActivity().getLayoutInflater().inflate(R.layout.dialog_import_backup, null); mOverwriteCheckBox = (CheckBox) dialogView.findViewById(R.id.dialog_import_overwrite); final AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); builder.setView(dialogView); builder.setTitle(R.string.import_string); builder.setCancelable(true); builder.setPositiveButton(R.string.dialog_import_positive, this); builder.setNegativeButton(android.R.string.cancel, this); return builder.create(); } @Override public void onClick(DialogInterface dialogInterface, int which) { if (which == DialogInterface.BUTTON_POSITIVE) { navigationHandler.showDialog(ImportLocalBackupWorkerProgressDialogFragment.newInstance(mUri, mOverwriteCheckBox.isChecked())); } dismiss(); } }