Added options to toggle send/image dialog

pull/177/head
M66B 5 years ago
parent ea8a391269
commit 2c55bed7e4

@ -632,7 +632,7 @@ public class FragmentCompose extends FragmentBase {
onActionDiscard();
break;
case R.id.action_send:
onActionCheck(false);
onActionCheck();
break;
default:
onAction(action);
@ -1084,7 +1084,6 @@ public class FragmentCompose extends FragmentBase {
menu.findItem(R.id.menu_clear).setVisible(state == State.LOADED);
menu.findItem(R.id.menu_contact_group).setVisible(state == State.LOADED);
menu.findItem(R.id.menu_answer).setVisible(state == State.LOADED);
menu.findItem(R.id.menu_send).setVisible(state == State.LOADED);
menu.findItem(R.id.menu_encrypt).setEnabled(!busy);
menu.findItem(R.id.menu_zoom).setEnabled(!busy);
@ -1093,7 +1092,6 @@ public class FragmentCompose extends FragmentBase {
menu.findItem(R.id.menu_clear).setEnabled(!busy);
menu.findItem(R.id.menu_contact_group).setEnabled(!busy && hasPermission(Manifest.permission.READ_CONTACTS));
menu.findItem(R.id.menu_answer).setEnabled(!busy);
menu.findItem(R.id.menu_send).setEnabled(!busy);
int colorEncrypt = Helper.resolveColor(getContext(), R.attr.colorEncrypt);
ImageButton ib = (ImageButton) menu.findItem(R.id.menu_encrypt).getActionView();
@ -1109,6 +1107,12 @@ public class FragmentCompose extends FragmentBase {
ib.setImageTintList(null);
}
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
boolean send_dialog = prefs.getBoolean("send_dialog", true);
boolean image_dialog = prefs.getBoolean("image_dialog", true);
menu.findItem(R.id.menu_send_dialog).setChecked(send_dialog);
menu.findItem(R.id.menu_image_dialog).setChecked(image_dialog);
menu.findItem(R.id.menu_media).setChecked(media);
menu.findItem(R.id.menu_compact).setChecked(compact);
@ -1131,8 +1135,14 @@ public class FragmentCompose extends FragmentBase {
case R.id.menu_zoom:
onMenuZoom();
return true;
case R.id.menu_send_dialog:
onMenuSendDialog();
return true;
case R.id.menu_image_dialog:
onMenuImageDialog();
return true;
case R.id.menu_media:
onMenuMediabar();
onMenuMediaBar();
return true;
case R.id.menu_compact:
onMenuCompact();
@ -1149,9 +1159,6 @@ public class FragmentCompose extends FragmentBase {
case R.id.menu_answer:
onMenuAnswer();
return true;
case R.id.menu_send:
onActionCheck(true);
return true;
default:
return super.onOptionsItemSelected(item);
}
@ -1234,7 +1241,19 @@ public class FragmentCompose extends FragmentBase {
}
}
private void onMenuMediabar() {
private void onMenuSendDialog() {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
boolean send_dialog = prefs.getBoolean("send_dialog", true);
prefs.edit().putBoolean("send_dialog", !send_dialog).apply();
}
private void onMenuImageDialog() {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
boolean image_dialog = prefs.getBoolean("image_dialog", true);
prefs.edit().putBoolean("image_dialog", !image_dialog).apply();
}
private void onMenuMediaBar() {
media = !media;
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
prefs.edit().putBoolean("compose_media", media).apply();
@ -1351,12 +1370,17 @@ public class FragmentCompose extends FragmentBase {
}
private void onActionImage(boolean photo) {
Bundle args = new Bundle();
args.putBoolean("photo", photo);
FragmentDialogAddImage fragment = new FragmentDialogAddImage();
fragment.setArguments(args);
fragment.setTargetFragment(this, REQUEST_IMAGE);
fragment.show(getParentFragmentManager(), "compose:image");
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
boolean image_dialog = prefs.getBoolean("image_dialog", true);
if (image_dialog) {
Bundle args = new Bundle();
args.putBoolean("photo", photo);
FragmentDialogAddImage fragment = new FragmentDialogAddImage();
fragment.setArguments(args);
fragment.setTargetFragment(this, REQUEST_IMAGE);
fragment.show(getParentFragmentManager(), "compose:image");
} else
onAddImage(photo);
}
private void onActionAttachment() {
@ -1416,12 +1440,12 @@ public class FragmentCompose extends FragmentBase {
}
}
private void onActionCheck(boolean dialog) {
private void onActionCheck() {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
boolean send_dialog = prefs.getBoolean("send_dialog", true);
Bundle extras = new Bundle();
extras.putBoolean("dialog", dialog || send_dialog);
extras.putBoolean("dialog", send_dialog);
onAction(R.id.action_check, extras);
}
@ -4450,12 +4474,15 @@ public class FragmentCompose extends FragmentBase {
boolean add_inline = prefs.getBoolean("add_inline", true);
boolean resize_images = prefs.getBoolean("resize_images", true);
int resize = prefs.getInt("resize", FragmentCompose.REDUCED_IMAGE_SIZE);
boolean image_dialog = prefs.getBoolean("image_dialog", true);
final ViewGroup dview = (ViewGroup) LayoutInflater.from(getContext()).inflate(R.layout.dialog_add_image, null);
final RadioGroup rgAction = dview.findViewById(R.id.rgAction);
final CheckBox cbResize = dview.findViewById(R.id.cbResize);
final Spinner spResize = dview.findViewById(R.id.spResize);
final TextView tvResize = dview.findViewById(R.id.tvResize);
final CheckBox cbNotAgain = dview.findViewById(R.id.cbNotAgain);
final TextView tvNotAgain = dview.findViewById(R.id.tvNotAgain);
rgAction.check(add_inline ? R.id.rbInline : R.id.rbAttach);
cbResize.setChecked(resize_images);
@ -4497,6 +4524,17 @@ public class FragmentCompose extends FragmentBase {
}
});
cbNotAgain.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
prefs.edit().putBoolean("image_dialog", !isChecked).apply();
tvNotAgain.setVisibility(isChecked ? View.VISIBLE : View.GONE);
}
});
cbNotAgain.setChecked(!image_dialog);
tvNotAgain.setVisibility(cbNotAgain.isChecked() ? View.VISIBLE : View.GONE);
return new AlertDialog.Builder(getContext())
.setView(dview)
.setNegativeButton(android.R.string.cancel, null)
@ -4600,7 +4638,7 @@ public class FragmentCompose extends FragmentBase {
tvSendAt.setText(null);
cbNotAgain.setChecked(!send_dialog);
cbNotAgain.setVisibility(dialog ? View.VISIBLE : View.GONE);
tvNotAgain.setVisibility(cbNotAgain.isChecked() && send_dialog ? View.VISIBLE : View.GONE);
tvNotAgain.setVisibility(cbNotAgain.isChecked() && dialog ? View.VISIBLE : View.GONE);
Helper.setViewsEnabled(dview, false);
@ -4608,7 +4646,7 @@ public class FragmentCompose extends FragmentBase {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
prefs.edit().putBoolean("send_dialog", !isChecked).apply();
tvNotAgain.setVisibility(isChecked && send_dialog ? View.VISIBLE : View.GONE);
tvNotAgain.setVisibility(isChecked ? View.VISIBLE : View.GONE);
}
});

@ -72,4 +72,25 @@
app:layout_constraintBottom_toBottomOf="@id/spResize"
app:layout_constraintStart_toEndOf="@id/spResize"
app:layout_constraintTop_toTopOf="@id/spResize" />
<CheckBox
android:id="@+id/cbNotAgain"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_no_ask_again"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/spResize" />
<eu.faircode.email.FixedTextView
android:id="@+id/tvNotAgain"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:text="@string/title_dialog_hint"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textStyle="italic"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/cbNotAgain" />
</androidx.constraintlayout.widget.ConstraintLayout>

@ -236,7 +236,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:text="@string/title_send_dialog_hint"
android:text="@string/title_dialog_hint"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textStyle="italic"
app:layout_constraintStart_toStartOf="parent"

@ -13,9 +13,24 @@
android:title="@string/title_zoom"
app:showAsAction="ifRoom" />
<item
android:id="@+id/menu_send_dialog"
android:checkable="true"
android:checked="true"
android:title="@string/title_send_dialog"
app:showAsAction="never" />
<item
android:id="@+id/menu_image_dialog"
android:checkable="true"
android:checked="true"
android:title="@string/title_image_dialog"
app:showAsAction="never" />
<item
android:id="@+id/menu_media"
android:checkable="true"
android:checked="true"
android:title="@string/title_media_toolbar"
app:showAsAction="never" />
@ -44,9 +59,4 @@
android:id="@+id/menu_answer"
android:title="@string/title_insert_template"
app:showAsAction="never" />
<item
android:id="@+id/menu_send"
android:title="@string/title_send_with_options"
app:showAsAction="never" />
</menu>

@ -804,7 +804,6 @@
<string name="title_send">Send</string>
<string name="title_send_now">Send now</string>
<string name="title_send_via">Send via</string>
<string name="title_send_with_options">Send &#8230;</string>
<string name="title_send_at">Send at &#8230;</string>
<string name="title_send_encryption">Encryption</string>
<string name="title_send_priority">Priority</string>
@ -829,6 +828,8 @@
<string name="title_attachment_audio">Record audio</string>
<string name="title_show_addresses">Show CC/BCC</string>
<string name="title_send_dialog">Show send options</string>
<string name="title_image_dialog">Show image options</string>
<string name="title_media_toolbar">Media toolbar</string>
<string name="title_insert_contact_group">Insert contact group</string>
<string name="title_insert_template">Insert template</string>
@ -852,7 +853,7 @@
<string name="title_attachment_keywords">attached,attachment,attachments,included</string>
<string name="title_attachment_reminder">Did you intend to add an attachment?</string>
<string name="title_attachments_missing">Not all attachments are downloaded</string>
<string name="title_send_dialog_hint">This dialog will still be available via the three-dots overflow menu in the action bar</string>
<string name="title_dialog_hint">This dialog can be enabled again via the three-dots menu in the top action bar</string>
<string name="title_draft_deleted">Draft discarded</string>
<string name="title_draft_saved">Draft saved</string>
<string name="title_ask_send_via">Send message to %1$s via %2$s?</string>

Loading…
Cancel
Save