Fix cancel/skip in create key wizard

This commit is contained in:
Dominik Schürmann 2015-05-04 20:47:19 +02:00
parent f3090f2939
commit 2583f77f07
3 changed files with 35 additions and 52 deletions

View File

@ -99,7 +99,7 @@ public class CreateKeyActivity extends BaseNfcActivity {
if (mFirstTime) { if (mFirstTime) {
setTitle(R.string.app_name); setTitle(R.string.app_name);
setActionBarIcon(R.drawable.ic_launcher); mToolbar.setNavigationIcon(null);
mToolbar.setNavigationOnClickListener(null); mToolbar.setNavigationOnClickListener(null);
} else { } else {
setTitle(R.string.title_manage_my_keys); setTitle(R.string.title_manage_my_keys);

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2014 Dominik Schürmann <dominik@dominikschuermann.de> * Copyright (C) 2014-2015 Dominik Schürmann <dominik@dominikschuermann.de>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -18,37 +18,20 @@
package org.sufficientlysecure.keychain.ui; package org.sufficientlysecure.keychain.ui;
import android.app.Activity; import android.app.Activity;
import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.Messenger;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.KeyEvent;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.TextView; import android.widget.TextView;
import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.ui.CreateKeyActivity.FragAction; import org.sufficientlysecure.keychain.ui.CreateKeyActivity.FragAction;
import org.sufficientlysecure.keychain.ui.dialog.AddEmailDialogFragment;
import org.sufficientlysecure.keychain.ui.dialog.SetPassphraseDialogFragment;
import org.sufficientlysecure.keychain.ui.widget.EmailEditText;
import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.util.Log;
import org.sufficientlysecure.keychain.util.Preferences; import org.sufficientlysecure.keychain.util.Preferences;
import java.util.ArrayList;
import java.util.List;
public class CreateKeyStartFragment extends Fragment { public class CreateKeyStartFragment extends Fragment {
CreateKeyActivity mCreateKeyActivity; CreateKeyActivity mCreateKeyActivity;
@ -56,8 +39,8 @@ public class CreateKeyStartFragment extends Fragment {
View mCreateKey; View mCreateKey;
View mImportKey; View mImportKey;
View mYubiKey; View mYubiKey;
TextView mCancel; TextView mSkipOrCancel;
public static final int REQUEST_CODE_CREATE_OR_IMPORT_KEY = 0x00007012; public static final int REQUEST_CODE_IMPORT_KEY = 0x00007012;
/** /**
* Creates new instance of this fragment * Creates new instance of this fragment
@ -79,12 +62,12 @@ public class CreateKeyStartFragment extends Fragment {
mCreateKey = view.findViewById(R.id.create_key_create_key_button); mCreateKey = view.findViewById(R.id.create_key_create_key_button);
mImportKey = view.findViewById(R.id.create_key_import_button); mImportKey = view.findViewById(R.id.create_key_import_button);
mYubiKey = view.findViewById(R.id.create_key_yubikey_button); mYubiKey = view.findViewById(R.id.create_key_yubikey_button);
mCancel = (TextView) view.findViewById(R.id.create_key_cancel); mSkipOrCancel = (TextView) view.findViewById(R.id.create_key_cancel);
if (mCreateKeyActivity.mFirstTime) { if (mCreateKeyActivity.mFirstTime) {
mCancel.setText(R.string.first_time_skip); mSkipOrCancel.setText(R.string.first_time_skip);
} else { } else {
mCancel.setText(R.string.btn_do_not_save); mSkipOrCancel.setText(R.string.btn_do_not_save);
} }
mCreateKey.setOnClickListener(new View.OnClickListener() { mCreateKey.setOnClickListener(new View.OnClickListener() {
@ -98,7 +81,7 @@ public class CreateKeyStartFragment extends Fragment {
mYubiKey.setOnClickListener(new View.OnClickListener() { mYubiKey.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
CreateKeyYubiWaitFragment frag = new CreateKeyYubiWaitFragment(); CreateKeyYubiKeyWaitFragment frag = new CreateKeyYubiKeyWaitFragment();
mCreateKeyActivity.loadFragment(frag, FragAction.TO_RIGHT); mCreateKeyActivity.loadFragment(frag, FragAction.TO_RIGHT);
} }
}); });
@ -108,48 +91,48 @@ public class CreateKeyStartFragment extends Fragment {
public void onClick(View v) { public void onClick(View v) {
Intent intent = new Intent(mCreateKeyActivity, ImportKeysActivity.class); Intent intent = new Intent(mCreateKeyActivity, ImportKeysActivity.class);
intent.setAction(ImportKeysActivity.ACTION_IMPORT_KEY_FROM_FILE_AND_RETURN); intent.setAction(ImportKeysActivity.ACTION_IMPORT_KEY_FROM_FILE_AND_RETURN);
startActivityForResult(intent, REQUEST_CODE_CREATE_OR_IMPORT_KEY); startActivityForResult(intent, REQUEST_CODE_IMPORT_KEY);
} }
}); });
mCancel.setOnClickListener(new View.OnClickListener() { mSkipOrCancel.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
finishSetup(null); if (mCreateKeyActivity.mFirstTime) {
Preferences prefs = Preferences.getPreferences(mCreateKeyActivity);
prefs.setFirstTime(false);
Intent intent = new Intent(mCreateKeyActivity, MainActivity.class);
startActivity(intent);
mCreateKeyActivity.finish();
} else {
// just finish activity and return data
mCreateKeyActivity.setResult(Activity.RESULT_CANCELED);
mCreateKeyActivity.finish();
}
} }
}); });
return view; return view;
} }
private void finishSetup(Intent srcData) {
if (mCreateKeyActivity.mFirstTime) {
Preferences prefs = Preferences.getPreferences(mCreateKeyActivity);
prefs.setFirstTime(false);
}
Intent intent = new Intent(mCreateKeyActivity, MainActivity.class);
// give intent through to display notify
if (srcData != null) {
intent.putExtras(srcData);
}
startActivity(intent);
mCreateKeyActivity.finish();
}
// workaround for https://code.google.com/p/android/issues/detail?id=61394
// @Override
// public boolean onKeyDown(int keyCode, KeyEvent event) {
// return keyCode == KeyEvent.KEYCODE_MENU || super.onKeyDown(keyCode, event);
// }
@Override @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) { public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_CREATE_OR_IMPORT_KEY) { if (requestCode == REQUEST_CODE_IMPORT_KEY) {
if (resultCode == Activity.RESULT_OK) { if (resultCode == Activity.RESULT_OK) {
finishSetup(data); if (mCreateKeyActivity.mFirstTime) {
Preferences prefs = Preferences.getPreferences(mCreateKeyActivity);
prefs.setFirstTime(false);
Intent intent = new Intent(mCreateKeyActivity, MainActivity.class);
intent.putExtras(data);
startActivity(intent);
mCreateKeyActivity.finish();
} else {
// just finish activity and return data
mCreateKeyActivity.setResult(Activity.RESULT_OK, data);
mCreateKeyActivity.finish();
}
} }
} else { } else {
Log.e(Constants.TAG, "No valid request code!"); Log.e(Constants.TAG, "No valid request code!");

View File

@ -28,7 +28,7 @@ import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.ui.CreateKeyActivity.FragAction; import org.sufficientlysecure.keychain.ui.CreateKeyActivity.FragAction;
public class CreateKeyYubiWaitFragment extends Fragment { public class CreateKeyYubiKeyWaitFragment extends Fragment {
CreateKeyActivity mCreateKeyActivity; CreateKeyActivity mCreateKeyActivity;
View mBackButton; View mBackButton;