Skip to content

Commit

Permalink
Merge pull request #631 from F43nd1r/dev
Browse files Browse the repository at this point in the history
Dev 5.1.0
  • Loading branch information
F43nd1r committed Feb 4, 2018
2 parents b5d282d + 14ce55f commit 395795c
Show file tree
Hide file tree
Showing 118 changed files with 2,140 additions and 1,668 deletions.
1 change: 0 additions & 1 deletion acra-core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ android {
}

dependencies {
//noinspection GradleDependency
implementation "com.android.support:support-compat:$supportVersion"
api project(':acra-javacore')
compileOnly "com.google.auto.service:auto-service:$autoServiceVersion"
Expand Down
1 change: 1 addition & 0 deletions acra-core/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
<service
android:name="org.acra.sender.SenderService"
android:exported="false"
android:permission="android.permission.BIND_JOB_SERVICE"
android:process=":acra" />

<provider
Expand Down
12 changes: 6 additions & 6 deletions acra-core/src/main/java/org/acra/ACRA.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@
import org.acra.log.AndroidLogDelegate;
import org.acra.prefs.SharedPreferencesFactory;
import org.acra.reporter.ErrorReporterImpl;
import org.acra.reporter.ErrorReporterStub;
import org.acra.util.ApplicationStartupProcessor;
import org.acra.util.StreamReader;
import org.acra.util.StubCreator;

import java.io.IOException;

Expand Down Expand Up @@ -108,7 +108,7 @@ private ACRA() {
public static final String PREF_LAST_VERSION_NR = "acra.lastVersionNr";

@NonNull
private static ErrorReporter errorReporterSingleton = new ErrorReporterStub();
private static ErrorReporter errorReporterSingleton = StubCreator.createErrorReporterStub();

/**
* <p>
Expand Down Expand Up @@ -200,10 +200,10 @@ public static void init(@NonNull Application app, @NonNull CoreConfiguration con
log.d(LOG_TAG, "Not initialising ACRA to listen for uncaught Exceptions as this is the SendWorker process and we only send reports, we don't capture them to avoid infinite loops");
}

final boolean supportedAndroidVersion = Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD;
final boolean supportedAndroidVersion = Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH;
if (!supportedAndroidVersion) {
// NB We keep initialising so that everything is configured. But ACRA is never enabled below.
log.w(LOG_TAG, "ACRA 5.0.0+ requires Gingerbread or greater. ACRA is disabled and will NOT catch crashes or send messages.");
log.w(LOG_TAG, "ACRA 5.1.0+ requires ICS or greater. ACRA is disabled and will NOT catch crashes or send messages.");
}

if (isInitialised()) {
Expand All @@ -222,7 +222,7 @@ public static void init(@NonNull Application app, @NonNull CoreConfiguration con
new LegacyFileHandler(app, prefs).updateToCurrentVersionIfNecessary();
if (!senderServiceProcess) {
// Initialize ErrorReporter with all required data
final boolean enableAcra = supportedAndroidVersion && !SharedPreferencesFactory.shouldDisableACRA(prefs);
final boolean enableAcra = supportedAndroidVersion && SharedPreferencesFactory.shouldEnableACRA(prefs);
// Indicate that ACRA is or is not listening for crashes.
log.i(LOG_TAG, "ACRA is " + (enableAcra ? "enabled" : "disabled") + " for " + app.getPackageName() + ", initializing...");
ErrorReporterImpl reporter = new ErrorReporterImpl(app, config, enableAcra, supportedAndroidVersion);
Expand All @@ -246,7 +246,7 @@ public static void init(@NonNull Application app, @NonNull CoreConfiguration con
*/
@SuppressWarnings("unused")
public static boolean isInitialised() {
return errorReporterSingleton.isRegistered();
return errorReporterSingleton instanceof ErrorReporterImpl;
}

/**
Expand Down
5 changes: 0 additions & 5 deletions acra-core/src/main/java/org/acra/ErrorReporter.java
Original file line number Diff line number Diff line change
Expand Up @@ -64,11 +64,6 @@ public interface ErrorReporter {
*/
void setEnabled(boolean enabled);

/**
* @return if this instance is the current DefaultUncaughtExceptionHandler
*/
boolean isRegistered();

/**
* Send a normal report for the given exception
*
Expand Down
2 changes: 1 addition & 1 deletion acra-core/src/main/java/org/acra/annotation/AcraCore.java
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Inherited
@Configuration(baseBuilderClass = BaseCoreConfigurationBuilder.class, createBuilderFactory = false)
@Configuration(baseBuilderClass = BaseCoreConfigurationBuilder.class, isPlugin = false)
public @interface AcraCore {

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
public class AcraContentProvider extends ContentProvider {
private static final String[] COLUMNS = {
OpenableColumns.DISPLAY_NAME, OpenableColumns.SIZE};
public static final String MIME_TYPE_OCTET_STREAM = "application/octet-stream";
private static final String MIME_TYPE_OCTET_STREAM = "application/octet-stream";
private String authority;

@Override
Expand Down Expand Up @@ -219,6 +219,7 @@ public static Uri getUriForFile(@NonNull Context context, @NonNull File file) {
* @param relativePath the file path
* @return the uri
*/
@SuppressWarnings("WeakerAccess")
@NonNull
public static Uri getUriForFile(@NonNull Context context, @NonNull Directory directory, @NonNull String relativePath) {
final Uri.Builder builder = new Uri.Builder()
Expand Down
82 changes: 37 additions & 45 deletions acra-core/src/main/java/org/acra/builder/LastActivityManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,9 @@

import android.app.Activity;
import android.app.Application;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;

import org.acra.ACRA;

import java.lang.ref.WeakReference;
Expand All @@ -44,50 +42,46 @@ public final class LastActivityManager {
* @param application the application to attach to
*/
public LastActivityManager(@NonNull Application application) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {

// ActivityLifecycleCallback only available for API14+
application.registerActivityLifecycleCallbacks(new Application.ActivityLifecycleCallbacks() {
@Override
public void onActivityCreated(@NonNull Activity activity, Bundle savedInstanceState) {
if (ACRA.DEV_LOGGING) ACRA.log.d(LOG_TAG, "onActivityCreated " + activity.getClass());
lastActivityCreated = new WeakReference<>(activity);
}
application.registerActivityLifecycleCallbacks(new Application.ActivityLifecycleCallbacks() {
@Override
public void onActivityCreated(@NonNull Activity activity, Bundle savedInstanceState) {
if (ACRA.DEV_LOGGING) ACRA.log.d(LOG_TAG, "onActivityCreated " + activity.getClass());
lastActivityCreated = new WeakReference<>(activity);
}

@Override
public void onActivityStarted(@NonNull Activity activity) {
if (ACRA.DEV_LOGGING) ACRA.log.d(LOG_TAG, "onActivityStarted " + activity.getClass());
}
@Override
public void onActivityStarted(@NonNull Activity activity) {
if (ACRA.DEV_LOGGING) ACRA.log.d(LOG_TAG, "onActivityStarted " + activity.getClass());
}

@Override
public void onActivityResumed(@NonNull Activity activity) {
if (ACRA.DEV_LOGGING) ACRA.log.d(LOG_TAG, "onActivityResumed " + activity.getClass());
}
@Override
public void onActivityResumed(@NonNull Activity activity) {
if (ACRA.DEV_LOGGING) ACRA.log.d(LOG_TAG, "onActivityResumed " + activity.getClass());
}

@Override
public void onActivityPaused(@NonNull Activity activity) {
if (ACRA.DEV_LOGGING) ACRA.log.d(LOG_TAG, "onActivityPaused " + activity.getClass());
}
@Override
public void onActivityPaused(@NonNull Activity activity) {
if (ACRA.DEV_LOGGING) ACRA.log.d(LOG_TAG, "onActivityPaused " + activity.getClass());
}

@Override
public void onActivityStopped(@NonNull Activity activity) {
if (ACRA.DEV_LOGGING) ACRA.log.d(LOG_TAG, "onActivityStopped " + activity.getClass());
synchronized (this) {
notify();
}
@Override
public void onActivityStopped(@NonNull Activity activity) {
if (ACRA.DEV_LOGGING) ACRA.log.d(LOG_TAG, "onActivityStopped " + activity.getClass());
synchronized (this) {
notify();
}
}

@Override
public void onActivitySaveInstanceState(@NonNull Activity activity, Bundle outState) {
if (ACRA.DEV_LOGGING) ACRA.log.d(LOG_TAG, "onActivitySaveInstanceState " + activity.getClass());
}
@Override
public void onActivitySaveInstanceState(@NonNull Activity activity, Bundle outState) {
if (ACRA.DEV_LOGGING) ACRA.log.d(LOG_TAG, "onActivitySaveInstanceState " + activity.getClass());
}

@Override
public void onActivityDestroyed(@NonNull Activity activity) {
if (ACRA.DEV_LOGGING) ACRA.log.d(LOG_TAG, "onActivityDestroyed " + activity.getClass());
}
});
}
@Override
public void onActivityDestroyed(@NonNull Activity activity) {
if (ACRA.DEV_LOGGING) ACRA.log.d(LOG_TAG, "onActivityDestroyed " + activity.getClass());
}
});
}

/**
Expand All @@ -111,12 +105,10 @@ public void clearLastActivity() {
* @param timeOutInMillis timeout for wait
*/
public void waitForActivityStop(int timeOutInMillis) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
synchronized (this) {
try {
wait(timeOutInMillis);
} catch (InterruptedException ignored) {
}
synchronized (this) {
try {
wait(timeOutInMillis);
} catch (InterruptedException ignored) {
}
}
}
Expand Down
3 changes: 2 additions & 1 deletion acra-core/src/main/java/org/acra/builder/ReportExecutor.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
import org.acra.interaction.ReportInteractionExecutor;
import org.acra.sender.SenderServiceStarter;
import org.acra.util.ProcessFinisher;
import org.acra.util.ToastSender;

import java.io.File;
import java.util.ArrayList;
Expand Down Expand Up @@ -199,7 +200,7 @@ public final void execute(@NonNull final ReportBuilder reportBuilder) {
@Override
public void run() {
Looper.prepare();
Toast.makeText(context, warning, Toast.LENGTH_LONG).show();
ToastSender.sendToast(context, warning, Toast.LENGTH_LONG);
Looper.loop();
}
}).start();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ public final void collect(@NonNull Context context, @NonNull CoreConfiguration c
* @param target put results here
* @throws Exception if collection failed
*/
abstract void collect(ReportField reportField, @NonNull Context context, @NonNull CoreConfiguration config, @NonNull ReportBuilder reportBuilder, @NonNull CrashReportData target) throws Exception;
abstract void collect(@NonNull ReportField reportField, @NonNull Context context, @NonNull CoreConfiguration config, @NonNull ReportBuilder reportBuilder, @NonNull CrashReportData target) throws Exception;

/**
* {@inheritDoc}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ public ConfigurationCollector() {
}

@Override
void collect(ReportField reportField, @NonNull Context context, @NonNull CoreConfiguration config,
void collect(@NonNull ReportField reportField, @NonNull Context context, @NonNull CoreConfiguration config,
@NonNull ReportBuilder reportBuilder, @NonNull CrashReportData target) {
switch (reportField) {
case INITIAL_CONFIGURATION:
Expand Down Expand Up @@ -129,6 +129,7 @@ private JSONObject configToJson(@NonNull Configuration conf) {
return result;
}

@NonNull
private Map<String, SparseArray<String>> getValueArrays() {
final Map<String, SparseArray<String>> valueArrays = new HashMap<>();
final SparseArray<String> hardKeyboardHiddenValues = new SparseArray<>();
Expand Down Expand Up @@ -197,7 +198,7 @@ private Map<String, SparseArray<String>> getValueArrays() {
* constant name.
* @throws IllegalAccessException if the supplied field is inaccessible.
*/
private Object getFieldValueName(Map<String, SparseArray<String>> valueArrays, @NonNull Configuration conf, @NonNull Field f) throws IllegalAccessException {
private Object getFieldValueName(@NonNull Map<String, SparseArray<String>> valueArrays, @NonNull Configuration conf, @NonNull Field f) throws IllegalAccessException {
final String fieldName = f.getName();
switch (fieldName) {
case FIELD_MCC:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public CustomDataCollector(){
}

@Override
void collect(ReportField reportField, @NonNull Context context, @NonNull CoreConfiguration config, @NonNull ReportBuilder reportBuilder, @NonNull CrashReportData target) {
void collect(@NonNull ReportField reportField, @NonNull Context context, @NonNull CoreConfiguration config, @NonNull ReportBuilder reportBuilder, @NonNull CrashReportData target) {
target.put(ReportField.CUSTOM_DATA, new JSONObject(reportBuilder.getCustomData()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public DeviceFeaturesCollector() {
}

@Override
void collect(ReportField reportField, @NonNull Context context, @NonNull CoreConfiguration config, @NonNull ReportBuilder reportBuilder, @NonNull CrashReportData target) throws JSONException {
void collect(@NonNull ReportField reportField, @NonNull Context context, @NonNull CoreConfiguration config, @NonNull ReportBuilder reportBuilder, @NonNull CrashReportData target) throws JSONException {
final JSONObject result = new JSONObject();
final PackageManager pm = context.getPackageManager();
final FeatureInfo[] features = pm.getSystemAvailableFeatures();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ boolean shouldCollect(@NonNull Context context, @NonNull CoreConfiguration confi
@SuppressLint("HardwareIds")
@RequiresPermission(Manifest.permission.READ_PHONE_STATE)
@Override
void collect(ReportField reportField, @NonNull Context context, @NonNull CoreConfiguration config, @NonNull ReportBuilder reportBuilder, @NonNull CrashReportData target) throws Exception {
void collect(@NonNull ReportField reportField, @NonNull Context context, @NonNull CoreConfiguration config, @NonNull ReportBuilder reportBuilder, @NonNull CrashReportData target) throws Exception {
target.put(ReportField.DEVICE_ID, SystemServices.getTelephonyManager(context).getDeviceId());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public DisplayManagerCollector() {
}

@Override
void collect(ReportField reportField, @NonNull Context context, @NonNull CoreConfiguration config, @NonNull ReportBuilder reportBuilder, @NonNull CrashReportData target) {
void collect(@NonNull ReportField reportField, @NonNull Context context, @NonNull CoreConfiguration config, @NonNull ReportBuilder reportBuilder, @NonNull CrashReportData target) {
final JSONObject result = new JSONObject();
for (Display display : DisplayManagerCompat.getInstance(context).getDisplays()) {
try {
Expand Down Expand Up @@ -90,7 +90,7 @@ private JSONObject collectDisplayData(@NonNull Display display) throws JSONExcep
return result;
}

private void collectIsValid(@NonNull Display display, JSONObject container) throws JSONException {
private void collectIsValid(@NonNull Display display, @NonNull JSONObject container) throws JSONException {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
container.put("isValid", display.isValid());
}
Expand All @@ -116,23 +116,19 @@ private String rotationToString(int rotation) {
}
}

private void collectRectSize(@NonNull Display display, JSONObject container) throws JSONException {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) {
final Rect size = new Rect();
display.getRectSize(size);
container.put("rectSize", new JSONArray(Arrays.asList(size.top, size.left, size.width(), size.height())));
}
private void collectRectSize(@NonNull Display display, @NonNull JSONObject container) throws JSONException {
final Rect size = new Rect();
display.getRectSize(size);
container.put("rectSize", new JSONArray(Arrays.asList(size.top, size.left, size.width(), size.height())));
}

private void collectSize(@NonNull Display display, JSONObject container) throws JSONException {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) {
final Point size = new Point();
display.getSize(size);
container.put("size", new JSONArray(Arrays.asList(size.x, size.y)));
}
private void collectSize(@NonNull Display display, @NonNull JSONObject container) throws JSONException {
final Point size = new Point();
display.getSize(size);
container.put("size", new JSONArray(Arrays.asList(size.x, size.y)));
}

private void collectRealSize(@NonNull Display display, JSONObject container) throws JSONException {
private void collectRealSize(@NonNull Display display, @NonNull JSONObject container) throws JSONException {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
final Point size = new Point();
display.getRealSize(size);
Expand Down Expand Up @@ -168,21 +164,21 @@ private void collectFlags(@NonNull Display display, @NonNull JSONObject containe
}
}

private void collectName(@NonNull Display display, JSONObject container) throws JSONException {
private void collectName(@NonNull Display display, @NonNull JSONObject container) throws JSONException {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
container.put("name", display.getName());
}
}

private void collectMetrics(@NonNull Display display, JSONObject container) throws JSONException {
private void collectMetrics(@NonNull Display display, @NonNull JSONObject container) throws JSONException {
final DisplayMetrics metrics = new DisplayMetrics();
display.getMetrics(metrics);
final JSONObject result = new JSONObject();
collectMetrics(metrics, result);
container.put("metrics", result);
}

private void collectRealMetrics(@NonNull Display display, JSONObject container) throws JSONException {
private void collectRealMetrics(@NonNull Display display, @NonNull JSONObject container) throws JSONException {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
final DisplayMetrics metrics = new DisplayMetrics();
display.getRealMetrics(metrics);
Expand All @@ -192,7 +188,7 @@ private void collectRealMetrics(@NonNull Display display, JSONObject container)
}
}

private void collectMetrics(@NonNull DisplayMetrics metrics, JSONObject container) throws JSONException {
private void collectMetrics(@NonNull DisplayMetrics metrics, @NonNull JSONObject container) throws JSONException {
container.put("density", metrics.density)
.put("densityDpi", metrics.densityDpi)
.put("scaledDensity", "x" + metrics.scaledDensity)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ public Order getOrder() {
}

@Override
void collect(ReportField reportField, @NonNull Context context, @NonNull CoreConfiguration config, @NonNull ReportBuilder reportBuilder, @NonNull CrashReportData target) throws Exception{
void collect(@NonNull ReportField reportField, @NonNull Context context, @NonNull CoreConfiguration config, @NonNull ReportBuilder reportBuilder, @NonNull CrashReportData target) throws Exception{
final DropBoxManager dropbox = SystemServices.getDropBoxManager(context);

final Calendar calendar = Calendar.getInstance();
Expand Down
Loading

0 comments on commit 395795c

Please sign in to comment.