MD5 校验值:1036132062d4d223cd1a714f5bbea98b
CustomTabsIntent.java 文件包含反编译后的源代码,请注意,该内容仅供学习和参考使用,不得用于非法用途。
package im.skmzhmurqt.messenger.support.customtabs; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.net.Uri; import android.os.Bundle; import android.widget.RemoteViews; import androidx.core.app.ActivityOptionsCompat; import androidx.core.app.BundleCompat; import androidx.core.content.ContextCompat; import com.google.android.exoplayer2.C; import java.util.ArrayList; public final class CustomTabsIntent { public static final String EXTRA_ACTION_BUTTON_BUNDLE = "android.support.customtabs.extra.ACTION_BUTTON_BUNDLE"; public static final String EXTRA_CLOSE_BUTTON_ICON = "android.support.customtabs.extra.CLOSE_BUTTON_ICON"; public static final String EXTRA_DEFAULT_SHARE_MENU_ITEM = "android.support.customtabs.extra.SHARE_MENU_ITEM"; public static final String EXTRA_ENABLE_INSTANT_APPS = "android.support.customtabs.extra.EXTRA_ENABLE_INSTANT_APPS"; public static final String EXTRA_ENABLE_URLBAR_HIDING = "android.support.customtabs.extra.ENABLE_URLBAR_HIDING"; public static final String EXTRA_EXIT_ANIMATION_BUNDLE = "android.support.customtabs.extra.EXIT_ANIMATION_BUNDLE"; public static final String EXTRA_MENU_ITEMS = "android.support.customtabs.extra.MENU_ITEMS"; public static final String EXTRA_REMOTEVIEWS = "android.support.customtabs.extra.EXTRA_REMOTEVIEWS"; public static final String EXTRA_REMOTEVIEWS_CLICKED_ID = "android.support.customtabs.extra.EXTRA_REMOTEVIEWS_CLICKED_ID"; public static final String EXTRA_REMOTEVIEWS_PENDINGINTENT = "android.support.customtabs.extra.EXTRA_REMOTEVIEWS_PENDINGINTENT"; public static final String EXTRA_REMOTEVIEWS_VIEW_IDS = "android.support.customtabs.extra.EXTRA_REMOTEVIEWS_VIEW_IDS"; public static final String EXTRA_SECONDARY_TOOLBAR_COLOR = "android.support.customtabs.extra.SECONDARY_TOOLBAR_COLOR"; public static final String EXTRA_SESSION = "android.support.customtabs.extra.SESSION"; public static final String EXTRA_TINT_ACTION_BUTTON = "android.support.customtabs.extra.TINT_ACTION_BUTTON"; public static final String EXTRA_TITLE_VISIBILITY_STATE = "android.support.customtabs.extra.TITLE_VISIBILITY"; public static final String EXTRA_TOOLBAR_COLOR = "android.support.customtabs.extra.TOOLBAR_COLOR"; public static final String EXTRA_TOOLBAR_ITEMS = "android.support.customtabs.extra.TOOLBAR_ITEMS"; private static final String EXTRA_USER_OPT_OUT_FROM_CUSTOM_TABS = "android.support.customtabs.extra.user_opt_out"; public static final String KEY_DESCRIPTION = "android.support.customtabs.customaction.DESCRIPTION"; public static final String KEY_ICON = "android.support.customtabs.customaction.ICON"; public static final String KEY_ID = "android.support.customtabs.customaction.ID"; public static final String KEY_MENU_ITEM_TITLE = "android.support.customtabs.customaction.MENU_ITEM_TITLE"; public static final String KEY_PENDING_INTENT = "android.support.customtabs.customaction.PENDING_INTENT"; private static final int MAX_TOOLBAR_ITEMS = 5; public static final int NO_TITLE = 0; public static final int SHOW_PAGE_TITLE = 1; public static final int TOOLBAR_ACTION_BUTTON_ID = 0; public final Intent intent; public final Bundle startAnimationBundle; public void launchUrl(Context context, Uri url) { this.intent.setData(url); ContextCompat.startActivity(context, this.intent, this.startAnimationBundle); } private CustomTabsIntent(Intent intent, Bundle startAnimationBundle) { this.intent = intent; this.startAnimationBundle = startAnimationBundle; } public static final class Builder { private ArrayList<Bundle> mActionButtons; private boolean mInstantAppsEnabled; private final Intent mIntent; private ArrayList<Bundle> mMenuItems; private Bundle mStartAnimationBundle; public Builder() { this(null); } public Builder(CustomTabsSession session) { Intent intent = new Intent("android.intent.action.VIEW"); this.mIntent = intent; this.mMenuItems = null; this.mStartAnimationBundle = null; this.mActionButtons = null; this.mInstantAppsEnabled = true; if (session != null) { intent.setPackage(session.getComponentName().getPackageName()); } Bundle bundle = new Bundle(); BundleCompat.putBinder(bundle, CustomTabsIntent.EXTRA_SESSION, session != null ? session.getBinder() : null); this.mIntent.putExtras(bundle); } public Builder setToolbarColor(int color) { this.mIntent.putExtra(CustomTabsIntent.EXTRA_TOOLBAR_COLOR, color); return this; } public Builder enableUrlBarHiding() { this.mIntent.putExtra(CustomTabsIntent.EXTRA_ENABLE_URLBAR_HIDING, true); return this; } public Builder setCloseButtonIcon(Bitmap icon) { this.mIntent.putExtra(CustomTabsIntent.EXTRA_CLOSE_BUTTON_ICON, icon); return this; } public Builder setShowTitle(boolean z) { this.mIntent.putExtra(CustomTabsIntent.EXTRA_TITLE_VISIBILITY_STATE, z ? 1 : 0); return this; } public Builder addMenuItem(String label, PendingIntent pendingIntent) { if (this.mMenuItems == null) { this.mMenuItems = new ArrayList<>(); } Bundle bundle = new Bundle(); bundle.putString(CustomTabsIntent.KEY_MENU_ITEM_TITLE, label); bundle.putParcelable(CustomTabsIntent.KEY_PENDING_INTENT, pendingIntent); this.mMenuItems.add(bundle); return this; } public Builder addDefaultShareMenuItem() { this.mIntent.putExtra(CustomTabsIntent.EXTRA_DEFAULT_SHARE_MENU_ITEM, true); return this; } public Builder setActionButton(Bitmap icon, String description, PendingIntent pendingIntent, boolean shouldTint) { Bundle bundle = new Bundle(); bundle.putInt(CustomTabsIntent.KEY_ID, 0); bundle.putParcelable(CustomTabsIntent.KEY_ICON, icon); bundle.putString(CustomTabsIntent.KEY_DESCRIPTION, description); bundle.putParcelable(CustomTabsIntent.KEY_PENDING_INTENT, pendingIntent); this.mIntent.putExtra(CustomTabsIntent.EXTRA_ACTION_BUTTON_BUNDLE, bundle); this.mIntent.putExtra(CustomTabsIntent.EXTRA_TINT_ACTION_BUTTON, shouldTint); return this; } public Builder setActionButton(Bitmap icon, String description, PendingIntent pendingIntent) { return setActionButton(icon, description, pendingIntent, false); } @Deprecated public Builder addToolbarItem(int id, Bitmap icon, String description, PendingIntent pendingIntent) throws IllegalStateException { if (this.mActionButtons == null) { this.mActionButtons = new ArrayList<>(); } if (this.mActionButtons.size() >= 5) { throw new IllegalStateException("Exceeded maximum toolbar item count of 5"); } Bundle bundle = new Bundle(); bundle.putInt(CustomTabsIntent.KEY_ID, id); bundle.putParcelable(CustomTabsIntent.KEY_ICON, icon); bundle.putString(CustomTabsIntent.KEY_DESCRIPTION, description); bundle.putParcelable(CustomTabsIntent.KEY_PENDING_INTENT, pendingIntent); this.mActionButtons.add(bundle); return this; } public Builder setSecondaryToolbarColor(int color) { this.mIntent.putExtra(CustomTabsIntent.EXTRA_SECONDARY_TOOLBAR_COLOR, color); return this; } public Builder setSecondaryToolbarViews(RemoteViews remoteViews, int[] clickableIDs, PendingIntent pendingIntent) { this.mIntent.putExtra(CustomTabsIntent.EXTRA_REMOTEVIEWS, remoteViews); this.mIntent.putExtra(CustomTabsIntent.EXTRA_REMOTEVIEWS_VIEW_IDS, clickableIDs); this.mIntent.putExtra(CustomTabsIntent.EXTRA_REMOTEVIEWS_PENDINGINTENT, pendingIntent); return this; } public Builder setInstantAppsEnabled(boolean enabled) { this.mInstantAppsEnabled = enabled; return this; } public Builder setStartAnimations(Context context, int enterResId, int exitResId) { this.mStartAnimationBundle = ActivityOptionsCompat.makeCustomAnimation(context, enterResId, exitResId).toBundle(); return this; } public Builder setExitAnimations(Context context, int enterResId, int exitResId) { Bundle bundle = ActivityOptionsCompat.makeCustomAnimation(context, enterResId, exitResId).toBundle(); this.mIntent.putExtra(CustomTabsIntent.EXTRA_EXIT_ANIMATION_BUNDLE, bundle); return this; } public CustomTabsIntent build() { ArrayList<Bundle> arrayList = this.mMenuItems; if (arrayList != null) { this.mIntent.putParcelableArrayListExtra(CustomTabsIntent.EXTRA_MENU_ITEMS, arrayList); } ArrayList<Bundle> arrayList2 = this.mActionButtons; if (arrayList2 != null) { this.mIntent.putParcelableArrayListExtra(CustomTabsIntent.EXTRA_TOOLBAR_ITEMS, arrayList2); } this.mIntent.putExtra(CustomTabsIntent.EXTRA_ENABLE_INSTANT_APPS, this.mInstantAppsEnabled); return new CustomTabsIntent(this.mIntent, this.mStartAnimationBundle); } } public static int getMaxToolbarItems() { return 5; } public static Intent setAlwaysUseBrowserUI(Intent intent) { if (intent == null) { intent = new Intent("android.intent.action.VIEW"); } intent.addFlags(C.ENCODING_PCM_MU_LAW); intent.putExtra(EXTRA_USER_OPT_OUT_FROM_CUSTOM_TABS, true); return intent; } public void setUseNewTask() { this.intent.addFlags(C.ENCODING_PCM_MU_LAW); } public static boolean shouldAlwaysUseBrowserUI(Intent intent) { return intent.getBooleanExtra(EXTRA_USER_OPT_OUT_FROM_CUSTOM_TABS, false) && (intent.getFlags() & C.ENCODING_PCM_MU_LAW) != 0; } }