导航菜单

页面标题

页面副标题

xxxxx v3.2.8 - RemoteService.java 源代码

正在查看: xxxxx v3.2.8 应用的 RemoteService.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.gyf.xtfcactus.service;

import android.app.Service;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Build;
import android.os.IBinder;
import android.os.Process;
import com.alibaba.android.bindingx.core.internal.BindingXConstants;
import com.gyf.xtfcactus.entity.CactusConfig;
import com.gyf.xtfcactus.entity.Constant;
import com.gyf.xtfcactus.entity.ICactusInterface;
import com.gyf.xtfcactus.exception.CactusUncaughtExceptionHandler;
import com.gyf.xtfcactus.ext.CactusExtKt;
import com.gyf.xtfcactus.ext.ConfigExtKt;
import com.gyf.xtfcactus.ext.NotificationExtKt;
import com.taobao.weex.common.Constants;
import kotlin.Metadata;
import kotlin.Unit;
import kotlin.jvm.functions.Function0;
import kotlin.jvm.internal.Intrinsics;

@Metadata(d1 = {"\u0000K\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\b\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000b\n\u0002\b\u0003\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\b*\u0001\u000f\u0018\u00002\u00020\u00012\u00020\u0002:\u0001\u001fB\u0005¢\u0006\u0002\u0010\u0003J\b\u0010\u0013\u001a\u00020\u0014H\u0016J\u0014\u0010\u0015\u001a\u0004\u0018\u00010\u00162\b\u0010\u0017\u001a\u0004\u0018\u00010\u0018H\u0016J\b\u0010\u0019\u001a\u00020\u0014H\u0016J\b\u0010\u001a\u001a\u00020\u0014H\u0016J\"\u0010\u001b\u001a\u00020\u00072\b\u0010\u0017\u001a\u0004\u0018\u00010\u00182\u0006\u0010\u001c\u001a\u00020\u00072\u0006\u0010\u001d\u001a\u00020\u0007H\u0016J\b\u0010\u001e\u001a\u00020\u0014H\u0002R\u000e\u0010\u0004\u001a\u00020\u0005X\u0082.¢\u0006\u0002\n\u0000R\u000e\u0010\u0006\u001a\u00020\u0007X\u0082\u000e¢\u0006\u0002\n\u0000R\u0010\u0010\b\u001a\u0004\u0018\u00010\tX\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u0010\n\u001a\u00020\u000bX\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u0010\f\u001a\u00020\u000bX\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u0010\r\u001a\u00020\u000bX\u0082\u000e¢\u0006\u0002\n\u0000R\u0010\u0010\u000e\u001a\u00020\u000fX\u0082\u0004¢\u0006\u0004\n\u0002\u0010\u0010R\u0012\u0010\u0011\u001a\u00060\u0012R\u00020\u0000X\u0082.¢\u0006\u0002\n\u0000¨\u0006 "}, d2 = {"Lcom/gyf/xtfcactus/service/RemoteService;", "Landroid/app/Service;", "Landroid/os/IBinder$DeathRecipient;", "()V", "mCactusConfig", "Lcom/gyf/xtfcactus/entity/CactusConfig;", "mConnectionTimes", "", "mIInterface", "Lcom/gyf/xtfcactus/entity/ICactusInterface;", "mIsBind", "", "mIsDeathBind", "mIsStop", "mServiceConnection", "com/gyf/xtfcactus/service/RemoteService$mServiceConnection$1", "Lcom/gyf/xtfcactus/service/RemoteService$mServiceConnection$1;", "remoteBinder", "Lcom/gyf/xtfcactus/service/RemoteService$RemoteBinder;", "binderDied", "", "onBind", "Landroid/os/IBinder;", "intent", "Landroid/content/Intent;", "onCreate", "onDestroy", "onStartCommand", "flags", "startId", "stopBind", "RemoteBinder", "cactus_release"}, k = 1, mv = {1, 6, 0}, xi = 48)
public final class RemoteService extends Service implements IBinder.DeathRecipient {
    private CactusConfig mCactusConfig;
    private ICactusInterface mIInterface;
    private boolean mIsBind;
    private boolean mIsDeathBind;
    private boolean mIsStop;
    private RemoteBinder remoteBinder;
    private int mConnectionTimes = CactusExtKt.getSTimes();
    private final RemoteService$mServiceConnection$1 mServiceConnection = new ServiceConnection() {
        @Override
        public void onServiceDisconnected(ComponentName name) {
            boolean z;
            CactusExtKt.log("onServiceDisconnected");
            z = RemoteService.this.mIsStop;
            if (z) {
                return;
            }
            RemoteService remoteService = RemoteService.this;
            RemoteService remoteService2 = remoteService;
            RemoteService$mServiceConnection$1 remoteService$mServiceConnection$1 = this;
            CactusConfig cactusConfig = remoteService.mCactusConfig;
            if (cactusConfig == null) {
                Intrinsics.throwUninitializedPropertyAccessException("mCactusConfig");
                cactusConfig = null;
            }
            remoteService.mIsBind = CactusExtKt.startLocalService$default(remoteService2, remoteService$mServiceConnection$1, cactusConfig, false, 4, null);
        }

        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
            boolean z;
            CactusExtKt.log("onServiceConnected");
            if (service != null) {
                RemoteService remoteService = RemoteService.this;
                ICactusInterface asInterface = ICactusInterface.Stub.asInterface(service);
                CactusConfig cactusConfig = null;
                if (asInterface == null) {
                    asInterface = null;
                } else if (asInterface.asBinder().isBinderAlive() && asInterface.asBinder().pingBinder()) {
                    try {
                        remoteService.mConnectionTimes++;
                        int unused = remoteService.mConnectionTimes;
                        CactusConfig cactusConfig2 = remoteService.mCactusConfig;
                        if (cactusConfig2 == null) {
                            Intrinsics.throwUninitializedPropertyAccessException("mCactusConfig");
                        } else {
                            cactusConfig = cactusConfig2;
                        }
                        asInterface.wakeup(cactusConfig);
                        asInterface.connectionTimes(remoteService.mConnectionTimes);
                        z = remoteService.mIsDeathBind;
                        if (!z) {
                            remoteService.mIsDeathBind = true;
                            asInterface.asBinder().linkToDeath(remoteService, 0);
                        }
                    } catch (Exception unused2) {
                        remoteService.mConnectionTimes--;
                        int unused3 = remoteService.mConnectionTimes;
                    }
                }
                remoteService.mIInterface = asInterface;
            }
        }
    };

    @Override
    public void binderDied() {
        CactusExtKt.log("binderDied");
        try {
            CactusExtKt.unlinkToDeath(this, this.mIInterface, new Function0<Unit>() {
                {
                    super(0);
                }

                public Object invoke() {
                    m296invoke();
                    return Unit.INSTANCE;
                }

                public final void m296invoke() {
                    boolean z;
                    RemoteService$mServiceConnection$1 remoteService$mServiceConnection$1;
                    RemoteService.this.mIsDeathBind = false;
                    RemoteService.this.mIInterface = null;
                    z = RemoteService.this.mIsStop;
                    if (z) {
                        return;
                    }
                    RemoteService remoteService = RemoteService.this;
                    RemoteService remoteService2 = remoteService;
                    remoteService$mServiceConnection$1 = remoteService.mServiceConnection;
                    RemoteService$mServiceConnection$1 remoteService$mServiceConnection$12 = remoteService$mServiceConnection$1;
                    CactusConfig cactusConfig = RemoteService.this.mCactusConfig;
                    if (cactusConfig == null) {
                        Intrinsics.throwUninitializedPropertyAccessException("mCactusConfig");
                        cactusConfig = null;
                    }
                    remoteService.mIsBind = CactusExtKt.startLocalService$default(remoteService2, remoteService$mServiceConnection$12, cactusConfig, false, 4, null);
                }
            });
        } catch (Exception unused) {
        }
    }

    @Override
    public void onCreate() {
        super.onCreate();
        CactusUncaughtExceptionHandler.INSTANCE.getInstance();
        try {
            CactusExtKt.log("handleNotification");
            CactusConfig config = ConfigExtKt.getConfig(this);
            this.mCactusConfig = config;
            RemoteService remoteService = this;
            if (config == null) {
                Intrinsics.throwUninitializedPropertyAccessException("mCactusConfig");
                config = null;
            }
            NotificationExtKt.setNotification$default(remoteService, config.getNotificationConfig(), false, 2, null);
        } catch (Exception e) {
            e.printStackTrace();
        }
        CactusExtKt.registerStopReceiver(this, new Function0<Unit>() {
            {
                super(0);
            }

            public Object invoke() {
                m297invoke();
                return Unit.INSTANCE;
            }

            public final void m297invoke() {
                RemoteService.this.mIsStop = true;
                CactusExtKt.setSTimes(RemoteService.this.mConnectionTimes);
                CactusExtKt.stopService(RemoteService.this);
            }
        });
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        CactusConfig cactusConfig;
        if (intent != null && (cactusConfig = (CactusConfig) intent.getParcelableExtra(Constant.CACTUS_CONFIG)) != null) {
            CactusExtKt.setSCactusConfig(cactusConfig);
            this.mCactusConfig = cactusConfig;
        }
        RemoteService remoteService = this;
        CactusConfig cactusConfig2 = this.mCactusConfig;
        CactusConfig cactusConfig3 = null;
        if (cactusConfig2 == null) {
            Intrinsics.throwUninitializedPropertyAccessException("mCactusConfig");
            cactusConfig2 = null;
        }
        NotificationExtKt.setNotification$default(remoteService, cactusConfig2.getNotificationConfig(), false, 2, null);
        RemoteService$mServiceConnection$1 remoteService$mServiceConnection$1 = this.mServiceConnection;
        CactusConfig cactusConfig4 = this.mCactusConfig;
        if (cactusConfig4 == null) {
            Intrinsics.throwUninitializedPropertyAccessException("mCactusConfig");
        } else {
            cactusConfig3 = cactusConfig4;
        }
        this.mIsBind = CactusExtKt.startLocalService(remoteService, remoteService$mServiceConnection$1, cactusConfig3, false);
        CactusExtKt.log("RemoteService is running");
        return 1;
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        if (Build.VERSION.SDK_INT >= 24) {
            stopForeground(1);
        } else {
            stopForeground(true);
        }
        stopBind();
        CactusExtKt.log("RemoteService has stopped");
        Process.killProcess(Process.myPid());
        System.exit(10);
        throw new RuntimeException("System.exit returned normally, while it was supposed to halt JVM.");
    }

    @Override
    public IBinder onBind(Intent intent) {
        RemoteBinder remoteBinder = new RemoteBinder();
        this.remoteBinder = remoteBinder;
        return remoteBinder;
    }

    @Metadata(d1 = {"\u0000 \n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0000\n\u0002\u0010\b\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\b\u0086\u0004\u0018\u00002\u00020\u0001B\u0005¢\u0006\u0002\u0010\u0002J\u0010\u0010\u0003\u001a\u00020\u00042\u0006\u0010\u0005\u001a\u00020\u0006H\u0016J\u0010\u0010\u0007\u001a\u00020\u00042\u0006\u0010\b\u001a\u00020\tH\u0016¨\u0006\n"}, d2 = {"Lcom/gyf/xtfcactus/service/RemoteService$RemoteBinder;", "Lcom/gyf/xtfcactus/entity/ICactusInterface$Stub;", "(Lcom/gyf/xtfcactus/service/RemoteService;)V", "connectionTimes", "", Constants.Value.TIME, "", "wakeup", BindingXConstants.KEY_CONFIG, "Lcom/gyf/xtfcactus/entity/CactusConfig;", "cactus_release"}, k = 1, mv = {1, 6, 0}, xi = 48)
    public final class RemoteBinder extends ICactusInterface.Stub {
        public RemoteBinder() {
        }

        @Override
        public void wakeup(CactusConfig config) {
            Intrinsics.checkNotNullParameter(config, BindingXConstants.KEY_CONFIG);
            RemoteService.this.mCactusConfig = config;
            RemoteService remoteService = RemoteService.this;
            RemoteService remoteService2 = remoteService;
            CactusConfig cactusConfig = remoteService.mCactusConfig;
            if (cactusConfig == null) {
                Intrinsics.throwUninitializedPropertyAccessException("mCactusConfig");
                cactusConfig = null;
            }
            NotificationExtKt.setNotification$default(remoteService2, cactusConfig.getNotificationConfig(), false, 2, null);
        }

        @Override
        public void connectionTimes(int time) {
            RemoteService.this.mConnectionTimes = time;
            if (RemoteService.this.mConnectionTimes > 4 && RemoteService.this.mConnectionTimes % 2 == 1) {
                RemoteService remoteService = RemoteService.this;
                remoteService.mConnectionTimes++;
                int unused = remoteService.mConnectionTimes;
            }
            CactusExtKt.setSTimes(RemoteService.this.mConnectionTimes);
        }
    }

    private final void stopBind() {
        try {
            if (this.mIsDeathBind) {
                this.mIsDeathBind = false;
                CactusExtKt.unlinkToDeath$default(this, this.mIInterface, null, 2, null);
            }
            if (this.mIsBind) {
                unbindService(this.mServiceConnection);
                this.mIsBind = false;
            }
        } catch (Exception unused) {
        }
    }
}