aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/activities/WikiActivity.java29
-rw-r--r--app/src/main/res/layout/activity_wiki.xml27
-rw-r--r--app/src/main/res/values/strings.xml3
3 files changed, 58 insertions, 1 deletions
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/WikiActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/WikiActivity.java
index 492553dc..5da77551 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/WikiActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/WikiActivity.java
@@ -15,6 +15,8 @@ import android.view.MenuItem;
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;
@@ -23,6 +25,7 @@ import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
+import com.bumptech.glide.Glide;
import com.google.android.material.appbar.AppBarLayout;
import com.r0adkll.slidr.Slidr;
import com.r0adkll.slidr.model.SlidrInterface;
@@ -77,6 +80,13 @@ public class WikiActivity extends BaseActivity {
Toolbar toolbar;
@BindView(R.id.content_markdown_view_comment_wiki_activity)
RecyclerView markdownRecyclerView;
+ @BindView(R.id.fetch_wiki_linear_layout_wiki_activity)
+ LinearLayout mFetchWikiInfoLinearLayout;
+ @BindView(R.id.fetch_wiki_image_view_wiki_activity)
+ ImageView mFetchWikiInfoImageView;
+ @BindView(R.id.fetch_wiki_text_view_wiki_activity)
+ TextView mFetchWikiInfoTextView;
+
@Inject
@Named("no_oauth")
Retrofit retrofit;
@@ -254,6 +264,9 @@ public class WikiActivity extends BaseActivity {
}
private void loadWiki() {
+ Glide.with(this).clear(mFetchWikiInfoImageView);
+ mFetchWikiInfoLinearLayout.setVisibility(View.GONE);
+
retrofit.create(RedditAPI.class).getWiki(getIntent().getStringExtra(EXTRA_SUBREDDIT_NAME)).enqueue(new Callback<String>() {
@Override
public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
@@ -264,17 +277,30 @@ public class WikiActivity extends BaseActivity {
markwonAdapter.notifyDataSetChanged();
} catch (JSONException e) {
e.printStackTrace();
+ showErrorView(R.string.error_loading_wiki);
+ }
+ } else {
+ if (response.code() == 404 || response.code() == 403) {
+ showErrorView(R.string.no_wiki);
+ } else {
+ showErrorView(R.string.error_loading_wiki);
}
}
}
@Override
public void onFailure(@NonNull Call<String> call, @NonNull Throwable t) {
-
+ showErrorView(R.string.error_loading_wiki);
}
});
}
+ private void showErrorView(int stringResId) {
+ mFetchWikiInfoLinearLayout.setVisibility(View.VISIBLE);
+ mFetchWikiInfoTextView.setText(stringResId);
+ Glide.with(this).load(R.drawable.error_image).into(mFetchWikiInfoImageView);
+ }
+
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
if (item.getItemId() == android.R.id.home) {
@@ -311,6 +337,7 @@ public class WikiActivity extends BaseActivity {
protected void applyCustomTheme() {
coordinatorLayout.setBackgroundColor(mCustomThemeWrapper.getBackgroundColor());
applyAppBarLayoutAndToolbarTheme(appBarLayout, toolbar);
+ mFetchWikiInfoTextView.setTextColor(mCustomThemeWrapper.getSecondaryTextColor());
}
@Subscribe
diff --git a/app/src/main/res/layout/activity_wiki.xml b/app/src/main/res/layout/activity_wiki.xml
index 0a09d748..778cc76b 100644
--- a/app/src/main/res/layout/activity_wiki.xml
+++ b/app/src/main/res/layout/activity_wiki.xml
@@ -40,4 +40,31 @@
android:paddingEnd="16dp"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
+ <LinearLayout
+ android:id="@+id/fetch_wiki_linear_layout_wiki_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"
+ app:layout_behavior="@string/appbar_scrolling_view_behavior" >
+
+ <ImageView
+ android:id="@+id/fetch_wiki_image_view_wiki_activity"
+ android:layout_width="150dp"
+ android:layout_height="wrap_content" />
+
+ <TextView
+ android:id="@+id/fetch_wiki_text_view_wiki_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 e5da66e3..7d528f8e 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1158,4 +1158,7 @@
<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>
+ <string name="error_loading_wiki">Error loading wiki</string>
+ <string name="no_wiki">This subreddit has no wiki page</string>
+
</resources>