Updated OnlineFeedView layout

This commit is contained in:
ByteHamster 2019-08-11 14:18:41 +02:00
parent 1348169d88
commit f1612995a2
2 changed files with 56 additions and 71 deletions

View File

@ -4,6 +4,8 @@ import android.app.Dialog;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.graphics.LightingColorFilter;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.support.annotation.UiThread; import android.support.annotation.UiThread;
@ -30,6 +32,7 @@ import android.widget.TextView;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions; import com.bumptech.glide.request.RequestOptions;
import de.danoeh.antennapod.core.glide.FastBlurTransformation;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.Subscribe;
@ -393,6 +396,7 @@ public class OnlineFeedViewActivity extends AppCompatActivity {
this.selectedDownloadUrl = feed.getDownload_url(); this.selectedDownloadUrl = feed.getDownload_url();
EventDistributor.getInstance().register(listener); EventDistributor.getInstance().register(listener);
ListView listView = findViewById(R.id.listview); ListView listView = findViewById(R.id.listview);
listView.setSelector(android.R.color.transparent);
LayoutInflater inflater = LayoutInflater.from(this); LayoutInflater inflater = LayoutInflater.from(this);
View header = inflater.inflate(R.layout.onlinefeedview_header, listView, false); View header = inflater.inflate(R.layout.onlinefeedview_header, listView, false);
listView.addHeaderView(header); listView.addHeaderView(header);
@ -400,6 +404,10 @@ public class OnlineFeedViewActivity extends AppCompatActivity {
listView.setAdapter(new FeedItemlistDescriptionAdapter(this, 0, feed.getItems())); listView.setAdapter(new FeedItemlistDescriptionAdapter(this, 0, feed.getItems()));
ImageView cover = header.findViewById(R.id.imgvCover); ImageView cover = header.findViewById(R.id.imgvCover);
ImageView headerBackground = header.findViewById(R.id.imgvBackground);
header.findViewById(R.id.butShowInfo).setVisibility(View.INVISIBLE);
header.findViewById(R.id.butShowSettings).setVisibility(View.INVISIBLE);
headerBackground.setColorFilter(new LightingColorFilter(0xff828282, 0x000000));
TextView title = header.findViewById(R.id.txtvTitle); TextView title = header.findViewById(R.id.txtvTitle);
TextView author = header.findViewById(R.id.txtvAuthor); TextView author = header.findViewById(R.id.txtvAuthor);
TextView description = header.findViewById(R.id.txtvDescription); TextView description = header.findViewById(R.id.txtvDescription);
@ -417,6 +425,15 @@ public class OnlineFeedViewActivity extends AppCompatActivity {
.fitCenter() .fitCenter()
.dontAnimate()) .dontAnimate())
.into(cover); .into(cover);
Glide.with(this)
.load(feed.getImageUrl())
.apply(new RequestOptions()
.placeholder(R.color.image_readability_tint)
.error(R.color.image_readability_tint)
.diskCacheStrategy(ApGlideSettings.AP_DISK_CACHE_STRATEGY)
.transform(new FastBlurTransformation())
.dontAnimate())
.into(headerBackground);
} }
title.setText(feed.getTitle()); title.setText(feed.getTitle());
@ -445,6 +462,17 @@ public class OnlineFeedViewActivity extends AppCompatActivity {
} }
}); });
final int MAX_LINES_COLLAPSED = 10;
description.setMaxLines(MAX_LINES_COLLAPSED);
description.setOnClickListener(v -> {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN
&& description.getMaxLines() > MAX_LINES_COLLAPSED) {
description.setMaxLines(MAX_LINES_COLLAPSED);
} else {
description.setMaxLines(2000);
}
});
if (alternateFeedUrls.isEmpty()) { if (alternateFeedUrls.isEmpty()) {
spAlternateUrls.setVisibility(View.GONE); spAlternateUrls.setVisibility(View.GONE);
} else { } else {

View File

@ -1,88 +1,33 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:orientation="vertical"
android:layout_height="match_parent">
<ImageView
android:id="@+id/imgvCover"
android:layout_width="@dimen/thumbnail_length_onlinefeedview"
android:layout_height="@dimen/thumbnail_length_onlinefeedview"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginTop="16dp"
android:contentDescription="@string/cover_label"
tools:src="@drawable/ic_stat_antenna_default"
tools:background="@android:color/holo_green_dark" />
<TextView
android:id="@+id/txtvTitle"
style="@style/AntennaPod.TextView.Heading"
android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentRight="true" android:layout_width="match_parent">
android:layout_alignParentEnd="true"
android:layout_marginBottom="8dp"
android:layout_marginRight="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="16dp"
android:layout_toRightOf="@id/imgvCover"
android:layout_toEndOf="@id/imgvCover"
android:ellipsize="end"
android:gravity="center_vertical"
android:maxLines="2"
tools:text="Online feed title"
tools:background="@android:color/holo_green_dark" />
<TextView <include layout="@layout/feeditemlist_header"/>
android:id="@+id/txtvAuthor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/txtvTitle"
android:layout_marginBottom="8dp"
android:layout_marginRight="16dp"
android:layout_marginEnd="16dp"
android:layout_toRightOf="@id/imgvCover"
android:layout_toEndOf="@id/imgvCover"
android:ellipsize="end"
android:lines="1"
android:textColor="?android:attr/textColorSecondary"
android:textSize="@dimen/text_size_small"
tools:text="Online feed author"
tools:background="@android:color/holo_green_dark" />
<LinearLayout <Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/imgvCover"
android:orientation="vertical">
<Spinner
android:id="@+id/spinnerAlternateUrls" android:id="@+id/spinnerAlternateUrls"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="16dp" android:layout_marginLeft="8dp"
android:layout_marginStart="16dp" android:layout_marginRight="8dp"
android:layout_marginRight="16dp"
android:layout_marginEnd="16dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:padding="8dp"
android:textColor="?android:attr/textColorPrimary" android:textColor="?android:attr/textColorPrimary"
android:textSize="@dimen/text_size_micro" /> android:textSize="@dimen/text_size_micro"/>
<Button <Button
android:id="@+id/butSubscribe" android:id="@+id/butSubscribe"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="16dp" android:layout_margin="16dp"
android:focusable="false" android:focusable="false"
android:text="@string/subscribe_label" /> android:text="@string/subscribe_label"/>
<TextView <TextView
android:id="@+id/txtvDescription" android:id="@+id/txtvDescription"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -91,10 +36,22 @@
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginRight="16dp" android:layout_marginRight="16dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:ellipsize="end"
android:textColor="?android:attr/textColorSecondary" android:textColor="?android:attr/textColorSecondary"
android:textSize="@dimen/text_size_small" android:textSize="@dimen/text_size_small"
tools:text="@string/design_time_lorem_ipsum" tools:text="@string/design_time_lorem_ipsum"
tools:background="@android:color/holo_green_dark"/> tools:background="@android:color/holo_green_dark"/>
</LinearLayout> <TextView
</RelativeLayout> android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
android:layout_marginRight="16dp"
android:layout_marginEnd="16dp"
android:textColor="?attr/colorAccent"
android:textSize="@dimen/text_size_small"
android:text="@string/episodes_label"/>
</LinearLayout>