diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/main/recent/RecentFragment.java b/app/src/main/java/gr/thmmy/mthmmy/activities/main/recent/RecentFragment.java
index 4f4517d1..6e14b79b 100644
--- a/app/src/main/java/gr/thmmy/mthmmy/activities/main/recent/RecentFragment.java
+++ b/app/src/main/java/gr/thmmy/mthmmy/activities/main/recent/RecentFragment.java
@@ -22,6 +22,7 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
import gr.thmmy.mthmmy.R;
+import gr.thmmy.mthmmy.base.BaseApplication;
import gr.thmmy.mthmmy.base.BaseFragment;
import gr.thmmy.mthmmy.model.TopicSummary;
import gr.thmmy.mthmmy.session.SessionManager;
@@ -146,9 +147,9 @@ public class RecentFragment extends BaseFragment {
topicSummaries.addAll(fetchedRecent);
recentAdapter.notifyDataSetChanged();
} else if (resultCode == NetworkResultCodes.NETWORK_ERROR) {
- Toast.makeText(getContext(), "Network error", Toast.LENGTH_SHORT).show();
+ Toast.makeText(BaseApplication.getInstance().getApplicationContext(), "Network error", Toast.LENGTH_SHORT).show();
} else {
- Toast.makeText(getContext(), "Unexpected error," +
+ Toast.makeText(BaseApplication.getInstance().getApplicationContext(), "Unexpected error," +
" please contact the developers with the details", Toast.LENGTH_LONG).show();
}
diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/main/unread/UnreadFragment.java b/app/src/main/java/gr/thmmy/mthmmy/activities/main/unread/UnreadFragment.java
index cec14e97..1db4131e 100644
--- a/app/src/main/java/gr/thmmy/mthmmy/activities/main/unread/UnreadFragment.java
+++ b/app/src/main/java/gr/thmmy/mthmmy/activities/main/unread/UnreadFragment.java
@@ -143,11 +143,12 @@ public class UnreadFragment extends BaseFragment {
@Override
public void onDestroy() {
super.onDestroy();
- if (unreadTask.isRunning())
+ if (unreadTask!=null && unreadTask.isRunning())
unreadTask.cancel(true);
- if (markReadTask.isRunning())
+ if (markReadTask!=null && markReadTask.isRunning())
markReadTask.cancel(true);
- topicSummaries.clear();
+ if(topicSummaries!=null)
+ topicSummaries.clear();
}
public interface UnreadFragmentInteractionListener extends FragmentInteractionListener {
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 88c2f8a3..6fb1cc3f 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
@@ -2,6 +2,7 @@ package gr.thmmy.mthmmy.activities.topic;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
+import org.jsoup.nodes.Element;
import java.io.IOException;
@@ -60,22 +61,24 @@ public class Posting {
String finalUrl = response.request().url().toString();
if (finalUrl.contains("action=post")) {
Document postErrorPage = Jsoup.parse(response.body().string());
- String[] errors = postErrorPage.select("tr[id=errors] div[id=error_list]").first()
- .toString().split("
");
- for (int i = 0; i < errors.length; ++i) { //TODO test
- Timber.d(String.valueOf(i));
- Timber.d(errors[i]);
- }
- for (String error : errors) {
- if (error.contains("Your session timed out while posting") ||
- error.contains("Υπερβήκατε τον μέγιστο χρόνο σύνδεσης κατά την αποστολή"))
- return REPLY_STATUS.SESSION_ENDED;
- if (error.contains("No subject was filled in")
- || error.contains("Δεν δόθηκε τίτλος"))
- return REPLY_STATUS.NO_SUBJECT;
- if (error.contains("The message body was left empty")
- || error.contains("Δεν δόθηκε κείμενο για το μήνυμα"))
- return REPLY_STATUS.EMPTY_BODY;
+ Element errorsElement = postErrorPage.select("tr[id=errors] div[id=error_list]").first();
+ if(errorsElement!=null){
+ String[] errors = errorsElement.toString().split("
");
+ for (int i = 0; i < errors.length; ++i) { //TODO test
+ Timber.d(String.valueOf(i));
+ Timber.d(errors[i]);
+ }
+ for (String error : errors) {
+ if (error.contains("Your session timed out while posting") ||
+ error.contains("Υπερβήκατε τον μέγιστο χρόνο σύνδεσης κατά την αποστολή"))
+ return REPLY_STATUS.SESSION_ENDED;
+ if (error.contains("No subject was filled in")
+ || error.contains("Δεν δόθηκε τίτλος"))
+ return REPLY_STATUS.NO_SUBJECT;
+ if (error.contains("The message body was left empty")
+ || error.contains("Δεν δόθηκε κείμενο για το μήνυμα"))
+ return REPLY_STATUS.EMPTY_BODY;
+ }
}
return REPLY_STATUS.NEW_REPLY_WHILE_POSTING;
}
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 d3d97663..e0e52b3e 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
@@ -42,7 +42,7 @@ import java.util.ArrayList;
import gr.thmmy.mthmmy.R;
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.PrepareForReplyTask;
import gr.thmmy.mthmmy.activities.topic.tasks.ReplyTask;
import gr.thmmy.mthmmy.activities.topic.tasks.TopicTask;
import gr.thmmy.mthmmy.base.BaseActivity;
@@ -618,7 +618,7 @@ public class TopicActivity extends BaseActivity implements TopicAdapter.OnPostFo
}
}
});
- viewModel.setPrepareForReplyCallbacks(new PrepareForReply.PrepareForReplyCallbacks() {
+ viewModel.setPrepareForReplyCallbacks(new PrepareForReplyTask.PrepareForReplyCallbacks() {
@Override
public void onPrepareForReplyStarted() {
progressBar.setVisibility(ProgressBar.VISIBLE);
diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/PrepareForReply.java b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/PrepareForReplyTask.java
similarity index 83%
rename from app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/PrepareForReply.java
rename to app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/PrepareForReplyTask.java
index bf5e12e0..36024a7e 100644
--- a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/PrepareForReply.java
+++ b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/tasks/PrepareForReplyTask.java
@@ -15,13 +15,13 @@ import okhttp3.Request;
import okhttp3.Response;
import timber.log.Timber;
-public class PrepareForReply extends AsyncTask {
+public class PrepareForReplyTask extends AsyncTask {
private PrepareForReplyCallbacks listener;
private OnPrepareForReplyFinished finishListener;
private String replyPageUrl;
- public PrepareForReply(PrepareForReplyCallbacks listener, OnPrepareForReplyFinished finishListener,
- String replyPageUrl) {
+ public PrepareForReplyTask(PrepareForReplyCallbacks listener, OnPrepareForReplyFinished finishListener,
+ String replyPageUrl) {
this.listener = listener;
this.finishListener = finishListener;
this.replyPageUrl = replyPageUrl;
@@ -49,12 +49,16 @@ public class PrepareForReply extends AsyncTask voteTaskFinishedListener;
private ExternalAsyncTask.OnTaskStartedListener removeVoteTaskStartedListener;
@@ -177,7 +177,7 @@ public class TopicViewModel extends BaseViewModel implements TopicTask.OnTopicTa
stopLoading();
setPageIndicatorIndex(pageCount, true);
Timber.i("Preparing for reply");
- currentPrepareForReplyTask = new PrepareForReply(prepareForReplyCallbacks, this,
+ currentPrepareForReplyTask = new PrepareForReplyTask(prepareForReplyCallbacks, this,
replyPageUrl.getValue());
currentPrepareForReplyTask.execute(toQuoteList.toArray(new Integer[0]));
}
@@ -424,7 +424,7 @@ public class TopicViewModel extends BaseViewModel implements TopicTask.OnTopicTa
this.editTaskCallbacks = editTaskCallbacks;
}
- public void setPrepareForReplyCallbacks(PrepareForReply.PrepareForReplyCallbacks prepareForReplyCallbacks) {
+ public void setPrepareForReplyCallbacks(PrepareForReplyTask.PrepareForReplyCallbacks prepareForReplyCallbacks) {
this.prepareForReplyCallbacks = prepareForReplyCallbacks;
}