Implement scrolling title on now playing and general media info screens

This commit is contained in:
ssaqua 2019-04-15 20:31:21 +12:00 committed by Martijn Brekhof
parent 4dda3ac6e8
commit ce210e9683
3 changed files with 36 additions and 0 deletions

View File

@ -35,6 +35,7 @@ import android.support.v4.app.FragmentManager;
import android.support.v4.content.ContextCompat;
import android.support.v4.widget.NestedScrollView;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v4.widget.TextViewCompat;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
@ -374,6 +375,21 @@ abstract public class AbstractInfoFragment extends AbstractFragment
@SuppressLint("StringFormatInvalid")
protected void updateView(DataHolder dataHolder) {
titleTextView.setText(dataHolder.getTitle());
titleTextView.post(new Runnable() {
@Override
public void run() {
int lines = titleTextView.getLineCount();
int maxLines = TextViewCompat.getMaxLines(titleTextView);
if (lines > maxLines) {
titleTextView.setHorizontallyScrolling(true);
titleTextView.setClickable(true);
titleTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) { v.setSelected(!v.isSelected()); }
});
}
}
});
underTitleTextView.setText(dataHolder.getUnderTitle());
detailsRightTextView.setText(dataHolder.getDetails());

View File

@ -20,6 +20,7 @@ import android.content.res.Resources;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.Fragment;
import android.support.v4.widget.TextViewCompat;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
@ -752,6 +753,21 @@ public class NowPlayingFragment extends Fragment
}
mediaTitle.setText(title);
mediaTitle.post(new Runnable() {
@Override
public void run() {
int lines = mediaTitle.getLineCount();
int maxLines = TextViewCompat.getMaxLines(mediaTitle);
if (lines > maxLines) {
mediaTitle.setHorizontallyScrolling(true);
mediaTitle.setClickable(true);
mediaTitle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) { v.setSelected(!v.isSelected()); }
});
}
}
});
mediaUndertitle.setText(underTitle);
mediaProgressIndicator.setOnProgressChangeListener(this);

View File

@ -178,6 +178,10 @@
<item name="android:paddingTop">@dimen/small_padding</item>
<item name="android:paddingBottom">@dimen/small_padding</item>
<item name="android:maxLines">2</item>
<item name="android:ellipsize">marquee</item>
<item name="android:marqueeRepeatLimit">marquee_forever</item>
<item name="android:focusable">true</item>
<item name="android:focusableInTouchMode">true</item>
</style>
<style name="TextAppearance.Media.Subtitle">