diff --git a/Clover/src/org/floens/chan/core/loader/Loader.java b/Clover/src/org/floens/chan/core/loader/Loader.java index 3cc417cf..3e2acf84 100644 --- a/Clover/src/org/floens/chan/core/loader/Loader.java +++ b/Clover/src/org/floens/chan/core/loader/Loader.java @@ -61,7 +61,7 @@ public class Loader { /** * Add a LoaderListener - * + * * @param l * the listener to add */ @@ -71,7 +71,7 @@ public class Loader { /** * Remove a LoaderListener - * + * * @param l * the listener to remove * @return true if there are no more listeners, false otherwise @@ -183,7 +183,7 @@ public class Loader { /** * Get the time in milliseconds until another loadMore is recommended - * + * * @return */ public long getTimeUntilLoadMore() { diff --git a/Clover/src/org/floens/chan/ui/adapter/PostAdapter.java b/Clover/src/org/floens/chan/ui/adapter/PostAdapter.java index 34ab2764..45218702 100644 --- a/Clover/src/org/floens/chan/ui/adapter/PostAdapter.java +++ b/Clover/src/org/floens/chan/ui/adapter/PostAdapter.java @@ -45,6 +45,7 @@ public class PostAdapter extends BaseAdapter { private boolean endOfLine; private final List postList = new ArrayList(); private long lastViewedTime = 0; + private String loadMessage = null; public PostAdapter(Context activity, ThreadManager threadManager, ListView listView) { context = activity; @@ -178,4 +179,12 @@ public class PostAdapter extends BaseAdapter { } } } + + public void setErrorMessage(String loadMessage) { + this.loadMessage = loadMessage; + } + + public String getErrorMessage() { + return loadMessage; + } } diff --git a/Clover/src/org/floens/chan/ui/fragment/ThreadFragment.java b/Clover/src/org/floens/chan/ui/fragment/ThreadFragment.java index 0b9248fe..b2b2c7e7 100644 --- a/Clover/src/org/floens/chan/ui/fragment/ThreadFragment.java +++ b/Clover/src/org/floens/chan/ui/fragment/ThreadFragment.java @@ -175,6 +175,8 @@ public class ThreadFragment extends Fragment implements ThreadManager.ThreadMana } } + postAdapter.setErrorMessage(null); + if (append) { postAdapter.appendList(posts); } else { @@ -187,20 +189,36 @@ public class ThreadFragment extends Fragment implements ThreadManager.ThreadMana if (error instanceof EndOfLineException) { postAdapter.setEndOfLine(true); } else { - if (container != null) { - container.setView(getLoadErrorTextView(error)); + if (postAdapter == null) { + if (container != null) { + container.setView(getLoadErrorTextView(error)); + } + } else { + postAdapter.setErrorMessage(getLoadErrorText(error)); } } } /** * Returns an TextView containing the appropriate error message - * + * * @param error * @return */ - public TextView getLoadErrorTextView(VolleyError error) { - String errorMessage = ""; + private TextView getLoadErrorTextView(VolleyError error) { + String errorMessage = getLoadErrorText(error); + + TextView view = new TextView(getActivity()); + view.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); + view.setText(errorMessage); + view.setTextSize(24f); + view.setGravity(Gravity.CENTER); + + return view; + } + + private String getLoadErrorText(VolleyError error) { + String errorMessage = "error"; if ((error instanceof NoConnectionError) || (error instanceof NetworkError)) { errorMessage = getActivity().getString(R.string.thread_load_failed_network); @@ -210,13 +228,7 @@ public class ThreadFragment extends Fragment implements ThreadManager.ThreadMana errorMessage = getActivity().getString(R.string.thread_load_failed_parsing); } - TextView view = new TextView(getActivity()); - view.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); - view.setText(errorMessage); - view.setTextSize(24f); - view.setGravity(Gravity.CENTER); - - return view; + return errorMessage; } @Override diff --git a/Clover/src/org/floens/chan/ui/view/ThreadWatchCounterView.java b/Clover/src/org/floens/chan/ui/view/ThreadWatchCounterView.java index bd388828..3c8b8755 100644 --- a/Clover/src/org/floens/chan/ui/view/ThreadWatchCounterView.java +++ b/Clover/src/org/floens/chan/ui/view/ThreadWatchCounterView.java @@ -19,19 +19,19 @@ package org.floens.chan.ui.view; import org.floens.chan.core.loader.Loader; import org.floens.chan.core.manager.ThreadManager; +import org.floens.chan.ui.adapter.PostAdapter; import android.content.Context; import android.os.Handler; import android.util.AttributeSet; import android.view.View; -import android.widget.BaseAdapter; import android.widget.ListView; import android.widget.TextView; public class ThreadWatchCounterView extends TextView implements View.OnClickListener { private boolean detached = false; private ThreadManager tm; - private BaseAdapter ad; + private PostAdapter ad; public ThreadWatchCounterView(Context activity) { super(activity); @@ -45,7 +45,7 @@ public class ThreadWatchCounterView extends TextView implements View.OnClickList super(activity, attbs, style); } - public void init(final ThreadManager threadManager, final ListView listView, final BaseAdapter adapter) { + public void init(final ThreadManager threadManager, final ListView listView, final PostAdapter adapter) { tm = threadManager; ad = adapter; @@ -89,10 +89,15 @@ public class ThreadWatchCounterView extends TextView implements View.OnClickList int time = Math.round(loader.getTimeUntilLoadMore() / 1000f); - if (time <= 0) { - setText("Loading"); + String error = ad.getErrorMessage(); + if (error != null) { + setText(error); } else { - setText("Loading in " + time); + if (time <= 0) { + setText("Loading"); + } else { + setText("Loading in " + time); + } } } }