From 8c9d5ba9e1cb6009824d715e5ba23182bbda4366 Mon Sep 17 00:00:00 2001 From: cyBerta Date: Mon, 10 Apr 2023 03:12:47 +0200 Subject: fix fastlane location switching on newer Android versions --- app/src/debug/AndroidManifest.xml | 17 ++++++ .../se/leap/bitmaskclient/LeakCanaryInstaller.java | 60 ++++++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 app/src/debug/java/se/leap/bitmaskclient/LeakCanaryInstaller.java (limited to 'app/src/debug') diff --git a/app/src/debug/AndroidManifest.xml b/app/src/debug/AndroidManifest.xml index 51e17015..08062ff3 100644 --- a/app/src/debug/AndroidManifest.xml +++ b/app/src/debug/AndroidManifest.xml @@ -19,6 +19,23 @@ package="se.leap.bitmaskclient" android:requestLegacyExternalStorage="true" > + + + > + + + diff --git a/app/src/debug/java/se/leap/bitmaskclient/LeakCanaryInstaller.java b/app/src/debug/java/se/leap/bitmaskclient/LeakCanaryInstaller.java new file mode 100644 index 00000000..25b94ef2 --- /dev/null +++ b/app/src/debug/java/se/leap/bitmaskclient/LeakCanaryInstaller.java @@ -0,0 +1,60 @@ +package se.leap.bitmaskclient; + +import android.app.Application; +import android.content.ContentProvider; +import android.content.ContentValues; +import android.database.Cursor; +import android.net.Uri; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import leakcanary.AppWatcher; + +public class LeakCanaryInstaller extends ContentProvider { + + @Override + public boolean onCreate() { + if (!isTest()) { + AppWatcher.INSTANCE.manualInstall((Application)getContext().getApplicationContext()); + } + return false; + } + + @Nullable + @Override + public Cursor query(@NonNull Uri uri, @Nullable String[] projection, @Nullable String selection, @Nullable String[] selectionArgs, @Nullable String sortOrder) { + return null; + } + + @Nullable + @Override + public String getType(@NonNull Uri uri) { + return null; + } + + @Nullable + @Override + public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) { + return null; + } + + @Override + public int delete(@NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) { + return 0; + } + + @Override + public int update(@NonNull Uri uri, @Nullable ContentValues values, @Nullable String selection, @Nullable String[] selectionArgs) { + return 0; + } + + + private boolean isTest() { + try { + return Class.forName("org.junit.Test") != null; + } catch (ClassNotFoundException e) { + return false; + } + } +} -- cgit v1.2.3