mirror of
https://github.com/moparisthebest/open-keychain
synced 2024-11-27 11:12:15 -05:00
Fix expiry dialog, reorder layouts
This commit is contained in:
parent
188559bbcd
commit
7b0e067f63
@ -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());
|
||||
}
|
||||
|
||||
{
|
||||
ArrayList<Choice<Algorithm>> choices = new ArrayList<>();
|
||||
|
@ -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,40 +100,57 @@ 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);
|
||||
expiryLayout.setVisibility(View.GONE);
|
||||
|
||||
currentExpiry.setText(R.string.btn_no_date);
|
||||
} else {
|
||||
noExpiry.setChecked(false);
|
||||
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
|
||||
// NOTE: This is just for the rare cases where creation is _after_ today
|
||||
// Min Date: Creation date + 1 day
|
||||
|
||||
// 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.setMinDate(creationCalPlusOne.getTime().getTime());
|
||||
datePicker.init(
|
||||
creationCalPlusOne.get(Calendar.YEAR),
|
||||
creationCalPlusOne.get(Calendar.MONTH),
|
||||
creationCalPlusOne.get(Calendar.DAY_OF_MONTH),
|
||||
null
|
||||
);
|
||||
|
||||
} else {
|
||||
// normally, just init with today
|
||||
// Min Date: today + 1 day
|
||||
|
||||
// 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),
|
||||
@ -138,20 +158,6 @@ public class EditSubkeyExpiryDialogFragment extends DialogFragment {
|
||||
null
|
||||
);
|
||||
}
|
||||
} else {
|
||||
noExpiry.setChecked(false);
|
||||
datePicker.setVisibility(View.VISIBLE);
|
||||
|
||||
// set date picker to current expiry
|
||||
datePicker.init(
|
||||
expiryCal.get(Calendar.YEAR),
|
||||
expiryCal.get(Calendar.MONTH),
|
||||
expiryCal.get(Calendar.DAY_OF_MONTH),
|
||||
null
|
||||
);
|
||||
}
|
||||
|
||||
datePicker.setMinDate(creationCal.getTime().getTime());
|
||||
|
||||
alert.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
|
@ -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);
|
||||
|
@ -16,6 +16,31 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/btn_no_date" />
|
||||
|
||||
<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:
|
||||
@ -34,5 +59,6 @@
|
||||
android:datePickerMode="spinner"
|
||||
android:spinnersShown="true"
|
||||
android:calendarViewShown="false" />
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
@ -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>
|
||||
|
Loading…
Reference in New Issue
Block a user