fix: Add minSdk to all extension projects (#6778)

This commit is contained in:
kitadai31
2026-03-14 19:41:18 +01:00
committed by GitHub
parent dc39dfdab4
commit 7517f57ac7
37 changed files with 108 additions and 89 deletions
@@ -1,14 +1,7 @@
android { android {
namespace = "app.revanced.extension"
defaultConfig { defaultConfig {
minSdk = 21 minSdk = 21
} }
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
} }
dependencies { dependencies {
@@ -1,9 +1,6 @@
android { android {
namespace = "app.revanced.extension" defaultConfig {
minSdk = 23
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
} }
} }
@@ -1,14 +1,7 @@
android { android {
namespace = "app.revanced.extension"
defaultConfig { defaultConfig {
minSdk = 21 minSdk = 21
} }
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
} }
dependencies { dependencies {
@@ -1,15 +1,8 @@
android { android {
namespace = "app.revanced.extension"
defaultConfig { defaultConfig {
minSdk = 21 minSdk = 21
} }
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
buildFeatures { buildFeatures {
aidl = true aidl = true
} }
@@ -1,14 +1,7 @@
android { android {
namespace = "app.revanced.extension"
defaultConfig { defaultConfig {
minSdk = 21 minSdk = 21
} }
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
} }
dependencies { dependencies {
@@ -1,14 +1,7 @@
android { android {
namespace = "app.revanced.extension"
defaultConfig { defaultConfig {
minSdk = 21 minSdk = 21
} }
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
} }
dependencies { dependencies {
+6
View File
@@ -3,3 +3,9 @@ dependencies {
compileOnly(libs.annotation) compileOnly(libs.annotation)
compileOnly(libs.okhttp) compileOnly(libs.okhttp)
} }
android {
defaultConfig {
minSdk = 22
}
}
@@ -4,3 +4,9 @@ dependencies {
compileOnly(libs.annotation) compileOnly(libs.annotation)
compileOnly(libs.okhttp) compileOnly(libs.okhttp)
} }
android {
defaultConfig {
minSdk = 21
}
}
+7 -1
View File
@@ -1,4 +1,10 @@
dependencies { dependencies {
compileOnly(project(":extensions:shared:library")) compileOnly(project(":extensions:shared:library"))
compileOnly(project(":extensions:cricbuzz:stub")) compileOnly(project(":extensions:cricbuzz:stub"))
} }
android {
defaultConfig {
minSdk = 21
}
}
+6
View File
@@ -1,3 +1,9 @@
dependencies { dependencies {
compileOnly(project(":extensions:shared:library")) compileOnly(project(":extensions:shared:library"))
} }
android {
defaultConfig {
minSdk = 26
}
}
+6
View File
@@ -1,3 +1,9 @@
dependencies { dependencies {
compileOnly(project(":extensions:shared:library")) compileOnly(project(":extensions:shared:library"))
} }
android {
defaultConfig {
minSdk = 24
}
}
+1 -6
View File
@@ -5,11 +5,6 @@ dependencies {
android { android {
defaultConfig { defaultConfig {
minSdk = 26 minSdk = 23
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
} }
} }
+6
View File
@@ -2,3 +2,9 @@ dependencies {
compileOnly(project(":extensions:shared:library")) compileOnly(project(":extensions:shared:library"))
compileOnly(project(":extensions:nunl:stub")) compileOnly(project(":extensions:nunl:stub"))
} }
android {
defaultConfig {
minSdk = 26
}
}
+6
View File
@@ -2,3 +2,9 @@ dependencies {
compileOnly(project(":extensions:shared:library")) compileOnly(project(":extensions:shared:library"))
compileOnly(project(":extensions:primevideo:stub")) compileOnly(project(":extensions:primevideo:stub"))
} }
android {
defaultConfig {
minSdk = 21
}
}
+6
View File
@@ -1,3 +1,9 @@
dependencies { dependencies {
compileOnly(project(":extensions:reddit:stub")) compileOnly(project(":extensions:reddit:stub"))
} }
android {
defaultConfig {
minSdk = 28
}
}
@@ -2,3 +2,9 @@ dependencies {
compileOnly(project(":extensions:shared:library")) compileOnly(project(":extensions:shared:library"))
compileOnly(project(":extensions:samsung:radio:stub")) compileOnly(project(":extensions:samsung:radio:stub"))
} }
android {
defaultConfig {
minSdk = 26
}
}
+1 -1
View File
@@ -5,6 +5,6 @@ dependencies {
android { android {
defaultConfig { defaultConfig {
minSdk = 26 minSdk = 23
} }
} }
@@ -65,7 +65,6 @@ import app.revanced.extension.shared.settings.BooleanSetting;
import app.revanced.extension.shared.settings.preference.ReVancedAboutPreference; import app.revanced.extension.shared.settings.preference.ReVancedAboutPreference;
import app.revanced.extension.shared.ui.Dim; import app.revanced.extension.shared.ui.Dim;
@SuppressWarnings("NewApi")
public class Utils { public class Utils {
@SuppressLint("StaticFieldLeak") @SuppressLint("StaticFieldLeak")
@@ -4,12 +4,12 @@ import static android.text.Html.FROM_HTML_MODE_COMPACT;
import static app.revanced.extension.shared.StringRef.str; import static app.revanced.extension.shared.StringRef.str;
import static app.revanced.extension.shared.Utils.DialogFragmentOnStartAction; import static app.revanced.extension.shared.Utils.DialogFragmentOnStartAction;
import android.annotation.SuppressLint;
import android.app.Activity; import android.app.Activity;
import android.app.Dialog; import android.app.Dialog;
import android.content.Intent; import android.content.Intent;
import android.graphics.PorterDuff; import android.graphics.PorterDuff;
import android.net.Uri; import android.net.Uri;
import android.os.Build;
import android.text.Html; import android.text.Html;
import android.util.Pair; import android.util.Pair;
import android.view.Gravity; import android.view.Gravity;
@@ -19,6 +19,7 @@ import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import java.util.Collection; import java.util.Collection;
@@ -28,6 +29,7 @@ import app.revanced.extension.shared.Utils;
import app.revanced.extension.shared.settings.BaseSettings; import app.revanced.extension.shared.settings.BaseSettings;
import app.revanced.extension.shared.ui.CustomDialog; import app.revanced.extension.shared.ui.CustomDialog;
@RequiresApi(api = Build.VERSION_CODES.N)
abstract class Check { abstract class Check {
private static final int NUMBER_OF_TIMES_TO_IGNORE_WARNING_BEFORE_DISABLING = 2; private static final int NUMBER_OF_TIMES_TO_IGNORE_WARNING_BEFORE_DISABLING = 2;
@@ -76,7 +78,6 @@ abstract class Check {
BaseSettings.CHECK_ENVIRONMENT_WARNINGS_ISSUED.save(Integer.MAX_VALUE); BaseSettings.CHECK_ENVIRONMENT_WARNINGS_ISSUED.save(Integer.MAX_VALUE);
} }
@SuppressLint("NewApi")
static void issueWarning(Activity activity, Collection<Check> failedChecks) { static void issueWarning(Activity activity, Collection<Check> failedChecks) {
final var reasons = new StringBuilder(); final var reasons = new StringBuilder();
@@ -10,6 +10,8 @@ import android.util.Base64;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import app.revanced.extension.shared.Logger; import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.Utils; import app.revanced.extension.shared.Utils;
@@ -29,6 +31,7 @@ import static app.revanced.extension.shared.checks.PatchInfo.Build.*;
* <br> * <br>
* Various indicators help to detect if the app was patched by the user. * Various indicators help to detect if the app was patched by the user.
*/ */
@RequiresApi(api = Build.VERSION_CODES.N)
@SuppressWarnings("unused") @SuppressWarnings("unused")
public final class CheckEnvironmentPatch { public final class CheckEnvironmentPatch {
private static final boolean DEBUG_ALWAYS_SHOW_CHECK_FAILED_DIALOG = debugAlwaysShowWarning(); private static final boolean DEBUG_ALWAYS_SHOW_CHECK_FAILED_DIALOG = debugAlwaysShowWarning();
@@ -121,7 +124,7 @@ public final class CheckEnvironmentPatch {
* If the build properties are different, the app was likely downloaded pre-patched or patched on another device. * If the build properties are different, the app was likely downloaded pre-patched or patched on another device.
*/ */
private static class CheckWasPatchedOnSameDevice extends Check { private static class CheckWasPatchedOnSameDevice extends Check {
@SuppressLint({"NewApi", "HardwareIds"}) @SuppressLint("HardwareIds")
@Override @Override
protected Boolean check() { protected Boolean check() {
if (PATCH_BOARD.isEmpty()) { if (PATCH_BOARD.isEmpty()) {
@@ -195,7 +198,7 @@ public final class CheckEnvironmentPatch {
PackageManager packageManager = context.getPackageManager(); PackageManager packageManager = context.getPackageManager();
PackageInfo packageInfo = packageManager.getPackageInfo(context.getPackageName(), 0); PackageInfo packageInfo = packageManager.getPackageInfo(context.getPackageName(), 0);
// Duration since initial install or last update, which ever is sooner. // Duration since initial install or last update, whichever is sooner.
durationBetweenPatchingAndInstallation = packageInfo.lastUpdateTime - PatchInfo.PATCH_TIME; durationBetweenPatchingAndInstallation = packageInfo.lastUpdateTime - PatchInfo.PATCH_TIME;
Logger.printInfo(() -> "App was installed/updated: " Logger.printInfo(() -> "App was installed/updated: "
+ (durationBetweenPatchingAndInstallation / (60 * 1000) + " minutes after patching")); + (durationBetweenPatchingAndInstallation / (60 * 1000) + " minutes after patching"));
@@ -6,12 +6,15 @@ import android.annotation.SuppressLint;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Build;
import android.preference.PreferenceFragment; import android.preference.PreferenceFragment;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toolbar; import android.widget.Toolbar;
import androidx.annotation.RequiresApi;
import app.revanced.extension.shared.Logger; import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.ResourceType; import app.revanced.extension.shared.ResourceType;
import app.revanced.extension.shared.Utils; import app.revanced.extension.shared.Utils;
@@ -22,7 +25,8 @@ import app.revanced.extension.shared.ui.Dim;
* Base class for hooking activities to inject a custom PreferenceFragment with a toolbar. * Base class for hooking activities to inject a custom PreferenceFragment with a toolbar.
* Provides common logic for initializing the activity and setting up the toolbar. * Provides common logic for initializing the activity and setting up the toolbar.
*/ */
@SuppressWarnings({"deprecation", "NewApi"}) @SuppressWarnings("deprecation")
@RequiresApi(api = Build.VERSION_CODES.O)
public abstract class BaseActivityHook extends Activity { public abstract class BaseActivityHook extends Activity {
private static final int ID_REVANCED_SETTINGS_FRAGMENTS = private static final int ID_REVANCED_SETTINGS_FRAGMENTS =
@@ -15,15 +15,16 @@ import android.widget.TextView;
import android.widget.Toolbar; import android.widget.Toolbar;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import app.revanced.extension.shared.Logger; import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.ResourceType; import app.revanced.extension.shared.ResourceType;
import app.revanced.extension.shared.Utils; import app.revanced.extension.shared.Utils;
import app.revanced.extension.shared.settings.BaseActivityHook; import app.revanced.extension.shared.settings.BaseActivityHook;
import app.revanced.extension.shared.ui.Dim; import app.revanced.extension.shared.ui.Dim;
import app.revanced.extension.shared.settings.BaseSettings;
@SuppressWarnings({"deprecation", "NewApi"}) @SuppressWarnings("deprecation")
@RequiresApi(api = Build.VERSION_CODES.O)
public class ToolbarPreferenceFragment extends AbstractPreferenceFragment { public class ToolbarPreferenceFragment extends AbstractPreferenceFragment {
/** /**
+1 -6
View File
@@ -6,11 +6,6 @@ dependencies {
android { android {
defaultConfig { defaultConfig {
minSdk = 21 minSdk = 24
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
} }
} }
+3 -3
View File
@@ -7,11 +7,11 @@ android {
compileSdk = 34 compileSdk = 34
defaultConfig { defaultConfig {
minSdk = 21 minSdk = 24
} }
compileOptions { compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8 sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_17
} }
} }
+6
View File
@@ -3,3 +3,9 @@ dependencies {
compileOnly(project(":extensions:strava:stub")) compileOnly(project(":extensions:strava:stub"))
compileOnly(libs.okhttp) compileOnly(libs.okhttp)
} }
android {
defaultConfig {
minSdk = 26
}
}
@@ -1,9 +1,7 @@
package app.revanced.extension.strava; package app.revanced.extension.strava;
import android.annotation.SuppressLint;
import android.content.ContentResolver; import android.content.ContentResolver;
import android.content.ContentValues; import android.content.ContentValues;
import android.content.Context;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.os.Environment; import android.os.Environment;
@@ -28,7 +26,6 @@ import java.util.stream.Stream;
import app.revanced.extension.shared.Utils; import app.revanced.extension.shared.Utils;
@SuppressLint("NewApi")
public final class AddMediaDownloadPatch { public final class AddMediaDownloadPatch {
public static final int ACTION_DOWNLOAD = -1; public static final int ACTION_DOWNLOAD = -1;
public static final int ACTION_OPEN_LINK = -2; public static final int ACTION_OPEN_LINK = -2;
@@ -85,7 +82,7 @@ public final class AddMediaDownloadPatch {
} finally { } finally {
values.clear(); values.clear();
values.put(MediaStore.Images.Media.IS_PENDING, 0); values.put(MediaStore.Images.Media.IS_PENDING, 0);
resolver.update(row, values, null); resolver.update(row, values, null, null);
} }
showInfoToast("yis_2024_local_save_image_success", "✔️"); showInfoToast("yis_2024_local_save_image_success", "✔️");
} catch (IOException e) { } catch (IOException e) {
@@ -151,7 +148,7 @@ public final class AddMediaDownloadPatch {
} finally { } finally {
values.clear(); values.clear();
values.put(MediaStore.Video.Media.IS_PENDING, 0); values.put(MediaStore.Video.Media.IS_PENDING, 0);
resolver.update(row, values, null); resolver.update(row, values, null, null);
} }
showInfoToast("yis_2024_local_save_video_success", "✔️"); showInfoToast("yis_2024_local_save_video_success", "✔️");
} catch (IOException e) { } catch (IOException e) {
@@ -1,7 +1,5 @@
package app.revanced.extension.strava; package app.revanced.extension.strava;
import android.annotation.SuppressLint;
import com.strava.modularframework.data.Destination; import com.strava.modularframework.data.Destination;
import com.strava.modularframework.data.GenericLayoutModule; import com.strava.modularframework.data.GenericLayoutModule;
import com.strava.modularframework.data.GenericModuleField; import com.strava.modularframework.data.GenericModuleField;
@@ -21,7 +19,6 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@SuppressLint("NewApi")
public class HideDistractionsPatch { public class HideDistractionsPatch {
public static boolean upselling; public static boolean upselling;
public static boolean promo; public static boolean promo;
+1 -1
View File
@@ -7,6 +7,6 @@ android {
compileSdk = 34 compileSdk = 34
defaultConfig { defaultConfig {
minSdk = 21 minSdk = 26
} }
} }
@@ -4,3 +4,9 @@ dependencies {
compileOnly(libs.annotation) compileOnly(libs.annotation)
compileOnly(libs.okhttp) compileOnly(libs.okhttp)
} }
android {
defaultConfig {
minSdk = 23
}
}
-5
View File
@@ -8,9 +8,4 @@ android {
defaultConfig { defaultConfig {
minSdk = 22 minSdk = 22
} }
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
} }
@@ -20,7 +20,7 @@ import java.lang.reflect.InvocationTargetException;
/** /**
* Hooks AdPersonalizationActivity to inject a custom {@link TikTokPreferenceFragment}. * Hooks AdPersonalizationActivity to inject a custom {@link TikTokPreferenceFragment}.
*/ */
@SuppressWarnings({"deprecation", "NewApi", "unused"}) @SuppressWarnings({"deprecation", "unused"})
public class TikTokActivityHook { public class TikTokActivityHook {
public static Object createSettingsEntry(String entryClazzName, String entryInfoClazzName) { public static Object createSettingsEntry(String entryClazzName, String entryInfoClazzName) {
try { try {
+6
View File
@@ -1,3 +1,9 @@
dependencies { dependencies {
compileOnly(libs.appcompat) compileOnly(libs.appcompat)
} }
android {
defaultConfig {
minSdk = 22
}
}
-5
View File
@@ -11,9 +11,4 @@ android {
defaultConfig { defaultConfig {
minSdk = 21 minSdk = 21
} }
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
} }
@@ -22,7 +22,7 @@ import tv.twitch.android.settings.SettingsActivity;
/** /**
* Hooks AppCompatActivity to inject a custom {@link TwitchPreferenceFragment}. * Hooks AppCompatActivity to inject a custom {@link TwitchPreferenceFragment}.
*/ */
@SuppressWarnings({"deprecation", "NewApi", "unused"}) @SuppressWarnings({"deprecation", "unused"})
public class TwitchActivityHook { public class TwitchActivityHook {
private static final int REVANCED_SETTINGS_MENU_ITEM_ID = 0x7; private static final int REVANCED_SETTINGS_MENU_ITEM_ID = 0x7;
private static final String EXTRA_REVANCED_SETTINGS = "app.revanced.twitch.settings"; private static final String EXTRA_REVANCED_SETTINGS = "app.revanced.twitch.settings";
+6
View File
@@ -1,3 +1,9 @@
dependencies { dependencies {
compileOnly(project(":extensions:shared:library")) compileOnly(project(":extensions:shared:library"))
} }
android {
defaultConfig {
minSdk = 26
}
}
@@ -3,7 +3,6 @@ package app.revanced.extension.youtube.sponsorblock;
import static app.revanced.extension.shared.StringRef.str; import static app.revanced.extension.shared.StringRef.str;
import static app.revanced.extension.youtube.sponsorblock.objects.CategoryBehaviour.SKIP_AUTOMATICALLY; import static app.revanced.extension.youtube.sponsorblock.objects.CategoryBehaviour.SKIP_AUTOMATICALLY;
import android.annotation.SuppressLint;
import android.app.Dialog; import android.app.Dialog;
import android.content.Context; import android.content.Context;
import android.graphics.Canvas; import android.graphics.Canvas;
@@ -51,7 +50,6 @@ import kotlin.Unit;
* <p> * <p>
* Class is not thread safe. All methods must be called on the main thread unless otherwise specified. * Class is not thread safe. All methods must be called on the main thread unless otherwise specified.
*/ */
@SuppressLint("NewApi")
public class SegmentPlaybackController { public class SegmentPlaybackController {
/** /**
@@ -26,7 +26,6 @@ import app.revanced.extension.youtube.sponsorblock.objects.CategoryBehaviour;
import app.revanced.extension.youtube.sponsorblock.objects.SegmentCategory; import app.revanced.extension.youtube.sponsorblock.objects.SegmentCategory;
import app.revanced.extension.youtube.sponsorblock.ui.SponsorBlockPreferenceGroup; import app.revanced.extension.youtube.sponsorblock.ui.SponsorBlockPreferenceGroup;
@SuppressWarnings("NewApi")
public class SponsorBlockSettings { public class SponsorBlockSettings {
/** /**
* Minimum length an SB user ID must be, as set by SB API. * Minimum length an SB user ID must be, as set by SB API.