summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java3
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java4
-rw-r--r--app/src/main/res/layout/nav_listitem.xml87
-rw-r--r--core/src/main/res/drawable/ic_error.xml9
-rw-r--r--net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/nextcloud/NextcloudLoginFlow.java11
5 files changed, 62 insertions, 52 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java
index 9a55fe7d6..c0fc07ff6 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/NavListAdapter.java
@@ -22,7 +22,6 @@ import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.joanzapata.iconify.Iconify;
-import com.joanzapata.iconify.widget.IconTextView;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.PreferenceActivity;
import de.danoeh.antennapod.fragment.AllEpisodesFragment;
@@ -388,7 +387,7 @@ public class NavListAdapter extends RecyclerView.Adapter<NavListAdapter.Holder>
static class FeedHolder extends Holder {
final ImageView image;
final TextView title;
- final IconTextView failure;
+ final ImageView failure;
final TextView count;
public FeedHolder(@NonNull View itemView) {
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java
index 5f9233ffe..fc64cb2a2 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java
@@ -1,5 +1,6 @@
package de.danoeh.antennapod.fragment;
+import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
@@ -79,6 +80,9 @@ public class DownloadLogFragment extends BottomSheetDialogFragment
adapter = new DownloadLogAdapter(getActivity());
viewBinding.list.setAdapter(adapter);
viewBinding.list.setOnItemClickListener(this);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+ viewBinding.list.setNestedScrollingEnabled(true);
+ }
EventBus.getDefault().register(this);
return viewBinding.getRoot();
}
diff --git a/app/src/main/res/layout/nav_listitem.xml b/app/src/main/res/layout/nav_listitem.xml
index 607b328e6..37b629abb 100644
--- a/app/src/main/res/layout/nav_listitem.xml
+++ b/app/src/main/res/layout/nav_listitem.xml
@@ -1,82 +1,81 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:orientation="vertical"
- android:layout_width="match_parent"
- android:layout_height="@dimen/listitem_iconwithtext_height"
- android:foreground="?attr/selectableItemBackground" >
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/listitem_iconwithtext_height"
+ android:foreground="?attr/selectableItemBackground"
+ android:orientation="vertical">
<ImageView
android:id="@+id/imgvCover"
- android:importantForAccessibility="no"
android:layout_width="@dimen/thumbnail_length_navlist"
android:layout_height="@dimen/thumbnail_length_navlist"
- android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
+ android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
- android:adjustViewBounds="true"
- android:cropToPadding="true"
- android:scaleType="centerInside"
- android:layout_marginLeft="@dimen/listitem_icon_leftpadding"
android:layout_marginStart="@dimen/listitem_icon_leftpadding"
+ android:layout_marginLeft="@dimen/listitem_icon_leftpadding"
android:layout_marginTop="4dp"
android:layout_marginBottom="4dp"
- tools:src="@drawable/ic_download_black"/>
-
+ android:adjustViewBounds="true"
+ android:cropToPadding="true"
+ android:importantForAccessibility="no"
+ android:scaleType="centerInside"
+ tools:src="@drawable/ic_download_black" />
<TextView
android:id="@+id/txtvTitle"
- android:lines="1"
- android:ellipsize="end"
- android:singleLine="true"
- android:layout_centerVertical="true"
- android:textColor="?android:attr/textColorPrimary"
- android:textSize="@dimen/text_size_navdrawer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginLeft="@dimen/listitem_iconwithtext_textleftpadding"
+ android:layout_centerVertical="true"
android:layout_marginStart="@dimen/listitem_iconwithtext_textleftpadding"
- android:layout_marginRight="48dp"
+ android:layout_marginLeft="@dimen/listitem_iconwithtext_textleftpadding"
android:layout_marginEnd="48dp"
- android:layout_toRightOf="@id/imgvCover"
+ android:layout_marginRight="48dp"
android:layout_toEndOf="@id/imgvCover"
+ android:layout_toRightOf="@id/imgvCover"
+ android:ellipsize="end"
+ android:lines="1"
+ android:singleLine="true"
+ android:textColor="?android:attr/textColorPrimary"
+ android:textSize="@dimen/text_size_navdrawer"
tools:text="Navigation item title" />
- <com.joanzapata.iconify.widget.IconTextView
+ <ImageView
android:id="@+id/itxtvFailure"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_toLeftOf="@id/txtvCount"
- android:layout_toStartOf="@id/txtvCount"
- android:layout_marginLeft="@dimen/list_vertical_padding"
- android:layout_marginStart="@dimen/list_vertical_padding"
- android:layout_marginRight="@dimen/list_vertical_padding"
- android:layout_marginEnd="@dimen/list_vertical_padding"
android:layout_alignWithParentIfMissing="true"
- android:lines="1"
- android:text="{fa-exclamation-circle}"
- android:textColor="@color/download_failed_red"
- android:textSize="@dimen/text_size_navdrawer"
android:layout_centerVertical="true"
+ android:layout_marginStart="@dimen/list_vertical_padding"
+ android:layout_marginLeft="@dimen/list_vertical_padding"
+ android:layout_marginEnd="@dimen/list_vertical_padding"
+ android:layout_marginRight="@dimen/list_vertical_padding"
+ android:layout_toStartOf="@id/txtvCount"
+ android:layout_toLeftOf="@id/txtvCount"
android:visibility="gone"
- tools:text="!"
- tools:background="@android:color/holo_green_dark"/>
+ app:srcCompat="@drawable/ic_error"
+ app:tint="@color/download_failed_red"
+ tools:background="@android:color/holo_green_dark"
+ tools:text="!" />
<TextView
android:id="@+id/txtvCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:layout_alignParentEnd="true"
+ android:layout_alignParentRight="true"
+ android:layout_centerVertical="true"
+ android:layout_marginStart="4dp"
+ android:layout_marginLeft="4dp"
+ android:layout_marginEnd="8dp"
+ android:layout_marginRight="8dp"
android:lines="1"
+ android:padding="8dp"
android:textColor="?android:attr/textColorTertiary"
android:textSize="14sp"
- android:padding="8dp"
- android:layout_marginLeft="4dp"
- android:layout_marginStart="4dp"
- android:layout_marginRight="8dp"
- android:layout_marginEnd="8dp"
- android:layout_alignParentRight="true"
- android:layout_alignParentEnd="true"
- android:layout_centerVertical="true"
tools:text="23" />
+
</RelativeLayout>
diff --git a/core/src/main/res/drawable/ic_error.xml b/core/src/main/res/drawable/ic_error.xml
new file mode 100644
index 000000000..402f224b2
--- /dev/null
+++ b/core/src/main/res/drawable/ic_error.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="16dp"
+ android:height="16dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path
+ android:fillColor="#FFFFFF"
+ android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,17h-2v-2h2v2zM13,13h-2L11,7h2v6z" />
+</vector>
diff --git a/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/nextcloud/NextcloudLoginFlow.java b/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/nextcloud/NextcloudLoginFlow.java
index 33e7ba490..3ad171f7f 100644
--- a/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/nextcloud/NextcloudLoginFlow.java
+++ b/net/sync/gpoddernet/src/main/java/de/danoeh/antennapod/net/sync/nextcloud/NextcloudLoginFlow.java
@@ -68,14 +68,13 @@ public class NextcloudLoginFlow {
private void poll() {
pollDisposable = Observable.fromCallable(() -> doRequest(URI.create(endpoint).toURL(), "token=" + token))
- .delay(1, TimeUnit.SECONDS)
- .retry(60 * 10) // 10 minutes
+ .retryWhen(t -> t.delay(1, TimeUnit.SECONDS))
+ .timeout(5, TimeUnit.MINUTES)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
- .subscribe(result -> {
- callback.onNextcloudAuthenticated(result.getString("server"),
- result.getString("loginName"), result.getString("appPassword"));
- }, Throwable::printStackTrace);
+ .subscribe(result -> callback.onNextcloudAuthenticated(
+ result.getString("server"), result.getString("loginName"), result.getString("appPassword")),
+ error -> callback.onNextcloudAuthError(error.getLocalizedMessage()));
}
public void cancel() {