diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java
index 2f72f83c24..69de6eb273 100644
--- a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java
+++ b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java
@@ -62,6 +62,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
private TextView tvProcessors;
private TextView tvMemoryClass;
+ private TextView tvStorageSpace;
private TextView tvLastCleanup;
private TextView tvUuid;
@@ -102,6 +103,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
tvProcessors = view.findViewById(R.id.tvProcessors);
tvMemoryClass = view.findViewById(R.id.tvMemoryClass);
+ tvStorageSpace = view.findViewById(R.id.tvStorageSpace);
tvLastCleanup = view.findViewById(R.id.tvLastCleanup);
tvUuid = view.findViewById(R.id.tvUuid);
@@ -340,6 +342,10 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
ActivityManager am = (ActivityManager) getContext().getSystemService(Context.ACTIVITY_SERVICE);
int class_mb = am.getMemoryClass();
tvMemoryClass.setText(getString(R.string.title_advanced_memory_class, class_mb + " MB"));
+
+ tvStorageSpace.setText(getString(R.string.title_advanced_storage_space,
+ Helper.humanReadableByteCount(Helper.getStorageSpace(), true)));
+
tvUuid.setText(prefs.getString("uuid", null));
grpDebug.setVisibility(swDebug.isChecked() || BuildConfig.DEBUG ? View.VISIBLE : View.GONE);
diff --git a/app/src/main/java/eu/faircode/email/Helper.java b/app/src/main/java/eu/faircode/email/Helper.java
index e668c23642..15159fef28 100644
--- a/app/src/main/java/eu/faircode/email/Helper.java
+++ b/app/src/main/java/eu/faircode/email/Helper.java
@@ -40,9 +40,11 @@ import android.hardware.fingerprint.FingerprintManager;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
+import android.os.Environment;
import android.os.Handler;
import android.os.Parcel;
import android.os.PowerManager;
+import android.os.StatFs;
import android.text.Spannable;
import android.text.Spanned;
import android.text.format.DateUtils;
@@ -676,6 +678,11 @@ public class Helper {
}
}
+ static long getStorageSpace() {
+ StatFs stats = new StatFs(Environment.getDataDirectory().getAbsolutePath());
+ return stats.getAvailableBlocksLong() * stats.getBlockSizeLong();
+ }
+
static Bitmap decodeImage(File file, int scaleToPixels) {
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
diff --git a/app/src/main/java/eu/faircode/email/Log.java b/app/src/main/java/eu/faircode/email/Log.java
index 028dfccc81..941a1f1f16 100644
--- a/app/src/main/java/eu/faircode/email/Log.java
+++ b/app/src/main/java/eu/faircode/email/Log.java
@@ -541,6 +541,9 @@ public class Log {
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
sb.append(String.format("Memory class: %d\r\n", am.getMemoryClass()));
+ sb.append(String.format("Storage space: %s\r\n",
+ Helper.humanReadableByteCount(Helper.getStorageSpace(), true)));
+
Runtime rt = Runtime.getRuntime();
long hused = (rt.totalMemory() - rt.freeMemory()) / 1024L;
long hmax = rt.maxMemory() / 1024L;
diff --git a/app/src/main/res/layout/fragment_options_misc.xml b/app/src/main/res/layout/fragment_options_misc.xml
index 4ef39aac7e..73a718a65c 100644
--- a/app/src/main/res/layout/fragment_options_misc.xml
+++ b/app/src/main/res/layout/fragment_options_misc.xml
@@ -239,6 +239,16 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvProcessors" />
+
+
+ app:layout_constraintTop_toBottomOf="@id/tvStorageSpace" />
+ app:constraint_referenced_ids="tvProcessors,tvMemoryClass,tvStorageSpace,tvLastCleanup,tvUuid" />
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 95f0d05b01..00ca9970a7 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -334,6 +334,7 @@
Cleanup
Processors: %1$d
Memory class: %1$s
+ Storage space: %1$s
Last cleanup: %1$s
Globally disable or enable receiving of messages