InjectActivity.java 源代码


package com.x8zs.ui;

import android.app.PendingIntent;
import android.app.ProgressDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageInfo;
import android.content.pm.PackageInstaller;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.text.Html;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListAdapter;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import com.anythink.basead.b.a;
import com.x8zs.ad.AdManagerEx;
import com.x8zs.apkbuilder.ApkBuilder;
import com.x8zs.ds2.R;
import com.x8zs.model.X8DataModel;
import com.x8zs.sandbox.ad.AdManager;
import com.x8zs.sandbox.ad.AdResultCallback;
import com.x8zs.widget.DownloadProgressButton;
import java.io.File;
import java.io.FileInputStream;
import java.io.FilenameFilter;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;

public class InjectActivity extends AppCompatActivity implements View.OnClickListener, X8DataModel.f0, X8DataModel.s0, X8DataModel.r0 {
    private static final int BUTTON_STATE_ERROR = 3;
    private static final int BUTTON_STATE_INSTALL = 2;
    private static final int BUTTON_STATE_PATCH = 0;
    private static final int BUTTON_STATE_PENDING = 1;
    private static final int REQUEST_CODE_INSTALL = 101;
    private static final int REQUEST_CODE_UNINSTALL = 100;
    private static final String TAG = "InjectActivity";
    private FrameLayout mABanner;
    private k mAccTypeAdapter;
    private GridView mAccTypeView;
    private String mApkPathToInstall;
    private String mApkPathToPatch;
    private X8DataModel.AppDataModel mApp;
    private TextView mAppInfoView;
    private FrameLayout mBBanner;
    private boolean mBackup;
    private int mButtonState;
    private int mCurrentHookType;
    private int mCurrentPatchType;
    private boolean mDelayLoadHandled;
    private ProgressDialog mLoadingDlg;
    private DownloadProgressButton mPatchButton;
    private TextView mPatchInfoView;
    private X8DataModel.p0 mPatchRule;
    private k mPatchTypeAdapter;
    private GridView mPatchTypeView;
    private Button mRemoveButton;
    private X8DataModel.AppTaskModel mTask;
    private Toolbar mToolbar;
    private ArrayList<n> mPatchTypeList = new ArrayList<>();
    private ArrayList<l> mHookTypeList = new ArrayList<>();
    private int mStartUIStatus = 0;
    final String INSTALL_RESULT_ACTION = "com.x8zs.ds2.action.SESSION_INSTALL_CALLBACK";
    private BroadcastReceiver mInstallResultReceiver = new j();

    public class a implements Runnable {

        final String f21911q;

        final String f21912r;

        final File[] f21913s;

        class RunnableC0269a implements Runnable {

            final boolean f21915q;

            RunnableC0269a(boolean z6) {
                this.f21915q = z6;
            }

            @Override
            public void run() {
                if (!this.f21915q) {
                    InjectActivity.this.dismissLoadingDlg();
                    o2.e.b(InjectActivity.this, "1: " + InjectActivity.this.getString(R.string.install_failed_tips), 0);
                }
            }
        }

        a(String str, String str2, File[] fileArr) {
            this.f21911q = str;
            this.f21912r = str2;
            this.f21913s = fileArr;
        }

        @Override
        public void run() {
            new Handler(Looper.getMainLooper()).post(new RunnableC0269a(InjectActivity.this.doInstallApk(this.f21911q, this.f21912r, this.f21913s)));
        }
    }

    public class b implements m {
        b() {
        }

        @Override
        public boolean a(int i6) {
            if (InjectActivity.this.mButtonState == 2) {
                o2.e.a(InjectActivity.this, R.string.disallow_patch_or_hook_type_select_tips, 0);
                return true;
            }
            if (InjectActivity.this.mButtonState != 0) {
                return true;
            }
            return false;
        }
    }

    public class c implements m {
        c() {
        }

        @Override
        public boolean a(int i6) {
            if (InjectActivity.this.mButtonState == 2) {
                o2.e.a(InjectActivity.this, R.string.disallow_patch_or_hook_type_select_tips, 0);
                return true;
            }
            if (InjectActivity.this.mButtonState != 0) {
                return true;
            }
            return false;
        }
    }

    public class d implements FilenameFilter {
        d() {
        }

        @Override
        public boolean accept(File file, String str) {
            return str.contains(InjectActivity.this.mApp.app_pkg);
        }
    }

    public class e implements AdResultCallback {

        final boolean[] f21920a;

        e(boolean[] zArr) {
            this.f21920a = zArr;
        }

        @Override
        public void onAdPlayResult(int i6) {
            if (i6 != 2 && i6 != 0) {
                if (!this.f21920a[0]) {
                    if (TextUtils.isEmpty(InjectActivity.this.mApkPathToPatch)) {
                        InjectActivity injectActivity = InjectActivity.this;
                        injectActivity.mApkPathToPatch = injectActivity.getInputApkPath();
                    }
                    if (InjectActivity.this.mTask != null) {
                        X8DataModel.A0(InjectActivity.this).n1(InjectActivity.this.mTask, InjectActivity.this.mApkPathToPatch, InjectActivity.this.mPatchRule, InjectActivity.this.mBackup);
                    } else {
                        X8DataModel.A0(InjectActivity.this).m1(InjectActivity.this.mApp, InjectActivity.this.mApkPathToPatch, InjectActivity.this.mPatchRule, InjectActivity.this.mBackup);
                    }
                }
            } else {
                o2.e.a(InjectActivity.this, R.string.please_watch_ads_tips, 0);
            }
            HashMap hashMap = new HashMap();
            if (InjectActivity.this.mApp != null) {
                hashMap.put("appName", InjectActivity.this.mApp.app_name);
                hashMap.put("appPkg", InjectActivity.this.mApp.app_pkg);
            } else if (InjectActivity.this.mTask != null) {
                hashMap.put("appName", InjectActivity.this.mTask.app_name);
                hashMap.put("appPkg", InjectActivity.this.mTask.app_pkg);
            }
            hashMap.put("result", Integer.toString(i6));
            com.x8zs.app.c.b().h("PatchButtonAdResult", hashMap);
        }

        @Override
        public void onAdPlayStart() {
            if (TextUtils.isEmpty(InjectActivity.this.mApkPathToPatch)) {
                InjectActivity injectActivity = InjectActivity.this;
                injectActivity.mApkPathToPatch = injectActivity.getInputApkPath();
            }
            if (InjectActivity.this.mTask != null) {
                X8DataModel.A0(InjectActivity.this).n1(InjectActivity.this.mTask, InjectActivity.this.mApkPathToPatch, InjectActivity.this.mPatchRule, InjectActivity.this.mBackup);
            } else {
                X8DataModel.A0(InjectActivity.this).m1(InjectActivity.this.mApp, InjectActivity.this.mApkPathToPatch, InjectActivity.this.mPatchRule, InjectActivity.this.mBackup);
            }
            this.f21920a[0] = true;
        }
    }

    public class f implements AdResultCallback {
        f() {
        }

        @Override
        public void onAdPlayResult(int i6) {
            if (i6 != 2 && i6 != 0) {
                InjectActivity injectActivity = InjectActivity.this;
                injectActivity.showReinstallDialog(injectActivity.mApp.shell_pkg);
            } else {
                o2.e.a(InjectActivity.this, R.string.please_watch_ads_tips, 0);
            }
            HashMap hashMap = new HashMap();
            if (InjectActivity.this.mApp != null) {
                hashMap.put("appName", InjectActivity.this.mApp.app_name);
                hashMap.put("appPkg", InjectActivity.this.mApp.app_pkg);
            } else if (InjectActivity.this.mTask != null) {
                hashMap.put("appName", InjectActivity.this.mTask.app_name);
                hashMap.put("appPkg", InjectActivity.this.mTask.app_pkg);
            }
            hashMap.put("result", Integer.toString(i6));
            com.x8zs.app.c.b().h("RemoveButtonAdResult", hashMap);
        }

        @Override
        public void onAdPlayStart() {
        }
    }

    public class g implements View.OnClickListener {

        final com.x8zs.widget.a f21923q;

        g(com.x8zs.widget.a aVar) {
            this.f21923q = aVar;
        }

        @Override
        public void onClick(View view) {
            this.f21923q.dismiss();
        }
    }

    public class h implements View.OnClickListener {

        final String f21925q;

        final com.x8zs.widget.a f21926r;

        h(String str, com.x8zs.widget.a aVar) {
            this.f21925q = str;
            this.f21926r = aVar;
        }

        @Override
        public void onClick(View view) {
            o2.f.i0(InjectActivity.this, this.f21925q, 100);
            this.f21926r.dismiss();
        }
    }

    class i implements Runnable {
        i() {
        }

        @Override
        public void run() {
            if (InjectActivity.this.mStartUIStatus == 1) {
                InjectActivity.this.mStartUIStatus = 2;
            }
        }
    }

    class j extends BroadcastReceiver {
        j() {
        }

        @Override
        public void onReceive(Context context, Intent intent) {
            String str;
            String str2;
            boolean z6;
            InjectActivity.this.dismissLoadingDlg();
            int intExtra = intent.getIntExtra("android.content.pm.extra.STATUS", 1);
            String stringExtra = intent.getStringExtra("android.content.pm.extra.STATUS_MESSAGE");
            Log.d(InjectActivity.TAG, "[SESSION_INSTALL_CALLBACK] status = " + intExtra + ", message = " + stringExtra + ", activity = " + InjectActivity.this);
            if (InjectActivity.this.mApp != null) {
                str = InjectActivity.this.mApp.app_pkg;
                str2 = InjectActivity.this.mApp.app_name;
            } else if (InjectActivity.this.mTask == null) {
                str = "";
                str2 = str;
            } else {
                str = InjectActivity.this.mTask.app_pkg;
                str2 = InjectActivity.this.mTask.app_name;
            }
            if (intExtra == -1) {
                try {
                    InjectActivity.this.startActivity((Intent) intent.getParcelableExtra("android.intent.extra.INTENT"));
                    InjectActivity.this.mStartUIStatus = 1;
                    return;
                } catch (Throwable th) {
                    th.printStackTrace();
                    try {
                        InjectActivity injectActivity = InjectActivity.this;
                        injectActivity.unregisterReceiver(injectActivity.mInstallResultReceiver);
                    } catch (Throwable th2) {
                        th2.printStackTrace();
                    }
                    InjectActivity.this.mStartUIStatus = 0;
                    HashMap hashMap = new HashMap();
                    hashMap.put(a.C0030a.A, str);
                    hashMap.put("name", str2);
                    hashMap.put("error", th.getClass().getSimpleName() + ": " + th.getMessage());
                    com.x8zs.app.c.b().h("app_install_fail", hashMap);
                    o2.e.b(InjectActivity.this, "2: " + InjectActivity.this.getString(R.string.install_failed_tips), 0);
                    return;
                }
            }
            if (intExtra != 0) {
                if (InjectActivity.this.mStartUIStatus != 2) {
                    InjectActivity injectActivity2 = InjectActivity.this;
                    z6 = o2.f.g0(injectActivity2, injectActivity2.mApkPathToInstall, 101);
                } else {
                    z6 = false;
                }
                try {
                    InjectActivity injectActivity3 = InjectActivity.this;
                    injectActivity3.unregisterReceiver(injectActivity3.mInstallResultReceiver);
                } catch (Throwable th3) {
                    th3.printStackTrace();
                }
                InjectActivity.this.mStartUIStatus = 0;
                if (!z6) {
                    HashMap hashMap2 = new HashMap();
                    hashMap2.put(a.C0030a.A, str);
                    hashMap2.put("name", str2);
                    hashMap2.put("error", "" + intExtra + ": " + stringExtra);
                    com.x8zs.app.c.b().h("app_install_fail", hashMap2);
                    if (TextUtils.isEmpty(stringExtra)) {
                        stringExtra = "3: " + InjectActivity.this.getString(R.string.install_failed_tips);
                    }
                    o2.e.b(InjectActivity.this, stringExtra, 0);
                    return;
                }
                return;
            }
            try {
                InjectActivity injectActivity4 = InjectActivity.this;
                injectActivity4.unregisterReceiver(injectActivity4.mInstallResultReceiver);
            } catch (Throwable th4) {
                th4.printStackTrace();
            }
            InjectActivity.this.mStartUIStatus = 0;
            HashMap hashMap3 = new HashMap();
            hashMap3.put(a.C0030a.A, str);
            hashMap3.put("name", str2);
            com.x8zs.app.c.b().h("app_install_success", hashMap3);
            o2.e.a(InjectActivity.this, R.string.install_succeed_tips, 0);
        }
    }

    public class k extends BaseAdapter implements AdapterView.OnItemClickListener {

        private GridView f21930q;

        private String[] f21931r;

        private int f21932s = -1;

        private m f21933t;

        class a implements Runnable {

            final TextView f21935q;

            a(TextView textView) {
                this.f21935q = textView;
            }

            @Override
            public void run() {
                this.f21935q.setLayoutParams(new AbsListView.LayoutParams((k.this.f21930q.getMeasuredWidth() - ((k.this.f21930q.getNumColumns() - 1) * k.this.f21930q.getHorizontalSpacing())) / k.this.f21930q.getNumColumns(), -2));
            }
        }

        public k(GridView gridView, String[] strArr, m mVar) {
            this.f21930q = gridView;
            this.f21931r = strArr;
            this.f21933t = mVar;
        }

        @Override
        public int getCount() {
            return this.f21931r.length;
        }

        @Override
        public Object getItem(int i6) {
            return this.f21931r[i6];
        }

        @Override
        public long getItemId(int i6) {
            return i6;
        }

        @Override
        public View getView(int i6, View view, ViewGroup viewGroup) {
            TextView textView;
            if (view == null) {
                textView = (TextView) LayoutInflater.from(InjectActivity.this).inflate(R.layout.feedback_item_view, viewGroup, false);
                int measuredWidth = this.f21930q.getMeasuredWidth();
                if (measuredWidth != 0) {
                    textView.setLayoutParams(new AbsListView.LayoutParams((measuredWidth - ((this.f21930q.getNumColumns() - 1) * this.f21930q.getHorizontalSpacing())) / this.f21930q.getNumColumns(), -2));
                } else {
                    this.f21930q.post(new a(textView));
                }
            } else {
                textView = (TextView) view;
            }
            textView.setText(this.f21931r[i6]);
            if (i6 == this.f21932s) {
                textView.setTextColor(InjectActivity.this.getResources().getColor(R.color.blue));
                textView.setBackgroundResource(R.drawable.rect_blue);
            } else {
                textView.setTextColor(InjectActivity.this.getResources().getColor(R.color.dark_gray));
                textView.setBackgroundResource(R.drawable.rect_gray);
            }
            return textView;
        }

        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i6, long j6) {
            TextView textView;
            m mVar = this.f21933t;
            if (mVar != null && mVar.a(i6)) {
                return;
            }
            this.f21932s = i6;
            for (int i7 = 0; i7 < this.f21931r.length && (textView = (TextView) this.f21930q.getChildAt(i7)) != null; i7++) {
                if (textView == view) {
                    textView.setTextColor(InjectActivity.this.getResources().getColor(R.color.blue));
                    textView.setBackgroundResource(R.drawable.rect_blue);
                } else {
                    textView.setTextColor(InjectActivity.this.getResources().getColor(R.color.dark_gray));
                    textView.setBackgroundResource(R.drawable.rect_gray);
                }
            }
        }
    }

    public static class l {

        public int f21937a;

        public String f21938b;

        public l(int i6, String str) {
            this.f21937a = i6;
            this.f21938b = str;
        }
    }

    public interface m {
        boolean a(int i6);
    }

    public static class n {

        public int f21939a;

        public String f21940b;

        public n(int i6, String str) {
            this.f21939a = i6;
            this.f21940b = str;
        }
    }

    public void dismissLoadingDlg() {
        ProgressDialog progressDialog = this.mLoadingDlg;
        if (progressDialog != null) {
            progressDialog.dismiss();
        }
    }

    public boolean doInstallApk(String str, String str2, File[] fileArr) {
        boolean z6 = false;
        try {
            HashMap hashMap = new HashMap();
            hashMap.put(a.C0030a.A, str);
            hashMap.put("name", str2);
            com.x8zs.app.c.b().h("start_app_install", hashMap);
            PackageInstaller packageInstaller = getPackageManager().getPackageInstaller();
            PackageInstaller.Session openSession = packageInstaller.openSession(packageInstaller.createSession(new PackageInstaller.SessionParams(1)));
            int length = fileArr.length;
            int i6 = 0;
            while (i6 < length) {
                File file = fileArr[i6];
                FileInputStream fileInputStream = new FileInputStream(file);
                int i7 = i6;
                OutputStream openWrite = openSession.openWrite(file.getName(), 0L, file.length());
                byte[] bArr = new byte[8192];
                while (true) {
                    int read = fileInputStream.read(bArr);
                    if (read != -1) {
                        openWrite.write(bArr, 0, read);
                    }
                }
                openSession.fsync(openWrite);
                openWrite.close();
                fileInputStream.close();
                i6 = i7 + 1;
            }
            registerReceiver(this.mInstallResultReceiver, new IntentFilter("com.x8zs.ds2.action.SESSION_INSTALL_CALLBACK"));
            Intent intent = new Intent("com.x8zs.ds2.action.SESSION_INSTALL_CALLBACK");
            intent.putExtra(a.C0030a.A, str);
            openSession.commit(PendingIntent.getBroadcast(this, 0, intent, 0).getIntentSender());
            return true;
        } catch (Throwable th) {
            th.printStackTrace();
            if (fileArr.length == 1) {
                z6 = o2.f.g0(this, this.mApkPathToInstall, 101);
            }
            if (!z6) {
                HashMap hashMap2 = new HashMap();
                hashMap2.put(a.C0030a.A, str);
                hashMap2.put("name", str2);
                hashMap2.put("error", th.getClass().getSimpleName() + ": " + th.getMessage());
                com.x8zs.app.c.b().h("app_install_fail", hashMap2);
            }
            return z6;
        }
    }

    private String getCurrentApkPath() {
        String absolutePath;
        X8DataModel.AppTaskModel appTaskModel = this.mTask;
        File file = null;
        if (appTaskModel != null && appTaskModel.status == 11 && !TextUtils.isEmpty(appTaskModel.app_path) && new File(this.mTask.app_path).exists()) {
            X8DataModel.AppDataModel appDataModel = this.mApp;
            if (appDataModel != null && appDataModel.installed) {
                try {
                    file = new File(getPackageManager().getApplicationInfo(this.mApp.shell_pkg, 0).sourceDir);
                } catch (PackageManager.NameNotFoundException e6) {
                    e6.printStackTrace();
                }
            }
            File file2 = new File(this.mTask.app_path);
            if (file != null && file.lastModified() > file2.lastModified()) {
                absolutePath = file.getAbsolutePath();
            } else {
                absolutePath = file2.getAbsolutePath();
            }
            return absolutePath;
        }
        X8DataModel.AppDataModel appDataModel2 = this.mApp;
        if (appDataModel2 != null && appDataModel2.installed) {
            try {
                return getPackageManager().getApplicationInfo(this.mApp.shell_pkg, 0).sourceDir;
            } catch (PackageManager.NameNotFoundException e7) {
                e7.printStackTrace();
                return null;
            }
        }
        if (appDataModel2 != null && !TextUtils.isEmpty(appDataModel2.app_path)) {
            return this.mApp.app_path;
        }
        X8DataModel.AppTaskModel appTaskModel2 = this.mTask;
        if (appTaskModel2 == null || appTaskModel2.status != 5) {
            return null;
        }
        return appTaskModel2.app_path;
    }

    private int getHookType(Context context, String str) {
        try {
            Bundle bundle = context.getPackageManager().getPackageArchiveInfo(str, 128).applicationInfo.metaData;
            if (bundle != null && bundle.containsKey("x8zs_type")) {
                return Integer.parseInt(bundle.getString("x8zs_type"));
            }
            return 0;
        } catch (Throwable th) {
            th.printStackTrace();
            return 0;
        }
    }

    public String getInputApkPath() {
        X8DataModel.AppDataModel appDataModel = this.mApp;
        if (appDataModel != null && !TextUtils.isEmpty(appDataModel.app_path)) {
            return this.mApp.app_path;
        }
        X8DataModel.AppTaskModel appTaskModel = this.mTask;
        if (appTaskModel != null && appTaskModel.status == 5 && !TextUtils.isEmpty(appTaskModel.app_path) && new File(this.mTask.app_path).exists()) {
            return this.mTask.app_path;
        }
        X8DataModel.AppDataModel appDataModel2 = this.mApp;
        if (appDataModel2 != null && appDataModel2.installed && !appDataModel2.packaged) {
            try {
                return getPackageManager().getApplicationInfo(this.mApp.app_pkg, 0).sourceDir;
            } catch (PackageManager.NameNotFoundException e6) {
                e6.printStackTrace();
                return null;
            }
        }
        return getOriginalApkPath();
    }

    private String getOriginalApkPath() {
        X8DataModel.AppDataModel appDataModel = this.mApp;
        if (appDataModel == null) {
            return null;
        }
        if (!TextUtils.isEmpty(appDataModel.app_path)) {
            return this.mApp.app_path;
        }
        X8DataModel.AppTaskModel appTaskModel = this.mTask;
        if (appTaskModel != null && appTaskModel.status == 5 && !TextUtils.isEmpty(appTaskModel.app_path) && new File(this.mTask.app_path).exists()) {
            return this.mTask.app_path;
        }
        File[] listFiles = com.x8zs.model.a.d().listFiles(new d());
        if (listFiles == null || listFiles.length == 0) {
            return null;
        }
        File file = listFiles[0];
        long j6 = 0;
        for (File file2 : listFiles) {
            if (file2.lastModified() >= j6) {
                j6 = file2.lastModified();
                file = file2;
            }
        }
        return file.getAbsolutePath();
    }

    private int getPackType(Context context, String str) {
        try {
            PackageInfo packageArchiveInfo = context.getPackageManager().getPackageArchiveInfo(str, 128);
            Bundle bundle = packageArchiveInfo.applicationInfo.metaData;
            if (bundle != null && bundle.containsKey("x8zs_type")) {
                if (packageArchiveInfo.applicationInfo.className.equals("com.x8zs.sandbox.app.SandboxApplication")) {
                    return ApkBuilder.f21508t;
                }
                if (packageArchiveInfo.applicationInfo.className.equals("com.x8zs.shell.ProxyApplication")) {
                    if (o2.f.m(str, "x8zs/classes.dex")) {
                        return ApkBuilder.f21506r;
                    }
                    return ApkBuilder.f21509u;
                }
                return ApkBuilder.f21507s;
            }
            return 0;
        } catch (Throwable th) {
            th.printStackTrace();
            return 0;
        }
    }

    private void handleOpenApp() {
        HashMap hashMap = new HashMap();
        X8DataModel.AppDataModel appDataModel = this.mApp;
        if (appDataModel != null) {
            o2.f.e0(this, appDataModel.shell_pkg);
            hashMap.put("packagename", this.mApp.shell_pkg);
            com.x8zs.app.c.b().h("AppClickStart", hashMap);
        } else {
            X8DataModel.AppTaskModel appTaskModel = this.mTask;
            if (appTaskModel != null) {
                o2.f.e0(this, appTaskModel.app_pkg);
                hashMap.put("packagename", this.mTask.app_pkg);
                com.x8zs.app.c.b().h("AppClickStart", hashMap);
            }
        }
    }

    private void handlePatchButtonClick() {
        int i6 = this.mButtonState;
        if (i6 == 1) {
            o2.e.a(this, R.string.inject_control_tip, 0);
            return;
        }
        if (i6 == 2) {
            Intent intent = new Intent(this, (Class<?>) InstallOrInjectFlowActivity.class);
            X8DataModel.AppTaskModel appTaskModel = this.mTask;
            if (appTaskModel != null) {
                intent.putExtra("task_id", appTaskModel.task_id);
            } else {
                intent.putExtra("app_pkg", this.mApp.app_pkg);
            }
            intent.putExtra("action", 1);
            startActivityForResult(intent, 101);
            return;
        }
        if (i6 == 3) {
            if (this.mTask != null) {
                X8DataModel.A0(this).Q(this.mTask);
                return;
            }
            return;
        }
        if (this.mPatchTypeAdapter.f21932s != -1 && this.mAccTypeAdapter.f21932s != -1) {
            X8DataModel.p0 p0Var = new X8DataModel.p0();
            p0Var.f21826c = this.mPatchTypeList.get(this.mPatchTypeAdapter.f21932s).f21939a;
            p0Var.f21827d = this.mHookTypeList.get(this.mAccTypeAdapter.f21932s).f21937a;
            String inputApkPath = getInputApkPath();
            Log.d(TAG, "[handlePatchButtonClick] inputApkPath = " + inputApkPath);
            if (!TextUtils.isEmpty(inputApkPath) && new File(inputApkPath).exists()) {
                this.mApkPathToPatch = inputApkPath;
                this.mPatchRule = p0Var;
                if (!AdManagerEx.getInstance().onPatchApkEvent(this, new e(new boolean[1]))) {
                    if (TextUtils.isEmpty(this.mApkPathToPatch)) {
                        this.mApkPathToPatch = getInputApkPath();
                    }
                    if (this.mTask != null) {
                        X8DataModel.A0(this).n1(this.mTask, this.mApkPathToPatch, this.mPatchRule, this.mBackup);
                    } else {
                        X8DataModel.A0(this).m1(this.mApp, this.mApkPathToPatch, this.mPatchRule, this.mBackup);
                    }
                }
                HashMap hashMap = new HashMap();
                X8DataModel.AppDataModel appDataModel = this.mApp;
                if (appDataModel != null) {
                    hashMap.put("appName", appDataModel.app_name);
                    hashMap.put("appPkg", this.mApp.app_pkg);
                } else {
                    X8DataModel.AppTaskModel appTaskModel2 = this.mTask;
                    if (appTaskModel2 != null) {
                        hashMap.put("appName", appTaskModel2.app_name);
                        hashMap.put("appPkg", this.mTask.app_pkg);
                    }
                }
                com.x8zs.app.c.b().h("ClickPatchButton", hashMap);
                return;
            }
            o2.e.a(this, R.string.no_input_apk_for_patch_tips, 0);
            return;
        }
        o2.e.a(this, R.string.no_patch_or_hook_type_selected_tips, 0);
    }

    private void handlePatchInfoViewClick() {
        if (this.mCurrentPatchType != 0 && this.mButtonState != 2) {
            handleOpenApp();
        }
    }

    private void handleRemoveButtonClick() {
        if (this.mButtonState == 2) {
            if (this.mTask != null) {
                X8DataModel.A0(this).Q(this.mTask);
                o2.e.a(this, R.string.patched_apk_deleted_tips, 0);
                return;
            }
            return;
        }
        String originalApkPath = getOriginalApkPath();
        Log.d(TAG, "[handleRemoveButtonClick] originalApkPath = " + originalApkPath);
        if (!TextUtils.isEmpty(originalApkPath) && new File(originalApkPath).exists()) {
            this.mApkPathToInstall = originalApkPath;
            if (!AdManagerEx.getInstance().onPatchApkEvent(this, new f())) {
                showReinstallDialog(this.mApp.shell_pkg);
            }
            HashMap hashMap = new HashMap();
            X8DataModel.AppDataModel appDataModel = this.mApp;
            if (appDataModel != null) {
                hashMap.put("appName", appDataModel.app_name);
                hashMap.put("appPkg", this.mApp.app_pkg);
            } else {
                X8DataModel.AppTaskModel appTaskModel = this.mTask;
                if (appTaskModel != null) {
                    hashMap.put("appName", appTaskModel.app_name);
                    hashMap.put("appPkg", this.mTask.app_pkg);
                }
            }
            com.x8zs.app.c.b().h("ClickRemoveButton", hashMap);
            return;
        }
        o2.e.a(this, R.string.disallow_remove_patch_apk_tips, 0);
    }

    private void installApk(String str, String str2, File[] fileArr) {
        showLoadingDlg();
        new Thread(new a(str, str2, fileArr)).start();
    }

    private boolean isMe(X8DataModel.AppTaskModel appTaskModel) {
        X8DataModel.AppTaskModel appTaskModel2 = this.mTask;
        if (appTaskModel2 != null && appTaskModel2.task_id == appTaskModel.task_id) {
            return true;
        }
        X8DataModel.AppDataModel appDataModel = this.mApp;
        return appDataModel != null && appDataModel.app_pkg.equals(appTaskModel.app_pkg);
    }

    private void setAppDataModel(X8DataModel.AppDataModel appDataModel, boolean z6) {
        X8DataModel.AppDataModel appDataModel2 = this.mApp;
        if (appDataModel2 != appDataModel) {
            if (appDataModel2 != null && this.mTask == null) {
                X8DataModel.A0(this).t1(this.mApp.app_pkg, this);
            }
            if (appDataModel != null) {
                X8DataModel.A0(this).L(appDataModel.app_pkg, this);
            }
        }
        this.mApp = appDataModel;
        if (appDataModel != null) {
            setAppTaskModel(appDataModel.task, z6);
        } else {
            updateViewState(z6);
            updateViews();
        }
    }

    private void setAppTaskModel(X8DataModel.AppTaskModel appTaskModel, boolean z6) {
        X8DataModel.AppTaskModel appTaskModel2 = this.mTask;
        if (appTaskModel2 != appTaskModel) {
            if (appTaskModel2 != null) {
                X8DataModel.A0(this).v1(this.mTask.task_id, this);
                if (this.mApp == null) {
                    X8DataModel.A0(this).t1(this.mTask.app_pkg, this);
                }
            }
            if (appTaskModel != null) {
                X8DataModel.A0(this).N(appTaskModel.task_id, this);
                X8DataModel.A0(this).L(appTaskModel.app_pkg, this);
            }
        }
        this.mTask = appTaskModel;
        updateViewState(z6);
        updateViews();
    }

    private void setupViews() {
        this.mPatchTypeView = (GridView) findViewById(R.id.patch_type);
        int size = this.mPatchTypeList.size();
        String[] strArr = new String[size];
        for (int i6 = 0; i6 < size; i6++) {
            strArr[i6] = this.mPatchTypeList.get(i6).f21940b;
        }
        k kVar = new k(this.mPatchTypeView, strArr, new b());
        this.mPatchTypeAdapter = kVar;
        this.mPatchTypeView.setAdapter((ListAdapter) kVar);
        this.mPatchTypeView.setOnItemClickListener(this.mPatchTypeAdapter);
        this.mAccTypeView = (GridView) findViewById(R.id.acc_type);
        int size2 = this.mHookTypeList.size();
        String[] strArr2 = new String[size2];
        for (int i7 = 0; i7 < size2; i7++) {
            strArr2[i7] = this.mHookTypeList.get(i7).f21938b;
        }
        k kVar2 = new k(this.mAccTypeView, strArr2, new c());
        this.mAccTypeAdapter = kVar2;
        this.mAccTypeView.setAdapter((ListAdapter) kVar2);
        this.mAccTypeView.setOnItemClickListener(this.mAccTypeAdapter);
        this.mAppInfoView = (TextView) findViewById(R.id.app_info);
        TextView textView = (TextView) findViewById(R.id.patch_info);
        this.mPatchInfoView = textView;
        textView.setOnClickListener(this);
        DownloadProgressButton downloadProgressButton = (DownloadProgressButton) findViewById(R.id.x8_patch);
        this.mPatchButton = downloadProgressButton;
        downloadProgressButton.setShowBorder(false);
        this.mPatchButton.setOnClickListener(this);
        Button button = (Button) findViewById(R.id.remove_patch);
        this.mRemoveButton = button;
        button.setOnClickListener(this);
    }

    private void showLoadingDlg() {
        ProgressDialog progressDialog = this.mLoadingDlg;
        if (progressDialog != null && progressDialog.isShowing()) {
            return;
        }
        this.mLoadingDlg = ProgressDialog.show(this, "", getString(R.string.dialog_msg_op_pending), true);
    }

    public void showReinstallDialog(String str) {
        com.x8zs.widget.a aVar = new com.x8zs.widget.a(this);
        aVar.setTitle(R.string.dialog_title_reinstall_original);
        LinearLayout linearLayout = new LinearLayout(this);
        linearLayout.setOrientation(1);
        linearLayout.setGravity(1);
        ImageView imageView = new ImageView(this);
        imageView.setImageResource(R.drawable.reinstall_desc);
        TextView textView = new TextView(this);
        textView.setText(Html.fromHtml(getString(R.string.dialog_msg_reinstall_original)));
        textView.setGravity(17);
        textView.setTextSize(10.0f);
        linearLayout.addView(imageView);
        linearLayout.addView(textView);
        aVar.setContentView(linearLayout);
        aVar.c(R.string.dialog_button_cancel, new g(aVar));
        aVar.g(R.string.dialog_button_confirm, new h(str, aVar));
        aVar.setCanceledOnTouchOutside(false);
        aVar.show();
    }

    private void updateViewState(boolean z6) {
        File file;
        int i6;
        int i7;
        X8DataModel.AppTaskModel appTaskModel = this.mTask;
        int i8 = 0;
        if (appTaskModel != null && appTaskModel.task_type == 2 && (i7 = appTaskModel.status) >= 6 && i7 <= 9) {
            this.mButtonState = 1;
        } else if (appTaskModel != null && appTaskModel.task_type == 2 && appTaskModel.status == 11 && !TextUtils.isEmpty(appTaskModel.app_path) && new File(this.mTask.app_path).exists()) {
            X8DataModel.AppDataModel appDataModel = this.mApp;
            if (appDataModel != null && appDataModel.installed) {
                try {
                    file = new File(getPackageManager().getApplicationInfo(this.mApp.shell_pkg, 0).sourceDir);
                } catch (PackageManager.NameNotFoundException e6) {
                    e6.printStackTrace();
                }
                File file2 = new File(this.mTask.app_path);
                if (file == null && file.lastModified() > file2.lastModified()) {
                    this.mButtonState = 0;
                } else {
                    this.mButtonState = 2;
                }
            }
            file = null;
            File file22 = new File(this.mTask.app_path);
            if (file == null) {
            }
            this.mButtonState = 2;
        } else {
            X8DataModel.AppTaskModel appTaskModel2 = this.mTask;
            if (appTaskModel2 != null && appTaskModel2.task_type == 2 && appTaskModel2.status == 10) {
                this.mButtonState = 3;
            } else {
                this.mButtonState = 0;
            }
        }
        Log.d(TAG, "[updateViewState] mButtonState = " + this.mButtonState);
        if (z6) {
            String currentApkPath = getCurrentApkPath();
            Log.d(TAG, "[updateViewState] currentApkPath = " + currentApkPath);
            if (!TextUtils.isEmpty(currentApkPath)) {
                i6 = getPackType(this, currentApkPath);
            } else {
                i6 = 0;
            }
            this.mCurrentPatchType = i6;
            if (!TextUtils.isEmpty(currentApkPath)) {
                i8 = getHookType(this, currentApkPath);
            }
            this.mCurrentHookType = i8;
            Log.d(TAG, "[updateViewState] mCurrentPatchType = " + this.mCurrentPatchType + ", mCurrentHookType = " + this.mCurrentHookType);
        }
    }

    private void updateViews() {
        int i6;
        String string;
        if (this.mApp != null) {
            this.mAppInfoView.setText(this.mApp.app_name + " " + this.mApp.app_pkg);
        } else if (this.mTask != null) {
            this.mAppInfoView.setText(this.mTask.app_name + " " + this.mTask.app_pkg);
        }
        if (this.mCurrentPatchType == 0) {
            this.mPatchInfoView.setText(Html.fromHtml(getString(R.string.patch_status_none)));
        } else {
            String string2 = getString(R.string.patch_type_unknown);
            String string3 = getString(R.string.hook_type_unknown);
            Iterator<n> it = this.mPatchTypeList.iterator();
            while (true) {
                if (!it.hasNext()) {
                    break;
                }
                n next = it.next();
                if (next.f21939a == this.mCurrentPatchType) {
                    string2 = next.f21940b;
                    break;
                }
            }
            Iterator<l> it2 = this.mHookTypeList.iterator();
            while (true) {
                if (!it2.hasNext()) {
                    break;
                }
                l next2 = it2.next();
                if (next2.f21937a == this.mCurrentHookType) {
                    string3 = next2.f21938b;
                    break;
                }
            }
            if (this.mButtonState == 2) {
                this.mPatchInfoView.setText(Html.fromHtml(getString(R.string.patch_status_patched2, string2, string3)));
            } else {
                this.mPatchInfoView.setText(Html.fromHtml(getString(R.string.patch_status_patched, string2, string3)));
            }
        }
        int i7 = this.mButtonState;
        if (i7 == 1) {
            this.mPatchButton.o("", this.mTask.progress);
            this.mPatchButton.setState(1);
        } else if (i7 == 2) {
            this.mPatchButton.setCurrentText(getString(R.string.install_x8_app));
            this.mPatchButton.setState(0);
        } else if (i7 == 3) {
            this.mPatchButton.o("", this.mTask.progress);
            X8DataModel.AppTaskModel appTaskModel = this.mTask;
            if (appTaskModel != null && appTaskModel.error != 0) {
                string = String.format("%s(%d)", getString(R.string.please_retry), Integer.valueOf(this.mTask.error));
            } else {
                string = getString(R.string.please_retry);
            }
            this.mPatchButton.setCurrentText(string);
            this.mPatchButton.setState(2);
        } else {
            DownloadProgressButton downloadProgressButton = this.mPatchButton;
            if (com.x8zs.app.a.b().f21556j) {
                i6 = R.string.load_plugin_clone;
            } else {
                i6 = R.string.load_plugin;
            }
            downloadProgressButton.setCurrentText(getString(i6));
            this.mPatchButton.setState(0);
        }
        if (this.mButtonState == 2) {
            this.mRemoveButton.setEnabled(true);
            return;
        }
        X8DataModel.AppDataModel appDataModel = this.mApp;
        if (appDataModel != null && appDataModel.installed && appDataModel.packaged) {
            this.mRemoveButton.setEnabled(true);
        } else {
            this.mRemoveButton.setEnabled(false);
        }
    }

    @Override
    public void onActivityResult(int i6, int i7, Intent intent) {
        String str;
        String str2;
        super.onActivityResult(i6, i7, intent);
        if (i6 == 100) {
            o2.e.a(this, R.string.install_original_app_msg, 0);
            if (TextUtils.isEmpty(this.mApkPathToInstall)) {
                return;
            }
            File[] j6 = com.x8zs.model.a.i(this).j(new File(this.mApkPathToInstall), o2.f.t(this, this.mApkPathToInstall));
            File[] fileArr = new File[j6.length + 1];
            fileArr[0] = new File(this.mApkPathToInstall);
            System.arraycopy(j6, 0, fileArr, 1, j6.length);
            X8DataModel.AppDataModel appDataModel = this.mApp;
            if (appDataModel != null) {
                str = appDataModel.app_pkg;
                str2 = appDataModel.app_name;
            } else {
                X8DataModel.AppTaskModel appTaskModel = this.mTask;
                if (appTaskModel != null) {
                    str = appTaskModel.app_pkg;
                    str2 = appTaskModel.app_name;
                } else {
                    str = "";
                    str2 = "";
                }
            }
            installApk(str, str2, fileArr);
        }
    }

    @Override
    public void onAppAdded(X8DataModel.AppDataModel appDataModel) {
        if (isMe(appDataModel)) {
            Log.d(TAG, "onAppAdded");
            setAppDataModel(appDataModel, true);
        }
    }

    @Override
    public void onAppRemoved(X8DataModel.AppDataModel appDataModel) {
        if (isMe(appDataModel)) {
            Log.d(TAG, "onAppRemoved");
            setAppDataModel(appDataModel, true);
        }
    }

    @Override
    public void onAppStateChanged(X8DataModel.AppDataModel appDataModel) {
        if (isMe(appDataModel)) {
            Log.d(TAG, "onAppStateChanged");
            setAppDataModel(appDataModel, true);
        }
    }

    @Override
    public void onClick(View view) {
        if (view == this.mPatchButton) {
            handlePatchButtonClick();
        } else if (view == this.mRemoveButton) {
            handleRemoveButtonClick();
        } else if (view == this.mPatchInfoView) {
            handlePatchInfoViewClick();
        }
    }

    @Override
    public void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        this.mBackup = getIntent().getBooleanExtra("backup", true);
        X8DataModel.AppDataModel appDataModel = (X8DataModel.AppDataModel) getIntent().getParcelableExtra("app");
        if (appDataModel == null) {
            Log.e(TAG, "app is null");
            finish();
            return;
        }
        appDataModel.task = X8DataModel.A0(this).p0(appDataModel.app_pkg);
        X8DataModel.A0(this).M(this);
        this.mPatchTypeList.add(new n(ApkBuilder.f21506r, "P1"));
        this.mPatchTypeList.add(new n(ApkBuilder.f21509u, "P2"));
        this.mPatchTypeList.add(new n(ApkBuilder.f21507s, "P3"));
        this.mHookTypeList.add(new l(ApkBuilder.f21500l, "H1"));
        this.mHookTypeList.add(new l(ApkBuilder.f21501m, "H2"));
        this.mHookTypeList.add(new l(ApkBuilder.f21502n, "H3"));
        this.mHookTypeList.add(new l(ApkBuilder.f21503o, "H4"));
        this.mHookTypeList.add(new l(ApkBuilder.f21504p, "H5"));
        this.mHookTypeList.add(new l(ApkBuilder.f21505q, "H6"));
        setContentView(R.layout.activity_inject_app);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        this.mToolbar = toolbar;
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        setTitle(R.string.inject_app_title);
        setupViews();
        setAppDataModel(appDataModel, true);
        HashMap hashMap = new HashMap();
        X8DataModel.AppDataModel appDataModel2 = this.mApp;
        if (appDataModel2 != null) {
            hashMap.put("appName", appDataModel2.app_name);
            hashMap.put("appPkg", this.mApp.app_pkg);
        } else {
            X8DataModel.AppTaskModel appTaskModel = this.mTask;
            if (appTaskModel != null) {
                hashMap.put("appName", appTaskModel.app_name);
                hashMap.put("appPkg", this.mTask.app_pkg);
            }
        }
        com.x8zs.app.c.b().h("PatchPageShow", hashMap);
        this.mABanner = (FrameLayout) findViewById(R.id.a_banner);
        this.mBBanner = (FrameLayout) findViewById(R.id.b_banner);
    }

    @Override
    public void onDestroy() {
        String str;
        int i6;
        X8DataModel.AppDataModel appDataModel = this.mApp;
        if (appDataModel != null) {
            str = appDataModel.app_pkg;
        } else {
            str = null;
        }
        X8DataModel.AppTaskModel appTaskModel = this.mTask;
        if (appTaskModel != null) {
            i6 = appTaskModel.task_id;
            if (str == null) {
                str = appTaskModel.app_pkg;
            }
        } else {
            i6 = 0;
        }
        if (str != null) {
            X8DataModel.A0(this).t1(str, this);
        }
        if (i6 != 0) {
            X8DataModel.A0(this).v1(i6, this);
        }
        X8DataModel.A0(this).u1(this);
        try {
            unregisterReceiver(this.mInstallResultReceiver);
        } catch (Throwable th) {
            th.printStackTrace();
        }
        super.onDestroy();
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem menuItem) {
        if (menuItem.getItemId() != 16908332) {
            return super.onOptionsItemSelected(menuItem);
        }
        finish();
        return true;
    }

    @Override
    public void onStart() {
        super.onStart();
        AdManager.getInstance().preloadAd(this, com.x8zs.model.b.b().f("inject_preload_types", "reward"));
    }

    @Override
    public void onStop() {
        super.onStop();
        if (this.mStartUIStatus == 1) {
            new Handler(Looper.getMainLooper()).postDelayed(new i(), 100L);
        }
    }

    @Override
    public void onTaskAdded(X8DataModel.AppTaskModel appTaskModel) {
        if (isMe(appTaskModel)) {
            Log.d(TAG, "onTaskAdded");
            setAppTaskModel(appTaskModel, true);
        }
    }

    @Override
    public void onTaskList(int i6, List<X8DataModel.AppTaskModel> list) {
        if (this.mDelayLoadHandled) {
            return;
        }
        this.mDelayLoadHandled = true;
        if (this.mTask == null && this.mApp != null) {
            setAppTaskModel(X8DataModel.A0(this).p0(this.mApp.app_pkg), true);
        }
    }

    @Override
    public void onTaskRemoved(X8DataModel.AppTaskModel appTaskModel) {
        if (isMe(appTaskModel)) {
            Log.d(TAG, "onTaskRemoved");
            setAppTaskModel(null, true);
        }
    }

    @Override
    public void onTaskStateChanged(X8DataModel.AppTaskModel appTaskModel) {
        boolean z6;
        if (isMe(appTaskModel)) {
            Log.d(TAG, "onTaskStateChanged");
            if (appTaskModel.status == 11) {
                z6 = true;
            } else {
                z6 = false;
            }
            setAppTaskModel(appTaskModel, z6);
        }
    }

    @Override
    public void setTitle(CharSequence charSequence) {
        getSupportActionBar().setTitle(charSequence);
    }

    private boolean isMe(X8DataModel.AppDataModel appDataModel) {
        X8DataModel.AppDataModel appDataModel2 = this.mApp;
        if (appDataModel2 != null && appDataModel2.app_pkg.equals(appDataModel.app_pkg)) {
            return true;
        }
        X8DataModel.AppTaskModel appTaskModel = this.mTask;
        return appTaskModel != null && appTaskModel.app_pkg.equals(appDataModel.app_pkg);
    }
}