diff --git a/app/src/main/java/eu/faircode/email/DaoAnswer.java b/app/src/main/java/eu/faircode/email/DaoAnswer.java index 198c15fbbe..95ced6a639 100644 --- a/app/src/main/java/eu/faircode/email/DaoAnswer.java +++ b/app/src/main/java/eu/faircode/email/DaoAnswer.java @@ -74,6 +74,11 @@ public interface DaoAnswer { " AND (:favorite OR NOT favorite)") Integer getAnswerCount(boolean favorite); + @Query("SELECT DISTINCT `group` FROM answer" + + " WHERE NOT `group` IS NULL" + + " ORDER by `group` COLLATE NOCASE") + List getGroups(); + @Insert long insertAnswer(EntityAnswer answer); diff --git a/app/src/main/java/eu/faircode/email/FragmentAnswer.java b/app/src/main/java/eu/faircode/email/FragmentAnswer.java index 1f1f46a7ac..630a3cccb8 100644 --- a/app/src/main/java/eu/faircode/email/FragmentAnswer.java +++ b/app/src/main/java/eu/faircode/email/FragmentAnswer.java @@ -42,6 +42,8 @@ import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.AutoCompleteTextView; import android.widget.CheckBox; import android.widget.EditText; import android.widget.HorizontalScrollView; @@ -58,13 +60,14 @@ import com.google.android.material.snackbar.Snackbar; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; +import java.util.ArrayList; import java.util.List; public class FragmentAnswer extends FragmentBase { private ViewGroup view; private EditText etName; private EditText etLabel; - private EditText etGroup; + private AutoCompleteTextView etGroup; private CheckBox cbStandard; private CheckBox cbReceipt; private CheckBox cbFavorite; @@ -78,6 +81,8 @@ public class FragmentAnswer extends FragmentBase { private ContentLoadingProgressBar pbWait; private Group grpReady; + private ArrayAdapter adapterGroup; + private long id = -1; private long copy = -1; @@ -133,6 +138,10 @@ public class FragmentAnswer extends FragmentBase { pbWait = view.findViewById(R.id.pbWait); grpReady = view.findViewById(R.id.grpReady); + adapterGroup = new ArrayAdapter<>(getContext(), R.layout.spinner_item1_dropdown, android.R.id.text1); + etGroup.setThreshold(1); + etGroup.setAdapter(adapterGroup); + btnColor.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -248,6 +257,8 @@ public class FragmentAnswer extends FragmentBase { args.putCharSequence("spanned", spanned); } + args.putStringArrayList("groups", new ArrayList<>(db.answer().getGroups())); + return answer; } @@ -274,6 +285,9 @@ public class FragmentAnswer extends FragmentBase { etText.setText((Spanned) args.getCharSequence("spanned")); } + adapterGroup.clear(); + adapterGroup.addAll(args.getStringArrayList("groups")); + if (answer == null) bottom_navigation.getMenu().removeItem(R.id.action_delete); diff --git a/app/src/main/res/layout/fragment_answer.xml b/app/src/main/res/layout/fragment_answer.xml index 710c7afbf9..f66da9cd4c 100644 --- a/app/src/main/res/layout/fragment_answer.xml +++ b/app/src/main/res/layout/fragment_answer.xml @@ -52,7 +52,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/etName" /> -