aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/activities/WikiActivity.java21
-rw-r--r--app/src/main/res/layout/activity_wiki.xml17
2 files changed, 33 insertions, 5 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 5da77551..cc2f13de 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/WikiActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/WikiActivity.java
@@ -24,6 +24,7 @@ import androidx.appcompat.widget.Toolbar;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
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;
@@ -78,6 +79,8 @@ public class WikiActivity extends BaseActivity {
AppBarLayout appBarLayout;
@BindView(R.id.toolbar_comment_wiki_activity)
Toolbar toolbar;
+ @BindView(R.id.swipe_refresh_layout_wiki_activity)
+ SwipeRefreshLayout swipeRefreshLayout;
@BindView(R.id.content_markdown_view_comment_wiki_activity)
RecyclerView markdownRecyclerView;
@BindView(R.id.fetch_wiki_linear_layout_wiki_activity)
@@ -99,6 +102,7 @@ public class WikiActivity extends BaseActivity {
private String wikiMarkdown;
private Markwon markwon;
private MarkwonAdapter markwonAdapter;
+ private boolean isRefreshing = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -140,6 +144,9 @@ public class WikiActivity extends BaseActivity {
}
}
+ swipeRefreshLayout.setEnabled(mSharedPreferences.getBoolean(SharedPreferencesUtils.PULL_TO_REFRESH, true));
+ swipeRefreshLayout.setOnRefreshListener(this::loadWiki);
+
int markdownColor = mCustomThemeWrapper.getPrimaryTextColor();
int spoilerBackgroundColor = markdownColor | 0xFF000000;
int linkColor = mCustomThemeWrapper.getLinkColor();
@@ -264,6 +271,13 @@ public class WikiActivity extends BaseActivity {
}
private void loadWiki() {
+ if (isRefreshing) {
+ return;
+ }
+ isRefreshing = true;
+
+ swipeRefreshLayout.setRefreshing(true);
+
Glide.with(this).clear(mFetchWikiInfoImageView);
mFetchWikiInfoLinearLayout.setVisibility(View.GONE);
@@ -286,16 +300,21 @@ public class WikiActivity extends BaseActivity {
showErrorView(R.string.error_loading_wiki);
}
}
+ isRefreshing = false;
+ swipeRefreshLayout.setRefreshing(false);
}
@Override
public void onFailure(@NonNull Call<String> call, @NonNull Throwable t) {
showErrorView(R.string.error_loading_wiki);
+ isRefreshing = false;
+ swipeRefreshLayout.setRefreshing(false);
}
});
}
private void showErrorView(int stringResId) {
+ swipeRefreshLayout.setRefreshing(false);
mFetchWikiInfoLinearLayout.setVisibility(View.VISIBLE);
mFetchWikiInfoTextView.setText(stringResId);
Glide.with(this).load(R.drawable.error_image).into(mFetchWikiInfoImageView);
@@ -337,6 +356,8 @@ public class WikiActivity extends BaseActivity {
protected void applyCustomTheme() {
coordinatorLayout.setBackgroundColor(mCustomThemeWrapper.getBackgroundColor());
applyAppBarLayoutAndToolbarTheme(appBarLayout, toolbar);
+ swipeRefreshLayout.setProgressBackgroundColorSchemeColor(mCustomThemeWrapper.getCircularProgressBarBackground());
+ swipeRefreshLayout.setColorSchemeColors(mCustomThemeWrapper.getColorAccent());
mFetchWikiInfoTextView.setTextColor(mCustomThemeWrapper.getSecondaryTextColor());
}
diff --git a/app/src/main/res/layout/activity_wiki.xml b/app/src/main/res/layout/activity_wiki.xml
index 778cc76b..c8f49864 100644
--- a/app/src/main/res/layout/activity_wiki.xml
+++ b/app/src/main/res/layout/activity_wiki.xml
@@ -32,13 +32,20 @@
</com.google.android.material.appbar.AppBarLayout>
- <androidx.recyclerview.widget.RecyclerView
- android:id="@+id/content_markdown_view_comment_wiki_activity"
+ <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
+ android:id="@+id/swipe_refresh_layout_wiki_activity"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:paddingStart="16dp"
- android:paddingEnd="16dp"
- app:layout_behavior="@string/appbar_scrolling_view_behavior" />
+ app:layout_behavior="@string/appbar_scrolling_view_behavior">
+
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/content_markdown_view_comment_wiki_activity"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:paddingStart="16dp"
+ android:paddingEnd="16dp" />
+
+ </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
<LinearLayout
android:id="@+id/fetch_wiki_linear_layout_wiki_activity"