UI preparations for yubikey reset
This commit is contained in:
parent
4f2e02d606
commit
930db9061e
|
@ -113,7 +113,7 @@ public class CreateKeyActivity extends BaseNfcActivity {
|
||||||
byte[] nfcAid = intent.getByteArrayExtra(EXTRA_NFC_AID);
|
byte[] nfcAid = intent.getByteArrayExtra(EXTRA_NFC_AID);
|
||||||
|
|
||||||
if (containsKeys(nfcFingerprints)) {
|
if (containsKeys(nfcFingerprints)) {
|
||||||
Fragment frag = CreateYubiKeyImportFragment.newInstance(
|
Fragment frag = CreateYubiKeyImportResetFragment.newInstance(
|
||||||
nfcFingerprints, nfcAid, nfcUserId);
|
nfcFingerprints, nfcAid, nfcUserId);
|
||||||
loadFragment(frag, FragAction.START);
|
loadFragment(frag, FragAction.START);
|
||||||
|
|
||||||
|
@ -176,7 +176,7 @@ public class CreateKeyActivity extends BaseNfcActivity {
|
||||||
finish();
|
finish();
|
||||||
|
|
||||||
} catch (PgpKeyNotFoundException e) {
|
} catch (PgpKeyNotFoundException e) {
|
||||||
Fragment frag = CreateYubiKeyImportFragment.newInstance(
|
Fragment frag = CreateYubiKeyImportResetFragment.newInstance(
|
||||||
mScannedFingerprints, mNfcAid, mNfcUserId);
|
mScannedFingerprints, mNfcAid, mNfcUserId);
|
||||||
loadFragment(frag, FragAction.TO_RIGHT);
|
loadFragment(frag, FragAction.TO_RIGHT);
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,8 +28,9 @@ import android.os.Bundle;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.OnClickListener;
|
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.CompoundButton;
|
||||||
|
import android.widget.RadioButton;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import org.spongycastle.util.encoders.Hex;
|
import org.spongycastle.util.encoders.Hex;
|
||||||
|
@ -45,7 +46,7 @@ import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
|
||||||
import org.sufficientlysecure.keychain.util.Preferences;
|
import org.sufficientlysecure.keychain.util.Preferences;
|
||||||
|
|
||||||
|
|
||||||
public class CreateYubiKeyImportFragment
|
public class CreateYubiKeyImportResetFragment
|
||||||
extends QueueingCryptoOperationFragment<ImportKeyringParcel, ImportKeyResult>
|
extends QueueingCryptoOperationFragment<ImportKeyringParcel, ImportKeyResult>
|
||||||
implements NfcListenerFragment {
|
implements NfcListenerFragment {
|
||||||
|
|
||||||
|
@ -62,6 +63,10 @@ public class CreateYubiKeyImportFragment
|
||||||
private ImportKeysListFragment mListFragment;
|
private ImportKeysListFragment mListFragment;
|
||||||
private TextView vSerNo;
|
private TextView vSerNo;
|
||||||
private TextView vUserId;
|
private TextView vUserId;
|
||||||
|
private TextView mNextButton;
|
||||||
|
private RadioButton mRadioImport;
|
||||||
|
private RadioButton mRadioReset;
|
||||||
|
private View mResetWarning;
|
||||||
|
|
||||||
// for CryptoOperationFragment key import
|
// for CryptoOperationFragment key import
|
||||||
private String mKeyserver;
|
private String mKeyserver;
|
||||||
|
@ -69,7 +74,7 @@ public class CreateYubiKeyImportFragment
|
||||||
|
|
||||||
public static Fragment newInstance(byte[] scannedFingerprints, byte[] nfcAid, String userId) {
|
public static Fragment newInstance(byte[] scannedFingerprints, byte[] nfcAid, String userId) {
|
||||||
|
|
||||||
CreateYubiKeyImportFragment frag = new CreateYubiKeyImportFragment();
|
CreateYubiKeyImportResetFragment frag = new CreateYubiKeyImportResetFragment();
|
||||||
|
|
||||||
Bundle args = new Bundle();
|
Bundle args = new Bundle();
|
||||||
args.putByteArray(ARG_FINGERPRINTS, scannedFingerprints);
|
args.putByteArray(ARG_FINGERPRINTS, scannedFingerprints);
|
||||||
|
@ -98,49 +103,78 @@ public class CreateYubiKeyImportFragment
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||||
View view = inflater.inflate(R.layout.create_yubi_key_import_fragment, container, false);
|
View view = inflater.inflate(R.layout.create_yubi_key_import_reset_fragment, container, false);
|
||||||
|
|
||||||
vSerNo = (TextView) view.findViewById(R.id.yubikey_serno);
|
vSerNo = (TextView) view.findViewById(R.id.yubikey_serno);
|
||||||
vUserId = (TextView) view.findViewById(R.id.yubikey_userid);
|
vUserId = (TextView) view.findViewById(R.id.yubikey_userid);
|
||||||
|
mNextButton = (TextView) view.findViewById(R.id.create_key_next_button);
|
||||||
|
mRadioImport = (RadioButton) view.findViewById(R.id.yubikey_decision_import);
|
||||||
|
mRadioReset = (RadioButton) view.findViewById(R.id.yubikey_decision_reset);
|
||||||
|
mResetWarning = view.findViewById(R.id.yubikey_import_reset_warning);
|
||||||
|
|
||||||
{
|
View mBackButton = view.findViewById(R.id.create_key_back_button);
|
||||||
View mBackButton = view.findViewById(R.id.create_key_back_button);
|
mBackButton.setOnClickListener(new View.OnClickListener() {
|
||||||
mBackButton.setOnClickListener(new View.OnClickListener() {
|
@Override
|
||||||
@Override
|
public void onClick(View v) {
|
||||||
public void onClick(View v) {
|
if (getFragmentManager().getBackStackEntryCount() == 0) {
|
||||||
if (getFragmentManager().getBackStackEntryCount() == 0) {
|
getActivity().setResult(Activity.RESULT_CANCELED);
|
||||||
getActivity().setResult(Activity.RESULT_CANCELED);
|
getActivity().finish();
|
||||||
getActivity().finish();
|
} else {
|
||||||
} else {
|
mCreateKeyActivity.loadFragment(null, FragAction.TO_LEFT);
|
||||||
mCreateKeyActivity.loadFragment(null, FragAction.TO_LEFT);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
});
|
||||||
|
|
||||||
View mNextButton = view.findViewById(R.id.create_key_next_button);
|
mNextButton.setOnClickListener(new View.OnClickListener() {
|
||||||
mNextButton.setOnClickListener(new View.OnClickListener() {
|
@Override
|
||||||
@Override
|
public void onClick(View v) {
|
||||||
public void onClick(View v) {
|
if (mRadioReset.isChecked()) {
|
||||||
|
resetCard();
|
||||||
|
} else {
|
||||||
importKey();
|
importKey();
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
}
|
});
|
||||||
|
|
||||||
mListFragment = ImportKeysListFragment.newInstance(null, null,
|
mListFragment = ImportKeysListFragment.newInstance(null, null,
|
||||||
"0x" + mNfcFingerprint, true, null);
|
"0x" + mNfcFingerprint, true, null);
|
||||||
|
|
||||||
view.findViewById(R.id.button_search).setOnClickListener(new OnClickListener() {
|
mRadioImport.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
||||||
refreshSearch();
|
if (isChecked) {
|
||||||
|
mNextButton.setText(R.string.btn_import);
|
||||||
|
mNextButton.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_key_plus_grey600_24dp, 0);
|
||||||
|
mNextButton.setVisibility(View.VISIBLE);
|
||||||
|
mResetWarning.setVisibility(View.GONE);
|
||||||
|
|
||||||
|
getFragmentManager().beginTransaction()
|
||||||
|
.replace(R.id.yubikey_import_fragment, mListFragment, "yubikey_import")
|
||||||
|
.commit();
|
||||||
|
|
||||||
|
getFragmentManager().executePendingTransactions();
|
||||||
|
refreshSearch();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
mRadioReset.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||||
|
@Override
|
||||||
|
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
||||||
|
if (isChecked) {
|
||||||
|
mNextButton.setText(R.string.btn_reset);
|
||||||
|
mNextButton.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_close_grey_24dp, 0);
|
||||||
|
mNextButton.setVisibility(View.VISIBLE);
|
||||||
|
mResetWarning.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
|
getFragmentManager().beginTransaction()
|
||||||
|
.remove(mListFragment)
|
||||||
|
.commit();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
setData();
|
setData();
|
||||||
|
|
||||||
getFragmentManager().beginTransaction()
|
|
||||||
.replace(R.id.yubikey_import_fragment, mListFragment, "yubikey_import")
|
|
||||||
.commit();
|
|
||||||
|
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
@ -195,6 +229,10 @@ public class CreateYubiKeyImportFragment
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void resetCard() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void doNfcInBackground() throws IOException {
|
public void doNfcInBackground() throws IOException {
|
||||||
|
|
||||||
|
@ -212,7 +250,6 @@ public class CreateYubiKeyImportFragment
|
||||||
|
|
||||||
setData();
|
setData();
|
||||||
|
|
||||||
refreshSearch();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
|
@ -1,128 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent">
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:padding="4dp"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:id="@+id/yubikey_status_layout" >
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:layout_margin="14dp"
|
|
||||||
android:layout_width="32dp"
|
|
||||||
android:layout_height="32dp"
|
|
||||||
android:scaleType="centerCrop"
|
|
||||||
android:src="@drawable/yubi_icon"/>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:orientation="vertical">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/yubikey_serno"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:text="Yubikey #"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/yubikey_userid"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:text="User ID"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/yubikey_status"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:text="Unknown key, hit next to import"
|
|
||||||
/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<ImageButton
|
|
||||||
android:id="@+id/button_search"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:padding="8dp"
|
|
||||||
android:src="@drawable/ic_search_grey_24dp"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:background="?android:selectableItemBackground" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<View
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_marginTop="4dp"
|
|
||||||
android:layout_height="1dip"
|
|
||||||
android:layout_below="@id/yubikey_status_layout"
|
|
||||||
android:background="?android:attr/listDivider" />
|
|
||||||
|
|
||||||
<FrameLayout
|
|
||||||
android:id="@+id/yubikey_import_fragment"
|
|
||||||
android:layout_marginTop="8dp"
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_below="@id/yubikey_status_layout"
|
|
||||||
android:layout_above="@id/create_key_buttons"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_alignParentBottom="true"
|
|
||||||
android:layout_alignParentLeft="true"
|
|
||||||
android:layout_alignParentStart="true"
|
|
||||||
android:background="?attr/colorButtonRow"
|
|
||||||
android:id="@+id/create_key_buttons">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/create_key_back_button"
|
|
||||||
android:paddingLeft="16dp"
|
|
||||||
android:paddingRight="16dp"
|
|
||||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:text="@string/btn_back"
|
|
||||||
android:textAllCaps="true"
|
|
||||||
android:minHeight="?android:attr/listPreferredItemHeight"
|
|
||||||
android:drawableLeft="@drawable/ic_chevron_left_grey_24dp"
|
|
||||||
android:drawablePadding="8dp"
|
|
||||||
android:gravity="left|center_vertical"
|
|
||||||
android:clickable="true"
|
|
||||||
style="?android:attr/borderlessButtonStyle" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/create_key_next_button"
|
|
||||||
android:paddingLeft="16dp"
|
|
||||||
android:paddingRight="16dp"
|
|
||||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:text="@string/btn_import"
|
|
||||||
android:textAllCaps="true"
|
|
||||||
android:minHeight="?android:attr/listPreferredItemHeight"
|
|
||||||
android:drawableRight="@drawable/ic_key_plus_grey600_24dp"
|
|
||||||
android:drawablePadding="8dp"
|
|
||||||
android:gravity="right|center_vertical"
|
|
||||||
android:clickable="true"
|
|
||||||
style="?android:attr/borderlessButtonStyle" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
</RelativeLayout>
|
|
|
@ -0,0 +1,174 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
|
||||||
|
<ScrollView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_above="@+id/create_key_buttons"
|
||||||
|
android:fillViewport="true">
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/yubikey_status_layout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:padding="4dp">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="32dp"
|
||||||
|
android:layout_height="32dp"
|
||||||
|
android:layout_margin="14dp"
|
||||||
|
android:scaleType="centerCrop"
|
||||||
|
android:src="@drawable/yubi_icon" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/yubikey_serno"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:text="Yubikey #" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/yubikey_userid"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:text="User ID" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/yubikey_decision"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_below="@id/yubikey_status_layout"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:paddingLeft="16dp"
|
||||||
|
android:paddingRight="16dp">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginLeft="8dp"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:text="@string/yubikey_reset_or_import"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||||
|
|
||||||
|
<RadioGroup
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<RadioButton
|
||||||
|
android:id="@+id/yubikey_decision_import"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
|
android:text="@string/yubikey_import_radio" />
|
||||||
|
|
||||||
|
<RadioButton
|
||||||
|
android:id="@+id/yubikey_decision_reset"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="16dp"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
|
android:text="@string/yubikey_reset_radio" />
|
||||||
|
</RadioGroup>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="1dp"
|
||||||
|
android:layout_below="@id/yubikey_decision"
|
||||||
|
android:layout_marginTop="4dp"
|
||||||
|
android:background="?android:attr/listDivider" />
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:id="@+id/yubikey_import_fragment"
|
||||||
|
android:layout_width="fill_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_below="@id/yubikey_decision"
|
||||||
|
android:layout_marginTop="8dp">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/yubikey_import_reset_warning"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:layout_margin="24dp"
|
||||||
|
android:text="@string/yubikey_reset_warning"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
|
android:textColor="@color/android_red_dark"
|
||||||
|
android:visibility="gone" />
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
</ScrollView>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/create_key_buttons"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentBottom="true"
|
||||||
|
android:layout_alignParentLeft="true"
|
||||||
|
android:layout_alignParentStart="true"
|
||||||
|
android:background="?attr/colorButtonRow"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/create_key_back_button"
|
||||||
|
style="?android:attr/borderlessButtonStyle"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:clickable="true"
|
||||||
|
android:drawableLeft="@drawable/ic_chevron_left_grey_24dp"
|
||||||
|
android:drawablePadding="8dp"
|
||||||
|
android:gravity="left|center_vertical"
|
||||||
|
android:minHeight="?android:attr/listPreferredItemHeight"
|
||||||
|
android:paddingLeft="16dp"
|
||||||
|
android:paddingRight="16dp"
|
||||||
|
android:text="@string/btn_back"
|
||||||
|
android:textAllCaps="true"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/create_key_next_button"
|
||||||
|
style="?android:attr/borderlessButtonStyle"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:clickable="true"
|
||||||
|
android:drawablePadding="8dp"
|
||||||
|
android:drawableRight="@drawable/ic_key_plus_grey600_24dp"
|
||||||
|
android:gravity="right|center_vertical"
|
||||||
|
android:minHeight="?android:attr/listPreferredItemHeight"
|
||||||
|
android:paddingLeft="16dp"
|
||||||
|
android:paddingRight="16dp"
|
||||||
|
android:text="@string/btn_import"
|
||||||
|
android:textAllCaps="true"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
|
android:visibility="invisible" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</RelativeLayout>
|
|
@ -316,7 +316,7 @@
|
||||||
<string name="specify_backup_dest_secret_single">"A full backup of your key will be made, please specify a destination file.\nWARNING: File will be overwritten if it exists!"</string>
|
<string name="specify_backup_dest_secret_single">"A full backup of your key will be made, please specify a destination file.\nWARNING: File will be overwritten if it exists!"</string>
|
||||||
<string name="specify_backup_dest_secret">"A full backup of all keys including yours will be made, please specify a destination file.\nWARNING: File will be overwritten if it exists!"</string>
|
<string name="specify_backup_dest_secret">"A full backup of all keys including yours will be made, please specify a destination file.\nWARNING: File will be overwritten if it exists!"</string>
|
||||||
<string name="key_deletion_confirmation_multi">"Do you really want to delete all selected keys?"</string>
|
<string name="key_deletion_confirmation_multi">"Do you really want to delete all selected keys?"</string>
|
||||||
<string name="secret_key_deletion_confirmation">"After deletion you will not be able to read messages encrypted with this key and lose all key confirmations done with it!"</string>
|
<string name="secret_key_deletion_confirmation">"After deletion you will not be able to decrypt messages/files encrypted with this key and lose all key confirmations done with it!"</string>
|
||||||
<string name="public_key_deletetion_confirmation">"Delete key '%s'?"</string>
|
<string name="public_key_deletetion_confirmation">"Delete key '%s'?"</string>
|
||||||
<string name="also_export_secret_keys">"Also export secret keys"</string>
|
<string name="also_export_secret_keys">"Also export secret keys"</string>
|
||||||
<string name="reinstall_openkeychain">"You encountered a known bug with Android. Please reinstall OpenKeychain if you want to link your contacts with keys."</string>
|
<string name="reinstall_openkeychain">"You encountered a known bug with Android. Please reinstall OpenKeychain if you want to link your contacts with keys."</string>
|
||||||
|
@ -1515,7 +1515,12 @@
|
||||||
<string name="yubikey_status_unbound">"YubiKey matches, can be bound to key"</string>
|
<string name="yubikey_status_unbound">"YubiKey matches, can be bound to key"</string>
|
||||||
<string name="yubikey_status_partly">"YubiKey matches, partly bound to key"</string>
|
<string name="yubikey_status_partly">"YubiKey matches, partly bound to key"</string>
|
||||||
<string name="yubikey_create">"Hold YubiKey against the back of your device."</string>
|
<string name="yubikey_create">"Hold YubiKey against the back of your device."</string>
|
||||||
|
<string name="yubikey_reset_or_import">"This YubiKey already contains a key. You can import the key using the cloud or reset the YubiKey."</string>
|
||||||
<string name="btn_import">"Import"</string>
|
<string name="btn_import">"Import"</string>
|
||||||
|
<string name="btn_reset">"Reset"</string>
|
||||||
|
<string name="yubikey_import_radio">"Import key"</string>
|
||||||
|
<string name="yubikey_reset_radio">"Reset YubiKey"</string>
|
||||||
|
<string name="yubikey_reset_warning">"Resetting the YubiKey completely destroys the keys on it. Afterwards, you will not be able to decrypt messages/files encrypted with this key!"</string>
|
||||||
<string name="snack_yubi_other">Different key stored on YubiKey!</string>
|
<string name="snack_yubi_other">Different key stored on YubiKey!</string>
|
||||||
<string name="error_nfc">"NFC Error: %s"</string>
|
<string name="error_nfc">"NFC Error: %s"</string>
|
||||||
<plurals name="error_pin">
|
<plurals name="error_pin">
|
||||||
|
|
Loading…
Reference in a new issue