diff --git a/pom.xml b/pom.xml
index ea7bfcdee5..eb372fe509 100644
--- a/pom.xml
+++ b/pom.xml
@@ -55,7 +55,7 @@
we need to compile against version 23. All such classes are in the org.acra.jraf package.
-->
23
- 23.3.0
+ 24.1.1
diff --git a/src/main/java/org/acra/collector/DisplayManagerCollector.java b/src/main/java/org/acra/collector/DisplayManagerCollector.java
index 2533055035..723e7410cf 100644
--- a/src/main/java/org/acra/collector/DisplayManagerCollector.java
+++ b/src/main/java/org/acra/collector/DisplayManagerCollector.java
@@ -18,14 +18,13 @@
import android.content.Context;
import android.graphics.Point;
import android.graphics.Rect;
-import android.hardware.display.DisplayManager;
import android.os.Build;
import android.support.annotation.NonNull;
+import android.support.v4.hardware.display.DisplayManagerCompat;
import android.util.DisplayMetrics;
import android.util.SparseArray;
import android.view.Display;
import android.view.Surface;
-import android.view.WindowManager;
import org.acra.ReportField;
import org.acra.builder.ReportBuilder;
@@ -48,23 +47,8 @@ final class DisplayManagerCollector extends Collector {
@NonNull
@Override
String collect(ReportField reportField, ReportBuilder reportBuilder) {
- final Display[] displays;
final StringBuilder result = new StringBuilder();
-
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {
- // Before Android 4.2, there was a single display available from the
- // window manager
- final WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
- displays = new Display[1];
- displays[0] = windowManager.getDefaultDisplay();
- } else {
- // Since Android 4.2, we can fetch multiple displays with the
- // DisplayManager.
- final DisplayManager displayManager = (DisplayManager) context.getSystemService(Context.DISPLAY_SERVICE);
- displays = displayManager.getDisplays();
- }
-
- for (Display display : displays) {
+ for (Display display : DisplayManagerCompat.getInstance(context).getDisplays()) {
result.append(collectDisplayData(display));
}
diff --git a/src/main/java/org/acra/collector/LogCatCollector.java b/src/main/java/org/acra/collector/LogCatCollector.java
index 9eb6e4848f..f48b1d082a 100644
--- a/src/main/java/org/acra/collector/LogCatCollector.java
+++ b/src/main/java/org/acra/collector/LogCatCollector.java
@@ -89,11 +89,6 @@ private String collectLogCat(@Nullable String bufferName) {
final int tailIndex = logcatArgumentsList.indexOf("-t");
if (tailIndex > -1 && tailIndex < logcatArgumentsList.size()) {
tailCount = Integer.parseInt(logcatArgumentsList.get(tailIndex + 1));
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.FROYO) {
- logcatArgumentsList.remove(tailIndex + 1);
- logcatArgumentsList.remove(tailIndex);
- logcatArgumentsList.add("-d");
- }
} else {
tailCount = -1;
}
diff --git a/src/main/java/org/acra/collector/LogFileCollector.java b/src/main/java/org/acra/collector/LogFileCollector.java
index 85d6888942..b0e6bf254f 100644
--- a/src/main/java/org/acra/collector/LogFileCollector.java
+++ b/src/main/java/org/acra/collector/LogFileCollector.java
@@ -18,19 +18,23 @@
import android.app.Application;
import android.content.Context;
-import android.os.Build;
import android.os.Environment;
import android.support.annotation.NonNull;
+import android.support.v4.content.ContextCompat;
import org.acra.ACRA;
-import org.acra.file.Directory;
import org.acra.ACRAConstants;
import org.acra.ReportField;
import org.acra.builder.ReportBuilder;
import org.acra.config.ACRAConfiguration;
+import org.acra.file.Directory;
import org.acra.util.IOUtils;
-import java.io.*;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
import static org.acra.ACRA.LOG_TAG;
@@ -94,11 +98,7 @@ private InputStream getStream(@NonNull Directory directory, @NonNull String file
dir = context.getExternalCacheDir();
break;
case NO_BACKUP_FILES:
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
- dir = context.getNoBackupFilesDir();
- } else {
- dir = context.getFilesDir();
- }
+ dir = ContextCompat.getNoBackupFilesDir(context);
break;
case EXTERNAL_STORAGE:
dir = Environment.getExternalStorageDirectory();
diff --git a/src/main/java/org/acra/dialog/CrashReportDialog.java b/src/main/java/org/acra/dialog/CrashReportDialog.java
index 59da57a9dc..f71f0313c9 100644
--- a/src/main/java/org/acra/dialog/CrashReportDialog.java
+++ b/src/main/java/org/acra/dialog/CrashReportDialog.java
@@ -17,6 +17,7 @@
import org.acra.ACRA;
import org.acra.ACRAConstants;
+import org.acra.prefs.PrefUtils;
import org.acra.prefs.SharedPreferencesFactory;
@@ -220,7 +221,7 @@ public void onClick(DialogInterface dialog, int which) {
userEmail = userEmailView.getText().toString();
final SharedPreferences.Editor prefEditor = prefs.edit();
prefEditor.putString(ACRA.PREF_USER_EMAIL_ADDRESS, userEmail);
- prefEditor.commit();
+ PrefUtils.save(prefEditor);
} else {
userEmail = prefs.getString(ACRA.PREF_USER_EMAIL_ADDRESS, "");
}