added open fanfou user link

This commit is contained in:
Mariotaku Lee 2016-03-12 16:21:30 +08:00
parent 5c5f6ded25
commit 6d0d59ec75
3 changed files with 55 additions and 37 deletions

View File

@ -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);
}

View File

@ -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);
}
}

View File

@ -17,10 +17,11 @@
~ along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
<RelativeLayout
android:id="@+id/header_user_profile"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/header_user_profile"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:showIn="@layout/fragment_user">
@ -28,14 +29,14 @@
<org.mariotaku.twidere.view.ProfileBannerSpace
android:id="@+id/profile_banner_space"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
android:layout_height="wrap_content"/>
<View
android:id="@+id/profile_name_background"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/profile_name_container"
android:layout_alignTop="@+id/profile_name_container" />
android:layout_alignTop="@+id/profile_name_container"/>
<org.mariotaku.twidere.view.ColorLabelRelativeLayout
android:id="@+id/profile_name_container"
@ -59,14 +60,15 @@
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerInParent="true"
android:minHeight="@dimen/element_size_normal">
android:minHeight="@dimen/element_size_normal"
android:minWidth="@dimen/element_size_normal">
<Button
android:id="@+id/follow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:visibility="gone" />
android:visibility="gone"/>
<ProgressBar
android:id="@+id/follow_progress"
@ -74,7 +76,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:visibility="gone" />
android:visibility="gone"/>
</FrameLayout>
@ -96,7 +98,7 @@
android:singleLine="true"
android:textAppearance="?android:textAppearanceMedium"
android:textColor="?android:textColorPrimary"
tools:text="Name" />
tools:text="Name"/>
<org.mariotaku.twidere.view.themed.ThemedTextView
android:id="@+id/screen_name"
@ -106,7 +108,7 @@
android:singleLine="true"
android:textAppearance="?android:textAppearanceSmall"
android:textColor="?android:textColorPrimary"
tools:text="\@screenname" />
tools:text="\@screenname"/>
<org.mariotaku.twidere.view.themed.ThemedTextView
android:id="@+id/following_you_indicator"
@ -121,7 +123,7 @@
android:text="@string/following_you"
android:textAppearance="?android:textAppearanceSmall"
android:textColor="?android:textColorSecondary"
android:visibility="gone" />
android:visibility="gone"/>
</RelativeLayout>
</org.mariotaku.twidere.view.ColorLabelRelativeLayout>
@ -130,7 +132,7 @@
android:layout_width="match_parent"
android:layout_height="@dimen/element_spacing_xsmall"
android:layout_above="@+id/profile_name_container"
android:background="@drawable/shadow_top" />
android:background="@drawable/shadow_top"/>
<FrameLayout
android:id="@+id/profile_details_container"
@ -164,7 +166,7 @@
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?android:textColorPrimary"
android:textStyle="bold"
android:visibility="gone" />
android:visibility="gone"/>
<org.mariotaku.twidere.view.TimelineContentTextView
android:id="@+id/description"
@ -174,7 +176,7 @@
android:paddingRight="@dimen/element_spacing_small"
android:textAppearance="?android:textAppearanceSmall"
android:textColor="?android:textColorPrimary"
tools:text="Line 1\nLine 2\nLine 3" />
tools:text="Line 1\nLine 2\nLine 3"/>
</LinearLayout>
<LinearLayout
@ -191,7 +193,7 @@
android:layout_width="@dimen/element_size_small"
android:layout_height="@dimen/element_size_small"
android:color="?android:textColorPrimary"
android:src="@drawable/ic_action_location" />
android:src="@drawable/ic_action_location"/>
<org.mariotaku.twidere.view.themed.ThemedTextView
android:id="@+id/location"
@ -202,7 +204,7 @@
android:singleLine="true"
android:textAppearance="?android:textAppearanceSmall"
android:textColor="?android:textColorPrimary"
tools:text="Zhengzhou China" />
tools:text="Zhengzhou China"/>
</LinearLayout>
<LinearLayout
@ -219,7 +221,7 @@
android:layout_width="@dimen/element_size_small"
android:layout_height="@dimen/element_size_small"
android:color="?android:textColorPrimary"
android:src="@drawable/ic_action_web" />
android:src="@drawable/ic_action_web"/>
<org.mariotaku.twidere.view.TimelineContentTextView
android:id="@+id/url"
@ -231,7 +233,7 @@
android:singleLine="true"
android:textAppearance="?android:textAppearanceSmall"
android:textColor="?android:textColorPrimary"
tools:text="mariotaku.org" />
tools:text="mariotaku.org"/>
</LinearLayout>
<LinearLayout
@ -248,7 +250,7 @@
android:layout_width="@dimen/element_size_small"
android:layout_height="@dimen/element_size_small"
android:color="?android:textColorPrimary"
android:src="@drawable/ic_action_time" />
android:src="@drawable/ic_action_time"/>
<org.mariotaku.twidere.view.themed.ThemedTextView
android:id="@+id/created_at"
@ -259,13 +261,13 @@
android:singleLine="true"
android:textAppearance="?android:textAppearanceSmall"
android:textColor="?android:textColorPrimary"
tools:text="July 17, 2009 18:35 (20 tweets per day)" />
tools:text="July 17, 2009 18:35 (20 tweets per day)"/>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="0.2dp"
android:background="?android:dividerVertical" />
android:background="?android:dividerVertical"/>
<LinearLayout
android:layout_width="match_parent"
@ -294,7 +296,7 @@
android:singleLine="true"
android:textAppearance="?android:textAppearanceMedium"
android:textColor="?android:textColorPrimary"
tools:text="255" />
tools:text="255"/>
<org.mariotaku.twidere.view.themed.ThemedTextView
android:layout_width="wrap_content"
@ -302,7 +304,7 @@
android:singleLine="true"
android:text="@string/followers"
android:textAppearance="?android:textAppearanceSmall"
android:textColor="?android:textColorSecondary" />
android:textColor="?android:textColorSecondary"/>
</LinearLayout>
<LinearLayout
@ -323,7 +325,7 @@
android:singleLine="true"
android:textAppearance="?android:textAppearanceMedium"
android:textColor="?android:textColorPrimary"
tools:text="255" />
tools:text="255"/>
<org.mariotaku.twidere.view.themed.ThemedTextView
android:layout_width="wrap_content"
@ -331,7 +333,7 @@
android:singleLine="true"
android:text="@string/following"
android:textAppearance="?android:textAppearanceSmall"
android:textColor="?android:textColorSecondary" />
android:textColor="?android:textColorSecondary"/>
</LinearLayout>
<LinearLayout
@ -352,7 +354,7 @@
android:singleLine="true"
android:textAppearance="?android:textAppearanceMedium"
android:textColor="?android:textColorPrimary"
tools:text="255" />
tools:text="255"/>
<org.mariotaku.twidere.view.themed.ThemedTextView
android:layout_width="wrap_content"
@ -360,7 +362,7 @@
android:singleLine="true"
android:text="@string/listed"
android:textAppearance="?android:textAppearanceSmall"
android:textColor="?android:textColorSecondary" />
android:textColor="?android:textColorSecondary"/>
</LinearLayout>
<LinearLayout
@ -381,7 +383,7 @@
android:singleLine="true"
android:textAppearance="?android:textAppearanceMedium"
android:textColor="?android:textColorPrimary"
tools:text="255" />
tools:text="255"/>
<org.mariotaku.twidere.view.themed.ThemedTextView
android:layout_width="wrap_content"
@ -389,12 +391,12 @@
android:singleLine="true"
android:text="@string/groups"
android:textAppearance="?android:textAppearanceSmall"
android:textColor="?android:textColorSecondary" />
android:textColor="?android:textColorSecondary"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<include layout="@layout/layout_content_fragment_common" />
<include layout="@layout/layout_content_fragment_common"/>
</FrameLayout>
@ -406,7 +408,7 @@
android:layout_alignBottom="@+id/profile_name_container"
android:layout_marginLeft="@dimen/element_spacing_normal"
android:layout_marginStart="@dimen/element_spacing_normal"
android:contentDescription="@string/profile_image" />
android:contentDescription="@string/profile_image"/>
<org.mariotaku.twidere.view.BoundsImageView
android:id="@+id/profile_type"
@ -420,6 +422,6 @@
android:layout_marginEnd="@dimen/element_spacing_minus_msmall"
android:layout_marginRight="@dimen/element_spacing_minus_msmall"
android:scaleType="fitCenter"
tools:visibility="gone" />
tools:visibility="gone"/>
</RelativeLayout>