mirror of
https://github.com/TrianguloY/UrlChecker.git
synced 2024-09-19 20:02:16 +02:00
don't crash (in production) if a module fails to update
This commit is contained in:
parent
f03543b8ec
commit
a948e85e0a
@ -4,13 +4,12 @@ import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.trianguloy.urlchecker.BuildConfig;
|
||||
import com.trianguloy.urlchecker.R;
|
||||
import com.trianguloy.urlchecker.utilities.AndroidUtils;
|
||||
import com.trianguloy.urlchecker.utilities.PackageUtilities;
|
||||
|
||||
/**
|
||||
@ -52,9 +51,7 @@ public class MainActivity extends Activity {
|
||||
Toast.makeText(this, getString(R.string.app_name) + ", by TrianguloY", Toast.LENGTH_SHORT).show();
|
||||
break;
|
||||
default:
|
||||
Log.d("SWITCH", view.toString());
|
||||
if (BuildConfig.DEBUG)
|
||||
Toast.makeText(this, "Unknown view: " + view, Toast.LENGTH_LONG).show();
|
||||
AndroidUtils.assertError("Unknown view: " + view);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -11,11 +11,11 @@ import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.trianguloy.urlchecker.BuildConfig;
|
||||
import com.trianguloy.urlchecker.R;
|
||||
import com.trianguloy.urlchecker.modules.AModuleData;
|
||||
import com.trianguloy.urlchecker.modules.AModuleDialog;
|
||||
import com.trianguloy.urlchecker.modules.ModuleManager;
|
||||
import com.trianguloy.urlchecker.utilities.AndroidUtils;
|
||||
import com.trianguloy.urlchecker.utilities.Inflater;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@ -43,13 +43,7 @@ public class MainDialog extends Activity {
|
||||
public void setUrl(String url, AModuleDialog providerModule) {
|
||||
if (onSettingUrl) {
|
||||
// a recursive call, invalid
|
||||
if (BuildConfig.DEBUG) {
|
||||
// in debug mode, assert
|
||||
throw new AssertionError("Attempting to change an url inside a setUrl call");
|
||||
} else {
|
||||
// non-debug, just discard
|
||||
return;
|
||||
}
|
||||
AndroidUtils.assertError("Attempting to change an url inside a setUrl call");
|
||||
}
|
||||
|
||||
if (url == null) url = "";
|
||||
@ -199,8 +193,13 @@ public class MainDialog extends Activity {
|
||||
*/
|
||||
private void onChangedUrl(AModuleDialog providerModule) {
|
||||
for (AModuleDialog module : modules) {
|
||||
if (module != providerModule)
|
||||
module.onNewUrl(getUrl());
|
||||
if (module != providerModule) {
|
||||
try {
|
||||
module.onNewUrl(getUrl());
|
||||
} catch (Exception e) {
|
||||
AndroidUtils.assertError("Exception in onNewUrl for module " + providerModule.getClass().getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,23 @@
|
||||
package com.trianguloy.urlchecker.utilities;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
import com.trianguloy.urlchecker.BuildConfig;
|
||||
|
||||
/**
|
||||
* Generic Android utilities
|
||||
*/
|
||||
public class AndroidUtils {
|
||||
|
||||
/**
|
||||
* In debug mode, throws an AssertionError, in production just logs it and continues.
|
||||
*/
|
||||
public static void assertError(String detailMessage) {
|
||||
Log.d("ASSERT_ERROR", detailMessage);
|
||||
if (BuildConfig.DEBUG) {
|
||||
// in debug mode, throw exception
|
||||
throw new AssertionError(detailMessage);
|
||||
}
|
||||
// non-debug, just discard
|
||||
}
|
||||
}
|
@ -2,7 +2,6 @@ package com.trianguloy.urlchecker.utilities;
|
||||
|
||||
import android.animation.LayoutTransition;
|
||||
import android.os.Build;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
@ -14,10 +13,10 @@ public class Animations {
|
||||
if (lt != null) {
|
||||
lt.enableTransitionType(LayoutTransition.CHANGING);
|
||||
} else {
|
||||
Log.d("ANIMATION", view + " doesn't have a LayoutTransition");
|
||||
AndroidUtils.assertError(view + " doesn't have a LayoutTransition");
|
||||
}
|
||||
} else {
|
||||
Log.d("ANIMATION", view + " isn't a ViewGroup");
|
||||
AndroidUtils.assertError(view + " isn't a ViewGroup");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -88,7 +88,7 @@ This module can\'t be disabled."</string>
|
||||
<string name="mVT_connectError">Can\'t connect to VirusTotal. Make sure you have an active internet connection or try again later.</string>
|
||||
<string name="mVT_jsonError">Can\'t connect to VirusTotal. Make sure the api key is valid or try again later.</string>
|
||||
|
||||
<string name="mD_name">Debug module / Marker module</string>
|
||||
<string name="mD_name">Debug/Marker module</string>
|
||||
<string name="mD_desc">If you reorder the modules, new ones added in future updates will be placed before this.\n\nIf you enable this it will display the received intent as uri, useful for developers.</string>
|
||||
<string name="mD_ctabs">Show debug messages from the custom tabs service</string>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user