Added quick actions section

pull/177/head
M66B 6 years ago
parent fceefc1b4b
commit 44892516df

@ -439,6 +439,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
private Group grpAddresses;
private Group grpHeaders;
private Group grpAction;
private Group grpCalendar;
private Group grpCalendarResponse;
private Group grpAttachments;
@ -622,6 +623,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
grpAddresses = vsBody.findViewById(R.id.grpAddresses);
grpHeaders = vsBody.findViewById(R.id.grpHeaders);
grpAction = vsBody.findViewById(R.id.grpAction);
grpCalendar = vsBody.findViewById(R.id.grpCalendar);
grpCalendarResponse = vsBody.findViewById(R.id.grpCalendarResponse);
grpAttachments = attachments.findViewById(R.id.grpAttachments);
@ -1127,6 +1129,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
grpAddresses.setVisibility(View.GONE);
grpHeaders.setVisibility(View.GONE);
grpAction.setVisibility(View.GONE);
grpCalendar.setVisibility(View.GONE);
grpCalendarResponse.setVisibility(View.GONE);
grpAttachments.setVisibility(View.GONE);
@ -1198,8 +1201,6 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
tvNoInternetBody.setVisibility(View.GONE);
grpDownloading.setVisibility(View.GONE);
ibSeen.setVisibility(View.GONE);
llAction.setVisibility(View.GONE);
llAction.removeAllViews();
}
private void clearCalendar() {
@ -1570,6 +1571,8 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
tvBody.setText(null);
grpDownloading.setVisibility(message.content ? View.GONE : View.VISIBLE);
grpAction.setVisibility(View.GONE);
ibSeen.setImageResource(message.ui_seen
? R.drawable.baseline_visibility_off_24 : R.drawable.baseline_visibility_24);
ibSeen.setContentDescription(context.getString(message.ui_seen
@ -1942,7 +1945,9 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
List<ConversationAction> actions = cactions.getConversationActions();
for (ConversationAction action : actions) {
final RemoteAction raction = action.getAction();
final CharSequence title = (raction == null ? action.getTextReply() : raction.getTitle());
final CharSequence title = (raction == null
? context.getString(R.string.title_conversation_action_reply, action.getTextReply())
: raction.getTitle());
Button button = new Button(context, null, android.R.attr.buttonStyleSmall);
button.setId(View.generateViewId());
@ -1967,7 +1972,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
});
llAction.addView(button);
}
llAction.setVisibility(llAction.getChildCount() > 0 ? View.VISIBLE : View.GONE);
grpAction.setVisibility(llAction.getChildCount() > 0 ? View.VISIBLE : View.GONE);
}
}

@ -0,0 +1,47 @@
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context="eu.faircode.email.ActivityView">
<View
android:id="@+id/vSeparatorAction"
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_marginTop="3dp"
android:background="?attr/colorSeparator"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<eu.faircode.email.FixedTextView
android:id="@+id/tvActionTitle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginTop="3dp"
android:layout_marginEnd="6dp"
android:text="@string/title_conversation_actions"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/vSeparatorAction" />
<LinearLayout
android:id="@+id/llAction"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvActionTitle" />
<androidx.constraintlayout.widget.Group
android:id="@+id/grpAction"
android:layout_width="0dp"
android:layout_height="0dp"
app:constraint_referenced_ids="vSeparatorAction,tvActionTitle,llAction" />
</androidx.constraintlayout.widget.ConstraintLayout>

@ -101,11 +101,11 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvBody" />
<LinearLayout
android:id="@+id/llAction"
<include
android:id="@+id/InAction"
layout="@layout/include_message_action"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/wvBody" />
@ -119,7 +119,7 @@
android:padding="6dp"
android:scaleType="fitCenter"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/llAction"
app:layout_constraintTop_toBottomOf="@id/InAction"
app:srcCompat="@drawable/baseline_visibility_24" />
<include

@ -427,7 +427,7 @@
<string name="title_advanced_external_search">Allow other apps to search in messages</string>
<string name="title_advanced_shortcuts">Show frequently used contacts in Android share menu</string>
<string name="title_advanced_conversation_actions">Show conversation actions</string>
<string name="title_advanced_conversation_actions">Show quick actions</string>
<string name="title_advanced_fts">Build search index</string>
<string name="title_advanced_fts_indexed">%1$d / %2$d messages indexed (%3$s)</string>
<string name="title_advanced_english">Force English language</string>
@ -1127,6 +1127,9 @@
<string name="title_set">Set</string>
<string name="title_fetching_again">Fetching message again from the server</string>
<string name="title_conversation_actions">Quick actions</string>
<string name="title_conversation_action_reply">Start reply with: \'%1$s\'</string>
<string name="title_icalendar_accept">Accept</string>
<string name="title_icalendar_decline">Decline</string>
<string name="title_icalendar_maybe">Maybe</string>

Loading…
Cancel
Save