From 8ca0ec12a8f0520410ec6e0f9fc043f87e83bde3 Mon Sep 17 00:00:00 2001 From: Floens Date: Tue, 26 Aug 2014 22:46:23 +0200 Subject: [PATCH] Add retry button when loading fails --- .../chan/ui/fragment/ThreadFragment.java | 41 +++++++++++++++---- Clover/app/src/main/res/values/strings.xml | 1 + 2 files changed, 34 insertions(+), 8 deletions(-) diff --git a/Clover/app/src/main/java/org/floens/chan/ui/fragment/ThreadFragment.java b/Clover/app/src/main/java/org/floens/chan/ui/fragment/ThreadFragment.java index 63d4c01a..073c6543 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/fragment/ThreadFragment.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/fragment/ThreadFragment.java @@ -30,6 +30,7 @@ import android.view.ViewGroup; import android.view.inputmethod.EditorInfo; import android.widget.AbsListView; import android.widget.AbsListView.OnScrollListener; +import android.widget.Button; import android.widget.GridView; import android.widget.ImageView; import android.widget.LinearLayout; @@ -242,7 +243,7 @@ public class ThreadFragment extends Fragment implements ThreadManager.ThreadMana } else { if (postAdapter == null) { if (container != null) { - container.setView(getLoadErrorTextView(error)); + container.setView(getLoadErrorView(error)); } } else { postAdapter.setStatusMessage(getLoadErrorText(error)); @@ -372,16 +373,40 @@ public class ThreadFragment extends Fragment implements ThreadManager.ThreadMana * @param error * @return */ - private TextView getLoadErrorTextView(VolleyError error) { + private View getLoadErrorView(VolleyError error) { String errorMessage = getLoadErrorText(error); - TextView view = new TextView(getActivity()); - view.setLayoutParams(Utils.MATCH_PARAMS); - view.setText(errorMessage); - view.setTextSize(24f); - view.setGravity(Gravity.CENTER); + LinearLayout wrapper = new LinearLayout(baseActivity); + wrapper.setLayoutParams(Utils.MATCH_PARAMS); + wrapper.setGravity(Gravity.CENTER); + wrapper.setOrientation(LinearLayout.VERTICAL); + + TextView text = new TextView(getActivity()); + text.setLayoutParams(Utils.WRAP_PARAMS); + text.setText(errorMessage); + text.setTextSize(24f); + wrapper.addView(text); + + Button retry = new Button(baseActivity); + retry.setText(R.string.thread_load_failed_retry); + retry.setLayoutParams(Utils.WRAP_PARAMS); + retry.setGravity(Gravity.CENTER); + retry.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (threadManager != null) { + reload(); + } + } + }); + + wrapper.addView(retry); + + LinearLayout.LayoutParams retryParams = (LinearLayout.LayoutParams) retry.getLayoutParams(); + retryParams.topMargin = Utils.dp(12); + retry.setLayoutParams(retryParams); - return view; + return wrapper; } private String getLoadErrorText(VolleyError error) { diff --git a/Clover/app/src/main/res/values/strings.xml b/Clover/app/src/main/res/values/strings.xml index 98225cac..ca26548d 100644 --- a/Clover/app/src/main/res/values/strings.xml +++ b/Clover/app/src/main/res/values/strings.xml @@ -73,6 +73,7 @@ along with this program. If not, see . Tap to refresh Loading Loading in %1$d + Retry Board editor Add board