use correct tag

This commit is contained in:
oSumAtrIX 2024-12-09 07:38:36 +01:00
parent 0900686564
commit fc540ddab2
No known key found for this signature in database
GPG Key ID: A9B3094ACDB604B4
10 changed files with 70 additions and 23 deletions

View File

@ -0,0 +1,4 @@
dependencies {
compileOnly(project(":extensions:shared:library"))
compileOnly(libs.annotation)
}

View File

@ -0,0 +1 @@
<manifest/>

View File

@ -0,0 +1,20 @@
package app.revanced.extension.music.announcements;
import android.app.Activity;
import android.os.Build;
import androidx.annotation.RequiresApi;
import app.revanced.extension.shared.announcements.BaseAnnouncementsPatch;
@SuppressWarnings("unused")
public class AnnouncementsPatch extends BaseAnnouncementsPatch {
private static final AnnouncementsPatch INSTANCE = new AnnouncementsPatch();
private AnnouncementsPatch() {
super("music");
}
@RequiresApi(api = Build.VERSION_CODES.O)
public static void showAnnouncement(final Activity context) {
INSTANCE._showAnnouncement(context);
}
}

View File

@ -2,8 +2,6 @@ package app.revanced.extension.shared.announcements;
import static android.text.Html.FROM_HTML_MODE_COMPACT; 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.announcements.requests.AnnouncementsRoutes.GET_LATEST_ANNOUNCEMENTS;
import static app.revanced.extension.shared.announcements.requests.AnnouncementsRoutes.GET_LATEST_ANNOUNCEMENT_IDS;
import android.app.Activity; import android.app.Activity;
import android.app.AlertDialog; import android.app.AlertDialog;
@ -26,15 +24,17 @@ import app.revanced.extension.shared.requests.Requester;
import app.revanced.extension.shared.announcements.requests.AnnouncementsRoutes; import app.revanced.extension.shared.announcements.requests.AnnouncementsRoutes;
import app.revanced.extension.shared.settings.BaseSettings; import app.revanced.extension.shared.settings.BaseSettings;
@SuppressWarnings("unused") public abstract class BaseAnnouncementsPatch {
public final class AnnouncementsPatch { private final AnnouncementsRoutes announcementsRoutes;
private AnnouncementsPatch() {
public BaseAnnouncementsPatch(String tag) {
this.announcementsRoutes = new AnnouncementsRoutes(tag);
} }
@RequiresApi(api = Build.VERSION_CODES.O) @RequiresApi(api = Build.VERSION_CODES.O)
private static boolean isLatestAlready() throws IOException { private boolean isLatestAlready() throws IOException {
HttpURLConnection connection = HttpURLConnection connection =
AnnouncementsRoutes.getAnnouncementsConnectionFromRoute(GET_LATEST_ANNOUNCEMENT_IDS); announcementsRoutes.getAnnouncementsConnectionFromRoute(announcementsRoutes.GET_LATEST_ANNOUNCEMENT_IDS);
Logger.printDebug(() -> "Get latest announcement IDs route connection url: " + connection.getURL()); Logger.printDebug(() -> "Get latest announcement IDs route connection url: " + connection.getURL());
@ -71,7 +71,7 @@ public final class AnnouncementsPatch {
} }
@RequiresApi(api = Build.VERSION_CODES.O) @RequiresApi(api = Build.VERSION_CODES.O)
public static void showAnnouncement(final Activity context) { public void _showAnnouncement(final Activity context) {
if (!BaseSettings.ANNOUNCEMENTS.get()) return; if (!BaseSettings.ANNOUNCEMENTS.get()) return;
// Check if there is internet connection // Check if there is internet connection
@ -81,8 +81,8 @@ public final class AnnouncementsPatch {
try { try {
if (isLatestAlready()) return; if (isLatestAlready()) return;
HttpURLConnection connection = AnnouncementsRoutes HttpURLConnection connection = announcementsRoutes
.getAnnouncementsConnectionFromRoute(GET_LATEST_ANNOUNCEMENTS); .getAnnouncementsConnectionFromRoute(announcementsRoutes.GET_LATEST_ANNOUNCEMENTS);
Logger.printDebug(() -> "Get latest announcements route connection url: " + connection.getURL()); Logger.printDebug(() -> "Get latest announcements route connection url: " + connection.getURL());

View File

@ -9,14 +9,15 @@ import java.net.HttpURLConnection;
import static app.revanced.extension.shared.requests.Route.Method.GET; import static app.revanced.extension.shared.requests.Route.Method.GET;
public class AnnouncementsRoutes { public class AnnouncementsRoutes {
public static final Route GET_LATEST_ANNOUNCEMENT_IDS = new Route(GET, "/announcements/latest/id?tag=youtube"); public final Route GET_LATEST_ANNOUNCEMENTS;
public static final Route GET_LATEST_ANNOUNCEMENTS = new Route(GET, "/announcements/latest?tag=youtube"); public final Route GET_LATEST_ANNOUNCEMENT_IDS;
private static final String ANNOUNCEMENTS_PROVIDER = "https://api.revanced.app/v4";
private AnnouncementsRoutes() { public AnnouncementsRoutes(String tag) {
this.GET_LATEST_ANNOUNCEMENTS = new Route(GET, "/announcements/latest?tag=" + tag);
this.GET_LATEST_ANNOUNCEMENT_IDS = new Route(GET, "/announcements/latest/ids?tag=" + tag);
} }
public static HttpURLConnection getAnnouncementsConnectionFromRoute(Route route, String... params) throws IOException { public HttpURLConnection getAnnouncementsConnectionFromRoute(Route route, String... params) throws IOException {
return Requester.getConnectionFromRoute(ANNOUNCEMENTS_PROVIDER, route, params); return Requester.getConnectionFromRoute("https://api.revanced.app/v4", route, params);
} }
} }

View File

@ -0,0 +1,20 @@
package app.revanced.extension.youtube.patches.announcements;
import android.app.Activity;
import android.os.Build;
import androidx.annotation.RequiresApi;
import app.revanced.extension.shared.announcements.BaseAnnouncementsPatch;
@SuppressWarnings("unused")
public class AnnouncementsPatch extends BaseAnnouncementsPatch {
private static final AnnouncementsPatch INSTANCE = new AnnouncementsPatch();
private AnnouncementsPatch() {
super("youtube");
}
@RequiresApi(api = Build.VERSION_CODES.O)
public static void showAnnouncement(final Activity context) {
INSTANCE._showAnnouncement(context);
}
}

View File

@ -6,17 +6,15 @@ import app.revanced.patcher.patch.*
import app.revanced.patches.all.misc.resources.addResources import app.revanced.patches.all.misc.resources.addResources
import app.revanced.patches.all.misc.resources.addResourcesPatch import app.revanced.patches.all.misc.resources.addResourcesPatch
private const val EXTENSION_CLASS_DESCRIPTOR =
"Lapp/revanced/extension/shared/announcements/AnnouncementsPatch;"
fun announcementsPatch( fun announcementsPatch(
mainActivityOnCreateFingerprint: Fingerprint, mainActivityOnCreateFingerprint: Fingerprint,
extensionPatch: Patch<*>, extensionPatch: Patch<*>,
extensionClassDescriptor: String,
block: BytecodePatchBuilder.() -> Unit = {}, block: BytecodePatchBuilder.() -> Unit = {},
executeBlock: BytecodePatchContext.() -> Unit = {}, executeBlock: BytecodePatchContext.() -> Unit = {},
) = bytecodePatch( ) = bytecodePatch(
name = "Announcements", name = "Announcements",
description = "Adds an option to show announcements from ReVanced on app startup.", description = "Shows announcements from ReVanced on app startup.",
) { ) {
block() block()
@ -30,7 +28,7 @@ fun announcementsPatch(
mainActivityOnCreateFingerprint.method.addInstructions( mainActivityOnCreateFingerprint.method.addInstructions(
0, 0,
"invoke-static/range { p0 .. p0 }, $EXTENSION_CLASS_DESCRIPTOR->showAnnouncement(Landroid/app/Activity;)V", "invoke-static/range { p0 .. p0 }, $extensionClassDescriptor->showAnnouncement(Landroid/app/Activity;)V",
) )
executeBlock() executeBlock()

View File

@ -1,12 +1,13 @@
package app.revanced.patches.music.misc.announcements package app.revanced.patches.music.misc.announcements
import app.revanced.patches.all.misc.announcements.announcementsPatch import app.revanced.patches.all.misc.announcements.announcementsPatch
import app.revanced.patches.music.misc.extension.sharedExtensionPatch
import app.revanced.patches.music.shared.musicActivityOnCreateFingerprint import app.revanced.patches.music.shared.musicActivityOnCreateFingerprint
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
val announcementsPatch = announcementsPatch( val announcementsPatch = announcementsPatch(
musicActivityOnCreateFingerprint, musicActivityOnCreateFingerprint,
sharedExtensionPatch, sharedExtensionPatch,
"Lapp/revanced/extension/music/announcements/AnnouncementsPatch;",
{ {
compatibleWith("com.google.android.apps.music") compatibleWith("com.google.android.apps.music")
}, },

View File

@ -4,5 +4,6 @@ import app.revanced.patches.music.misc.extension.hooks.applicationInitHook
import app.revanced.patches.shared.misc.extension.sharedExtensionPatch import app.revanced.patches.shared.misc.extension.sharedExtensionPatch
val sharedExtensionPatch = sharedExtensionPatch( val sharedExtensionPatch = sharedExtensionPatch(
"music",
applicationInitHook, applicationInitHook,
) )

View File

@ -11,6 +11,7 @@ import app.revanced.patches.youtube.shared.mainActivityOnCreateFingerprint
val announcementsPatch = announcementsPatch( val announcementsPatch = announcementsPatch(
mainActivityOnCreateFingerprint, mainActivityOnCreateFingerprint,
sharedExtensionPatch, sharedExtensionPatch,
"Lapp/revanced/extension/youtube/patches/announcements/AnnouncementsPatch;",
{ {
dependsOn(settingsPatch) dependsOn(settingsPatch)