aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2015-03-03 22:44:32 +0100
committerDominik Schürmann <dominik@dominikschuermann.de>2015-03-03 22:44:32 +0100
commit7b0e067f63f6f463cd7775347a7bf1c6e3c232c6 (patch)
treefdd3eb31a53c473044970fe055283f54024ae234
parent188559bbcd5d4a9c5aac00ab6e20deb4e52988d3 (diff)
downloadopen-keychain-7b0e067f63f6f463cd7775347a7bf1c6e3c232c6.tar.gz
open-keychain-7b0e067f63f6f463cd7775347a7bf1c6e3c232c6.tar.bz2
open-keychain-7b0e067f63f6f463cd7775347a7bf1c6e3c232c6.zip
Fix expiry dialog, reorder layouts
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddSubkeyDialogFragment.java12
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditSubkeyExpiryDialogFragment.java78
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/SetPassphraseDialogFragment.java1
-rw-r--r--OpenKeychain/src/main/res/layout/edit_subkey_expiry_dialog.xml60
-rw-r--r--OpenKeychain/src/main/res/values/strings.xml5
5 files changed, 93 insertions, 63 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddSubkeyDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddSubkeyDialogFragment.java
index d5376cbdc..0b1d39fc1 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddSubkeyDialogFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddSubkeyDialogFragment.java
@@ -137,12 +137,10 @@ public class AddSubkeyDialogFragment extends DialogFragment {
}
});
- if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) {
- // date picker works based on default time zone
- Calendar minDateCal = Calendar.getInstance(TimeZone.getDefault());
- minDateCal.add(Calendar.DAY_OF_YEAR, 1); // at least one day after creation (today)
- mExpiryDatePicker.setMinDate(minDateCal.getTime().getTime());
- }
+ // date picker works based on default time zone
+ Calendar minDateCal = Calendar.getInstance(TimeZone.getDefault());
+ minDateCal.add(Calendar.DAY_OF_YEAR, 1); // at least one day after creation (today)
+ mExpiryDatePicker.setMinDate(minDateCal.getTime().getTime());
{
ArrayList<Choice<Algorithm>> choices = new ArrayList<>();
@@ -283,7 +281,7 @@ public class AddSubkeyDialogFragment extends DialogFragment {
// For EC keys, add a curve
if (algorithm == Algorithm.ECDH || algorithm == Algorithm.ECDSA) {
curve = ((Choice<Curve>) mCurveSpinner.getSelectedItem()).getId();
- // Otherwise, get a keysize
+ // Otherwise, get a keysize
} else {
keySize = getProperKeyLength(algorithm, getSelectedKeyLength());
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditSubkeyExpiryDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditSubkeyExpiryDialogFragment.java
index fc618c9eb..37e05a61d 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditSubkeyExpiryDialogFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/EditSubkeyExpiryDialogFragment.java
@@ -25,11 +25,14 @@ import android.os.Message;
import android.os.Messenger;
import android.os.RemoteException;
import android.support.v4.app.DialogFragment;
+import android.text.format.DateFormat;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.DatePicker;
+import android.widget.LinearLayout;
+import android.widget.TextView;
import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.R;
@@ -97,61 +100,64 @@ public class EditSubkeyExpiryDialogFragment extends DialogFragment {
final CheckBox noExpiry = (CheckBox) view.findViewById(R.id.edit_subkey_expiry_no_expiry);
final DatePicker datePicker = (DatePicker) view.findViewById(R.id.edit_subkey_expiry_date_picker);
+ final TextView currentExpiry = (TextView) view.findViewById(R.id.edit_subkey_expiry_current_expiry);
+ final LinearLayout expiryLayout = (LinearLayout) view.findViewById(R.id.edit_subkey_expiry_layout);
noExpiry.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
- datePicker.setVisibility(View.GONE);
+ expiryLayout.setVisibility(View.GONE);
} else {
- datePicker.setVisibility(View.VISIBLE);
+ expiryLayout.setVisibility(View.VISIBLE);
}
}
});
- // init date picker with default selected date
if (expiry == 0L) {
noExpiry.setChecked(true);
- datePicker.setVisibility(View.GONE);
-
- Calendar todayCal = Calendar.getInstance(TimeZone.getDefault());
- if (creationCal.after(todayCal)) {
- // Note: This is just for the rare cases where creation is _after_ today
-
- // set it to creation date +1 day (don't set it to creationCal, it would break crash
- // datePicker.setMinDate() execution with IllegalArgumentException
- Calendar creationCalPlusOne = (Calendar) creationCal.clone();
- creationCalPlusOne.add(Calendar.DAY_OF_YEAR, 1);
- datePicker.init(
- creationCalPlusOne.get(Calendar.YEAR),
- creationCalPlusOne.get(Calendar.MONTH),
- creationCalPlusOne.get(Calendar.DAY_OF_MONTH),
- null
- );
-
- } else {
- // normally, just init with today
- datePicker.init(
- todayCal.get(Calendar.YEAR),
- todayCal.get(Calendar.MONTH),
- todayCal.get(Calendar.DAY_OF_MONTH),
- null
- );
- }
+ expiryLayout.setVisibility(View.GONE);
+
+ currentExpiry.setText(R.string.btn_no_date);
} else {
noExpiry.setChecked(false);
- datePicker.setVisibility(View.VISIBLE);
+ expiryLayout.setVisibility(View.VISIBLE);
+
+ // convert from UTC to time zone of device
+ Calendar expiryCalTimeZone = (Calendar) expiryCal.clone();
+ expiryCalTimeZone.setTimeZone(TimeZone.getDefault());
+ currentExpiry.setText(DateFormat.getDateFormat(
+ getActivity()).format(expiryCalTimeZone.getTime()));
+ }
+
+ // date picker works based on default time zone
+ Calendar todayCal = Calendar.getInstance(TimeZone.getDefault());
+ if (creationCal.after(todayCal)) {
+ // NOTE: This is just for the rare cases where creation is _after_ today
+ // Min Date: Creation date + 1 day
- // set date picker to current expiry
+ Calendar creationCalPlusOne = (Calendar) creationCal.clone();
+ creationCalPlusOne.add(Calendar.DAY_OF_YEAR, 1);
+ datePicker.setMinDate(creationCalPlusOne.getTime().getTime());
datePicker.init(
- expiryCal.get(Calendar.YEAR),
- expiryCal.get(Calendar.MONTH),
- expiryCal.get(Calendar.DAY_OF_MONTH),
+ creationCalPlusOne.get(Calendar.YEAR),
+ creationCalPlusOne.get(Calendar.MONTH),
+ creationCalPlusOne.get(Calendar.DAY_OF_MONTH),
null
);
- }
+ } else {
+ // Min Date: today + 1 day
- datePicker.setMinDate(creationCal.getTime().getTime());
+ // at least one day after creation (today)
+ todayCal.add(Calendar.DAY_OF_YEAR, 1);
+ datePicker.setMinDate(todayCal.getTime().getTime());
+ datePicker.init(
+ todayCal.get(Calendar.YEAR),
+ todayCal.get(Calendar.MONTH),
+ todayCal.get(Calendar.DAY_OF_MONTH),
+ null
+ );
+ }
alert.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/SetPassphraseDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/SetPassphraseDialogFragment.java
index a05719072..a3ffe250b 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/SetPassphraseDialogFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/SetPassphraseDialogFragment.java
@@ -92,7 +92,6 @@ public class SetPassphraseDialogFragment extends DialogFragment implements OnEdi
CustomAlertDialogBuilder alert = new CustomAlertDialogBuilder(activity);
alert.setTitle(title);
- alert.setMessage(R.string.enter_passphrase_twice);
LayoutInflater inflater = activity.getLayoutInflater();
View view = inflater.inflate(R.layout.passphrase_repeat_dialog, null);
diff --git a/OpenKeychain/src/main/res/layout/edit_subkey_expiry_dialog.xml b/OpenKeychain/src/main/res/layout/edit_subkey_expiry_dialog.xml
index 0931eb6a7..38dc03627 100644
--- a/OpenKeychain/src/main/res/layout/edit_subkey_expiry_dialog.xml
+++ b/OpenKeychain/src/main/res/layout/edit_subkey_expiry_dialog.xml
@@ -16,23 +16,49 @@
android:layout_height="wrap_content"
android:text="@string/btn_no_date" />
- <!--
- Use Spinner style DatePicker, not the full calendar view
- Android < 5:
- android:spinnersShown="true"
- android:calendarViewShown="false"
- Android >= 5:
+ <LinearLayout
+ android:id="@+id/edit_subkey_expiry_layout"
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <TextView
+ style="@style/SectionHeader"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/section_current_expiry" />
+
+ <TextView
+ android:id="@+id/edit_subkey_expiry_current_expiry"
+ android:textAppearance="@style/TextAppearance.AppCompat.Medium"
+ android:padding="8dp"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+ <TextView
+ style="@style/SectionHeader"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/section_new_expiry" />
+
+ <!--
+ Use Spinner style DatePicker, not the full calendar view
+ Android < 5:
+ android:spinnersShown="true"
+ android:calendarViewShown="false"
+ Android >= 5:
+ android:datePickerMode="spinner"
+ -->
+ <!-- Hide calendarView in tablets because of the unix warparound bug. -->
+ <DatePicker
+ android:id="@+id/edit_subkey_expiry_date_picker"
+ android:layout_gravity="center_horizontal"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ tools:ignore="UnusedAttribute"
android:datePickerMode="spinner"
- -->
- <!-- Hide calendarView in tablets because of the unix warparound bug. -->
- <DatePicker
- android:id="@+id/edit_subkey_expiry_date_picker"
- android:layout_gravity="center_horizontal"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- tools:ignore="UnusedAttribute"
- android:datePickerMode="spinner"
- android:spinnersShown="true"
- android:calendarViewShown="false" />
+ android:spinnersShown="true"
+ android:calendarViewShown="false" />
+ </LinearLayout>
</LinearLayout> \ No newline at end of file
diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml
index ca6ce1f7d..29b955bb4 100644
--- a/OpenKeychain/src/main/res/values/strings.xml
+++ b/OpenKeychain/src/main/res/values/strings.xml
@@ -67,6 +67,8 @@
<string name="section_certs">"Certificates"</string>
<string name="section_encrypt">"Encrypt"</string>
<string name="section_decrypt">"Decrypt"</string>
+ <string name="section_current_expiry">"Current expiry"</string>
+ <string name="section_new_expiry">"New expiry"</string>
<!-- button -->
<string name="btn_decrypt_verify_file">"Decrypt, verify, and save file"</string>
@@ -226,7 +228,6 @@
<string name="no_file_selected">"Select a file first."</string>
<string name="encrypt_sign_successful">"Successfully signed and/or encrypted."</string>
<string name="encrypt_sign_clipboard_successful">"Successfully signed and/or encrypted to clipboard."</string>
- <string name="enter_passphrase_twice">"Enter the passphrase twice."</string>
<string name="select_encryption_key">"Select at least one encryption key."</string>
<string name="select_encryption_or_signature_key">"Select at least one encryption key or a signature key."</string>
<string name="specify_file_to_encrypt_to">"Please specify which file to encrypt to.\nWARNING: File will be overwritten if it exists."</string>
@@ -1027,7 +1028,7 @@
<string name="msg_vl_clear_meta_file">"Filename: %s"</string>
<string name="msg_vl_clear_meta_mime">"MIME type: %s"</string>
<string name="msg_vl_clear_meta_time">"Modification time: %s"</string>
- <string name="msg_vl_clear_meta_size">"Filesize: %s"</string>
+ <string name="msg_vl_clear_meta_size">"File size: %s"</string>
<string name="msg_vl_clear_signature_check">"Verifying signature data"</string>
<string name="msg_vl_error_integrity_check">"Integrity check error!"</string>
<string name="msg_vl_ok">"OK"</string>