Edit shortcut title

This commit is contained in:
M66B 2022-11-23 18:28:49 +01:00
parent 3714ef8d9f
commit f77b06cac6
4 changed files with 60 additions and 11 deletions

View File

@ -6660,6 +6660,26 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
}
private void onMenuPin(TupleMessageEx message) {
View view = LayoutInflater.from(context).inflate(R.layout.dialog_shortcut_label, null);
EditText etLabel = view.findViewById(R.id.etLabel);
etLabel.setText(message.subject);
new AlertDialog.Builder(context)
.setView(view)
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String label = etLabel.getText().toString().trim();
if (!TextUtils.isEmpty(label))
_onMenuPin(message, label);
}
})
.setNegativeButton(android.R.string.cancel, null)
.show();
}
private void _onMenuPin(TupleMessageEx message, String label) {
Bundle args = new Bundle();
args.putLong("id", message.id);
args.putLong("account", message.account);
@ -6680,7 +6700,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
@Override
protected void onExecuted(Bundle args, ContactInfo[] contactInfo) {
ShortcutInfoCompat.Builder builder =
Shortcuts.getShortcut(context, message, contactInfo);
Shortcuts.getShortcut(context, message, label, contactInfo);
Shortcuts.requestPinShortcut(context, builder.build());
}

View File

@ -278,7 +278,7 @@ class Shortcuts {
}
@NonNull
static ShortcutInfoCompat.Builder getShortcut(Context context, EntityMessage message, ContactInfo[] contactInfo) {
static ShortcutInfoCompat.Builder getShortcut(Context context, EntityMessage message, String label, ContactInfo[] contactInfo) {
Intent thread = new Intent(context, ActivityView.class);
thread.setAction("thread:" + message.id);
thread.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
@ -301,14 +301,6 @@ class Shortcuts {
Bitmap.Config.ARGB_8888);
}
String label;
if (!TextUtils.isEmpty(message.notes))
label = message.notes;
else if (!TextUtils.isEmpty(message.subject))
label = message.subject;
else
label = context.getString(R.string.app_name);
IconCompat icon = IconCompat.createWithBitmap(bm);
String id = "message:" + message.id;
return new ShortcutInfoCompat.Builder(context, id)
@ -350,7 +342,7 @@ class Shortcuts {
return ShortcutManagerCompat.isRequestPinShortcutSupported(context.getApplicationContext());
}
static void requestPinShortcut(Context context, ShortcutInfoCompat info){
static void requestPinShortcut(Context context, ShortcutInfoCompat info) {
ShortcutManagerCompat.requestPinShortcut(context.getApplicationContext(), info, null);
}
}

View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="24dp">
<TextView
android:id="@+id/tvLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableStart="@drawable/twotone_edit_24"
android:drawablePadding="6dp"
android:labelFor="@+id/etTitle"
android:text="@string/title_pin_label"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<eu.faircode.email.EditTextPlain
android:id="@+id/etLabel"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:imeOptions="actionDone"
android:inputType="textCapSentences"
android:text="Title"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvLabel">
<requestFocus />
</eu.faircode.email.EditTextPlain>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -1250,6 +1250,8 @@
<string name="title_zip" translatable="false">ZIP</string>
<string name="title_event">Add to calendar</string>
<string name="title_pin">Add shortcut</string>
<string name="title_pin_label">Shortcut title</string>
<string name="title_print">Print</string>
<string name="title_print_header">Print header</string>
<string name="title_print_images">Print images</string>