diff --git a/app/src/main/java/com/hippo/ehviewer/client/EhEngine.java b/app/src/main/java/com/hippo/ehviewer/client/EhEngine.java index 4062a85d5..0225eb6ec 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/EhEngine.java +++ b/app/src/main/java/com/hippo/ehviewer/client/EhEngine.java @@ -55,6 +55,7 @@ import org.json.JSONArray; import org.json.JSONObject; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; +import org.jsoup.select.Elements; import java.io.File; import java.util.ArrayList; @@ -391,6 +392,12 @@ public class EhEngine { headers = response.headers(); body = response.body().string(); Document document = Jsoup.parse(body); + + Elements elements = document.select("#chd + p"); + if (elements.size() > 0) { + throw new EhException(elements.get(0).text()); + } + return GalleryDetailParser.parseComments(document); } catch (Exception e) { throwException(call, code, headers, body, e); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/EhCallback.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/EhCallback.java index 5f7fd140a..eec0a7b95 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/EhCallback.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/EhCallback.java @@ -40,6 +40,14 @@ public abstract class EhCallback implements EhClient public abstract boolean isInstance(SceneFragment scene); + public Context getContent() { + Context context = getStageActivity(); + if (context == null) { + context = getApplication(); + } + return context; + } + public EhApplication getApplication() { return mApplication; } @@ -71,4 +79,14 @@ public abstract class EhCallback implements EhClient length == BaseScene.LENGTH_LONG ? Toast.LENGTH_LONG : Toast.LENGTH_SHORT).show(); } } + + public void showTip(String tip, int length) { + StageActivity activity = getStageActivity(); + if (activity instanceof MainActivity) { + ((MainActivity) activity).showTip(tip, length); + } else { + Toast.makeText(getApplication(), tip, + length == BaseScene.LENGTH_LONG ? Toast.LENGTH_LONG : Toast.LENGTH_SHORT).show(); + } + } } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.java index 22cd8f3b3..cea1072bb 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.java @@ -69,6 +69,7 @@ import com.hippo.scene.SceneFragment; import com.hippo.text.Html; import com.hippo.text.URLImageGetter; import com.hippo.util.DrawableManager; +import com.hippo.util.ExceptionUtils; import com.hippo.util.ReadableTime; import com.hippo.util.TextUrl; import com.hippo.view.ViewTransition; @@ -737,7 +738,7 @@ public final class GalleryCommentsScene extends ToolbarScene @Override public void onFailure(Exception e) { - showTip(R.string.comment_failed, LENGTH_SHORT); + showTip(getContent().getString(R.string.comment_failed) + "\n" + ExceptionUtils.getReadableString(e), LENGTH_SHORT); } @Override