正在查看: 050 IP Phone v2.3.0 应用的 RemoteControlService.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: 050 IP Phone v2.3.0 应用的 RemoteControlService.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.ntt.voip.android.extension.control;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.PendingIntent;
import android.app.Service;
import android.content.ComponentName;
import android.content.Intent;
import android.media.AudioManager;
import android.os.IBinder;
import android.support.v4.media.MediaMetadataCompat;
import android.support.v4.media.session.MediaSessionCompat;
import android.support.v4.media.session.PlaybackStateCompat;
import com.oki.esound.EsEngineJni;
import t4.j;
import t4.z;
import w3.d;
import w3.f;
@SuppressLint({"InlinedApi"})
@TargetApi(EsEngineJni.ES_DTMF_CODE_C)
public class RemoteControlService extends Service implements v3.c {
private static int t0 = 0;
private static boolean u0 = false;
private f Y;
private ComponentName y;
private AudioManager x = null;
private v3.a X = null;
private MediaSessionCompat Z = null;
private b s0 = b.NoFocusNoDuck;
enum b {
NoFocusNoDuck,
NoFocusCanDuck,
Focused
}
private final class c extends MediaSessionCompat.Callback {
private c() {
}
public boolean onMediaButtonEvent(Intent intent) {
v3.b.a(RemoteControlService.this.getApplicationContext(), intent, "onMediaButtonEvent");
return true;
}
}
private void c() {
this.Y.h(d.ACCEPT_CALL.c(), null);
}
private void d() {
this.Y.h(d.CANCEL_CALL.c(), null);
}
private void e() {
MediaSessionCompat mediaSessionCompat = this.Z;
if (mediaSessionCompat != null) {
mediaSessionCompat.setActive(false);
}
f();
}
private void f() {
v3.a aVar;
if (this.s0 == b.Focused && (aVar = this.X) != null && aVar.a()) {
this.s0 = b.NoFocusNoDuck;
}
z.a("RemoteControlService", "giveUpAudioFocus: AudioFocus=[" + this.s0.name() + "]");
}
private void g() {
m();
MediaSessionCompat mediaSessionCompat = this.Z;
if (mediaSessionCompat != null) {
mediaSessionCompat.setActive(true);
}
}
private void h(w3.b bVar) {
g();
k(3);
n(bVar);
}
private void i() {
n(null);
k(1);
e();
}
private void j() {
this.Y.h(d.REJECT_CALL.c(), null);
}
private void k(int i) {
if (this.Z != null) {
PlaybackStateCompat.Builder builder = new PlaybackStateCompat.Builder();
builder.setState(i, -1L, 0.0f);
this.Z.setPlaybackState(builder.build());
}
}
private void l() {
this.Y.h(d.END_CALL.c(), null);
}
private void m() {
v3.a aVar;
b bVar = this.s0;
b bVar2 = b.Focused;
if (bVar != bVar2 && (aVar = this.X) != null && aVar.b()) {
this.s0 = bVar2;
}
z.a("RemoteControlService", "tryToGetAudioFocus: AudioFocus=[" + this.s0.name() + "]");
}
private void n(w3.b bVar) {
MediaMetadataCompat mediaMetadataCompat;
if (bVar != null) {
if (bVar.f()) {
bVar.l(getString(v3.f.a));
}
mediaMetadataCompat = new MediaMetadataCompat.Builder().putString("android.media.metadata.ALBUM", bVar.a()).putString("android.media.metadata.ARTIST", bVar.a()).putString("android.media.metadata.TITLE", bVar.c()).build();
} else {
mediaMetadataCompat = null;
}
MediaSessionCompat mediaSessionCompat = this.Z;
if (mediaSessionCompat != null) {
mediaSessionCompat.setMetadata(mediaMetadataCompat);
}
}
@Override
public void a() {
z.a("RemoteControlService", "onGainedAudioFocus.");
this.s0 = b.Focused;
}
@Override
public void b(boolean z) {
z.a("RemoteControlService", "onLostAudioFocus: canDuck=[" + z + "]");
this.s0 = z ? b.NoFocusCanDuck : b.NoFocusNoDuck;
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
u0 = true;
t0 = 0;
z.n("RemoteControlService", "onCreate");
super.onCreate();
AudioManager audioManager = (AudioManager) getSystemService("audio");
this.x = audioManager;
this.X = new v3.a(audioManager, this);
this.y = new ComponentName(getPackageName(), MediaActionReceiver.class.getName());
f fVar = new f(getApplicationContext());
this.Y = fVar;
fVar.g();
MediaSessionCompat mediaSessionCompat = new MediaSessionCompat(getApplicationContext(), "RemoteControlService", this.y, (PendingIntent) null);
this.Z = mediaSessionCompat;
mediaSessionCompat.setCallback(new c());
}
@Override
public void onDestroy() {
u0 = false;
t0 = 0;
i();
f fVar = this.Y;
if (fVar != null) {
fVar.j();
}
MediaSessionCompat mediaSessionCompat = this.Z;
if (mediaSessionCompat != null) {
mediaSessionCompat.release();
}
z.a("RemoteControlService", "onDestroy.");
super.onDestroy();
}
@Override
public int onStartCommand(Intent intent, int i, int i8) {
String action = intent == null ? null : intent.getAction();
z.n("RemoteControlService", "onStartCommand action: " + action + " curMode: " + v3.b.b(t0));
if ("com.ntt.voip.android.extension.action.START".equals(action)) {
w3.b bVar = (w3.b) j.g(intent, "call_state", w3.b.class);
t0 = bVar.b();
int b8 = bVar.b();
if (b8 == 3 || b8 == 4 || b8 == 5) {
h(bVar);
return 2;
}
stopSelf();
return 2;
}
if ("com.ntt.voip.android.extension.action.STOP".equals(action)) {
t0 = 0;
stopSelf();
return 2;
}
if (!"android.intent.action.MEDIA_BUTTON".equals(action)) {
return 2;
}
int intExtra = intent.getIntExtra("key_code", -1);
if (intExtra != 6) {
if (intExtra != 85) {
if (intExtra != 87 && intExtra != 88) {
if (intExtra != 126 && intExtra != 127) {
return 2;
}
}
}
int i9 = t0;
if (i9 == 3) {
return 2;
}
if (i9 == 4) {
c();
return 2;
}
if (i9 == 5) {
return 2;
}
stopSelf();
return 2;
}
int i10 = t0;
if (i10 == 3) {
d();
return 2;
}
if (i10 == 4) {
j();
return 2;
}
if (i10 != 5) {
stopSelf();
return 2;
}
l();
return 2;
}
}