From 3e73c61bc85afdd4a6253d76344d5da581ba14f7 Mon Sep 17 00:00:00 2001
From: Guillaume Jacquart <guillaume.jacquart@hoodbrains.com>
Date: Tue, 20 Dec 2022 16:26:11 +0000
Subject: 5538 notifications for fake loc ipscrambling

---
 .../main/java/android/app/NotificationChannel.java | 34 ++++++++++++++++++++++
 .../permissions/PermissionsPrivacyModule.kt        | 11 +++++++
 2 files changed, 45 insertions(+)
 create mode 100644 permissionse/libs/hidden-apis-stub/src/main/java/android/app/NotificationChannel.java

(limited to 'permissionse')

diff --git a/permissionse/libs/hidden-apis-stub/src/main/java/android/app/NotificationChannel.java b/permissionse/libs/hidden-apis-stub/src/main/java/android/app/NotificationChannel.java
new file mode 100644
index 0000000..9e8d65a
--- /dev/null
+++ b/permissionse/libs/hidden-apis-stub/src/main/java/android/app/NotificationChannel.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2022 MURENA SAS
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ */
+
+package android.app;
+
+import android.annotation.TargetApi;
+
+import androidx.annotation.DeprecatedSinceApi;
+
+public class NotificationChannel {
+
+    @TargetApi(29)
+    @DeprecatedSinceApi(api = 30, message = "Use setBlockable() instead.")
+    public void setBlockableSystem(boolean blockableSystem) {}
+
+    // Public in API 33.
+    @TargetApi(30)
+    public void setBlockable(boolean blockableSystem) {}
+
+}
diff --git a/permissionse/src/main/java/foundation/e/privacymodules/permissions/PermissionsPrivacyModule.kt b/permissionse/src/main/java/foundation/e/privacymodules/permissions/PermissionsPrivacyModule.kt
index 83711dd..c07f367 100644
--- a/permissionse/src/main/java/foundation/e/privacymodules/permissions/PermissionsPrivacyModule.kt
+++ b/permissionse/src/main/java/foundation/e/privacymodules/permissions/PermissionsPrivacyModule.kt
@@ -21,6 +21,7 @@ import android.annotation.TargetApi
 import android.app.AppOpsManager
 import android.app.AppOpsManager.OP_NONE
 import android.app.AppOpsManager.strOpToOp
+import android.app.NotificationChannel
 import android.content.Context
 import android.net.IConnectivityManager
 import android.net.VpnManager
@@ -191,4 +192,14 @@ class PermissionsPrivacyModule(context: Context) : APermissionsPrivacyModule(con
             return null
         }
     }
+
+    override fun setBlockable(notificationChannel: NotificationChannel) {
+        when (Build.VERSION.SDK_INT) {
+            29 -> notificationChannel.setBlockableSystem(true)
+            30, 31, 32 -> notificationChannel.setBlockable(true)
+            else -> {
+                Log.e("Permissions-e", "Bad android sdk version")
+            }
+        }
+    }
 }
-- 
cgit v1.2.1