finish wizard dialog
This commit is contained in:
@@ -52,6 +52,7 @@ public final class CalculatorWizardActivity extends SherlockFragmentActivity {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
setContentView(R.layout.cpp_wizard);
|
||||
|
||||
prevButton = findViewById(R.id.wizard_prev_button);
|
||||
nextButton = findViewById(R.id.wizard_next_button);
|
||||
finishButton = findViewById(R.id.wizard_finish_button);
|
||||
@@ -143,8 +144,12 @@ public final class CalculatorWizardActivity extends SherlockFragmentActivity {
|
||||
}
|
||||
|
||||
void finishFlow() {
|
||||
finishFlow(false);
|
||||
}
|
||||
|
||||
void finishFlow(boolean forceFinish) {
|
||||
if (flow != null && step != null) {
|
||||
Wizard.saveWizardFinished(flow, step);
|
||||
Wizard.saveWizardFinished(flow, step, forceFinish);
|
||||
}
|
||||
finish();
|
||||
}
|
||||
@@ -229,6 +234,11 @@ public final class CalculatorWizardActivity extends SherlockFragmentActivity {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
FinishWizardConfirmationDialog.show(this);
|
||||
}
|
||||
|
||||
WizardStep getStep() {
|
||||
return step;
|
||||
}
|
||||
|
@@ -0,0 +1,37 @@
|
||||
package org.solovyev.android.calculator.wizard;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.DialogFragment;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import org.solovyev.android.sherlock.AndroidSherlockUtils;
|
||||
|
||||
public class FinishWizardConfirmationDialog extends DialogFragment {
|
||||
|
||||
@Override
|
||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||
final AlertDialog.Builder b = new AlertDialog.Builder(getActivity());
|
||||
b.setMessage("Do you really want to finish wizard?");
|
||||
b.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialogInterface, int i) {
|
||||
((CalculatorWizardActivity) getActivity()).finishFlow(true);
|
||||
}
|
||||
});
|
||||
b.setNegativeButton("No", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialogInterface, int i) {
|
||||
dismiss();
|
||||
}
|
||||
});
|
||||
return b.create();
|
||||
}
|
||||
|
||||
public static void show(@Nonnull CalculatorWizardActivity activity){
|
||||
AndroidSherlockUtils.showDialog(new FinishWizardConfirmationDialog(), FinishWizardConfirmationDialog.class.getSimpleName(), activity.getSupportFragmentManager());
|
||||
}
|
||||
}
|
@@ -60,11 +60,11 @@ public final class Wizard {
|
||||
return preferences.getString(makeFlowStepPreferenceKey(name), null);
|
||||
}
|
||||
|
||||
static void saveWizardFinished(@Nonnull WizardFlow flow, @Nonnull WizardStep step) {
|
||||
static void saveWizardFinished(@Nonnull WizardFlow flow, @Nonnull WizardStep step, boolean forceFinish) {
|
||||
final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(CalculatorApplication.getInstance());
|
||||
final SharedPreferences.Editor editor = preferences.edit();
|
||||
|
||||
editor.putBoolean(makeFlowFinishedPreferenceKey(flow), flow.getNextStep(step) == null);
|
||||
editor.putBoolean(makeFlowFinishedPreferenceKey(flow), forceFinish || flow.getNextStep(step) == null);
|
||||
|
||||
editor.commit();
|
||||
}
|
||||
|
Reference in New Issue
Block a user