Skip to content

Commit d62ce1f

Browse files
Add better error handling if Web API returns Version 0
1 parent e1c0f33 commit d62ce1f

File tree

2 files changed

+25
-9
lines changed

2 files changed

+25
-9
lines changed

News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/LoginDialogFragment.java

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,11 @@
3434
import android.support.v7.app.AlertDialog;
3535
import android.text.Editable;
3636
import android.text.InputType;
37+
import android.text.SpannableString;
3738
import android.text.TextUtils;
3839
import android.text.TextWatcher;
40+
import android.text.method.LinkMovementMethod;
41+
import android.text.util.Linkify;
3942
import android.view.LayoutInflater;
4043
import android.view.View;
4144
import android.view.WindowManager;
@@ -45,6 +48,7 @@
4548
import android.widget.CompoundButton.OnCheckedChangeListener;
4649
import android.widget.EditText;
4750
import android.widget.ImageView;
51+
import android.widget.TextView;
4852

4953
import java.net.MalformedURLException;
5054
import java.net.URL;
@@ -375,14 +379,17 @@ protected void onPostExecute(final Integer versionCode) {
375379
mDialogLogin.dismiss();
376380

377381
if(versionCode == -1 && exception_message.equals("Value <!DOCTYPE of type java.lang.String cannot be converted to JSONObject")) {
378-
if(isAdded())
382+
if(isAdded()) {
379383
ShowAlertDialog(getString(R.string.login_dialog_title_error), getString(R.string.login_dialog_text_not_compatible), getActivity());
384+
}
380385
} else if(versionCode == -1) {
381-
if(isAdded())
386+
if(isAdded()) {
382387
ShowAlertDialog(getString(R.string.login_dialog_title_error), exception_message, getActivity());
388+
}
383389
} else if(versionCode == 0){
384-
if(isAdded())
385-
ShowAlertDialog(getString(R.string.login_dialog_title_error), getString(R.string.login_dialog_text_something_went_wrong), getActivity());
390+
if(isAdded()) {
391+
ShowAlertDialog(getString(R.string.login_dialog_title_error), getString(R.string.login_dialog_text_zero_version_code), getActivity());
392+
}
386393
} else {
387394
//Reset Database
388395
DatabaseConnectionOrm dbConn = new DatabaseConnectionOrm(getActivity());
@@ -414,10 +421,18 @@ protected void onCancelled() {
414421

415422
public static void ShowAlertDialog(String title, String text, Activity activity)
416423
{
417-
AlertDialog.Builder aDialog = new AlertDialog.Builder(activity);
418-
aDialog.setTitle(title);
419-
aDialog.setMessage(text);
420-
aDialog.setPositiveButton(activity.getString(android.R.string.ok) , null);
421-
aDialog.create().show();
424+
// Linkify the message
425+
final SpannableString s = new SpannableString(text);
426+
Linkify.addLinks(s, Linkify.ALL);
427+
428+
AlertDialog aDialog = new AlertDialog.Builder(activity)
429+
.setTitle(title)
430+
.setMessage(s)
431+
.setPositiveButton(activity.getString(android.R.string.ok) , null)
432+
.create();
433+
aDialog.show();
434+
435+
// Make the textview clickable. Must be called after show()
436+
((TextView)aDialog.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance());
422437
}
423438
}

News-Android-App/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,7 @@
212212
<!-- Login Dialog -->
213213
<string name="login_dialog_title_error">Error</string>
214214
<string name="login_dialog_text_something_went_wrong">Something went wrong :(</string>
215+
<string name="login_dialog_text_zero_version_code">The Web News App returned Version "0". Please take a look at the following bug report: https://github.com/nextcloud/news/issues/5#issuecomment-242883795</string>
215216
<string name="login_dialog_text_not_compatible">This App version is not compatible with your ownCloud News App. Please update the news app and the appframework.</string>
216217
<string name="login_dialog_title_security_warning">Security Warning</string>
217218
<string name="login_dialog_text_security_warning">You\'re not using https. An attacker could intercept your traffic and gain access to some sensitive data (e.g. your password). So it\'s strongly recommend to use https!</string>

0 commit comments

Comments
 (0)