revanced-integrations/app/src/main/java/app/revanced/integrations/youtube/videoplayer/ExternalDownloadButton.java
LisoUseInAIKyrios 254da31d16
feat(YouTube - Downloads): Use external downloader when selecting 'Download' in home feed flyout menu (#587)
fix(YouTube - Downloads): Use external downloader when selecting 'Download' from home feed flyout menu
2024-03-15 16:32:48 +04:00

54 lines
1.5 KiB
Java

package app.revanced.integrations.youtube.videoplayer;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.Nullable;
import app.revanced.integrations.shared.Logger;
import app.revanced.integrations.youtube.patches.DownloadsPatch;
import app.revanced.integrations.youtube.patches.VideoInformation;
import app.revanced.integrations.youtube.settings.Settings;
@SuppressWarnings("unused")
public class ExternalDownloadButton extends BottomControlButton {
@Nullable
private static ExternalDownloadButton instance;
public ExternalDownloadButton(ViewGroup viewGroup) {
super(
viewGroup,
"revanced_external_download_button",
Settings.EXTERNAL_DOWNLOADER,
ExternalDownloadButton::onDownloadClick,
null
);
}
/**
* Injection point.
*/
public static void initializeButton(View view) {
try {
instance = new ExternalDownloadButton((ViewGroup) view);
} catch (Exception ex) {
Logger.printException(() -> "initializeButton failure", ex);
}
}
/**
* Injection point.
*/
public static void changeVisibility(boolean showing) {
if (instance != null) instance.setVisibility(showing);
}
private static void onDownloadClick(View view) {
DownloadsPatch.launchExternalDownloader(
VideoInformation.getVideoId(),
view.getContext(),
true);
}
}