Add retry button when loading fails

captchafix
Floens 11 years ago
parent 0b0f878f0f
commit 8ca0ec12a8
  1. 41
      Clover/app/src/main/java/org/floens/chan/ui/fragment/ThreadFragment.java
  2. 1
      Clover/app/src/main/res/values/strings.xml

@ -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) {

@ -73,6 +73,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<string name="thread_refresh_bar_inactive">Tap to refresh</string>
<string name="thread_refresh_now">Loading</string>
<string name="thread_refresh_countdown">Loading in %1$d</string>
<string name="thread_load_failed_retry">Retry</string>
<string name="board_edit">Board editor</string>
<string name="board_add">Add board</string>

Loading…
Cancel
Save