aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/activities/TrendingActivity.java22
-rw-r--r--app/src/main/res/layout/activity_trending.xml26
-rw-r--r--app/src/main/res/values/strings.xml4
3 files changed, 52 insertions, 0 deletions
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/TrendingActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/TrendingActivity.java
index a75f28c6..54864c5d 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/TrendingActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/TrendingActivity.java
@@ -9,6 +9,9 @@ import android.util.DisplayMetrics;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.widget.Toolbar;
@@ -17,6 +20,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+import com.bumptech.glide.Glide;
import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.appbar.CollapsingToolbarLayout;
import com.r0adkll.slidr.Slidr;
@@ -67,6 +71,12 @@ public class TrendingActivity extends BaseActivity {
SwipeRefreshLayout swipeRefreshLayout;
@BindView(R.id.recycler_view_trending_activity)
RecyclerView recyclerView;
+ @BindView(R.id.fetch_trending_search_linear_layout_trending_activity)
+ LinearLayout errorLinearLayout;
+ @BindView(R.id.fetch_trending_search_image_view_trending_activity)
+ ImageView errorImageView;
+ @BindView(R.id.fetch_trending_search_text_view_trending_activity)
+ TextView errorTextView;
@Inject
@Named("oauth")
Retrofit mOauthRetrofit;
@@ -164,6 +174,8 @@ public class TrendingActivity extends BaseActivity {
}
private void loadTrendingSearches() {
+ errorLinearLayout.setVisibility(View.GONE);
+ Glide.with(this).clear(errorImageView);
swipeRefreshLayout.setRefreshing(true);
trendingSearches = null;
adapter.setTrendingSearches(null);
@@ -206,12 +218,14 @@ public class TrendingActivity extends BaseActivity {
e.printStackTrace();
handler.post(() -> {
swipeRefreshLayout.setRefreshing(false);
+ showErrorView(R.string.error_parse_trending_search);
});
}
});
} else {
handler.post(() -> {
swipeRefreshLayout.setRefreshing(false);
+ showErrorView(R.string.error_fetch_trending_search);
});
}
}
@@ -220,11 +234,18 @@ public class TrendingActivity extends BaseActivity {
public void onFailure(@NonNull Call<String> call, @NonNull Throwable t) {
handler.post(() -> {
swipeRefreshLayout.setRefreshing(false);
+ showErrorView(R.string.error_fetch_trending_search);
});
}
});
}
+ private void showErrorView(int stringId) {
+ errorLinearLayout.setVisibility(View.VISIBLE);
+ Glide.with(this).load(R.drawable.error_image).into(errorImageView);
+ errorTextView.setText(stringId);
+ }
+
@Override
protected SharedPreferences getDefaultSharedPreferences() {
return mSharedPreferences;
@@ -241,6 +262,7 @@ public class TrendingActivity extends BaseActivity {
applyAppBarLayoutAndToolbarTheme(appBarLayout, toolbar);
swipeRefreshLayout.setProgressBackgroundColorSchemeColor(mCustomThemeWrapper.getCircularProgressBarBackground());
swipeRefreshLayout.setColorSchemeColors(mCustomThemeWrapper.getColorAccent());
+ errorTextView.setTextColor(mCustomThemeWrapper.getSecondaryTextColor());
}
@Subscribe
diff --git a/app/src/main/res/layout/activity_trending.xml b/app/src/main/res/layout/activity_trending.xml
index a73330a6..6c78425f 100644
--- a/app/src/main/res/layout/activity_trending.xml
+++ b/app/src/main/res/layout/activity_trending.xml
@@ -46,4 +46,30 @@
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
+ <LinearLayout
+ android:id="@+id/fetch_trending_search_linear_layout_trending_activity"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_marginTop="48dp"
+ android:layout_marginBottom="48dp"
+ android:gravity="center"
+ android:orientation="vertical"
+ android:visibility="gone">
+
+ <ImageView
+ android:id="@+id/fetch_trending_search_image_view_trending_activity"
+ android:layout_width="150dp"
+ android:layout_height="wrap_content" />
+
+ <TextView
+ android:id="@+id/fetch_trending_search_text_view_trending_activity"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:gravity="center"
+ android:textSize="?attr/font_default"
+ android:fontFamily="?attr/font_family" />
+
+ </LinearLayout>
+
</androidx.coordinatorlayout.widget.CoordinatorLayout> \ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 19a82058..d752bffa 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1146,4 +1146,8 @@
<string name="please_wait_image_is_uploading">An image is still being uploaded. Please wait.</string>
+ <string name="error_fetch_trending_search">Fetch trending searches failed.\nTap to retry.</string>
+ <string name="error_parse_trending_search">Parse trending searches failed.\nTap to retry.</string>
+ <string name="no_trending_search">No trending searches found.\nTap to retry.</string>
+
</resources>