diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 8d83385c9a..283bc24e7d 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -45,6 +45,7 @@ import android.widget.FilterQueryProvider; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.Spinner; +import android.widget.TextView; import android.widget.Toast; import com.google.android.material.bottomnavigation.BottomNavigationView; @@ -659,7 +660,7 @@ public class FragmentCompose extends FragmentEx { }); // Show identities - ArrayAdapter adapter = new ArrayAdapter<>(getContext(), R.layout.spinner_item, identities); + IdentityAdapter adapter = new IdentityAdapter(getContext(), identities); adapter.setDropDownViewResource(R.layout.spinner_dropdown_item); spFrom.setAdapter(adapter); @@ -874,4 +875,42 @@ public class FragmentCompose extends FragmentEx { Toast.makeText(getContext(), ex.toString(), Toast.LENGTH_LONG).show(); } }; + + public class IdentityAdapter extends ArrayAdapter { + private Context context; + private List identities; + + public IdentityAdapter(@NonNull Context context, List identities) { + super(context, 0, identities); + this.context = context; + this.identities = identities; + } + + @NonNull + @Override + public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { + return getLayout(position, convertView, parent); + } + + @Override + public View getDropDownView(int position, View convertView, ViewGroup parent) { + return getLayout(position, convertView, parent); + } + + public View getLayout(int position, View convertView, ViewGroup parent) { + View view = convertView; + if (view == convertView) + view = LayoutInflater.from(context).inflate(R.layout.spinner_item2, parent, false); + + EntityIdentity identity = identities.get(position); + + TextView name = view.findViewById(android.R.id.text1); + name.setText(identity.name); + + TextView email = view.findViewById(android.R.id.text2); + email.setText(identity.email); + + return view; + } + } } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_compose.xml b/app/src/main/res/layout/fragment_compose.xml index aa00793b15..de54ac9049 100644 --- a/app/src/main/res/layout/fragment_compose.xml +++ b/app/src/main/res/layout/fragment_compose.xml @@ -6,10 +6,11 @@ @@ -21,7 +22,7 @@ android:layout_marginStart="6dp" android:src="@drawable/baseline_person_add_24" app:layout_constraintBottom_toBottomOf="@id/spFrom" - app:layout_constraintStart_toEndOf="@id/spFrom" + app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="@id/spFrom" /> + + + + + + \ No newline at end of file