diff --git a/twidere/src/main/java/org/mariotaku/twidere/activity/TwitterLinkHandlerActivity.java b/twidere/src/main/java/org/mariotaku/twidere/activity/TwitterLinkHandlerActivity.java index 68618a916..58810764c 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/activity/TwitterLinkHandlerActivity.java +++ b/twidere/src/main/java/org/mariotaku/twidere/activity/TwitterLinkHandlerActivity.java @@ -17,6 +17,7 @@ import org.mariotaku.twidere.Constants; import org.mariotaku.twidere.activity.support.ComposeActivity; import org.mariotaku.twidere.util.ParseUtils; import org.mariotaku.twidere.util.Utils; +import org.mariotaku.twidere.util.support.IntentSupport; import java.util.List; @@ -101,6 +102,7 @@ public class TwitterLinkHandlerActivity extends Activity implements Constants { } final String packageName = mPreferences.getString(KEY_FALLBACK_TWITTER_LINK_HANDLER, null); final Intent fallbackIntent = new Intent(Intent.ACTION_VIEW, uri); + IntentSupport.setSelector(intent, new Intent(Intent.ACTION_VIEW).addCategory(IntentSupport.CATEGORY_APP_BROWSER)); fallbackIntent.setPackage(packageName); if (TextUtils.isEmpty(packageName) || packageManager.queryIntentActivities(fallbackIntent, 0).isEmpty()) { final Intent pickIntent = new Intent(INTENT_ACTION_PICK_ACTIVITY); diff --git a/twidere/src/main/java/org/mariotaku/twidere/util/Utils.java b/twidere/src/main/java/org/mariotaku/twidere/util/Utils.java index af0f12c2c..fe64ece96 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/util/Utils.java +++ b/twidere/src/main/java/org/mariotaku/twidere/util/Utils.java @@ -232,6 +232,7 @@ import org.mariotaku.twidere.util.TwidereLinkify.HighlightStyle; import org.mariotaku.twidere.util.content.ContentResolverUtils; import org.mariotaku.twidere.util.dagger.ApplicationModule; import org.mariotaku.twidere.util.menu.TwidereMenuInfo; +import org.mariotaku.twidere.util.support.IntentSupport; import org.mariotaku.twidere.view.CardMediaContainer.OnMediaClickListener; import org.mariotaku.twidere.view.CardMediaContainer.PreviewStyle; import org.mariotaku.twidere.view.ShapedImageView; @@ -3766,6 +3767,13 @@ public final class Utils implements Constants { } break; } + case R.id.open_in_browser: { + final Intent intent = new Intent(Intent.ACTION_VIEW, LinkCreator.getTwitterStatusLink(status)); + intent.addCategory(Intent.CATEGORY_BROWSABLE); +// IntentSupport.setSelector(intent, new Intent(Intent.ACTION_VIEW).addCategory(IntentSupport.CATEGORY_APP_BROWSER)); + context.startActivity(intent); + break; + } default: { if (item.getIntent() != null) { try { diff --git a/twidere/src/main/java/org/mariotaku/twidere/util/support/IntentSupport.java b/twidere/src/main/java/org/mariotaku/twidere/util/support/IntentSupport.java new file mode 100644 index 000000000..e5efd17e1 --- /dev/null +++ b/twidere/src/main/java/org/mariotaku/twidere/util/support/IntentSupport.java @@ -0,0 +1,46 @@ +/* + * Twidere - Twitter client for Android + * + * Copyright (C) 2012-2015 Mariotaku Lee + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package org.mariotaku.twidere.util.support; + +import android.annotation.SuppressLint; +import android.annotation.TargetApi; +import android.content.Intent; +import android.os.Build; + +/** + * Created by mariotaku on 15/11/18. + */ +public class IntentSupport { + @SuppressLint("InlinedApi") + public static final String CATEGORY_APP_BROWSER = Intent.CATEGORY_APP_BROWSER; + + public static void setSelector(Intent intent, Intent selector) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) return; + IntentSupport15.setSelector(intent, selector); + } + + @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) + private static class IntentSupport15 { + public static void setSelector(Intent intent, Intent selector) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) return; + intent.setSelector(selector); + } + } +} diff --git a/twidere/src/main/res/menu/menu_detail_status.xml b/twidere/src/main/res/menu/menu_detail_status.xml index 6143c0ee9..fa2bf3280 100644 --- a/twidere/src/main/res/menu/menu_detail_status.xml +++ b/twidere/src/main/res/menu/menu_detail_status.xml @@ -49,6 +49,10 @@ android:icon="@drawable/ic_action_delete" android:title="@string/delete" android:visible="false" /> +