diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/Posting.java b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/Posting.java
index cc08f17d..88c2f8a3 100644
--- a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/Posting.java
+++ b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/Posting.java
@@ -11,11 +11,11 @@ import timber.log.Timber;
/**
* This is a utility class containing a collection of static methods to help with topic replying.
*/
-class Posting {
+public class Posting {
/**
* {@link REPLY_STATUS} enum defines the different possible outcomes of a topic reply request.
*/
- enum REPLY_STATUS {
+ public enum REPLY_STATUS {
/**
* The request was successful
*/
@@ -54,7 +54,7 @@ class Posting {
* @return a {@link REPLY_STATUS} that describes the response status
* @throws IOException method relies to {@link org.jsoup.Jsoup#parse(String)}
*/
- static REPLY_STATUS replyStatus(Response response) throws IOException {
+ public static REPLY_STATUS replyStatus(Response response) throws IOException {
if (response.code() == 404) return REPLY_STATUS.NOT_FOUND;
if (response.code() < 200 || response.code() >= 400) return REPLY_STATUS.OTHER_ERROR;
String finalUrl = response.request().url().toString();
diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicActivity.java
index e053e809..8aad5027 100644
--- a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicActivity.java
+++ b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicActivity.java
@@ -31,6 +31,12 @@ import java.util.ArrayList;
import java.util.Objects;
import gr.thmmy.mthmmy.R;
+import gr.thmmy.mthmmy.activities.topic.tasks.DeleteTask;
+import gr.thmmy.mthmmy.activities.topic.tasks.EditTask;
+import gr.thmmy.mthmmy.activities.topic.tasks.PrepareForEditTask;
+import gr.thmmy.mthmmy.activities.topic.tasks.PrepareForReply;
+import gr.thmmy.mthmmy.activities.topic.tasks.ReplyTask;
+import gr.thmmy.mthmmy.activities.topic.tasks.TopicTask;
import gr.thmmy.mthmmy.base.BaseActivity;
import gr.thmmy.mthmmy.model.Bookmark;
import gr.thmmy.mthmmy.model.Post;
diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicParser.java b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicParser.java
index a753fc8c..dd354bf7 100644
--- a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicParser.java
+++ b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicParser.java
@@ -28,7 +28,7 @@ import timber.log.Timber;
*
{@link #parseTopicNumberOfPages(Document, int, ParseHelpers.Language)}
* {@link #parseTopic(Document, ParseHelpers.Language)}
*/
-class TopicParser {
+public class TopicParser {
//User colors
private static final int USER_COLOR_BLACK = Color.parseColor("#000000");
private static final int USER_COLOR_RED = Color.parseColor("#F44336");
@@ -48,7 +48,7 @@ class TopicParser {
* @return String containing html with the usernames of users
* @see org.jsoup.Jsoup Jsoup
*/
- static String parseUsersViewingThisTopic(Document topic, ParseHelpers.Language language) {
+ public static String parseUsersViewingThisTopic(Document topic, ParseHelpers.Language language) {
if (language.is(ParseHelpers.Language.GREEK))
return topic.select("td:containsOwn(διαβάζουν αυτό το θέμα)").first().html();
return topic.select("td:containsOwn(are viewing this topic)").first().html();
@@ -64,7 +64,7 @@ class TopicParser {
* @return int containing parsed topic's current page
* @see org.jsoup.Jsoup Jsoup
*/
- static int parseCurrentPageIndex(Document topic, ParseHelpers.Language language) {
+ public static int parseCurrentPageIndex(Document topic, ParseHelpers.Language language) {
int parsedPage = 1;
if (language.is(ParseHelpers.Language.GREEK)) {
@@ -102,7 +102,7 @@ class TopicParser {
* @return int containing the number of pages
* @see org.jsoup.Jsoup Jsoup
*/
- static int parseTopicNumberOfPages(Document topic, int currentPage, ParseHelpers.Language language) {
+ public static int parseTopicNumberOfPages(Document topic, int currentPage, ParseHelpers.Language language) {
int returnPages = 1;
if (language.is(ParseHelpers.Language.GREEK)) {
@@ -140,7 +140,7 @@ class TopicParser {
* @return {@link ArrayList} of {@link Post}s
* @see org.jsoup.Jsoup Jsoup
*/
- static ArrayList parseTopic(Document topic, ParseHelpers.Language language) {
+ public static ArrayList parseTopic(Document topic, ParseHelpers.Language language) {
//Method's variables
final int NO_INDEX = -1;
ArrayList parsedPostsList = new ArrayList<>();
diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/DeleteTask.java b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/DeleteTask.java
similarity index 91%
rename from app/src/main/java/gr/thmmy/mthmmy/activities/topic/DeleteTask.java
rename to app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/DeleteTask.java
index 7c74d17a..5d4a0531 100644
--- a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/DeleteTask.java
+++ b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/DeleteTask.java
@@ -1,17 +1,16 @@
-package gr.thmmy.mthmmy.activities.topic;
+package gr.thmmy.mthmmy.activities.topic.tasks;
import android.os.AsyncTask;
import java.io.IOException;
+import gr.thmmy.mthmmy.activities.topic.Posting;
import gr.thmmy.mthmmy.base.BaseApplication;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import timber.log.Timber;
-import static gr.thmmy.mthmmy.activities.topic.Posting.replyStatus;
-
public class DeleteTask extends AsyncTask {
private DeleteTaskCallbacks listener;
@@ -37,7 +36,7 @@ public class DeleteTask extends AsyncTask {
client.newCall(delete).execute();
Response response = client.newCall(delete).execute();
//Response response = client.newCall(delete).execute();
- switch (replyStatus(response)) {
+ switch (Posting.replyStatus(response)) {
case SUCCESSFUL:
return true;
default:
diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/EditTask.java b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/EditTask.java
similarity index 98%
rename from app/src/main/java/gr/thmmy/mthmmy/activities/topic/EditTask.java
rename to app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/EditTask.java
index 4d4802b3..f9fe5444 100644
--- a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/EditTask.java
+++ b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/EditTask.java
@@ -1,4 +1,4 @@
-package gr.thmmy.mthmmy.activities.topic;
+package gr.thmmy.mthmmy.activities.topic.tasks;
import android.os.AsyncTask;
diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/PrepareForEditResult.java b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/PrepareForEditResult.java
similarity index 96%
rename from app/src/main/java/gr/thmmy/mthmmy/activities/topic/PrepareForEditResult.java
rename to app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/PrepareForEditResult.java
index 0c3f9dec..a8176072 100644
--- a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/PrepareForEditResult.java
+++ b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/PrepareForEditResult.java
@@ -1,4 +1,4 @@
-package gr.thmmy.mthmmy.activities.topic;
+package gr.thmmy.mthmmy.activities.topic.tasks;
public class PrepareForEditResult {
private final String postText, commitEditUrl, numReplies, seqnum, sc, topic;
diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/PrepareForEditTask.java b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/PrepareForEditTask.java
similarity index 96%
rename from app/src/main/java/gr/thmmy/mthmmy/activities/topic/PrepareForEditTask.java
rename to app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/PrepareForEditTask.java
index f1933cce..7259d580 100644
--- a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/PrepareForEditTask.java
+++ b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/PrepareForEditTask.java
@@ -1,4 +1,4 @@
-package gr.thmmy.mthmmy.activities.topic;
+package gr.thmmy.mthmmy.activities.topic.tasks;
import android.os.AsyncTask;
@@ -9,6 +9,7 @@ import org.jsoup.select.Selector;
import java.io.IOException;
+import gr.thmmy.mthmmy.activities.topic.tasks.PrepareForEditResult;
import gr.thmmy.mthmmy.base.BaseApplication;
import okhttp3.OkHttpClient;
import okhttp3.Request;
diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/PrepareForReply.java b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/PrepareForReply.java
similarity index 98%
rename from app/src/main/java/gr/thmmy/mthmmy/activities/topic/PrepareForReply.java
rename to app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/PrepareForReply.java
index 87d8f4ab..a6ea37a1 100644
--- a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/PrepareForReply.java
+++ b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/PrepareForReply.java
@@ -1,4 +1,4 @@
-package gr.thmmy.mthmmy.activities.topic;
+package gr.thmmy.mthmmy.activities.topic.tasks;
import android.os.AsyncTask;
diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/PrepareForReplyResult.java b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/PrepareForReplyResult.java
similarity index 93%
rename from app/src/main/java/gr/thmmy/mthmmy/activities/topic/PrepareForReplyResult.java
rename to app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/PrepareForReplyResult.java
index 24364d49..b15f77a0 100644
--- a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/PrepareForReplyResult.java
+++ b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/PrepareForReplyResult.java
@@ -1,4 +1,4 @@
-package gr.thmmy.mthmmy.activities.topic;
+package gr.thmmy.mthmmy.activities.topic.tasks;
public class PrepareForReplyResult {
private final String numReplies, seqnum, sc, topic, buildedQuotes;
diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/ReplyTask.java b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/ReplyTask.java
similarity index 98%
rename from app/src/main/java/gr/thmmy/mthmmy/activities/topic/ReplyTask.java
rename to app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/ReplyTask.java
index 08e6f748..69bd0035 100644
--- a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/ReplyTask.java
+++ b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/ReplyTask.java
@@ -1,4 +1,4 @@
-package gr.thmmy.mthmmy.activities.topic;
+package gr.thmmy.mthmmy.activities.topic.tasks;
import android.os.AsyncTask;
diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicTask.java b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/TopicTask.java
similarity index 99%
rename from app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicTask.java
rename to app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/TopicTask.java
index 74f2c23a..c262a326 100644
--- a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicTask.java
+++ b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/TopicTask.java
@@ -1,4 +1,4 @@
-package gr.thmmy.mthmmy.activities.topic;
+package gr.thmmy.mthmmy.activities.topic.tasks;
import android.os.AsyncTask;
import android.util.SparseArray;
@@ -11,6 +11,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.Objects;
+import gr.thmmy.mthmmy.activities.topic.TopicParser;
import gr.thmmy.mthmmy.base.BaseApplication;
import gr.thmmy.mthmmy.model.Post;
import gr.thmmy.mthmmy.model.ThmmyPage;
diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicTaskResult.java b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/TopicTaskResult.java
similarity index 96%
rename from app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicTaskResult.java
rename to app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/TopicTaskResult.java
index 4756c7e0..65b1d996 100644
--- a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicTaskResult.java
+++ b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/TopicTaskResult.java
@@ -1,9 +1,10 @@
-package gr.thmmy.mthmmy.activities.topic;
+package gr.thmmy.mthmmy.activities.topic.tasks;
import android.util.SparseArray;
import java.util.ArrayList;
+import gr.thmmy.mthmmy.activities.topic.tasks.TopicTask;
import gr.thmmy.mthmmy.model.Post;
public class TopicTaskResult {
diff --git a/app/src/main/java/gr/thmmy/mthmmy/viewmodel/TopicViewModel.java b/app/src/main/java/gr/thmmy/mthmmy/viewmodel/TopicViewModel.java
index 7f0c805e..740dd1d2 100644
--- a/app/src/main/java/gr/thmmy/mthmmy/viewmodel/TopicViewModel.java
+++ b/app/src/main/java/gr/thmmy/mthmmy/viewmodel/TopicViewModel.java
@@ -9,22 +9,24 @@ import android.preference.PreferenceManager;
import java.util.ArrayList;
import gr.thmmy.mthmmy.activities.settings.SettingsActivity;
-import gr.thmmy.mthmmy.activities.topic.DeleteTask;
-import gr.thmmy.mthmmy.activities.topic.EditTask;
-import gr.thmmy.mthmmy.activities.topic.PrepareForReply;
-import gr.thmmy.mthmmy.activities.topic.PrepareForReplyResult;
-import gr.thmmy.mthmmy.activities.topic.PrepareForEditResult;
-import gr.thmmy.mthmmy.activities.topic.PrepareForEditTask;
-import gr.thmmy.mthmmy.activities.topic.ReplyTask;
-import gr.thmmy.mthmmy.activities.topic.TopicTask;
-import gr.thmmy.mthmmy.activities.topic.TopicTaskResult;
+import gr.thmmy.mthmmy.activities.topic.tasks.DeleteTask;
+import gr.thmmy.mthmmy.activities.topic.tasks.EditTask;
+import gr.thmmy.mthmmy.activities.topic.tasks.PrepareForReply;
+import gr.thmmy.mthmmy.activities.topic.tasks.PrepareForReplyResult;
+import gr.thmmy.mthmmy.activities.topic.tasks.PrepareForEditResult;
+import gr.thmmy.mthmmy.activities.topic.tasks.PrepareForEditTask;
+import gr.thmmy.mthmmy.activities.topic.tasks.ReplyTask;
+import gr.thmmy.mthmmy.activities.topic.tasks.TopicTask;
+import gr.thmmy.mthmmy.activities.topic.tasks.TopicTaskResult;
import gr.thmmy.mthmmy.base.BaseActivity;
import gr.thmmy.mthmmy.model.Post;
import gr.thmmy.mthmmy.session.SessionManager;
public class TopicViewModel extends BaseViewModel implements TopicTask.OnTopicTaskCompleted,
PrepareForReply.OnPrepareForReplyFinished, PrepareForEditTask.OnPrepareEditFinished {
-
+ /**
+ * topic state
+ */
private boolean editingPost = false;
private boolean writingReply = false;
/**
@@ -36,6 +38,7 @@ public class TopicViewModel extends BaseViewModel implements TopicTask.OnTopicTa
private PrepareForEditTask currentPrepareForEditTask;
private PrepareForReply currentPrepareForReplyTask;
+ //callbacks for topic activity
private TopicTask.TopicTaskObserver topicTaskObserver;
private DeleteTask.DeleteTaskCallbacks deleteTaskCallbacks;
private ReplyTask.ReplyTaskCallbacks replyFinishListener;
@@ -49,116 +52,6 @@ public class TopicViewModel extends BaseViewModel implements TopicTask.OnTopicTa
private String firstTopicUrl;
- public void setTopicTaskObserver(TopicTask.TopicTaskObserver topicTaskObserver) {
- this.topicTaskObserver = topicTaskObserver;
- }
-
- public void setDeleteTaskCallbacks(DeleteTask.DeleteTaskCallbacks deleteTaskCallbacks) {
- this.deleteTaskCallbacks = deleteTaskCallbacks;
- }
-
- public void setReplyFinishListener(ReplyTask.ReplyTaskCallbacks replyFinishListener) {
- this.replyFinishListener = replyFinishListener;
- }
-
- public void setPrepareForEditCallbacks(PrepareForEditTask.PrepareForEditCallbacks prepareForEditCallbacks) {
- this.prepareForEditCallbacks = prepareForEditCallbacks;
- }
-
- public void setEditTaskCallbacks(EditTask.EditTaskCallbacks editTaskCallbacks) {
- this.editTaskCallbacks = editTaskCallbacks;
- }
-
- public void setPrepareForReplyCallbacks(PrepareForReply.PrepareForReplyCallbacks prepareForReplyCallbacks) {
- this.prepareForReplyCallbacks = prepareForReplyCallbacks;
- }
-
- public MutableLiveData getTopicTaskResult() {
- return topicTaskResult;
- }
-
- public MutableLiveData getPrepareForReplyResult() {
- return prepareForReplyResult;
- }
-
- public MutableLiveData getPrepareForEditResult() {
- return prepareForEditResult;
- }
-
- public void setEditingPost(boolean editingPost) {
- this.editingPost = editingPost;
- }
-
- public boolean isEditingPost() {
- return editingPost;
- }
-
- public int getPostBeingEditedPosition() {
- return postBeingEditedPosition;
- }
-
- public boolean canReply() {
- return topicTaskResult.getValue() != null && topicTaskResult.getValue().getReplyPageUrl() != null;
- }
-
- public boolean isWritingReply() {
- return writingReply;
- }
-
- public void setWritingReply(boolean writingReply) {
- this.writingReply = writingReply;
- }
-
- public String getBaseUrl() {
- if (topicTaskResult.getValue() != null) {
- return topicTaskResult.getValue().getBaseUrl();
- } else {
- return "";
- }
- }
-
- public String getTopicUrl() {
- if (topicTaskResult.getValue() != null) {
- return topicTaskResult.getValue().getLastPageLoadAttemptedUrl();
- } else {
- // topic task has not finished yet (log? disable menu button until load is finished?)
- return firstTopicUrl;
- }
- }
-
- public String getTopicTitle() {
- if (topicTaskResult.getValue() == null)
- throw new NullPointerException("Topic task has not finished yet!");
- return topicTaskResult.getValue().getTopicTitle();
- }
-
- public int getCurrentPageIndex() {
- if (topicTaskResult.getValue() == null)
- throw new NullPointerException("No page has been loaded yet!");
- return topicTaskResult.getValue().getCurrentPageIndex();
- }
-
- public int getPageCount() {
- if (topicTaskResult.getValue() == null)
- throw new NullPointerException("No page has been loaded yet!");
-
- return topicTaskResult.getValue().getPageCount();
- }
-
- public String getPostBeingEditedText() {
- if (prepareForEditResult.getValue() == null)
- throw new NullPointerException("Edit preparation was not found!");
- return prepareForEditResult.getValue().getPostText();
- }
-
- public String getBuildedQuotes() {
- if (prepareForReplyResult.getValue() != null) {
- return prepareForReplyResult.getValue().getBuildedQuotes();
- } else {
- return "";
- }
- }
-
public void initialLoad(String pageUrl) {
firstTopicUrl = pageUrl;
currentTopicTask = new TopicTask(topicTaskObserver, this);
@@ -257,6 +150,7 @@ public class TopicViewModel extends BaseViewModel implements TopicTask.OnTopicTa
// after he is done posting, editing or deleting
}
+ // callbacks for viewmodel
@Override
public void onTopicTaskCompleted(TopicTaskResult result) {
topicTaskResult.setValue(result);
@@ -274,4 +168,116 @@ public class TopicViewModel extends BaseViewModel implements TopicTask.OnTopicTa
postBeingEditedPosition = position;
prepareForEditResult.setValue(result);
}
+
+ // <-------------Just getters, setters and helper methods below here---------------->
+
+ public void setTopicTaskObserver(TopicTask.TopicTaskObserver topicTaskObserver) {
+ this.topicTaskObserver = topicTaskObserver;
+ }
+
+ public void setDeleteTaskCallbacks(DeleteTask.DeleteTaskCallbacks deleteTaskCallbacks) {
+ this.deleteTaskCallbacks = deleteTaskCallbacks;
+ }
+
+ public void setReplyFinishListener(ReplyTask.ReplyTaskCallbacks replyFinishListener) {
+ this.replyFinishListener = replyFinishListener;
+ }
+
+ public void setPrepareForEditCallbacks(PrepareForEditTask.PrepareForEditCallbacks prepareForEditCallbacks) {
+ this.prepareForEditCallbacks = prepareForEditCallbacks;
+ }
+
+ public void setEditTaskCallbacks(EditTask.EditTaskCallbacks editTaskCallbacks) {
+ this.editTaskCallbacks = editTaskCallbacks;
+ }
+
+ public void setPrepareForReplyCallbacks(PrepareForReply.PrepareForReplyCallbacks prepareForReplyCallbacks) {
+ this.prepareForReplyCallbacks = prepareForReplyCallbacks;
+ }
+
+ public MutableLiveData getTopicTaskResult() {
+ return topicTaskResult;
+ }
+
+ public MutableLiveData getPrepareForReplyResult() {
+ return prepareForReplyResult;
+ }
+
+ public MutableLiveData getPrepareForEditResult() {
+ return prepareForEditResult;
+ }
+
+ public void setEditingPost(boolean editingPost) {
+ this.editingPost = editingPost;
+ }
+
+ public boolean isEditingPost() {
+ return editingPost;
+ }
+
+ public int getPostBeingEditedPosition() {
+ return postBeingEditedPosition;
+ }
+
+ public boolean canReply() {
+ return topicTaskResult.getValue() != null && topicTaskResult.getValue().getReplyPageUrl() != null;
+ }
+
+ public boolean isWritingReply() {
+ return writingReply;
+ }
+
+ public void setWritingReply(boolean writingReply) {
+ this.writingReply = writingReply;
+ }
+
+ public String getBaseUrl() {
+ if (topicTaskResult.getValue() != null) {
+ return topicTaskResult.getValue().getBaseUrl();
+ } else {
+ return "";
+ }
+ }
+
+ public String getTopicUrl() {
+ if (topicTaskResult.getValue() != null) {
+ return topicTaskResult.getValue().getLastPageLoadAttemptedUrl();
+ } else {
+ // topic task has not finished yet (log? disable menu button until load is finished?)
+ return firstTopicUrl;
+ }
+ }
+
+ public String getTopicTitle() {
+ if (topicTaskResult.getValue() == null)
+ throw new NullPointerException("Topic task has not finished yet!");
+ return topicTaskResult.getValue().getTopicTitle();
+ }
+
+ public int getCurrentPageIndex() {
+ if (topicTaskResult.getValue() == null)
+ throw new NullPointerException("No page has been loaded yet!");
+ return topicTaskResult.getValue().getCurrentPageIndex();
+ }
+
+ public int getPageCount() {
+ if (topicTaskResult.getValue() == null)
+ throw new NullPointerException("No page has been loaded yet!");
+
+ return topicTaskResult.getValue().getPageCount();
+ }
+
+ public String getPostBeingEditedText() {
+ if (prepareForEditResult.getValue() == null)
+ throw new NullPointerException("Edit preparation was not found!");
+ return prepareForEditResult.getValue().getPostText();
+ }
+
+ public String getBuildedQuotes() {
+ if (prepareForReplyResult.getValue() != null) {
+ return prepareForReplyResult.getValue().getBuildedQuotes();
+ } else {
+ return "";
+ }
+ }
}