/* * Tencent is pleased to support the open source community by making Tinker available. * * Copyright (C) 2016 THL A29 Limited, a Tencent company. All rights reserved. * * Licensed under the BSD 3-Clause License (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * * https://opensource.org/licenses/BSD-3-Clause * * Unless required by applicable law or agreed to in writing, software distributed under the License is * distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions and * limitations under the License. */ package com.tencent.tinker.loader.shareutil; import android.content.Intent; import android.util.Log; import java.io.Serializable; import java.util.ArrayList; import java.util.HashMap; /** * Created by zhangshaowen on 16/3/18. */ public class ShareIntentUtil { //intent public static final String INTENT_RETURN_CODE = "intent_return_code"; public static final String INTENT_PATCH_OLD_VERSION = "intent_patch_old_version"; public static final String INTENT_PATCH_NEW_VERSION = "intent_patch_new_version"; public static final String INTENT_PATCH_MISMATCH_DEX_PATH = "intent_patch_mismatch_dex_path"; public static final String INTENT_PATCH_MISSING_DEX_PATH = "intent_patch_missing_dex_path"; public static final String INTENT_PATCH_DEXES_PATH = "intent_patch_dexes_path"; public static final String INTENT_PATCH_MISMATCH_LIB_PATH = "intent_patch_mismatch_lib_path"; public static final String INTENT_PATCH_MISSING_LIB_PATH = "intent_patch_missing_lib_path"; public static final String INTENT_PATCH_LIBS_PATH = "intent_patch_libs_path"; public static final String INTENT_PATCH_COST_TIME = "intent_patch_cost_time"; public static final String INTENT_PATCH_EXCEPTION = "intent_patch_exception"; public static final String INTENT_PATCH_PACKAGE_PATCH_CHECK = "intent_patch_package_patch_check"; public static final String INTENT_PATCH_PACKAGE_CONFIG = "intent_patch_package_config"; public static final String INTENT_PATCH_SYSTEM_OTA = "intent_patch_system_ota"; public static final String INTENT_PATCH_OAT_DIR = "intent_patch_oat_dir"; public static final String INTENT_PATCH_INTERPRET_EXCEPTION = "intent_patch_interpret_exception"; private static final String TAG = "ShareIntentUtil"; public static void setIntentReturnCode(Intent intent, int code) { intent.putExtra(INTENT_RETURN_CODE, code); } public static int getIntentReturnCode(Intent intent) { return getIntExtra(intent, INTENT_RETURN_CODE, ShareConstants.ERROR_LOAD_GET_INTENT_FAIL); } public static void setIntentPatchCostTime(Intent intent, long cost) { intent.putExtra(INTENT_PATCH_COST_TIME, cost); } public static long getIntentPatchCostTime(Intent intent) { return intent.getLongExtra(INTENT_PATCH_COST_TIME, 0); } public static Throwable getIntentPatchException(Intent intent) { Serializable serializable = getSerializableExtra(intent, INTENT_PATCH_EXCEPTION); if (serializable != null) { return (Throwable) serializable; } return null; } public static Throwable getIntentInterpretException(Intent intent) { Serializable serializable = getSerializableExtra(intent, INTENT_PATCH_INTERPRET_EXCEPTION); if (serializable != null) { return (Throwable) serializable; } return null; } public static HashMap<String, String> getIntentPatchDexPaths(Intent intent) { Serializable serializable = getSerializableExtra(intent, INTENT_PATCH_DEXES_PATH); if (serializable != null) { return (HashMap<String, String>) serializable; } return null; } public static HashMap<String, String> getIntentPatchLibsPaths(Intent intent) { Serializable serializable = getSerializableExtra(intent, INTENT_PATCH_LIBS_PATH); if (serializable != null) { return (HashMap<String, String>) serializable; } return null; } public static HashMap<String, String> getIntentPackageConfig(Intent intent) { Serializable serializable = getSerializableExtra(intent, INTENT_PATCH_PACKAGE_CONFIG); if (serializable != null) { return (HashMap<String, String>) serializable; } return null; } public static ArrayList<String> getStringArrayListExtra(Intent intent, String name) { if (null == intent) { return null; } ArrayList<String> ret = null; try { ret = intent.getStringArrayListExtra(name); } catch (Exception e) { Log.e(TAG, "getStringExtra exception:" + e.getMessage()); ret = null; } return ret; } public static String getStringExtra(Intent intent, String name) { if (null == intent) { return null; } String ret = null; try { ret = intent.getStringExtra(name); } catch (Exception e) { Log.e(TAG, "getStringExtra exception:" + e.getMessage()); ret = null; } return ret; } public static Serializable getSerializableExtra(Intent intent, String name) { if (null == intent) { return null; } Serializable ret = null; try { ret = intent.getSerializableExtra(name); } catch (Exception e) { Log.e(TAG, "getSerializableExtra exception:" + e.getMessage()); ret = null; } return ret; } public static int getIntExtra(Intent intent, String name, int defaultValue) { if (null == intent) { return defaultValue; } int ret = defaultValue; try { ret = intent.getIntExtra(name, defaultValue); } catch (Exception e) { Log.e(TAG, "getIntExtra exception:" + e.getMessage()); ret = defaultValue; } return ret; } public static boolean getBooleanExtra(Intent intent, String name, boolean defaultValue) { if (null == intent) { return defaultValue; } boolean ret = defaultValue; try { ret = intent.getBooleanExtra(name, defaultValue); } catch (Exception e) { Log.e(TAG, "getBooleanExtra exception:" + e.getMessage()); ret = defaultValue; } return ret; } public static long getLongExtra(Intent intent, String name, long defaultValue) { if (null == intent) { return defaultValue; } long ret = defaultValue; try { ret = intent.getLongExtra(name, defaultValue); } catch (Exception e) { Log.e(TAG, "getIntExtra exception:" + e.getMessage()); ret = defaultValue; } return ret; } }