导航菜单

页面标题

页面副标题

imToken v3.28.8 - BeaconActivity.java 源代码

正在查看: imToken v3.28.8 应用的 BeaconActivity.java JAVA 源代码文件

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


package com.helpscout.beacon.ui;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import com.helpscout.beacon.Beacon;
import com.helpscout.beacon.SDKInitException;
import com.helpscout.beacon.internal.core.model.BeaconScreenSelector;
import com.helpscout.beacon.internal.presentation.ui.home.HomeActivity;
import com.helpscout.beacon.internal.presentation.ui.navigate.CustomNavigateActivity;
import com.helpscout.beacon.model.BeaconScreens;
import java.util.ArrayList;

public class BeaconActivity extends AppCompatActivity {
    public static String BEACON_SCREEN_ARGS_KEY = "com.helpscout.beacon.uiBeaconScreenArgsKey";
    public static String BEACON_SCREEN_KEY = "com.helpscout.beacon.uiBeaconScreenKey";
    public static String BEACON_SUGGEST_ARTICLES_KEY = "com.helpscout.beacon.uiBEACON_SUGGEST_ARTICLES_KEY";
    public static String KEY_SIGNATURE = "com.helpscout.beacon.ui.HS_BEACON_SIGNATURE";

    static class AnonymousClass1 {
        static final int[] $SwitchMap$com$helpscout$beacon$model$BeaconScreens;

        static {
            int[] iArr = new int[BeaconScreens.values().length];
            $SwitchMap$com$helpscout$beacon$model$BeaconScreens = iArr;
            try {
                iArr[BeaconScreens.DEFAULT.ordinal()] = 1;
            } catch (NoSuchFieldError unused) {
            }
            try {
                $SwitchMap$com$helpscout$beacon$model$BeaconScreens[BeaconScreens.SEARCH_SCREEN.ordinal()] = 2;
            } catch (NoSuchFieldError unused2) {
            }
            try {
                $SwitchMap$com$helpscout$beacon$model$BeaconScreens[BeaconScreens.ASK.ordinal()] = 3;
            } catch (NoSuchFieldError unused3) {
            }
        }
    }

    static Intent createOpenBeaconIntent(Context context) {
        Intent intent = new Intent(context, (Class<?>) BeaconActivity.class);
        intent.addFlags(268435456);
        return intent;
    }

    static Intent createOpenInSecureModeIntent(Context context, String str, BeaconScreens beaconScreens, ArrayList<String> arrayList) {
        Intent createOpenBeaconIntent = createOpenBeaconIntent(context);
        createOpenBeaconIntent.putExtra(KEY_SIGNATURE, str);
        createOpenBeaconIntent.putExtra(BEACON_SCREEN_KEY, beaconScreens);
        createOpenBeaconIntent.putStringArrayListExtra(BEACON_SCREEN_ARGS_KEY, arrayList);
        return createOpenBeaconIntent;
    }

    private void forwardToInternalActivity() {
        BeaconScreenSelector beaconScreenSelectorFromIntent = getBeaconScreenSelectorFromIntent();
        String stringExtra = hasSignatureExtra() ? getIntent().getStringExtra(KEY_SIGNATURE) : "";
        int i = AnonymousClass1.$SwitchMap$com$helpscout$beacon$model$BeaconScreens[beaconScreenSelectorFromIntent.getScreen().ordinal()];
        if (i == 1) {
            HomeActivity.INSTANCE.a(this, stringExtra);
            return;
        }
        if (i == 2) {
            HomeActivity.INSTANCE.a(this, stringExtra, beaconScreenSelectorFromIntent.getArgs().get(0));
        } else if (i != 3) {
            CustomNavigateActivity.INSTANCE.a(this, stringExtra, beaconScreenSelectorFromIntent);
        } else {
            HomeActivity.INSTANCE.c(this, stringExtra);
        }
    }

    private BeaconScreenSelector getBeaconScreenSelectorFromIntent() {
        BeaconScreens beaconScreens = (BeaconScreens) getIntent().getSerializableExtra(BEACON_SCREEN_KEY);
        ArrayList<String> stringArrayListExtra = getIntent().getStringArrayListExtra(BEACON_SCREEN_ARGS_KEY);
        if (beaconScreens == null) {
            beaconScreens = BeaconScreens.DEFAULT;
        }
        if (stringArrayListExtra == null) {
            stringArrayListExtra = new ArrayList<>();
        }
        return new BeaconScreenSelector(beaconScreens, stringArrayListExtra);
    }

    private boolean hasSignatureExtra() {
        return getIntent().hasExtra(KEY_SIGNATURE);
    }

    public static void open(Context context) {
        context.startActivity(createOpenBeaconIntent(context));
    }

    public static void open(Context context, BeaconScreens beaconScreens, ArrayList<String> arrayList) {
        Intent createOpenBeaconIntent = createOpenBeaconIntent(context);
        createOpenBeaconIntent.putExtra(BEACON_SCREEN_KEY, beaconScreens);
        createOpenBeaconIntent.putStringArrayListExtra(BEACON_SCREEN_ARGS_KEY, arrayList);
        context.startActivity(createOpenBeaconIntent);
    }

    public static void openInSecureMode(Context context, String str) {
        Intent createOpenBeaconIntent = createOpenBeaconIntent(context);
        createOpenBeaconIntent.putExtra(KEY_SIGNATURE, str);
        context.startActivity(createOpenBeaconIntent);
    }

    public static void openInSecureMode(Context context, String str, BeaconScreens beaconScreens, ArrayList<String> arrayList) {
        context.startActivity(createOpenInSecureModeIntent(context, str, beaconScreens, arrayList));
    }

    private void verifyBeaconEnabledOrThrow() {
        if (!Beacon.isEnabled()) {
            throw new SDKInitException("Beacon must be initialised, use Beacon.Builder()");
        }
    }

    private void verifySignatureOrThrow() {
        if (hasSignatureExtra() && getIntent().getStringExtra(KEY_SIGNATURE).isEmpty()) {
            throw new SDKInitException("You are trying to open a Beacon is Secure Mode without providing a signature");
        }
    }

    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        verifyBeaconEnabledOrThrow();
        verifySignatureOrThrow();
        forwardToInternalActivity();
        finish();
    }
}