From 1e748874d97994417df3297b47ec73c937bb3dbd Mon Sep 17 00:00:00 2001 From: Christophe Beyls Date: Mon, 9 Jan 2017 12:25:46 +0100 Subject: [PATCH] Removed underline for persons and room links and unify their appearance. Disabled instance state save for TextViews showing heavy text or custom spans. --- .../fragments/EventDetailsFragment.java | 22 ++++++++++++++----- .../res/layout/fragment_event_details.xml | 6 ++++- app/src/main/res/values/styles.xml | 4 ---- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/be/digitalia/fosdem/fragments/EventDetailsFragment.java b/app/src/main/java/be/digitalia/fosdem/fragments/EventDetailsFragment.java index df4a221..92a7d45 100644 --- a/app/src/main/java/be/digitalia/fosdem/fragments/EventDetailsFragment.java +++ b/app/src/main/java/be/digitalia/fosdem/fragments/EventDetailsFragment.java @@ -19,11 +19,11 @@ import android.support.v4.content.Loader; import android.text.Spannable; import android.text.SpannableString; import android.text.SpannableStringBuilder; +import android.text.TextPaint; import android.text.TextUtils; import android.text.method.LinkMovementMethod; import android.text.method.MovementMethod; import android.text.style.ClickableSpan; -import android.text.style.UnderlineSpan; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; @@ -155,15 +155,19 @@ public class EventDetailsFragment extends Fragment { final int roomImageResId = getResources().getIdentifier(StringUtils.roomNameToResourceName(roomName), "drawable", getActivity().getPackageName()); // If the room image exists, make the room text clickable to display it if (roomImageResId != 0) { - roomText.setSpan(new UnderlineSpan(), 0, roomText.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); - textView.setOnClickListener(new View.OnClickListener() { - + roomText.setSpan(new ClickableSpan() { @Override public void onClick(View view) { RoomImageDialogFragment.newInstance(roomName, roomImageResId).show(getFragmentManager()); } - }); - textView.setFocusable(true); + + @Override + public void updateDrawState(TextPaint ds) { + super.updateDrawState(ds); + ds.setUnderlineText(false); + } + }, 0, roomText.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + textView.setMovementMethod(linkMovementMethod); } textView.setText(roomText); textView.setContentDescription(getString(R.string.room_content_description, roomText)); @@ -481,6 +485,12 @@ public class EventDetailsFragment extends Fragment { Intent intent = new Intent(context, PersonInfoActivity.class).putExtra(PersonInfoActivity.EXTRA_PERSON, person); context.startActivity(intent); } + + @Override + public void updateDrawState(TextPaint ds) { + super.updateDrawState(ds); + ds.setUnderlineText(false); + } } private static class LinkClickListener implements View.OnClickListener { diff --git a/app/src/main/res/layout/fragment_event_details.xml b/app/src/main/res/layout/fragment_event_details.xml index 1b39fc5..1b997db 100644 --- a/app/src/main/res/layout/fragment_event_details.xml +++ b/app/src/main/res/layout/fragment_event_details.xml @@ -39,6 +39,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="8dp" + android:saveEnabled="false" tools:text="FOSDEM Staff"/> @@ -82,6 +84,7 @@ android:layout_height="wrap_content" android:background="@color/translucent_grey" android:padding="@dimen/content_margin" + android:saveEnabled="false" android:textIsSelectable="true" tools:text="FOSDEM welcome and opening talk."/> @@ -91,6 +94,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="@dimen/content_margin" + android:saveEnabled="false" android:textIsSelectable="true" tools:text="Welcome to FOSDEM 2015!"/> diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 8e7d167..b04254e 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -110,10 +110,6 @@ 8dp - -