From b96e9d8a89424e239b6e55a124bb9015ae820b64 Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 1 Oct 2021 19:55:31 +0200 Subject: [PATCH] Added auto car mode --- app/src/main/assets/CHANGELOG.md | 4 ++++ app/src/main/java/eu/faircode/email/Core.java | 3 +++ app/src/main/java/eu/faircode/email/Helper.java | 12 ++++++++++++ app/src/main/java/eu/faircode/email/Log.java | 12 ++++++++++++ 4 files changed, 31 insertions(+) diff --git a/app/src/main/assets/CHANGELOG.md b/app/src/main/assets/CHANGELOG.md index 0817245016..24130712f0 100644 --- a/app/src/main/assets/CHANGELOG.md +++ b/app/src/main/assets/CHANGELOG.md @@ -4,6 +4,10 @@ ### [Adratiklit](https://en.wikipedia.org/wiki/Adratiklit) +### Next version + +* Improved Android Auto support + ### 1.1746 * Enabled Android auto support (see the FAQ for details) diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index 10c6bde36b..3ad4a70fdd 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -4520,6 +4520,9 @@ class Core { String sound = prefs.getString("sound", null); boolean alert_once = prefs.getBoolean("alert_once", true); + if (Helper.inCar(context)) + notify_messaging = true; + // Get contact info Map messageFrom = new HashMap<>(); Map messageInfo = new HashMap<>(); diff --git a/app/src/main/java/eu/faircode/email/Helper.java b/app/src/main/java/eu/faircode/email/Helper.java index 211868898b..d7ade534a9 100644 --- a/app/src/main/java/eu/faircode/email/Helper.java +++ b/app/src/main/java/eu/faircode/email/Helper.java @@ -26,6 +26,7 @@ import android.Manifest; import android.app.Activity; import android.app.ActivityManager; import android.app.KeyguardManager; +import android.app.UiModeManager; import android.app.usage.UsageStatsManager; import android.content.ActivityNotFoundException; import android.content.ComponentName; @@ -1041,6 +1042,17 @@ public class Helper { return (Build.VERSION.SDK_INT > Build.VERSION_CODES.R && false); } + static boolean inCar(Context context) { + try { + UiModeManager uimm = + (UiModeManager) context.getSystemService(Context.UI_MODE_SERVICE); + return (uimm.getCurrentModeType() == Configuration.UI_MODE_TYPE_CAR); + } catch (Throwable ex) { + Log.w(ex); + return false; + } + } + static void reportNoViewer(Context context, Uri uri) { reportNoViewer(context, new Intent().setData(uri)); } diff --git a/app/src/main/java/eu/faircode/email/Log.java b/app/src/main/java/eu/faircode/email/Log.java index ee11d90d24..5d8883313e 100644 --- a/app/src/main/java/eu/faircode/email/Log.java +++ b/app/src/main/java/eu/faircode/email/Log.java @@ -25,6 +25,7 @@ import android.app.Dialog; import android.app.Notification; import android.app.NotificationChannel; import android.app.NotificationManager; +import android.app.UiModeManager; import android.app.usage.UsageStatsManager; import android.content.ContentResolver; import android.content.Context; @@ -1761,6 +1762,17 @@ public class Log { .append(" night=").append(Helper.isNight(context)) .append("\r\n"); + int mode; + try { + UiModeManager uimm = + (UiModeManager) context.getSystemService(Context.UI_MODE_SERVICE); + mode = uimm.getCurrentModeType(); + } catch (Throwable ex) { + mode = -1; + Log.w(ex); + } + sb.append(String.format("In car=%b mode=%d\r\n", Helper.inCar(context), mode)); + sb.append("ExactAlarms") .append(" can=") .append(AlarmManagerCompatEx.canScheduleExactAlarms(context))