174 lines
6.4 KiB
Java
174 lines
6.4 KiB
Java
package com.discord.utilities.system;
|
|
|
|
import android.app.IntentService;
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.os.Bundle;
|
|
import android.os.Handler;
|
|
import android.os.Looper;
|
|
import android.os.Message;
|
|
import android.os.Messenger;
|
|
import android.os.Process;
|
|
import android.util.Log;
|
|
import c.d.b.a.a;
|
|
import com.discord.utilities.logging.Logger;
|
|
import com.discord.utilities.logging.LoggingProvider;
|
|
import com.discord.utilities.time.NtpClock;
|
|
import d0.z.d.m;
|
|
import kotlin.jvm.internal.DefaultConstructorMarker;
|
|
/* compiled from: RemoteIntentService.kt */
|
|
public abstract class RemoteIntentService extends IntentService {
|
|
public static final Companion Companion = new Companion(null);
|
|
private static final String MESSENGER_KEY = "com.discord.utilities.analytics.RemoteIntentService.MESSENGER_KEY";
|
|
private static final String TAG = "RemoteIntentService";
|
|
private static final int WHAT_CALLBACK_RESULT = 1;
|
|
private final String name;
|
|
|
|
/* compiled from: RemoteIntentService.kt */
|
|
public static final class Companion {
|
|
private Companion() {
|
|
}
|
|
|
|
public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) {
|
|
this();
|
|
}
|
|
|
|
public static final /* synthetic */ String access$messageToString(Companion companion, Message message) {
|
|
return companion.messageToString(message);
|
|
}
|
|
|
|
private final String messageToString(Message message) {
|
|
StringBuilder K = a.K("Message(what=");
|
|
K.append(message.what);
|
|
K.append(", arg1=");
|
|
K.append(message.arg1);
|
|
K.append(", arg2=");
|
|
K.append(message.arg2);
|
|
K.append(", obj=");
|
|
K.append(message.obj);
|
|
K.append(", replyTo=");
|
|
K.append(message.replyTo);
|
|
K.append(')');
|
|
return K.toString();
|
|
}
|
|
|
|
public final void startRemoteServiceWithCallback(Context context, Class<?> cls, IpcCallback ipcCallback) {
|
|
m.checkNotNullParameter(context, "context");
|
|
m.checkNotNullParameter(cls, "serviceClass");
|
|
m.checkNotNullParameter(ipcCallback, "callback");
|
|
Logger logger = LoggingProvider.INSTANCE.get();
|
|
StringBuilder K = a.K("Starting service in remote process: ");
|
|
K.append(cls.getSimpleName());
|
|
K.append(", app pid=");
|
|
K.append(Process.myPid());
|
|
Logger.d$default(logger, "RemoteIntentService", K.toString(), null, 4, null);
|
|
Intent intent = new Intent(context, cls);
|
|
Bundle bundle = new Bundle();
|
|
bundle.putParcelable("com.discord.utilities.analytics.RemoteIntentService.MESSENGER_KEY", ipcCallback.getMessenger());
|
|
intent.putExtras(bundle);
|
|
context.startService(intent);
|
|
}
|
|
}
|
|
|
|
/* compiled from: RemoteIntentService.kt */
|
|
public static abstract class IpcCallback {
|
|
private final Handler handler;
|
|
private final String name;
|
|
|
|
public IpcCallback(String str, Looper looper) {
|
|
m.checkNotNullParameter(str, "name");
|
|
m.checkNotNullParameter(looper, "callbackLooper");
|
|
this.name = str;
|
|
this.handler = new Handler(looper, new RemoteIntentService$IpcCallback$handler$1(this));
|
|
}
|
|
|
|
public static final /* synthetic */ String access$getName$p(IpcCallback ipcCallback) {
|
|
return ipcCallback.name;
|
|
}
|
|
|
|
public final Messenger getMessenger() {
|
|
return new Messenger(this.handler);
|
|
}
|
|
|
|
public abstract void onFailure(Throwable th);
|
|
|
|
public abstract void onSuccess(Bundle bundle);
|
|
}
|
|
|
|
/* JADX INFO: super call moved to the top of the method (can break code semantics) */
|
|
public RemoteIntentService(String str) {
|
|
super(str);
|
|
m.checkNotNullParameter(str, "name");
|
|
this.name = str;
|
|
}
|
|
|
|
public abstract Bundle doWork(Intent intent);
|
|
|
|
@Override // android.app.IntentService, android.app.Service
|
|
public final void onCreate() {
|
|
super.onCreate();
|
|
StringBuilder H = a.H('[');
|
|
H.append(this.name);
|
|
H.append("] created, remote pid=");
|
|
H.append(Process.myPid());
|
|
Log.d("RemoteIntentService", H.toString());
|
|
}
|
|
|
|
@Override // android.app.IntentService, android.app.Service
|
|
public final void onDestroy() {
|
|
StringBuilder H = a.H('[');
|
|
H.append(this.name);
|
|
H.append("] destroyed");
|
|
Log.d("RemoteIntentService", H.toString());
|
|
super.onDestroy();
|
|
}
|
|
|
|
@Override // android.app.IntentService
|
|
public final void onHandleIntent(Intent intent) {
|
|
Bundle th;
|
|
StringBuilder H = a.H('[');
|
|
H.append(this.name);
|
|
H.append("] onHandleIntent() start, pid=");
|
|
H.append(Process.myPid());
|
|
Log.d("RemoteIntentService", H.toString());
|
|
if (intent == null) {
|
|
StringBuilder H2 = a.H('[');
|
|
H2.append(this.name);
|
|
H2.append("] null intent");
|
|
Log.d("RemoteIntentService", H2.toString());
|
|
return;
|
|
}
|
|
NtpClock ntpClock = new NtpClock(c.m.a.a.a(this, null, null, 0, 0, 0, 62));
|
|
long currentTimeMillis = ntpClock.currentTimeMillis();
|
|
try {
|
|
th = doWork(intent);
|
|
} catch (Throwable th2) {
|
|
th = th2;
|
|
StringBuilder H3 = a.H('[');
|
|
H3.append(this.name);
|
|
H3.append("] doWork returned error: ");
|
|
H3.append(th);
|
|
Log.e("RemoteIntentService", H3.toString());
|
|
}
|
|
long currentTimeMillis2 = ntpClock.currentTimeMillis() - currentTimeMillis;
|
|
StringBuilder H4 = a.H('[');
|
|
H4.append(this.name);
|
|
H4.append("] doWork finished: ");
|
|
H4.append(currentTimeMillis2);
|
|
H4.append(" ms");
|
|
Log.d("RemoteIntentService", H4.toString());
|
|
Message obtain = Message.obtain();
|
|
obtain.what = 1;
|
|
obtain.arg1 = (int) currentTimeMillis2;
|
|
obtain.obj = th;
|
|
Messenger messenger = (Messenger) intent.getParcelableExtra("com.discord.utilities.analytics.RemoteIntentService.MESSENGER_KEY");
|
|
if (messenger != null) {
|
|
messenger.send(obtain);
|
|
return;
|
|
}
|
|
StringBuilder H5 = a.H('[');
|
|
H5.append(this.name);
|
|
H5.append("] reply-to Messenger not set by caller");
|
|
Log.e("RemoteIntentService", H5.toString());
|
|
}
|
|
}
|