diff --git a/twidere/src/main/java/org/mariotaku/twidere/fragment/support/UserFragment.java b/twidere/src/main/java/org/mariotaku/twidere/fragment/support/UserFragment.java index 1eddd98bb..2fd94a988 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/fragment/support/UserFragment.java +++ b/twidere/src/main/java/org/mariotaku/twidere/fragment/support/UserFragment.java @@ -1111,12 +1111,9 @@ public class UserFragment extends BaseSupportFragment implements OnClickListener return true; } case R.id.open_in_browser: { - if (user.extras != null && user.extras.statusnet_profile_url != null) { - final Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(user.extras.statusnet_profile_url)); - intent.addCategory(Intent.CATEGORY_BROWSABLE); - startActivity(intent); - } else { - final Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/" + user.screen_name)); + final Uri uri = LinkCreator.getUserWebLink(user); + if (uri != null) { + final Intent intent = new Intent(Intent.ACTION_VIEW, uri); intent.addCategory(Intent.CATEGORY_BROWSABLE); startActivity(intent); } diff --git a/twidere/src/main/java/org/mariotaku/twidere/util/LinkCreator.java b/twidere/src/main/java/org/mariotaku/twidere/util/LinkCreator.java index 3d577a093..102b7eefa 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/util/LinkCreator.java +++ b/twidere/src/main/java/org/mariotaku/twidere/util/LinkCreator.java @@ -26,6 +26,7 @@ import android.text.TextUtils; import org.mariotaku.twidere.Constants; import org.mariotaku.twidere.model.ParcelableStatus; +import org.mariotaku.twidere.model.ParcelableUser; import org.mariotaku.twidere.model.UserKey; /** @@ -108,4 +109,22 @@ public class LinkCreator implements Constants { builder.appendPath(id); return builder.build(); } + + private static Uri getFanfouUserLink(String id) { + Uri.Builder builder = new Uri.Builder(); + builder.scheme(SCHEME_HTTP); + builder.authority(AUTHORITY_FANFOU); + builder.appendPath(id); + return builder.build(); + } + + public static Uri getUserWebLink(@NonNull ParcelableUser user) { + if (user.extras != null && user.extras.statusnet_profile_url != null) { + return Uri.parse(user.extras.statusnet_profile_url); + } + if (USER_TYPE_FANFOU_COM.equals(user.key.getHost())) { + return getFanfouUserLink(user.key.getId()); + } + return getTwitterUserLink(user.screen_name); + } } diff --git a/twidere/src/main/res/layout/header_user.xml b/twidere/src/main/res/layout/header_user.xml index bb6ce9c1f..901dd52ec 100644 --- a/twidere/src/main/res/layout/header_user.xml +++ b/twidere/src/main/res/layout/header_user.xml @@ -17,10 +17,11 @@ ~ along with this program. If not, see . --> - @@ -28,14 +29,14 @@ + android:layout_height="wrap_content"/> + android:layout_alignTop="@+id/profile_name_container"/> + android:minHeight="@dimen/element_size_normal" + android:minWidth="@dimen/element_size_normal">