导航菜单

页面标题

页面副标题

六分钟步行测试管理软件 v1.1.0.2112120029 - VersionService.java 源代码

正在查看: 六分钟步行测试管理软件 v1.1.0.2112120029 应用的 VersionService.java JAVA 源代码文件

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


package com.allenliu.versionchecklib.v2.ui;

import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.IBinder;
import com.allenliu.versionchecklib.R;
import com.allenliu.versionchecklib.core.http.AllenHttp;
import com.allenliu.versionchecklib.utils.ALog;
import com.allenliu.versionchecklib.utils.AllenEventBusUtil;
import com.allenliu.versionchecklib.utils.AppUtils;
import com.allenliu.versionchecklib.v2.AllenVersionChecker;
import com.allenliu.versionchecklib.v2.builder.BuilderManager;
import com.allenliu.versionchecklib.v2.builder.DownloadBuilder;
import com.allenliu.versionchecklib.v2.callback.DownloadListenerKt;
import com.allenliu.versionchecklib.v2.eventbus.CommonEvent;
import com.allenliu.versionchecklib.v2.net.DownloadMangerV2;
import java.io.File;
import java.util.concurrent.ExecutorService;
import kotlin.Metadata;
import kotlin.Unit;
import kotlin.jvm.functions.Function1;
import kotlin.jvm.internal.DefaultConstructorMarker;
import kotlin.jvm.internal.Intrinsics;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;

@Metadata(d1 = {"\u0000R\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u000e\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000b\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010\b\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0002\b\t\u0018\u0000 '2\u00020\u0001:\u0001'B\u0005¢\u0006\u0002\u0010\u0002J\b\u0010\u000f\u001a\u00020\u0010H\u0002J\b\u0010\u0011\u001a\u00020\u0010H\u0002J\b\u0010\u0012\u001a\u00020\u0010H\u0002J\u0012\u0010\u0013\u001a\u0004\u0018\u00010\u00142\u0006\u0010\u0015\u001a\u00020\u0016H\u0016J\b\u0010\u0017\u001a\u00020\u0010H\u0016J\b\u0010\u0018\u001a\u00020\u0010H\u0002J \u0010\u0019\u001a\u00020\u001a2\u0006\u0010\u0015\u001a\u00020\u00162\u0006\u0010\u001b\u001a\u00020\u001a2\u0006\u0010\u001c\u001a\u00020\u001aH\u0016J\u0014\u0010\u001d\u001a\u00020\u00102\n\u0010\u001e\u001a\u0006\u0012\u0002\b\u00030\u001fH\u0007J\b\u0010 \u001a\u00020\u0010H\u0002J\b\u0010!\u001a\u00020\u0010H\u0002J\b\u0010\"\u001a\u00020\u0010H\u0002J\b\u0010#\u001a\u00020\u0010H\u0002J\b\u0010$\u001a\u00020\u0010H\u0003J\u0010\u0010%\u001a\u00020\u00102\u0006\u0010&\u001a\u00020\u001aH\u0002R\u0014\u0010\u0003\u001a\u00020\u00048BX\u0082\u0004¢\u0006\u0006\u001a\u0004\b\u0005\u0010\u0006R\u000e\u0010\u0007\u001a\u00020\bX\u0082\u0004¢\u0006\u0002\n\u0000R\u0010\u0010\t\u001a\u0004\u0018\u00010\nX\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u0010\u000b\u001a\u00020\fX\u0082\u000e¢\u0006\u0002\n\u0000R\u0010\u0010\r\u001a\u0004\u0018\u00010\u000eX\u0082\u000e¢\u0006\u0002\n\u0000¨\u0006("}, d2 = {"Lcom/allenliu/versionchecklib/v2/ui/VersionService;", "Landroid/app/Service;", "()V", "downloadFilePath", "", "getDownloadFilePath", "()Ljava/lang/String;", "downloadListener", "Lcom/allenliu/versionchecklib/v2/callback/DownloadListenerKt;", "executors", "Ljava/util/concurrent/ExecutorService;", "isServiceAlive", "", "notificationHelper", "Lcom/allenliu/versionchecklib/v2/ui/NotificationHelper;", "downloadAPK", "", "init", "install", "onBind", "Landroid/os/IBinder;", "intent", "Landroid/content/Intent;", "onDestroy", "onHandleWork", "onStartCommand", "", "flags", "startId", "receiveEvent", "commonEvent", "Lcom/allenliu/versionchecklib/v2/eventbus/CommonEvent;", "requestPermissionAndDownload", "showDownloadFailedDialog", "showDownloadingDialog", "showVersionDialog", "startDownloadApk", "updateDownloadingDialogProgress", "progress", "Companion", "library_release"}, k = 1, mv = {1, 8, 0}, xi = 48)
public final class VersionService extends Service {

    public static final Companion INSTANCE = new Companion(null);
    private final DownloadListenerKt downloadListener = new DownloadListenerKt() {
        @Override
        public boolean isDisposed() {
            return DownloadListenerKt.DefaultImpls.isDisposed(this);
        }

        @Override
        public void onCheckerDownloading(final int progress) {
            BuilderManager builderManager = BuilderManager.INSTANCE;
            final VersionService versionService = VersionService.this;
            BuilderManager.doWhenNotNull$default(builderManager, null, new Function1<DownloadBuilder, Unit>() {
                {
                    super(1);
                }

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

                public final void invoke(com.allenliu.versionchecklib.v2.builder.DownloadBuilder r4) {
                    throw new UnsupportedOperationException("Method not decompiled: com.allenliu.versionchecklib.v2.ui.VersionService$downloadListener$1$onCheckerDownloading$1.invoke(com.allenliu.versionchecklib.v2.builder.DownloadBuilder):void");
                }
            }, 1, null);
        }

        @Override
        public void onCheckerDownloadSuccess(final File file) {
            Intrinsics.checkNotNullParameter(file, "file");
            BuilderManager builderManager = BuilderManager.INSTANCE;
            final VersionService versionService = VersionService.this;
            BuilderManager.doWhenNotNull$default(builderManager, null, new Function1<DownloadBuilder, Unit>() {
                {
                    super(1);
                }

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

                public final void invoke(com.allenliu.versionchecklib.v2.builder.DownloadBuilder r3) {
                    throw new UnsupportedOperationException("Method not decompiled: com.allenliu.versionchecklib.v2.ui.VersionService$downloadListener$1$onCheckerDownloadSuccess$1.invoke(com.allenliu.versionchecklib.v2.builder.DownloadBuilder):void");
                }
            }, 1, null);
        }

        @Override
        public void onCheckerDownloadFail() {
            BuilderManager builderManager = BuilderManager.INSTANCE;
            final VersionService versionService = VersionService.this;
            BuilderManager.doWhenNotNull$default(builderManager, null, new Function1<DownloadBuilder, Unit>() {
                {
                    super(1);
                }

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

                public final void invoke(com.allenliu.versionchecklib.v2.builder.DownloadBuilder r2) {
                    throw new UnsupportedOperationException("Method not decompiled: com.allenliu.versionchecklib.v2.ui.VersionService$downloadListener$1$onCheckerDownloadFail$1.invoke(com.allenliu.versionchecklib.v2.builder.DownloadBuilder):void");
                }
            }, 1, null);
        }

        @Override
        public void onCheckerStartDownload() {
            BuilderManager builderManager = BuilderManager.INSTANCE;
            final VersionService versionService = VersionService.this;
            BuilderManager.doWhenNotNull$default(builderManager, null, new Function1<DownloadBuilder, Unit>() {
                {
                    super(1);
                }

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

                public final void invoke(com.allenliu.versionchecklib.v2.builder.DownloadBuilder r2) {
                    throw new UnsupportedOperationException("Method not decompiled: com.allenliu.versionchecklib.v2.ui.VersionService$downloadListener$1$onCheckerStartDownload$1.invoke(com.allenliu.versionchecklib.v2.builder.DownloadBuilder):void");
                }
            }, 1, null);
        }
    };
    private ExecutorService executors;
    private boolean isServiceAlive;
    private NotificationHelper notificationHelper;

    @Override
    public IBinder onBind(Intent intent) {
        Intrinsics.checkNotNullParameter(intent, "intent");
        return null;
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Intrinsics.checkNotNullParameter(intent, "intent");
        if (!EventBus.getDefault().isRegistered(this)) {
            EventBus.getDefault().register(this);
        }
        ALog.e("version service create");
        init();
        return 3;
    }

    @Metadata(d1 = {"\u0000\u001e\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\b\u0086\u0003\u0018\u00002\u00020\u0001B\u0007\b\u0002¢\u0006\u0002\u0010\u0002J\u0016\u0010\u0003\u001a\u00020\u00042\u0006\u0010\u0005\u001a\u00020\u00062\u0006\u0010\u0007\u001a\u00020\b¨\u0006\t"}, d2 = {"Lcom/allenliu/versionchecklib/v2/ui/VersionService$Companion;", "", "()V", "enqueueWork", "", "context", "Landroid/content/Context;", "builder", "Lcom/allenliu/versionchecklib/v2/builder/DownloadBuilder;", "library_release"}, k = 1, mv = {1, 8, 0}, xi = 48)
    public static final class Companion {
        public Companion(DefaultConstructorMarker defaultConstructorMarker) {
            this();
        }

        private Companion() {
        }

        public final void enqueueWork(Context context, DownloadBuilder builder) {
            Intrinsics.checkNotNullParameter(context, "context");
            Intrinsics.checkNotNullParameter(builder, "builder");
            BuilderManager.INSTANCE.init(context, builder);
            Intent intent = new Intent(context, (Class<?>) VersionService.class);
            if (builder.isRunOnForegroundService() && Build.VERSION.SDK_INT >= 26) {
                context.startForegroundService(intent);
            } else {
                context.startService(intent);
            }
        }
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        ALog.e("version service destroy");
        BuilderManager.doWhenNotNull$default(BuilderManager.INSTANCE, null, new Function1<DownloadBuilder, Unit>() {
            {
                super(1);
            }

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

            public final void invoke(DownloadBuilder downloadBuilder) {
                Intrinsics.checkNotNullParameter(downloadBuilder, "$this$doWhenNotNull");
                if (downloadBuilder.isRunOnForegroundService()) {
                    VersionService.this.stopForeground(true);
                }
            }
        }, 1, null);
        BuilderManager.INSTANCE.destroy();
        NotificationHelper notificationHelper = this.notificationHelper;
        if (notificationHelper != null) {
            notificationHelper.onDestroy();
        }
        this.isServiceAlive = false;
        ExecutorService executorService = this.executors;
        if (executorService != null) {
            executorService.shutdown();
        }
        AllenHttp.getHttpClient().dispatcher().cancelAll();
        if (EventBus.getDefault().isRegistered(this)) {
            EventBus.getDefault().unregister(this);
        }
    }

    public final void onHandleWork() {
        downloadAPK();
    }

    private final void downloadAPK() {
        BuilderManager.doWhenNotNull$default(BuilderManager.INSTANCE, null, new Function1<DownloadBuilder, Unit>() {
            {
                super(1);
            }

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

            public final void invoke(DownloadBuilder downloadBuilder) {
                Intrinsics.checkNotNullParameter(downloadBuilder, "$this$doWhenNotNull");
                if (downloadBuilder.getVersionBundle() != null) {
                    if (downloadBuilder.isDirectDownload()) {
                        VersionService.this.startDownloadApk();
                    } else if (downloadBuilder.isSilentDownload()) {
                        VersionService.this.startDownloadApk();
                    } else {
                        VersionService.this.showVersionDialog();
                    }
                }
            }
        }, 1, null);
    }

    public final void showVersionDialog() {
        BuilderManager.doWhenNotNull$default(BuilderManager.INSTANCE, null, new Function1<DownloadBuilder, Unit>() {
            {
                super(1);
            }

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

            public final void invoke(DownloadBuilder downloadBuilder) {
                Intrinsics.checkNotNullParameter(downloadBuilder, "$this$doWhenNotNull");
                Intent intent = new Intent(VersionService.this, (Class<?>) UIActivity.class);
                intent.addFlags(268435456);
                VersionService.this.startActivity(intent);
            }
        }, 1, null);
    }

    public final void showDownloadingDialog() {
        BuilderManager.doWhenNotNull$default(BuilderManager.INSTANCE, null, new Function1<DownloadBuilder, Unit>() {
            {
                super(1);
            }

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

            public final void invoke(DownloadBuilder downloadBuilder) {
                Intrinsics.checkNotNullParameter(downloadBuilder, "$this$doWhenNotNull");
                if (downloadBuilder.isShowDownloadingDialog()) {
                    Intent intent = new Intent(VersionService.this, (Class<?>) DownloadingActivity.class);
                    intent.addFlags(268435456);
                    VersionService.this.startActivity(intent);
                }
            }
        }, 1, null);
    }

    public final void updateDownloadingDialogProgress(int progress) {
        CommonEvent commonEvent = new CommonEvent();
        commonEvent.setEventType(100);
        commonEvent.setData(Integer.valueOf(progress));
        commonEvent.setSuccessful(true);
        EventBus.getDefault().post(commonEvent);
    }

    public final void showDownloadFailedDialog() {
        BuilderManager.doWhenNotNull$default(BuilderManager.INSTANCE, null, new Function1<DownloadBuilder, Unit>() {
            {
                super(1);
            }

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

            public final void invoke(DownloadBuilder downloadBuilder) {
                Intrinsics.checkNotNullParameter(downloadBuilder, "$this$doWhenNotNull");
                Intent intent = new Intent(VersionService.this, (Class<?>) DownloadFailedActivity.class);
                intent.addFlags(268435456);
                VersionService.this.startActivity(intent);
            }
        }, 1, null);
    }

    private final void requestPermissionAndDownload() {
        startDownloadApk();
    }

    public final void install() {
        BuilderManager.doWhenNotNull$default(BuilderManager.INSTANCE, null, new Function1<DownloadBuilder, Unit>() {
            {
                super(1);
            }

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

            public final void invoke(DownloadBuilder downloadBuilder) {
                String downloadFilePath;
                Intrinsics.checkNotNullParameter(downloadBuilder, "$this$doWhenNotNull");
                AllenEventBusUtil.sendEventBus(101);
                downloadFilePath = VersionService.this.getDownloadFilePath();
                if (downloadBuilder.isSilentDownload()) {
                    VersionService.this.showVersionDialog();
                } else {
                    AppUtils.installApk(VersionService.this.getApplicationContext(), new File(downloadFilePath), downloadBuilder.getCustomInstallListener());
                    BuilderManager.INSTANCE.checkForceUpdate();
                }
            }
        }, 1, null);
    }

    public final String getDownloadFilePath() {
        String str = (String) BuilderManager.doWhenNotNull$default(BuilderManager.INSTANCE, null, new Function1<DownloadBuilder, String>() {
            {
                super(1);
            }

            public final String invoke(DownloadBuilder downloadBuilder) {
                Intrinsics.checkNotNullParameter(downloadBuilder, "$this$doWhenNotNull");
                String downloadAPKPath = downloadBuilder.getDownloadAPKPath();
                VersionService versionService = VersionService.this;
                int i = R.string.versionchecklib_download_apkname;
                Object[] objArr = new Object[1];
                objArr[0] = downloadBuilder.getApkName() != null ? downloadBuilder.getApkName() : VersionService.this.getPackageName();
                return downloadAPKPath + versionService.getString(i, objArr);
            }
        }, 1, null);
        return str == null ? "" : str;
    }

    private static final void startDownloadApk$inner(final VersionService versionService) {
        BuilderManager.doWhenNotNull$default(BuilderManager.INSTANCE, null, new Function1<DownloadBuilder, Unit>() {
            {
                super(1);
            }

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

            public final void invoke(DownloadBuilder downloadBuilder) {
                String downloadFilePath;
                DownloadListenerKt downloadListenerKt;
                Intrinsics.checkNotNullParameter(downloadBuilder, "$this$doWhenNotNull");
                downloadFilePath = VersionService.this.getDownloadFilePath();
                if (AppUtils.checkAPKIsExists(VersionService.this.getApplicationContext(), downloadFilePath, downloadBuilder.getNewestVersionCode()) && !downloadBuilder.isForceRedownload()) {
                    ALog.e("using cache");
                    VersionService.this.install();
                    return;
                }
                BuilderManager.INSTANCE.checkAndDeleteAPK();
                String downloadUrl = downloadBuilder.getDownloadUrl();
                if (downloadUrl == null && downloadBuilder.getVersionBundle() != null) {
                    downloadUrl = downloadBuilder.getVersionBundle().getDownloadUrl();
                }
                if (downloadUrl == null) {
                    AllenVersionChecker.getInstance().cancelAllMission();
                    throw new RuntimeException("you must set a download url for download function using");
                }
                ALog.e("downloadPath:" + downloadFilePath);
                String downloadAPKPath = downloadBuilder.getDownloadAPKPath();
                VersionService versionService2 = VersionService.this;
                int i = R.string.versionchecklib_download_apkname;
                Object[] objArr = new Object[1];
                objArr[0] = downloadBuilder.getApkName() != null ? downloadBuilder.getApkName() : VersionService.this.getPackageName();
                String string = versionService2.getString(i, objArr);
                downloadListenerKt = VersionService.this.downloadListener;
                DownloadMangerV2.download(downloadUrl, downloadAPKPath, string, downloadListenerKt);
            }
        }, 1, null);
    }

    public final void startDownloadApk() {
        ExecutorService executorService = this.executors;
        if (executorService != null) {
            executorService.submit(new Runnable() {
                @Override
                public final void run() {
                    VersionService.startDownloadApk$lambda$0(VersionService.this);
                }
            });
        }
    }

    public static final void startDownloadApk$lambda$0(VersionService versionService) {
        Intrinsics.checkNotNullParameter(versionService, "this$0");
        startDownloadApk$inner(versionService);
    }

    @Subscribe(threadMode = ThreadMode.MAIN)
    public final void receiveEvent(CommonEvent<?> commonEvent) {
        Intrinsics.checkNotNullParameter(commonEvent, "commonEvent");
        int eventType = commonEvent.getEventType();
        if (eventType == 98) {
            startDownloadApk();
        } else {
            if (eventType != 103) {
                return;
            }
            stopSelf();
            EventBus.getDefault().removeStickyEvent(commonEvent);
        }
    }

    private final void init() {
        BuilderManager.doWhenNotNull$default(BuilderManager.INSTANCE, null, new VersionService$init$1(this), 1, null);
    }
}