discord-jadx/app/src/main/java/androidx/media/MediaSessionManager.java

118 lines
3.9 KiB
Java

package androidx.media;
import android.content.Context;
import android.media.session.MediaSessionManager;
import android.os.Build;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.annotation.RestrictTo;
import androidx.media.MediaSessionManagerImplApi28;
import androidx.media.MediaSessionManagerImplBase;
public final class MediaSessionManager {
public static final boolean DEBUG = Log.isLoggable(TAG, 3);
public static final String TAG = "MediaSessionManager";
private static final Object sLock = new Object();
private static volatile MediaSessionManager sSessionManager;
public MediaSessionManagerImpl mImpl;
public interface MediaSessionManagerImpl {
Context getContext();
boolean isTrustedForMediaControl(RemoteUserInfoImpl remoteUserInfoImpl);
}
public static final class RemoteUserInfo {
public static final String LEGACY_CONTROLLER = "android.media.session.MediaController";
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
public static final int UNKNOWN_PID = -1;
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
public static final int UNKNOWN_UID = -1;
public RemoteUserInfoImpl mImpl;
@RequiresApi(28)
@RestrictTo({RestrictTo.Scope.LIBRARY})
public RemoteUserInfo(MediaSessionManager.RemoteUserInfo remoteUserInfo) {
this.mImpl = new MediaSessionManagerImplApi28.RemoteUserInfoImplApi28(remoteUserInfo);
}
public RemoteUserInfo(@NonNull String str, int i, int i2) {
if (Build.VERSION.SDK_INT >= 28) {
this.mImpl = new MediaSessionManagerImplApi28.RemoteUserInfoImplApi28(str, i, i2);
} else {
this.mImpl = new MediaSessionManagerImplBase.RemoteUserInfoImplBase(str, i, i2);
}
}
public boolean equals(@Nullable Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof RemoteUserInfo)) {
return false;
}
return this.mImpl.equals(((RemoteUserInfo) obj).mImpl);
}
@NonNull
public String getPackageName() {
return this.mImpl.getPackageName();
}
public int getPid() {
return this.mImpl.getPid();
}
public int getUid() {
return this.mImpl.getUid();
}
public int hashCode() {
return this.mImpl.hashCode();
}
}
public interface RemoteUserInfoImpl {
String getPackageName();
int getPid();
int getUid();
}
private MediaSessionManager(Context context) {
if (Build.VERSION.SDK_INT >= 28) {
this.mImpl = new MediaSessionManagerImplApi28(context);
} else {
this.mImpl = new MediaSessionManagerImplApi21(context);
}
}
@NonNull
public static MediaSessionManager getSessionManager(@NonNull Context context) {
MediaSessionManager mediaSessionManager;
if (context != null) {
synchronized (sLock) {
if (sSessionManager == null) {
sSessionManager = new MediaSessionManager(context.getApplicationContext());
}
mediaSessionManager = sSessionManager;
}
return mediaSessionManager;
}
throw new IllegalArgumentException("context cannot be null");
}
public Context getContext() {
return this.mImpl.getContext();
}
public boolean isTrustedForMediaControl(@NonNull RemoteUserInfo remoteUserInfo) {
if (remoteUserInfo != null) {
return this.mImpl.isTrustedForMediaControl(remoteUserInfo.mImpl);
}
throw new IllegalArgumentException("userInfo should not be null");
}
}