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 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 @@ + + + + + + + + \ 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 @@ An image is still being uploaded. Please wait. + Fetch trending searches failed.\nTap to retry. + Parse trending searches failed.\nTap to retry. + No trending searches found.\nTap to retry. +