fix: Add minSdk to all extension projects

This commit is contained in:
kitadai31 2026-02-26 03:10:16 +09:00
parent 68783c0563
commit a23c83eb73
38 changed files with 105 additions and 88 deletions

View file

@ -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 {

View file

@ -1,9 +1,6 @@
android { android {
namespace = "app.revanced.extension" defaultConfig {
minSdk = 23
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
} }
} }

View file

@ -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 {

View file

@ -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
} }

View file

@ -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 {

View file

@ -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 {

View file

@ -3,3 +3,9 @@ dependencies {
compileOnly(libs.annotation) compileOnly(libs.annotation)
compileOnly(libs.okhttp) compileOnly(libs.okhttp)
} }
android {
defaultConfig {
minSdk = 22
}
}

View file

@ -4,3 +4,9 @@ dependencies {
compileOnly(libs.annotation) compileOnly(libs.annotation)
compileOnly(libs.okhttp) compileOnly(libs.okhttp)
} }
android {
defaultConfig {
minSdk = 21
}
}

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
}
}

View file

@ -1,3 +1,9 @@
dependencies { dependencies {
compileOnly(project(":extensions:shared:library")) compileOnly(project(":extensions:shared:library"))
} }
android {
defaultConfig {
minSdk = 26
}
}

View file

@ -1,3 +1,9 @@
dependencies { dependencies {
compileOnly(project(":extensions:shared:library")) compileOnly(project(":extensions:shared:library"))
} }
android {
defaultConfig {
minSdk = 24
}
}

View file

@ -5,11 +5,6 @@ dependencies {
android { android {
defaultConfig { defaultConfig {
minSdk = 26 minSdk = 23
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
} }
} }

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
}
}

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
}
}

View file

@ -1,3 +1,9 @@
dependencies { dependencies {
compileOnly(project(":extensions:reddit:stub")) compileOnly(project(":extensions:reddit:stub"))
} }
android {
defaultConfig {
minSdk = 28
}
}

View file

@ -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
}
}

View file

@ -5,6 +5,6 @@ dependencies {
android { android {
defaultConfig { defaultConfig {
minSdk = 26 minSdk = 23
} }
} }

View file

@ -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")

View file

@ -4,7 +4,6 @@ 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;
@ -19,6 +18,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 +28,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(24)
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 +77,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();

View file

@ -9,6 +9,8 @@ import android.os.Build;
import android.util.Base64; 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;
@ -27,6 +29,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(24)
@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();
@ -118,7 +121,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()) {
@ -192,7 +195,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"));

View file

@ -12,6 +12,8 @@ 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 +24,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(26)
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 =

View file

@ -292,7 +292,7 @@ public abstract class Setting<T> {
* <p> * <p>
* This method will be deleted in the future. * This method will be deleted in the future.
*/ */
@SuppressWarnings({"rawtypes", "NewApi"}) @SuppressWarnings("rawtypes")
public static void migrateFromOldPreferences(SharedPrefCategory oldPrefs, Setting setting, String settingKey) { public static void migrateFromOldPreferences(SharedPrefCategory oldPrefs, Setting setting, String settingKey) {
if (!oldPrefs.preferences.contains(settingKey)) { if (!oldPrefs.preferences.contains(settingKey)) {
return; // Nothing to do. return; // Nothing to do.

View file

@ -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(26)
public class ToolbarPreferenceFragment extends AbstractPreferenceFragment { public class ToolbarPreferenceFragment extends AbstractPreferenceFragment {
/** /**

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
} }
} }

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
}
}

View file

@ -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) {

View file

@ -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;

View file

@ -7,6 +7,6 @@ android {
compileSdk = 34 compileSdk = 34
defaultConfig { defaultConfig {
minSdk = 21 minSdk = 26
} }
} }

View file

@ -4,3 +4,9 @@ dependencies {
compileOnly(libs.annotation) compileOnly(libs.annotation)
compileOnly(libs.okhttp) compileOnly(libs.okhttp)
} }
android {
defaultConfig {
minSdk = 23
}
}

View file

@ -8,9 +8,4 @@ android {
defaultConfig { defaultConfig {
minSdk = 22 minSdk = 22
} }
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
} }

View file

@ -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 {

View file

@ -1,3 +1,9 @@
dependencies { dependencies {
compileOnly(libs.appcompat) compileOnly(libs.appcompat)
} }
android {
defaultConfig {
minSdk = 22
}
}

View file

@ -11,9 +11,4 @@ android {
defaultConfig { defaultConfig {
minSdk = 21 minSdk = 21
} }
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
} }

View file

@ -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";

View file

@ -1,3 +1,9 @@
dependencies { dependencies {
compileOnly(project(":extensions:shared:library")) compileOnly(project(":extensions:shared:library"))
} }
android {
defaultConfig {
minSdk = 26
}
}

View file

@ -6,6 +6,6 @@ dependencies {
android { android {
defaultConfig { defaultConfig {
minSdk = 23 minSdk = 26
} }
} }

View file

@ -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;
@ -49,7 +48,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 {
/** /**

View file

@ -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 a SB user id must be, as set by SB API. * Minimum length a SB user id must be, as set by SB API.