AdGuard v3.6.45版本的 MD5 值为:ce30a13dcef92cf942973fffcc6d20fb
以下内容为反编译后的 YoutubeActivity.java 源代码,内容仅作参考
package com.adguard.android.ui;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.res.Configuration;
import android.graphics.Bitmap;
import android.os.Build;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat;
import androidx.lifecycle.Lifecycle;
import androidx.palette.graphics.Palette;
import com.adguard.android.R;
import com.adguard.android.a.i;
import com.adguard.android.a.q;
import com.adguard.android.a.t;
import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.PlayerConstants;
import com.pierfrancescosoffritti.androidyoutubeplayer.core.player.views.YouTubePlayerView;
import java.util.Locale;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import kotlin.b.b.j;
import kotlin.o;
import kotlin.text.h;
public final class YoutubeActivity extends ThemedActivity implements t.a {
public static final a f473a = new a((byte) 0);
private static final Pattern o = Pattern.compile(q.d);
private static final org.slf4j.c p = org.slf4j.d.a(YoutubeActivity.class);
private String b;
private String c;
private String d;
private Bitmap f;
private YouTubePlayerView g;
private PlaybackReceiver h;
private com.pierfrancescosoffritti.androidyoutubeplayer.core.player.a i;
private final i j = new i(this, new View[0]);
private PlayerConstants.PlayerState k = PlayerConstants.PlayerState.UNKNOWN;
private int l;
private float m;
private float n;
public static final class PlaybackReceiver extends BroadcastReceiver {
public static final a b = new a((byte) 0);
final YoutubeActivity f474a;
public static final class a {
private a() {
}
public a(byte b) {
this();
}
}
public PlaybackReceiver(YoutubeActivity youtubeActivity) {
j.b(youtubeActivity, "activity");
this.f474a = youtubeActivity;
}
@Override
public final void onReceive(Context context, Intent intent) {
if (j.a((Object) "com.adguard.youtube.TOGGLE_PLAYBACK", (Object) (intent != null ? intent.getAction() : null))) {
this.f474a.c();
return;
}
if (j.a((Object) "com.adguard.youtube.STOP_PLAYBACK", (Object) (intent != null ? intent.getAction() : null))) {
com.pierfrancescosoffritti.androidyoutubeplayer.core.player.a aVar = this.f474a.i;
if (aVar != null) {
aVar.pause();
}
this.f474a.finish();
}
}
}
public static final class a {
private a() {
}
public a(byte b) {
this();
}
}
public static final class b extends com.pierfrancescosoffritti.androidyoutubeplayer.core.player.a.a {
b() {
}
@Override
public final void onCurrentSecond(com.pierfrancescosoffritti.androidyoutubeplayer.core.player.a aVar, float f) {
j.b(aVar, "youTubePlayer");
super.onCurrentSecond(aVar, f);
YoutubeActivity.this.m = f;
}
@Override
public final void onError(com.pierfrancescosoffritti.androidyoutubeplayer.core.player.a aVar, PlayerConstants.PlayerError playerError) {
j.b(aVar, "youTubePlayer");
j.b(playerError, "error");
org.slf4j.c cVar = YoutubeActivity.p;
cVar.warn("Error playing video " + YoutubeActivity.this.b + ": " + playerError);
}
@Override
public final void onStateChange(com.pierfrancescosoffritti.androidyoutubeplayer.core.player.a aVar, PlayerConstants.PlayerState playerState) {
j.b(aVar, "youTubePlayer");
j.b(playerState, "state");
YoutubeActivity.this.k = playerState;
if (playerState == PlayerConstants.PlayerState.ENDED) {
YoutubeActivity youtubeActivity = YoutubeActivity.this;
youtubeActivity.a(youtubeActivity.l);
} else {
YoutubeActivity youtubeActivity2 = YoutubeActivity.this;
youtubeActivity2.a(youtubeActivity2.c, YoutubeActivity.this.d, YoutubeActivity.this.f, playerState == PlayerConstants.PlayerState.PLAYING);
}
YoutubeActivity.this.invalidateOptionsMenu();
}
@Override
public final void onVideoDuration(com.pierfrancescosoffritti.androidyoutubeplayer.core.player.a aVar, float f) {
j.b(aVar, "youTubePlayer");
super.onVideoDuration(aVar, f);
YoutubeActivity.this.n = f;
}
}
public static final class c implements com.pierfrancescosoffritti.androidyoutubeplayer.core.player.a.c {
private int b;
c() {
}
@Override
public final void a() {
this.b = YoutubeActivity.this.getRequestedOrientation();
YoutubeActivity.this.j.a();
if (YoutubeActivity.a()) {
YoutubeActivity.this.setRequestedOrientation(0);
}
ActionBar supportActionBar = YoutubeActivity.this.getSupportActionBar();
if (supportActionBar != null) {
supportActionBar.hide();
}
}
@Override
public final void b() {
if (YoutubeActivity.a()) {
YoutubeActivity.this.setRequestedOrientation(1);
}
YoutubeActivity.this.j.b();
ActionBar supportActionBar = YoutubeActivity.this.getSupportActionBar();
if (supportActionBar != null) {
supportActionBar.show();
}
}
}
static final class d implements Runnable {
final String b;
d(String str) {
this.b = str;
}
@Override
public final void run() {
ActionBar supportActionBar = YoutubeActivity.this.getSupportActionBar();
if (supportActionBar != null) {
supportActionBar.setTitle(this.b);
}
}
}
public static final class e implements com.pierfrancescosoffritti.androidyoutubeplayer.core.player.a.b {
e() {
}
@Override
public final void a(com.pierfrancescosoffritti.androidyoutubeplayer.core.player.a aVar) {
j.b(aVar, "youTubePlayer");
YoutubeActivity.this.i = aVar;
String str = YoutubeActivity.this.b;
if (str != null) {
Lifecycle lifecycle = YoutubeActivity.this.getLifecycle();
j.a((Object) lifecycle, "lifecycle");
j.b(aVar, "$this$loadOrCueVideo");
j.b(lifecycle, "lifecycle");
j.b(str, "videoId");
com.pierfrancescosoffritti.androidyoutubeplayer.core.player.utils.e.a(aVar, lifecycle.getCurrentState() == Lifecycle.State.RESUMED, str, 0.0f);
}
}
}
public final int a(String str, String str2, Bitmap bitmap, boolean z) {
if (str != null && str2 != null) {
YoutubeActivity youtubeActivity = this;
int color = ContextCompat.getColor(youtubeActivity, 17170444);
if (bitmap != null) {
color = Palette.from(bitmap).generate().getDominantColor(color);
}
com.adguard.android.b a2 = com.adguard.android.b.a(youtubeActivity);
j.a((Object) a2, "ServiceLocator.getInstance(this@YoutubeActivity)");
return a2.t.a(str, str2, bitmap, color, z);
}
p.warn("Some meta info is null, not showing notification");
return 0;
}
public final void a(int i) {
com.adguard.android.b a2 = com.adguard.android.b.a(this);
j.a((Object) a2, "ServiceLocator.getInstance(this@YoutubeActivity)");
a2.t.a(i);
}
public static boolean a() {
return Build.VERSION.SDK_INT != 26;
}
public final void c() {
if (this.k == PlayerConstants.PlayerState.PLAYING) {
com.pierfrancescosoffritti.androidyoutubeplayer.core.player.a aVar = this.i;
if (aVar != null) {
aVar.pause();
}
a(this.c, this.d, this.f, false);
return;
}
com.pierfrancescosoffritti.androidyoutubeplayer.core.player.a aVar2 = this.i;
if (aVar2 != null) {
aVar2.play();
}
a(this.c, this.d, this.f, true);
}
@Override
public final void a(Exception exc) {
p.warn("Unable to load video meta info\n", (Throwable) exc);
}
@Override
public final void a(String str, String str2, Bitmap bitmap) {
if (str != null && str2 != null) {
this.c = str;
this.d = str2;
this.f = bitmap;
runOnUiThread(new d(str));
this.l = a(str, str2, bitmap, this.k == PlayerConstants.PlayerState.PLAYING);
return;
}
p.warn("Some meta info is null!!!");
}
@Override
public final void onConfigurationChanged(Configuration configuration) {
j.b(configuration, "newConfig");
super.onConfigurationChanged(configuration);
if (configuration.orientation == 2) {
this.j.a();
} else {
this.j.b();
}
}
@Override
public final void onCreate(Bundle bundle) {
String stringExtra;
Matcher matcher;
String country;
String str;
super.onCreate(bundle);
setContentView(R.g.youtube_player_layout);
Window window = getWindow();
if (window != null) {
window.addFlags(Integer.MIN_VALUE);
window.clearFlags(67108864);
window.setStatusBarColor(ContextCompat.getColor(this, 17170444));
}
setSupportActionBar((Toolbar) findViewById(R.f.main_toolbar));
ActionBar supportActionBar = getSupportActionBar();
if (supportActionBar != null) {
supportActionBar.setDisplayHomeAsUpEnabled(true);
supportActionBar.setHomeAsUpIndicator(com.adguard.android.a.a.a(this) ? R.drawable.ic_close_focusable : R.drawable.ic_close_white);
}
View findViewById = findViewById(R.f.player_view);
j.a((Object) findViewById, "findViewById(R.id.player_view)");
this.g = (YouTubePlayerView) findViewById;
PlaybackReceiver playbackReceiver = new PlaybackReceiver(this);
IntentFilter intentFilter = new IntentFilter("com.adguard.youtube.TOGGLE_PLAYBACK");
intentFilter.addAction("com.adguard.youtube.STOP_PLAYBACK");
playbackReceiver.f474a.registerReceiver(playbackReceiver, intentFilter);
this.h = playbackReceiver;
Intent intent = getIntent();
j.a((Object) intent, "intent");
String str2 = null;
String valueOf = intent.getData() != null ? String.valueOf(intent.getData()) : (intent.getStringExtra("android.intent.extra.TEXT") == null || (stringExtra = intent.getStringExtra("android.intent.extra.TEXT")) == null || (matcher = o.matcher(stringExtra)) == null || !matcher.find()) ? null : matcher.group();
if (valueOf != null) {
if (h.b(valueOf, "https://youtu.be/", false)) {
if (valueOf == null) {
throw new o("null cannot be cast to non-null type java.lang.String");
}
str2 = valueOf.substring(17);
j.a((Object) str2, "(this as java.lang.String).substring(startIndex)");
}
this.b = str2;
p.info("Opened video: " + this.b);
String str3 = this.b;
if (str3 == null) {
p.warn("Trying to open empty video!");
return;
}
Locale locale = Locale.getDefault();
StringBuilder sb = new StringBuilder();
j.a((Object) locale, "it");
sb.append(locale.getLanguage());
j.a((Object) locale.getCountry(), "it.country");
if (!h.a((CharSequence) country)) {
str = "-" + locale.getCountry();
} else {
str = "";
}
sb.append(str);
t.a(str3, sb.toString(), this);
YouTubePlayerView youTubePlayerView = this.g;
if (youTubePlayerView == null) {
j.a("youTubePlayerView");
}
youTubePlayerView.getYouTubePlayerWhenReady(new e());
YouTubePlayerView youTubePlayerView2 = this.g;
if (youTubePlayerView2 == null) {
j.a("youTubePlayerView");
}
youTubePlayerView2.getPlayerUiController().e(false).d().c();
YouTubePlayerView youTubePlayerView3 = this.g;
if (youTubePlayerView3 == null) {
j.a("youTubePlayerView");
}
youTubePlayerView3.enableBackgroundPlayback(true);
YouTubePlayerView youTubePlayerView4 = this.g;
if (youTubePlayerView4 == null) {
j.a("youTubePlayerView");
}
youTubePlayerView4.addYouTubePlayerListener(new b());
YouTubePlayerView youTubePlayerView5 = this.g;
if (youTubePlayerView5 == null) {
j.a("youTubePlayerView");
}
youTubePlayerView5.addFullScreenListener(new c());
Lifecycle lifecycle = getLifecycle();
YouTubePlayerView youTubePlayerView6 = this.g;
if (youTubePlayerView6 == null) {
j.a("youTubePlayerView");
}
lifecycle.addObserver(youTubePlayerView6);
}
}
@Override
public final boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.h.menu_youtube, menu);
return true;
}
@Override
public final void onDestroy() {
super.onDestroy();
PlaybackReceiver playbackReceiver = this.h;
if (playbackReceiver == null) {
j.a("playbackReceiver");
}
playbackReceiver.f474a.unregisterReceiver(playbackReceiver);
a(this.l);
}
@Override
public final boolean onOptionsItemSelected(MenuItem menuItem) {
j.b(menuItem, "item");
int itemId = menuItem.getItemId();
boolean z = true & true;
if (itemId == R.f.jump_back) {
com.pierfrancescosoffritti.androidyoutubeplayer.core.player.a aVar = this.i;
if (aVar != null) {
aVar.seekTo(Math.max(this.m - 15.0f, 0.0f));
}
return true;
} else if (itemId == R.f.jump_forward) {
com.pierfrancescosoffritti.androidyoutubeplayer.core.player.a aVar2 = this.i;
if (aVar2 != null) {
aVar2.seekTo(Math.min(this.m + 15.0f, this.n));
}
return true;
} else if (itemId == R.f.play_pause) {
c();
return true;
} else {
return super.onOptionsItemSelected(menuItem);
}
}
@Override
public final boolean onPrepareOptionsMenu(Menu menu) {
if (menu != null) {
menu.findItem(R.f.play_pause).setIcon(this.k == PlayerConstants.PlayerState.PLAYING ? R.drawable.ic_youtube_pause : R.drawable.ic_youtube_play);
}
return super.onPrepareOptionsMenu(menu);
}
}