Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/quite/mumla.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Lublin <daniel@lublin.se>2022-02-22 09:13:54 +0300
committerDaniel Lublin <daniel@lublin.se>2022-02-22 09:13:54 +0300
commite06bace8288ec33de504e95d0fd6d57bfe1701a2 (patch)
treedee507c2fb519b33cae61c2b80f906e2a2b03282
parentbb7f370c19f4ed944da36a572a9b11e3d8d7f162 (diff)
Bump to SDK 31 while we're at it; fix apparent new issues
-rw-r--r--app/build.gradle2
-rw-r--r--app/src/main/AndroidManifest.xml38
-rw-r--r--app/src/main/java/se/lublin/mumla/service/MumlaConnectionNotification.java12
-rw-r--r--app/src/main/java/se/lublin/mumla/service/MumlaMessageNotification.java6
-rw-r--r--app/src/main/java/se/lublin/mumla/service/MumlaReconnectNotification.java17
-rw-r--r--app/src/main/java/se/lublin/mumla/service/MumlaService.java9
6 files changed, 55 insertions, 29 deletions
diff --git a/app/build.gradle b/app/build.gradle
index d1dabd1..6a08687 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -57,7 +57,7 @@ android {
defaultConfig {
minSdkVersion 14
- targetSdkVersion 30
+ targetSdkVersion 31
multiDexEnabled true
applicationId "se.lublin.mumla"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 30b8373..1570822 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -31,6 +31,7 @@
android:maxSdkVersion="29" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
+ <uses-permission android:name="android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.BLUETOOTH" />
@@ -51,9 +52,11 @@
<!-- requestLegacyExternalStorage still true: we keep using old code if Android < 30 -->
<activity android:name=".wizard.WizardActivity" />
+
<activity
android:name=".preference.Preferences"
- android:parentActivityName=".app.MumlaActivity">
+ android:parentActivityName=".app.MumlaActivity"
+ android:exported="false">
<intent-filter>
<action android:name="se.lublin.mumla.app.PREFS_GENERAL" />
@@ -88,7 +91,8 @@
<activity
android:name=".app.MumlaActivity"
android:label="@string/app_name"
- android:launchMode="singleTop" >
+ android:launchMode="singleTop"
+ android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -112,36 +116,46 @@
</intent-filter>
</activity>
- <activity android:name=".preference.CertificateSelectActivity"
- android:theme="@style/Base.Theme.AppCompat.Light.Dialog">
+ <activity
+ android:name=".preference.CertificateSelectActivity"
+ android:theme="@style/Base.Theme.AppCompat.Light.Dialog"
+ android:exported="false">
<intent-filter>
<action android:name="se.lublin.mumla.app.CERTIFICATE_SELECT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
- <activity android:name=".preference.CertificateImportActivity"
- android:theme="@style/Base.Theme.AppCompat.Light.Dialog">
+ <activity
+ android:name=".preference.CertificateImportActivity"
+ android:theme="@style/Base.Theme.AppCompat.Light.Dialog"
+ android:exported="false">
<intent-filter>
<action android:name="se.lublin.mumla.app.CERTIFICATE_IMPORT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
- <activity android:name=".preference.CertificateExportActivity"
- android:theme="@style/Base.Theme.AppCompat.Light.Dialog">
+ <activity
+ android:name=".preference.CertificateExportActivity"
+ android:theme="@style/Base.Theme.AppCompat.Light.Dialog"
+ android:exported="false">
<intent-filter>
<action android:name="se.lublin.mumla.app.CERTIFICATE_EXPORT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
- <activity android:name=".preference.CertificateGenerateActivity"
- android:theme="@style/Base.Theme.AppCompat.Light.Dialog">
+ <activity
+ android:name=".preference.CertificateGenerateActivity"
+ android:theme="@style/Base.Theme.AppCompat.Light.Dialog"
+ android:exported="false">
<intent-filter>
<action android:name="se.lublin.mumla.app.CERTIFICATE_GENERATE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
- <activity android:name=".preference.ServerCertificateClearActivity"
- android:theme="@style/Base.Theme.AppCompat.Light.Dialog">
+ <activity
+ android:name=".preference.ServerCertificateClearActivity"
+ android:theme="@style/Base.Theme.AppCompat.Light.Dialog"
+ android:exported="false">
<intent-filter>
<action android:name="se.lublin.mumla.app.CLEAR_SERVER_CERTIFICATES" />
<category android:name="android.intent.category.DEFAULT" />
diff --git a/app/src/main/java/se/lublin/mumla/service/MumlaConnectionNotification.java b/app/src/main/java/se/lublin/mumla/service/MumlaConnectionNotification.java
index c3b5c09..46834ec 100644
--- a/app/src/main/java/se/lublin/mumla/service/MumlaConnectionNotification.java
+++ b/app/src/main/java/se/lublin/mumla/service/MumlaConnectionNotification.java
@@ -17,6 +17,9 @@
package se.lublin.mumla.service;
+import static android.app.PendingIntent.FLAG_CANCEL_CURRENT;
+import static android.app.PendingIntent.FLAG_IMMUTABLE;
+
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
@@ -161,19 +164,20 @@ public class MumlaConnectionNotification {
builder.addAction(R.drawable.ic_action_microphone,
mService.getString(R.string.mute), PendingIntent.getBroadcast(mService, 1,
- muteIntent, PendingIntent.FLAG_CANCEL_CURRENT));
+ muteIntent, FLAG_CANCEL_CURRENT | FLAG_IMMUTABLE));
builder.addAction(R.drawable.ic_action_audio,
mService.getString(R.string.deafen), PendingIntent.getBroadcast(mService, 1,
- deafenIntent, PendingIntent.FLAG_CANCEL_CURRENT));
+ deafenIntent, FLAG_CANCEL_CURRENT | FLAG_IMMUTABLE));
builder.addAction(R.drawable.ic_action_channels,
mService.getString(R.string.overlay), PendingIntent.getBroadcast(mService, 2,
- overlayIntent, PendingIntent.FLAG_CANCEL_CURRENT));
+ overlayIntent, FLAG_CANCEL_CURRENT | FLAG_IMMUTABLE));
}
Intent channelListIntent = new Intent(mService, MumlaActivity.class);
channelListIntent.putExtra(MumlaActivity.EXTRA_DRAWER_FRAGMENT, DrawerAdapter.ITEM_SERVER);
// FLAG_CANCEL_CURRENT ensures that the extra always gets sent.
- PendingIntent pendingIntent = PendingIntent.getActivity(mService, 0, channelListIntent, PendingIntent.FLAG_CANCEL_CURRENT);
+ PendingIntent pendingIntent = PendingIntent.getActivity(mService, 0,
+ channelListIntent, FLAG_CANCEL_CURRENT | FLAG_IMMUTABLE);
builder.setContentIntent(pendingIntent);
Notification notification = builder.build();
diff --git a/app/src/main/java/se/lublin/mumla/service/MumlaMessageNotification.java b/app/src/main/java/se/lublin/mumla/service/MumlaMessageNotification.java
index 2786096..0201551 100644
--- a/app/src/main/java/se/lublin/mumla/service/MumlaMessageNotification.java
+++ b/app/src/main/java/se/lublin/mumla/service/MumlaMessageNotification.java
@@ -17,6 +17,9 @@
package se.lublin.mumla.service;
+import static android.app.PendingIntent.FLAG_CANCEL_CURRENT;
+import static android.app.PendingIntent.FLAG_IMMUTABLE;
+
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
@@ -72,7 +75,8 @@ public class MumlaMessageNotification {
Intent channelListIntent = new Intent(mContext, MumlaActivity.class);
channelListIntent.putExtra(MumlaActivity.EXTRA_DRAWER_FRAGMENT, DrawerAdapter.ITEM_SERVER);
// FLAG_CANCEL_CURRENT ensures that the extra always gets sent.
- PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, channelListIntent, PendingIntent.FLAG_CANCEL_CURRENT);
+ PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0,
+ channelListIntent, FLAG_CANCEL_CURRENT | FLAG_IMMUTABLE);
String channelId = "";
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
diff --git a/app/src/main/java/se/lublin/mumla/service/MumlaReconnectNotification.java b/app/src/main/java/se/lublin/mumla/service/MumlaReconnectNotification.java
index 796f1ea..767586a 100644
--- a/app/src/main/java/se/lublin/mumla/service/MumlaReconnectNotification.java
+++ b/app/src/main/java/se/lublin/mumla/service/MumlaReconnectNotification.java
@@ -17,6 +17,9 @@
package se.lublin.mumla.service;
+import static android.app.PendingIntent.FLAG_CANCEL_CURRENT;
+import static android.app.PendingIntent.FLAG_IMMUTABLE;
+
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
@@ -105,22 +108,20 @@ public class MumlaReconnectNotification {
builder.setTicker(mContext.getString(R.string.mumlaDisconnected));
Intent dismissIntent = new Intent(BROADCAST_DISMISS);
- builder.setDeleteIntent(PendingIntent.getBroadcast(mContext, 2, dismissIntent,
- PendingIntent.FLAG_CANCEL_CURRENT));
+ builder.setDeleteIntent(PendingIntent.getBroadcast(mContext, 2,
+ dismissIntent, FLAG_CANCEL_CURRENT | FLAG_IMMUTABLE));
if (autoReconnect) {
Intent cancelIntent = new Intent(BROADCAST_CANCEL_RECONNECT);
builder.addAction(R.drawable.ic_action_delete_dark,
- mContext.getString(R.string.cancel_reconnect),
- PendingIntent.getBroadcast(mContext, 2,
- cancelIntent, PendingIntent.FLAG_CANCEL_CURRENT));
+ mContext.getString(R.string.cancel_reconnect), PendingIntent.getBroadcast(mContext, 2,
+ cancelIntent, FLAG_CANCEL_CURRENT | FLAG_IMMUTABLE));
builder.setOngoing(true);
} else {
Intent reconnectIntent = new Intent(BROADCAST_RECONNECT);
builder.addAction(R.drawable.ic_action_move,
- mContext.getString(R.string.reconnect),
- PendingIntent.getBroadcast(mContext, 2,
- reconnectIntent, PendingIntent.FLAG_CANCEL_CURRENT));
+ mContext.getString(R.string.reconnect), PendingIntent.getBroadcast(mContext, 2,
+ reconnectIntent, FLAG_CANCEL_CURRENT | FLAG_IMMUTABLE));
}
NotificationManagerCompat nmc = NotificationManagerCompat.from(mContext);
diff --git a/app/src/main/java/se/lublin/mumla/service/MumlaService.java b/app/src/main/java/se/lublin/mumla/service/MumlaService.java
index 9ea2207..dd3f24b 100644
--- a/app/src/main/java/se/lublin/mumla/service/MumlaService.java
+++ b/app/src/main/java/se/lublin/mumla/service/MumlaService.java
@@ -499,9 +499,12 @@ public class MumlaService extends HumlaService implements
@Override
public void onOverlayToggled() {
- // ditch notification shade/panel to make overlay presence/permission request visible
- Intent close = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
- getApplicationContext().sendBroadcast(close);
+ // Ditch notification shade/panel to make overlay presence/permission request visible.
+ // But on Android 12 that's no longer allowed.
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {
+ Intent close = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
+ getApplicationContext().sendBroadcast(close);
+ }
if (!mChannelOverlay.isShown()) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {