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.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 co.smartreceipts.android.sync.model.RemoteBackupMetadata; import dagger.android.support.AndroidSupportInjection; public class ImportRemoteBackupDialogFragment extends DialogFragment implements DialogInterface.OnClickListener { private static final String ARG_BACKUP_METADATA = "arg_backup_metadata"; @Inject NavigationHandler navigationHandler; private RemoteBackupMetadata mBackupMetadata; private CheckBox mOverwriteCheckBox; public static ImportRemoteBackupDialogFragment newInstance(@NonNull RemoteBackupMetadata remoteBackupMetadata) { final ImportRemoteBackupDialogFragment fragment = new ImportRemoteBackupDialogFragment(); final Bundle args = new Bundle(); args.putParcelable(ARG_BACKUP_METADATA, remoteBackupMetadata); 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); mBackupMetadata = getArguments().getParcelable(ARG_BACKUP_METADATA); Preconditions.checkNotNull(mBackupMetadata, "This class requires that a RemoteBackupMetadata instance be provided"); } @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(getString(R.string.import_string_item, mBackupMetadata.getSyncDeviceName())); 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(ImportRemoteBackupWorkerProgressDialogFragment.newInstance(mBackupMetadata, mOverwriteCheckBox.isChecked())); } dismiss(); } }