导航菜单

页面标题

页面副标题

微商客 v2.1.2 - NimService.java 源代码

正在查看: 微商客 v2.1.2 应用的 NimService.java JAVA 源代码文件

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


package com.qiyukf.nimlib.service;

import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Binder;
import android.os.IBinder;
import android.util.Log;
import com.qiyukf.nimlib.app.AppForegroundWatcherCompat;
import com.qiyukf.nimlib.c;
import com.qiyukf.nimlib.f;
import com.qiyukf.nimlib.h;
import com.qiyukf.nimlib.ipc.d;
import com.qiyukf.nimlib.push.g;
import com.qiyukf.nimlib.r.t;
import com.qiyukf.nimlib.r.u;
import com.qiyukf.nimlib.r.x;
import com.qiyukf.nimlib.sdk.SDKOptions;
import com.qiyukf.nimlib.sdk.auth.LoginInfo;
import org.json.JSONObject;

public class NimService extends Service {
    private static int a = 0;
    private static int b = 3;
    private static a c;

    private interface a {
        void a();
    }

    @Override
    public boolean onUnbind(Intent intent) {
        return true;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        if (!c.E()) {
            com.qiyukf.nimlib.b b2 = b();
            if (b2 != null) {
                LoginInfo a2 = b2.a();
                SDKOptions b3 = b2.b();
                if (b3 != null) {
                    Log.i("core", "config in nim service");
                    c.a(this, a2, b3, true);
                } else {
                    g.a(this);
                    u.a();
                    return;
                }
            } else {
                g.a(this);
                u.a();
                return;
            }
        }
        c.a("NimService");
        h.a(true);
        b.b(this);
        com.qiyukf.nimlib.log.b.H("nim service startup");
    }

    @Override
    public int onStartCommand(Intent intent, int i, int i2) {
        int i3 = -1;
        if (intent != null) {
            i3 = intent.getIntExtra("EXTRA_FROM", -1);
            if (x.a()) {
                boolean booleanExtra = intent.getBooleanExtra("EXTRA_FOREGROUND", false);
                com.qiyukf.nimlib.log.b.H("start NimService onStartForeground ".concat(String.valueOf(booleanExtra)));
                if (booleanExtra) {
                    b.a((Service) this);
                    com.qiyukf.nimlib.e.b.a.a(this).postDelayed(new Runnable() {
                        @Override
                        public final void run() {
                            NimService.this.stopForeground(true);
                        }
                    }, 1000L);
                }
            }
        }
        com.qiyukf.nimlib.log.b.H("NimService onStartCommand from#" + i3 + " flags#" + i + " startId#" + i2);
        if (i3 != 2) {
            NimReceiver.a(this);
        }
        if (i3 == 1) {
            d.a("NimService");
        }
        return 2;
    }

    @Override
    public IBinder onBind(Intent intent) {
        d.a("NimService");
        return d.a();
    }

    @Override
    public void onRebind(Intent intent) {
        d.a("NimService");
        super.onRebind(intent);
    }

    @Override
    public void onDestroy() {
        com.qiyukf.nimlib.log.b.H("NimService onDestroy");
        h.a(false);
        super.onDestroy();
        com.qiyukf.nimlib.log.b.b();
    }

    public static boolean a(Context context, int i) {
        com.qiyukf.nimlib.log.b.H("start NimService from ".concat(String.valueOf(i)));
        Log.i("NimService", "start NimService context = ".concat(String.valueOf(context)));
        if (context == null) {
            return false;
        }
        Intent intent = new Intent(context, (Class<?>) NimService.class);
        intent.putExtra("EXTRA_FROM", i);
        try {
            context.startService(intent);
        } catch (Throwable th) {
            com.qiyukf.nimlib.log.b.c("service", "start NimService error: ".concat(String.valueOf(th)));
            if (!x.a() || !c.h().enableForegroundService) {
                return false;
            }
            try {
                com.qiyukf.nimlib.log.b.c("NimService", "startForegroundServiceCount:" + a);
                if (AppForegroundWatcherCompat.isBackground() && x.a(context)) {
                    com.qiyukf.nimlib.log.b.c("NimService", "android 12 can not startForegroundService in background");
                    return false;
                }
                if (a >= b && !AppForegroundWatcherCompat.a()) {
                    return false;
                }
                com.qiyukf.nimlib.log.b.H("startForegroundService NimService from ".concat(String.valueOf(i)));
                intent.putExtra("EXTRA_FOREGROUND", true);
                context.startForegroundService(intent);
                a++;
            } catch (Throwable th2) {
                com.qiyukf.nimlib.log.b.c("service", "startForegroundService NimService error: ".concat(String.valueOf(th2)));
                return false;
            }
        }
        return true;
    }

    private com.qiyukf.nimlib.b b() {
        try {
            Cursor query = getContentResolver().query(Uri.parse(String.format("content://%s/string/%s/%s", getPackageName() + ".qiyukf.ipc.provider.preference", "PARAMS", "KEY_GET_LOGIN_INFO_AND_SDK_OPTIONS")), null, null, null, null);
            if (query != null && query.moveToFirst()) {
                String string = query.getString(0);
                query.close();
                if (t.a((CharSequence) string)) {
                    return null;
                }
                JSONObject jSONObject = new JSONObject(string);
                return new com.qiyukf.nimlib.b(LoginInfo.fromJson(jSONObject.optJSONObject("KEY_LOGIN_INFO")), f.a(f.a(jSONObject.optJSONObject("KEY_SDK_OPTIONS_INIT_PUSH"))));
            }
        } catch (Throwable th) {
            th.printStackTrace();
        }
        return null;
    }

    public static Intent a(Context context) {
        Intent intent = new Intent(context, (Class<?>) NimService.class);
        intent.putExtra("EXTRA_FROM", 0);
        return intent;
    }

    public static Intent b(Context context) {
        return new Intent(context, (Class<?>) Aux.class);
    }

    public static final class Aux extends Service implements a {
        private static final Binder a = new Binder();

        @Override
        public final boolean onUnbind(Intent intent) {
            return true;
        }

        @Override
        public final void onCreate() {
            super.onCreate();
            if (c.C()) {
                return;
            }
            c.a("Aux");
            try {
                b.b(this);
                com.qiyukf.nimlib.log.b.H("aux service startup");
            } catch (IllegalStateException unused) {
                getApplicationContext();
                u.a();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        @Override
        public final IBinder onBind(Intent intent) {
            if (!c.C()) {
                d.a("AuxService");
            }
            return a;
        }

        @Override
        public final int onStartCommand(Intent intent, int i, int i2) {
            if (c.C()) {
                return super.onStartCommand(intent, i, i2);
            }
            com.qiyukf.nimlib.log.b.H("AuxService onStartCommand flags#" + i + " startId#" + i2 + " sticky=" + (!c.q()));
            if (c.q()) {
                return 2;
            }
            a unused = NimService.c = this;
            return super.onStartCommand(intent, i, i2);
        }

        @Override
        public final void onRebind(Intent intent) {
            if (!c.C()) {
                d.a("AuxService");
            }
            super.onRebind(intent);
        }

        @Override
        public final void onDestroy() {
            super.onDestroy();
            com.qiyukf.nimlib.log.b.H("NimService onDestroy");
            if (c.C()) {
                return;
            }
            a unused = NimService.c = null;
            com.qiyukf.nimlib.log.b.b();
        }

        @Override
        public final void a() {
            stopSelf();
        }
    }

    public static void a() {
        a aVar = c;
        if (aVar != null) {
            aVar.a();
            com.qiyukf.nimlib.log.b.H("quit sticky service!");
        }
    }
}