YYMediaService.smali
.class public Lcom/polly/mobile/mediasdk/YYMediaService;
.super Landroid/app/Service;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/polly/mobile/mediasdk/YYMediaService$a;
}
.end annotation
# static fields
.field private static final TAG:Ljava/lang/String; = "yy-media"
.field private static final mSetForegroundSignature:[Ljava/lang/Class;
.annotation system Ldalvik/annotation/Signature;
value = {
"[",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.end field
.field private static final mStartForegroundSignature:[Ljava/lang/Class;
.annotation system Ldalvik/annotation/Signature;
value = {
"[",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.end field
.field private static final mStopForegroundSignature:[Ljava/lang/Class;
.annotation system Ldalvik/annotation/Signature;
value = {
"[",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.end field
# instance fields
.field private isStartForeground:Ljava/util/concurrent/atomic/AtomicBoolean;
.field private final mBinder:Landroid/os/IBinder;
.field private mSetForeground:Ljava/lang/reflect/Method;
.field private mSetForegroundArgs:[Ljava/lang/Object;
.field private mStartForeground:Ljava/lang/reflect/Method;
.field private mStartForegroundArgs:[Ljava/lang/Object;
.field private mStopForeground:Ljava/lang/reflect/Method;
.field private mStopForegroundArgs:[Ljava/lang/Object;
# direct methods
.method static constructor <clinit>()V
.registers 4
const/4 v0, 0x1
new-array v1, v0, [Ljava/lang/Class;
.line 72
sget-object v2, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;
const/4 v3, 0x0
aput-object v2, v1, v3
sput-object v1, Lcom/polly/mobile/mediasdk/YYMediaService;->mSetForegroundSignature:[Ljava/lang/Class;
const/4 v1, 0x2
new-array v1, v1, [Ljava/lang/Class;
.line 73
sget-object v2, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object v2, v1, v3
const-class v2, Landroid/app/Notification;
aput-object v2, v1, v0
sput-object v1, Lcom/polly/mobile/mediasdk/YYMediaService;->mStartForegroundSignature:[Ljava/lang/Class;
new-array v0, v0, [Ljava/lang/Class;
.line 75
sget-object v1, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;
aput-object v1, v0, v3
sput-object v0, Lcom/polly/mobile/mediasdk/YYMediaService;->mStopForegroundSignature:[Ljava/lang/Class;
return-void
.end method
.method public constructor <init>()V
.registers 3
.line 16
invoke-direct {p0}, Landroid/app/Service;-><init>()V
.line 19
new-instance v0, Lcom/polly/mobile/mediasdk/YYMediaService$a;
invoke-direct {v0, p0}, Lcom/polly/mobile/mediasdk/YYMediaService$a;-><init>(Lcom/polly/mobile/mediasdk/YYMediaService;)V
iput-object v0, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->mBinder:Landroid/os/IBinder;
.line 21
new-instance v0, Ljava/util/concurrent/atomic/AtomicBoolean;
const/4 v1, 0x0
invoke-direct {v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;-><init>(Z)V
iput-object v0, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->isStartForeground:Ljava/util/concurrent/atomic/AtomicBoolean;
const/4 v0, 0x1
new-array v1, v0, [Ljava/lang/Object;
.line 80
iput-object v1, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->mSetForegroundArgs:[Ljava/lang/Object;
const/4 v1, 0x2
new-array v1, v1, [Ljava/lang/Object;
.line 81
iput-object v1, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->mStartForegroundArgs:[Ljava/lang/Object;
new-array v0, v0, [Ljava/lang/Object;
.line 82
iput-object v0, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->mStopForegroundArgs:[Ljava/lang/Object;
return-void
.end method
.method private initForeground()V
.registers 6
.line 117
:try_start_0
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
const-string v1, "startForeground"
sget-object v2, Lcom/polly/mobile/mediasdk/YYMediaService;->mStartForegroundSignature:[Ljava/lang/Class;
invoke-virtual {v0, v1, v2}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v0
iput-object v0, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->mStartForeground:Ljava/lang/reflect/Method;
.line 119
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
const-string v1, "stopForeground"
sget-object v2, Lcom/polly/mobile/mediasdk/YYMediaService;->mStopForegroundSignature:[Ljava/lang/Class;
invoke-virtual {v0, v1, v2}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v0
iput-object v0, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->mStopForeground:Ljava/lang/reflect/Method;
:try_end_1c
.catch Ljava/lang/NoSuchMethodException; {:try_start_0 .. :try_end_1c} :catch_1d
return-void
:catch_1d
move-exception v0
const/4 v1, 0x0
.line 123
iput-object v1, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->mStopForeground:Ljava/lang/reflect/Method;
iput-object v1, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->mStartForeground:Ljava/lang/reflect/Method;
const-string v1, ""
const-string v2, "yy-biz"
.line 124
invoke-static {v2, v1, v0}, Lcom/polly/mobile/util/f;->b(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
.line 127
:try_start_2a
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
const-string v3, "setForeground"
sget-object v4, Lcom/polly/mobile/mediasdk/YYMediaService;->mSetForegroundSignature:[Ljava/lang/Class;
invoke-virtual {v0, v3, v4}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v0
iput-object v0, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->mSetForeground:Ljava/lang/reflect/Method;
:try_end_38
.catch Ljava/lang/NoSuchMethodException; {:try_start_2a .. :try_end_38} :catch_39
return-void
:catch_39
move-exception v0
.line 130
invoke-static {v2, v1, v0}, Lcom/polly/mobile/util/f;->b(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
return-void
.end method
.method private invokeMethod(Ljava/lang/reflect/Method;[Ljava/lang/Object;)V
.registers 5
const-string v0, "invokeMethod"
const-string v1, "yy-biz"
.line 136
:try_start_4
invoke-virtual {p1, p0, p2}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
:try_end_7
.catch Ljava/lang/reflect/InvocationTargetException; {:try_start_4 .. :try_end_7} :catch_d
.catch Ljava/lang/IllegalAccessException; {:try_start_4 .. :try_end_7} :catch_8
return-void
:catch_8
move-exception p1
.line 140
invoke-static {v1, v0, p1}, Lcom/polly/mobile/util/f;->b(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
return-void
:catch_d
move-exception p1
.line 138
invoke-static {v1, v0, p1}, Lcom/polly/mobile/util/f;->b(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
return-void
.end method
# virtual methods
.method public onBind(Landroid/content/Intent;)Landroid/os/IBinder;
.registers 3
const-string p1, "yy-media"
const-string v0, "[YYMediaService]on bind by yymedia client."
.line 66
invoke-static {p1, v0}, Lcom/polly/mobile/util/f;->c(Ljava/lang/String;Ljava/lang/String;)I
.line 67
iget-object p1, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->mBinder:Landroid/os/IBinder;
return-object p1
.end method
.method public onCreate()V
.registers 3
.line 24
invoke-super {p0}, Landroid/app/Service;->onCreate()V
.line 26
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x12
if-ge v0, v1, :cond_f
.line 27
invoke-direct {p0}, Lcom/polly/mobile/mediasdk/YYMediaService;->initForeground()V
.line 28
invoke-virtual {p0}, Lcom/polly/mobile/mediasdk/YYMediaService;->startForegroundCompat()V
:cond_f
const-string v0, "yy-media"
const-string v1, "[YYMediaService]created."
.line 30
invoke-static {v0, v1}, Lcom/polly/mobile/util/f;->c(Ljava/lang/String;Ljava/lang/String;)I
return-void
.end method
.method public onDestroy()V
.registers 3
const-string v0, "yy-media"
const-string v1, "[YYMediaService]destroying.."
.line 35
invoke-static {v0, v1}, Lcom/polly/mobile/util/f;->c(Ljava/lang/String;Ljava/lang/String;)I
.line 37
invoke-super {p0}, Landroid/app/Service;->onDestroy()V
.line 39
invoke-virtual {p0}, Lcom/polly/mobile/mediasdk/YYMediaService;->stopServiceForeground()V
const-string v1, "[YYMediaService]destroyed."
.line 40
invoke-static {v0, v1}, Lcom/polly/mobile/util/f;->c(Ljava/lang/String;Ljava/lang/String;)I
return-void
.end method
.method protected startForegroundCompat()V
.registers 4
.line 90
iget-object v0, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->mStartForeground:Ljava/lang/reflect/Method;
const/4 v1, 0x0
if-eqz v0, :cond_21
.line 91
iget-object v0, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->mStartForegroundArgs:[Ljava/lang/Object;
const/16 v2, 0x400
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
aput-object v2, v0, v1
.line 92
iget-object v0, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->mStartForegroundArgs:[Ljava/lang/Object;
const/4 v1, 0x1
new-instance v2, Landroid/app/Notification;
invoke-direct {v2}, Landroid/app/Notification;-><init>()V
aput-object v2, v0, v1
.line 93
iget-object v0, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->mStartForeground:Ljava/lang/reflect/Method;
iget-object v1, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->mStartForegroundArgs:[Ljava/lang/Object;
invoke-direct {p0, v0, v1}, Lcom/polly/mobile/mediasdk/YYMediaService;->invokeMethod(Ljava/lang/reflect/Method;[Ljava/lang/Object;)V
return-void
.line 96
:cond_21
iget-object v0, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->mSetForegroundArgs:[Ljava/lang/Object;
sget-object v2, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
aput-object v2, v0, v1
.line 97
iget-object v0, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->mSetForeground:Ljava/lang/reflect/Method;
iget-object v1, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->mSetForegroundArgs:[Ljava/lang/Object;
invoke-direct {p0, v0, v1}, Lcom/polly/mobile/mediasdk/YYMediaService;->invokeMethod(Ljava/lang/reflect/Method;[Ljava/lang/Object;)V
return-void
.end method
.method public startServiceForeground(ILandroid/app/Notification;)V
.registers 3
.line 44
invoke-virtual {p0}, Lcom/polly/mobile/mediasdk/YYMediaService;->stopServiceForeground()V
if-eqz p2, :cond_e
.line 46
invoke-virtual {p0, p1, p2}, Lcom/polly/mobile/mediasdk/YYMediaService;->startForeground(ILandroid/app/Notification;)V
.line 47
iget-object p1, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->isStartForeground:Ljava/util/concurrent/atomic/AtomicBoolean;
const/4 p2, 0x1
invoke-virtual {p1, p2}, Ljava/util/concurrent/atomic/AtomicBoolean;->set(Z)V
:cond_e
return-void
.end method
.method protected stopForegroundCompat()V
.registers 4
.line 106
iget-object v0, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->mStopForeground:Ljava/lang/reflect/Method;
const/4 v1, 0x0
if-eqz v0, :cond_13
.line 107
iget-object v0, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->mStopForegroundArgs:[Ljava/lang/Object;
sget-object v2, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
aput-object v2, v0, v1
.line 108
iget-object v0, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->mStopForeground:Ljava/lang/reflect/Method;
iget-object v1, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->mStopForegroundArgs:[Ljava/lang/Object;
invoke-direct {p0, v0, v1}, Lcom/polly/mobile/mediasdk/YYMediaService;->invokeMethod(Ljava/lang/reflect/Method;[Ljava/lang/Object;)V
return-void
.line 111
:cond_13
iget-object v0, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->mSetForegroundArgs:[Ljava/lang/Object;
sget-object v2, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;
aput-object v2, v0, v1
.line 112
iget-object v0, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->mSetForeground:Ljava/lang/reflect/Method;
iget-object v1, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->mSetForegroundArgs:[Ljava/lang/Object;
invoke-direct {p0, v0, v1}, Lcom/polly/mobile/mediasdk/YYMediaService;->invokeMethod(Ljava/lang/reflect/Method;[Ljava/lang/Object;)V
return-void
.end method
.method public stopServiceForeground()V
.registers 3
.line 52
iget-object v0, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->isStartForeground:Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;->get()Z
move-result v0
if-eqz v0, :cond_12
const/4 v0, 0x1
.line 53
invoke-virtual {p0, v0}, Lcom/polly/mobile/mediasdk/YYMediaService;->stopForeground(Z)V
.line 54
iget-object v0, p0, Lcom/polly/mobile/mediasdk/YYMediaService;->isStartForeground:Ljava/util/concurrent/atomic/AtomicBoolean;
const/4 v1, 0x0
invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;->set(Z)V
:cond_12
return-void
.end method