user id fixes

This commit is contained in:
Mariotaku Lee 2016-03-29 22:45:55 +08:00
parent e941787adb
commit efd40d6a4f
37 changed files with 262 additions and 251 deletions

View File

@ -117,7 +117,6 @@ public interface TwidereConstants extends SharedPreferenceConstants, IntentConst
String QUERY_PARAM_ACCOUNT_KEY = "account_key";
String QUERY_PARAM_ACCOUNT_NAME = "account_name";
String QUERY_PARAM_STATUS_ID = "status_id";
String QUERY_PARAM_USER_ID = "user_id";
String QUERY_PARAM_USER_KEY = "user_key";
String QUERY_PARAM_LIST_ID = "list_id";
String QUERY_PARAM_GROUP_ID = "group_id";

View File

@ -12,4 +12,5 @@ public interface CompatibilityConstants {
String EXTRA_ACCOUNT_ID = "account_id";
String EXTRA_ACCOUNT_IDS = "account_ids";
String EXTRA_USER_ID = "user_id";
}

View File

@ -100,7 +100,6 @@ public interface IntentConstants {
String EXTRA_DATA = "data";
String EXTRA_QUERY = "query";
String EXTRA_USER_KEY = "user_key";
String EXTRA_USER_ID = "user_id";
String EXTRA_USER_IDS = "user_ids";
String EXTRA_LIST_ID = "list_id";
String EXTRA_GROUP_ID = "group_id";

View File

@ -395,7 +395,7 @@ public class CustomTabEditorActivity extends BaseActivity implements OnClickList
if (value == null || args == null || conf == null) return;
if (value instanceof ParcelableUser && args instanceof UserArguments) {
final ParcelableUser user = (ParcelableUser) value;
((UserArguments) args).setUserId(user.key.getId());
((UserArguments) args).setUserKey(user.key);
} else if (value instanceof ParcelableUserList && args instanceof UserListArguments) {
final ParcelableUserList userList = (ParcelableUserList) value;
((UserListArguments) args).setListId(userList.id);

View File

@ -152,21 +152,21 @@ public class TwitterLinkHandlerActivity extends Activity implements Constants {
final Uri.Builder builder = new Uri.Builder();
builder.scheme(SCHEME_TWIDERE);
builder.authority(AUTHORITY_USER_FRIENDS);
builder.appendQueryParameter(QUERY_PARAM_USER_ID, String.valueOf(getDefaultAccountKey(this)));
builder.appendQueryParameter(QUERY_PARAM_USER_KEY, String.valueOf(getDefaultAccountKey(this)));
return Pair.create(new Intent(Intent.ACTION_VIEW, builder.build()), true);
}
case "followers": {
final Uri.Builder builder = new Uri.Builder();
builder.scheme(SCHEME_TWIDERE);
builder.authority(AUTHORITY_USER_FOLLOWERS);
builder.appendQueryParameter(QUERY_PARAM_USER_ID, String.valueOf(getDefaultAccountKey(this)));
builder.appendQueryParameter(QUERY_PARAM_USER_KEY, String.valueOf(getDefaultAccountKey(this)));
return Pair.create(new Intent(Intent.ACTION_VIEW, builder.build()), true);
}
case "favorites": {
final Uri.Builder builder = new Uri.Builder();
builder.scheme(SCHEME_TWIDERE);
builder.authority(AUTHORITY_USER_FAVORITES);
builder.appendQueryParameter(QUERY_PARAM_USER_ID, String.valueOf(getDefaultAccountKey(this)));
builder.appendQueryParameter(QUERY_PARAM_USER_KEY, String.valueOf(getDefaultAccountKey(this)));
return Pair.create(new Intent(Intent.ACTION_VIEW, builder.build()), true);
}
default: {

View File

@ -659,17 +659,17 @@ public class AccountsDashboardFragment extends BaseSupportFragment implements Lo
}
case R.id.favorites: {
IntentUtils.openUserFavorites(getActivity(), account.account_key,
account.account_key.getId(), account.screen_name);
account.account_key, account.screen_name);
break;
}
case R.id.lists: {
IntentUtils.openUserLists(getActivity(), account.account_key,
account.account_key.getId(), account.screen_name);
account.account_key, account.screen_name);
break;
}
case R.id.groups: {
IntentUtils.openUserGroups(getActivity(), account.account_key,
account.account_key.getId(), account.screen_name);
account.account_key, account.screen_name);
break;
}
case R.id.public_timeline: {

View File

@ -47,11 +47,11 @@ public class UserFavoritesFragment extends ParcelableStatusesFragment {
final UserKey accountKey = Utils.getAccountKey(context, args);
final String maxId = args.getString(EXTRA_MAX_ID);
final String sinceId = args.getString(EXTRA_SINCE_ID);
final String userId = args.getString(EXTRA_USER_ID);
final UserKey userKey = args.getParcelable(EXTRA_USER_KEY);
final String screenName = args.getString(EXTRA_SCREEN_NAME);
final int tabPosition = args.getInt(EXTRA_TAB_POSITION, -1);
final boolean loadingMore = args.getBoolean(EXTRA_LOADING_MORE, false);
return new UserFavoritesLoader(context, accountKey, userId, screenName, sinceId, maxId,
return new UserFavoritesLoader(context, accountKey, userKey, screenName, sinceId, maxId,
getAdapterData(), getSavedStatusesFileArgs(), tabPosition, fromUser, loadingMore);
}
@ -60,13 +60,13 @@ public class UserFavoritesFragment extends ParcelableStatusesFragment {
final Bundle args = getArguments();
assert args != null;
final UserKey accountKey = Utils.getAccountKey(getContext(), args);
final String userId = args.getString(EXTRA_USER_ID);
final UserKey userKey = args.getParcelable(EXTRA_USER_KEY);
final String screenName = args.getString(EXTRA_SCREEN_NAME);
final List<String> result = new ArrayList<>();
result.add(AUTHORITY_USER_FAVORITES);
result.add("account=" + accountKey);
if (userId != null) {
result.add("user_id=" + userId);
if (userKey != null) {
result.add("user_id=" + userKey);
} else if (screenName != null) {
result.add("screen_name=" + screenName);
} else {
@ -84,10 +84,10 @@ public class UserFavoritesFragment extends ParcelableStatusesFragment {
StringBuilder sb = new StringBuilder("user_favorites_");
if (tabPosition < 0) return null;
final String userId = args.getString(EXTRA_USER_ID);
final UserKey userKey = args.getParcelable(EXTRA_USER_KEY);
final String screenName = args.getString(EXTRA_SCREEN_NAME);
if (userId != null) {
sb.append(userId);
if (userKey != null) {
sb.append(userKey);
} else if (screenName != null) {
sb.append(screenName);
} else {

View File

@ -35,9 +35,9 @@ public class UserFollowersFragment extends CursorSupportUsersListFragment {
@NonNull final Bundle args,
final boolean fromUser) {
final UserKey accountKey = args.getParcelable(EXTRA_ACCOUNT_KEY);
final String userId = args.getString(EXTRA_USER_ID);
final UserKey userKey = args.getParcelable(EXTRA_USER_KEY);
final String screenName = args.getString(EXTRA_SCREEN_NAME);
final UserFollowersLoader loader = new UserFollowersLoader(context, accountKey, userId,
final UserFollowersLoader loader = new UserFollowersLoader(context, accountKey, userKey,
screenName, getData(), fromUser);
loader.setCursor(getNextCursor());
loader.setPage(getNextPage());

View File

@ -310,7 +310,6 @@ public class UserFragment extends BaseSupportFragment implements OnClickListener
if (user.is_cache) {
final Bundle args = new Bundle();
args.putParcelable(EXTRA_ACCOUNT_KEY, user.account_key);
args.putString(EXTRA_USER_ID, user.key.getId());
args.putParcelable(EXTRA_USER_KEY, user.key);
args.putString(EXTRA_SCREEN_NAME, user.screen_name);
args.putBoolean(EXTRA_OMIT_INTENT_EXTRA, true);
@ -632,14 +631,14 @@ public class UserFragment extends BaseSupportFragment implements OnClickListener
return mUser;
}
public void getUserInfo(final UserKey accountId, final UserKey userId, final String screenName,
public void getUserInfo(final UserKey accountKey, final UserKey userKey, final String screenName,
final boolean omitIntentExtra) {
final LoaderManager lm = getLoaderManager();
lm.destroyLoader(LOADER_ID_USER);
lm.destroyLoader(LOADER_ID_FRIENDSHIP);
final Bundle args = new Bundle();
args.putParcelable(EXTRA_ACCOUNT_KEY, accountId);
args.putParcelable(EXTRA_USER_ID, userId);
args.putParcelable(EXTRA_ACCOUNT_KEY, accountKey);
args.putParcelable(EXTRA_USER_KEY, userKey);
args.putString(EXTRA_SCREEN_NAME, screenName);
args.putBoolean(EXTRA_OMIT_INTENT_EXTRA, omitIntentExtra);
if (!mGetUserInfoLoaderInitialized) {
@ -648,7 +647,7 @@ public class UserFragment extends BaseSupportFragment implements OnClickListener
} else {
lm.restartLoader(LOADER_ID_USER, args, mUserInfoLoaderCallbacks);
}
if (accountId == null || userId == null && screenName == null) {
if (accountKey == null || userKey == null && screenName == null) {
mCardContent.setVisibility(View.GONE);
mHeaderErrorContainer.setVisibility(View.GONE);
}
@ -1002,8 +1001,8 @@ public class UserFragment extends BaseSupportFragment implements OnClickListener
final Uri.Builder builder = new Uri.Builder();
builder.scheme(SCHEME_TWIDERE);
builder.authority(AUTHORITY_DIRECT_MESSAGES_CONVERSATION);
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, String.valueOf(user.account_key));
builder.appendQueryParameter(QUERY_PARAM_USER_ID, String.valueOf(user.key));
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, user.account_key.toString());
builder.appendQueryParameter(QUERY_PARAM_USER_KEY, user.key.toString());
final Intent intent = new Intent(Intent.ACTION_VIEW, builder.build());
intent.putExtra(EXTRA_ACCOUNT, ParcelableCredentialsUtils.getCredentials(getActivity(), user.account_key));
intent.putExtra(EXTRA_USER, user);
@ -1308,22 +1307,22 @@ public class UserFragment extends BaseSupportFragment implements OnClickListener
break;
}
case R.id.listed_container: {
IntentUtils.openUserLists(getActivity(), user.account_key, user.key.getId(),
IntentUtils.openUserLists(getActivity(), user.account_key, user.key,
user.screen_name);
break;
}
case R.id.groups_container: {
IntentUtils.openUserGroups(getActivity(), user.account_key, user.key.getId(),
IntentUtils.openUserGroups(getActivity(), user.account_key, user.key,
user.screen_name);
break;
}
case R.id.followers_container: {
IntentUtils.openUserFollowers(getActivity(), user.account_key, user.key.getId(),
IntentUtils.openUserFollowers(getActivity(), user.account_key, user.key,
user.screen_name);
break;
}
case R.id.friends_container: {
IntentUtils.openUserFriends(getActivity(), user.account_key, user.key.getId(),
IntentUtils.openUserFriends(getActivity(), user.account_key, user.key,
user.screen_name);
break;
}
@ -1519,11 +1518,11 @@ public class UserFragment extends BaseSupportFragment implements OnClickListener
final ParcelableUser user = args.getParcelable(EXTRA_USER);
if (user != null) {
tabArgs.putParcelable(EXTRA_ACCOUNT_KEY, user.account_key);
tabArgs.putString(EXTRA_USER_ID, user.key.getId());
tabArgs.putParcelable(EXTRA_USER_KEY, user.key);
tabArgs.putString(EXTRA_SCREEN_NAME, user.screen_name);
} else {
tabArgs.putParcelable(EXTRA_ACCOUNT_KEY, args.getParcelable(EXTRA_ACCOUNT_KEY));
tabArgs.putString(EXTRA_USER_ID, args.getString(EXTRA_USER_ID));
tabArgs.putParcelable(EXTRA_USER_KEY, args.getParcelable(EXTRA_USER_KEY));
tabArgs.putString(EXTRA_SCREEN_NAME, args.getString(EXTRA_SCREEN_NAME));
}
mPagerAdapter.addTab(UserTimelineFragment.class, tabArgs, getString(R.string.statuses),

View File

@ -34,9 +34,9 @@ public class UserFriendsFragment extends CursorSupportUsersListFragment {
public CursorSupportUsersLoader onCreateUsersLoader(final Context context,
@NonNull final Bundle args, boolean fromUser) {
final UserKey accountKey = args.getParcelable(EXTRA_ACCOUNT_KEY);
final String userId = args.getString(EXTRA_USER_ID);
final UserKey userKey = args.getParcelable(EXTRA_USER_KEY);
final String screenName = args.getString(EXTRA_SCREEN_NAME);
final UserFriendsLoader loader = new UserFriendsLoader(context, accountKey, userId,
final UserFriendsLoader loader = new UserFriendsLoader(context, accountKey, userKey,
screenName, getData(), fromUser);
loader.setCursor(getNextCursor());
loader.setPage(getNextPage());

View File

@ -17,9 +17,9 @@ public class UserGroupsFragment extends ParcelableGroupsFragment {
@Override
protected Loader<List<ParcelableGroup>> onCreateUserListsLoader(Context context, Bundle args, boolean fromUser) {
final UserKey accountKey = args.getParcelable(EXTRA_ACCOUNT_KEY);
final String userId = args.getString(EXTRA_USER_ID);
final UserKey userKey = args.getParcelable(EXTRA_USER_KEY);
final String screenName = args.getString(EXTRA_SCREEN_NAME);
return new UserGroupsLoader(context, accountKey, userId, screenName, getData());
return new UserGroupsLoader(context, accountKey, userKey, screenName, getData());
}
}

View File

@ -129,7 +129,7 @@ public class UserListFragment extends AbsToolbarTabPagesFragment implements OnCl
final ParcelableUserList userList = mUserList;
final UserKey accountKey = data.getParcelableExtra(EXTRA_KEY);
IntentUtils.openUserListDetails(getActivity(), accountKey, userList.id,
userList.user_key.getId(), userList.user_screen_name, userList.name);
userList.user_key, userList.user_screen_name, userList.name);
}
break;
}
@ -165,13 +165,13 @@ public class UserListFragment extends AbsToolbarTabPagesFragment implements OnCl
final ParcelableUserList userList = args.getParcelable(EXTRA_USER_LIST);
assert userList != null;
tabArgs.putParcelable(EXTRA_ACCOUNT_KEY, userList.account_key);
tabArgs.putString(EXTRA_USER_ID, userList.user_key.getId());
tabArgs.putParcelable(EXTRA_USER_KEY, userList.user_key);
tabArgs.putString(EXTRA_SCREEN_NAME, userList.user_screen_name);
tabArgs.putLong(EXTRA_LIST_ID, userList.id);
tabArgs.putString(EXTRA_LIST_NAME, userList.name);
} else {
tabArgs.putParcelable(EXTRA_ACCOUNT_KEY, args.getParcelable(EXTRA_ACCOUNT_KEY));
tabArgs.getString(EXTRA_USER_ID, args.getString(EXTRA_USER_ID));
tabArgs.putParcelable(EXTRA_USER_KEY, args.getParcelable(EXTRA_USER_KEY));
tabArgs.putString(EXTRA_SCREEN_NAME, args.getString(EXTRA_SCREEN_NAME));
tabArgs.putLong(EXTRA_LIST_ID, args.getLong(EXTRA_LIST_ID, -1));
tabArgs.putString(EXTRA_LIST_NAME, args.getString(EXTRA_LIST_NAME));
@ -324,13 +324,13 @@ public class UserListFragment extends AbsToolbarTabPagesFragment implements OnCl
@Override
public Loader<SingleResponse<ParcelableUserList>> onCreateLoader(final int id, final Bundle args) {
final UserKey accountKey = args.getParcelable(EXTRA_ACCOUNT_KEY);
final String userId = args.getString(EXTRA_USER_ID);
final UserKey userKey = args.getParcelable(EXTRA_USER_KEY);
final long listId = args.getLong(EXTRA_LIST_ID, -1);
final String listName = args.getString(EXTRA_LIST_NAME);
final String screenName = args.getString(EXTRA_SCREEN_NAME);
final boolean omitIntentExtra = args.getBoolean(EXTRA_OMIT_INTENT_EXTRA, true);
return new ParcelableUserListLoader(getActivity(), omitIntentExtra, getArguments(), accountKey, listId,
listName, userId, screenName);
listName, userKey, screenName);
}
@Override
@ -453,19 +453,19 @@ public class UserListFragment extends AbsToolbarTabPagesFragment implements OnCl
private final boolean mOmitIntentExtra;
private final Bundle mExtras;
private final UserKey mAccountKey;
private final String mUserId;
private final UserKey mUserKey;
private final long mListId;
private final String mScreenName, mListName;
private ParcelableUserListLoader(final Context context, final boolean omitIntentExtra,
final Bundle extras, final UserKey accountKey,
final long listId, final String listName,
final String userId, final String screenName) {
final UserKey userKey, final String screenName) {
super(context);
mOmitIntentExtra = omitIntentExtra;
mExtras = extras;
mAccountKey = accountKey;
mUserId = userId;
mUserKey = userKey;
mListId = listId;
mScreenName = screenName;
mListName = listName;
@ -484,8 +484,8 @@ public class UserListFragment extends AbsToolbarTabPagesFragment implements OnCl
final UserList list;
if (mListId > 0) {
list = twitter.showUserList(mListId);
} else if (mUserId != null) {
list = twitter.showUserList(mListName, mUserId);
} else if (mUserKey != null) {
list = twitter.showUserList(mListName, mUserKey.getId());
} else if (mScreenName != null) {
list = twitter.showUserListByScrenName(mListName, mScreenName);
} else

View File

@ -55,11 +55,11 @@ public class UserListMembersFragment extends CursorSupportUsersListFragment {
@NonNull final Bundle args, boolean fromUser) {
final long listId = args.getLong(EXTRA_LIST_ID, -1);
final UserKey accountId = args.getParcelable(EXTRA_ACCOUNT_KEY);
final String userId = args.getString(EXTRA_USER_ID);
final UserKey userKey = args.getParcelable(EXTRA_USER_KEY);
final String screenName = args.getString(EXTRA_SCREEN_NAME);
final String listName = args.getString(EXTRA_LIST_NAME);
final UserListMembersLoader loader = new UserListMembersLoader(context, accountId, listId,
userId, screenName, listName, getData(), fromUser);
userKey, screenName, listName, getData(), fromUser);
loader.setCursor(getNextCursor());
loader.setPage(getNextPage());
return loader;

View File

@ -35,10 +35,10 @@ public class UserListMembershipsFragment extends ParcelableUserListsFragment {
public Loader<List<ParcelableUserList>> onCreateUserListsLoader(final Context context,
final Bundle args, final boolean fromUser) {
final UserKey accountKey = args.getParcelable(EXTRA_ACCOUNT_KEY);
final String userId = args.getString(EXTRA_USER_ID);
final UserKey userKey = args.getParcelable(EXTRA_USER_KEY);
final String screenName = args.getString(EXTRA_SCREEN_NAME);
final long cursor = args.getLong(EXTRA_NEXT_CURSOR, -1);
return new UserListMembershipsLoader(getActivity(), accountKey, userId, screenName, cursor, getData());
return new UserListMembershipsLoader(getActivity(), accountKey, userKey, screenName, cursor, getData());
}
}

View File

@ -33,11 +33,11 @@ public class UserListSubscribersFragment extends CursorSupportUsersListFragment
public CursorSupportUsersLoader onCreateUsersLoader(final Context context, @NonNull final Bundle args, boolean fromUser) {
final long listId = args.getLong(EXTRA_LIST_ID, -1);
final UserKey accountKey = args.getParcelable(EXTRA_ACCOUNT_KEY);
final String userId = args.getString(EXTRA_USER_ID);
final UserKey userKey = args.getParcelable(EXTRA_USER_KEY);
final String screenName = args.getString(EXTRA_SCREEN_NAME);
final String listName = args.getString(EXTRA_LIST_NAME);
final UserListSubscribersLoader loader = new UserListSubscribersLoader(context, accountKey,
listId, userId, screenName, listName, getData(), fromUser);
listId, userKey, screenName, listName, getData(), fromUser);
loader.setCursor(getNextCursor());
loader.setPage(getNextPage());
return loader;

View File

@ -56,12 +56,12 @@ public class UserListTimelineFragment extends ParcelableStatusesFragment {
final UserKey accountKey = Utils.getAccountKey(context, args);
final String maxId = args.getString(EXTRA_MAX_ID);
final String sinceId = args.getString(EXTRA_SINCE_ID);
final String userId = args.getString(EXTRA_USER_ID);
final UserKey userKey = args.getParcelable(EXTRA_USER_KEY);
final String screenName = args.getString(EXTRA_SCREEN_NAME);
final String listName = args.getString(EXTRA_LIST_NAME);
final int tabPosition = args.getInt(EXTRA_TAB_POSITION, -1);
final boolean loadingMore = args.getBoolean(EXTRA_LOADING_MORE, false);
return new UserListTimelineLoader(getActivity(), accountKey, listId, userId, screenName,
return new UserListTimelineLoader(getActivity(), accountKey, listId, userKey, screenName,
listName, sinceId, maxId, getAdapterData(), getSavedStatusesFileArgs(), tabPosition,
fromUser, loadingMore);
}
@ -72,7 +72,7 @@ public class UserListTimelineFragment extends ParcelableStatusesFragment {
assert args != null;
final UserKey accountKey = Utils.getAccountKey(getContext(), args);
final long listId = args.getLong(EXTRA_LIST_ID, -1);
final String userId = args.getString(EXTRA_USER_ID);
final UserKey userKey = args.getParcelable(EXTRA_USER_KEY);
final String screenName = args.getString(EXTRA_SCREEN_NAME);
final String listName = args.getString(EXTRA_LIST_NAME);
final List<String> result = new ArrayList<>();
@ -81,8 +81,8 @@ public class UserListTimelineFragment extends ParcelableStatusesFragment {
if (listId > 0) {
result.add("list_id=" + listId);
} else if (listName != null) {
if (userId != null) {
result.add("user_id=" + userId);
if (userKey != null) {
result.add("user_id=" + userKey);
} else if (screenName != null) {
result.add("screen_name=" + screenName);
}
@ -105,10 +105,10 @@ public class UserListTimelineFragment extends ParcelableStatusesFragment {
if (listId > 0) {
sb.append(listId);
} else if (listName != null) {
final String userId = args.getString(EXTRA_USER_ID);
final UserKey userKey = args.getParcelable(EXTRA_USER_KEY);
final String screenName = args.getString(EXTRA_SCREEN_NAME);
if (userId != null) {
sb.append(userId);
if (userKey != null) {
sb.append(userKey);
} else if (screenName != null) {
sb.append(screenName);
} else {

View File

@ -23,7 +23,6 @@ import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.support.v4.content.Loader;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
@ -47,9 +46,9 @@ public class UserListsFragment extends ParcelableUserListsFragment {
public Loader<List<ParcelableUserList>> onCreateUserListsLoader(final Context context,
final Bundle args, final boolean fromUser) {
final UserKey accountKey = args.getParcelable(EXTRA_ACCOUNT_KEY);
final String userId = args.getString(EXTRA_USER_ID);
final UserKey userKey = args.getParcelable(EXTRA_USER_KEY);
final String screenName = args.getString(EXTRA_SCREEN_NAME);
return new UserListsLoader(getActivity(), accountKey, userId, screenName, true, getData());
return new UserListsLoader(getActivity(), accountKey, userKey, screenName, true, getData());
}
@Override
@ -83,8 +82,7 @@ public class UserListsFragment extends ParcelableUserListsFragment {
final MenuItem item = menu.findItem(R.id.new_user_list);
final UserKey accountId = getAccountKey();
if (accountId == null || item == null) return;
final String userId = getUserId();
if (TextUtils.equals(accountId.getId(), userId)) {
if (accountId.equals(getUserId())) {
MenuUtils.setMenuItemAvailability(menu, R.id.new_user_list, true);
} else {
MenuUtils.setMenuItemAvailability(menu, R.id.new_user_list, Utils.isMyAccount(getActivity(), getScreenName()));
@ -95,8 +93,8 @@ public class UserListsFragment extends ParcelableUserListsFragment {
return getArguments().getString(EXTRA_SCREEN_NAME);
}
private String getUserId() {
return getArguments().getString(EXTRA_USER_ID);
private UserKey getUserId() {
return getArguments().getParcelable(EXTRA_USER_KEY);
}
@Override

View File

@ -102,12 +102,12 @@ public class UserMediaTimelineFragment extends AbsContentRecyclerViewFragment<St
final UserKey accountKey = args.getParcelable(EXTRA_ACCOUNT_KEY);
final String maxId = args.getString(EXTRA_MAX_ID);
final String sinceId = args.getString(EXTRA_SINCE_ID);
final String userId = args.getString(EXTRA_USER_ID);
final UserKey userKey = args.getParcelable(EXTRA_USER_KEY);
final String screenName = args.getString(EXTRA_SCREEN_NAME);
final int tabPosition = args.getInt(EXTRA_TAB_POSITION, -1);
final boolean fromUser = args.getBoolean(EXTRA_FROM_USER);
final boolean loadingMore = args.getBoolean(EXTRA_LOADING_MORE, false);
return new MediaTimelineLoader(context, accountKey, userId, screenName, sinceId, maxId,
return new MediaTimelineLoader(context, accountKey, userKey, screenName, sinceId, maxId,
getAdapter().getData(), null, tabPosition, fromUser, loadingMore);
}

View File

@ -55,11 +55,11 @@ public class UserTimelineFragment extends ParcelableStatusesFragment {
final UserKey accountKey = Utils.getAccountKey(context, args);
final String maxId = args.getString(EXTRA_MAX_ID);
final String sinceId = args.getString(EXTRA_SINCE_ID);
final String userId = args.getString(EXTRA_USER_ID);
final UserKey userKey = args.getParcelable(EXTRA_USER_KEY);
final String screenName = args.getString(EXTRA_SCREEN_NAME);
final int tabPosition = args.getInt(EXTRA_TAB_POSITION, -1);
final boolean loadingMore = args.getBoolean(EXTRA_LOADING_MORE, false);
return new UserTimelineLoader(context, accountKey, userId, screenName, sinceId, maxId, data,
return new UserTimelineLoader(context, accountKey, userKey, screenName, sinceId, maxId, data,
getSavedStatusesFileArgs(), tabPosition, fromUser, loadingMore);
}
@ -68,13 +68,13 @@ public class UserTimelineFragment extends ParcelableStatusesFragment {
final Bundle args = getArguments();
assert args != null;
final UserKey accountKey = Utils.getAccountKey(getContext(), args);
final String userId = args.getString(EXTRA_USER_ID);
final UserKey userKey = args.getParcelable(EXTRA_USER_KEY);
final String screenName = args.getString(EXTRA_SCREEN_NAME);
final List<String> result = new ArrayList<>();
result.add(AUTHORITY_USER_TIMELINE);
result.add("account=" + accountKey);
if (userId != null) {
result.add("user_id=" + userId);
if (userKey != null) {
result.add("user_id=" + userKey);
} else if (screenName != null) {
result.add("screen_name=" + screenName);
} else {
@ -91,10 +91,10 @@ public class UserTimelineFragment extends ParcelableStatusesFragment {
StringBuilder sb = new StringBuilder("user_timeline_");
if (tabPosition < 0) return null;
final String userId = args.getString(EXTRA_USER_ID);
final UserKey userKey = args.getParcelable(EXTRA_USER_KEY);
final String screenName = args.getString(EXTRA_SCREEN_NAME);
if (userId != null) {
sb.append(userId);
if (userKey != null) {
sb.append(userKey);
} else if (screenName != null) {
sb.append(screenName);
} else {

View File

@ -22,6 +22,7 @@ package org.mariotaku.twidere.loader;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.WorkerThread;
import android.text.TextUtils;
@ -49,18 +50,20 @@ import java.util.List;
public class MediaTimelineLoader extends TwitterAPIStatusesLoader {
private final String mUserId;
@Nullable
private final UserKey mUserKey;
@Nullable
private final String mUserScreenName;
private User mUser;
public MediaTimelineLoader(final Context context, final UserKey accountKey, final String userId,
final String screenName, final String sinceId, final String maxId,
public MediaTimelineLoader(final Context context, final UserKey accountKey, @Nullable final UserKey userKey,
@Nullable final String screenName, final String sinceId, final String maxId,
final List<ParcelableStatus> data, final String[] savedStatusesArgs,
final int tabPosition, final boolean fromUser, boolean loadingMore) {
super(context, accountKey, sinceId, maxId, data, savedStatusesArgs, tabPosition, fromUser,
loadingMore);
mUserId = userId;
mUserKey = userKey;
mUserScreenName = screenName;
}
@ -73,8 +76,8 @@ public class MediaTimelineLoader extends TwitterAPIStatusesLoader {
switch (ParcelableAccountUtils.getAccountType(credentials)) {
case ParcelableAccount.Type.TWITTER: {
if (Utils.isOfficialCredentials(context, credentials)) {
if (mUserId != null) {
return twitter.getMediaTimeline(mUserId, paging);
if (mUserKey != null) {
return twitter.getMediaTimeline(mUserKey.getId(), paging);
}
if (mUserScreenName != null) {
return twitter.getMediaTimelineByScreenName(mUserScreenName, paging);
@ -83,12 +86,14 @@ public class MediaTimelineLoader extends TwitterAPIStatusesLoader {
final String screenName;
if (mUserScreenName != null) {
screenName = mUserScreenName;
} else {
} else if (mUserKey != null) {
if (mUser == null) {
mUser = TwitterWrapper.tryShowUser(twitter, mUserId, null,
mUser = TwitterWrapper.tryShowUser(twitter, mUserKey.getId(), null,
credentials.account_type);
}
screenName = mUser.getScreenName();
} else {
throw new TwitterException("Invalid parameters");
}
final SearchQuery query;
if (TwitterAPIFactory.isTwitterCredentials(credentials)) {
@ -100,7 +105,7 @@ public class MediaTimelineLoader extends TwitterAPIStatusesLoader {
final ResponseList<Status> result = new ResponseList<>();
for (Status status : twitter.search(query)) {
final User user = status.getUser();
if (TextUtils.equals(user.getId(), mUserId) ||
if ((mUserKey != null && TextUtils.equals(user.getId(), mUserKey.getId())) ||
StringUtils.endsWithIgnoreCase(user.getScreenName(), mUserScreenName)) {
result.add(status);
}
@ -110,8 +115,8 @@ public class MediaTimelineLoader extends TwitterAPIStatusesLoader {
throw new TwitterException("Wrong user");
}
case ParcelableAccount.Type.FANFOU: {
if (mUserId != null) {
return twitter.getPhotosUserTimeline(mUserId, paging);
if (mUserKey != null) {
return twitter.getPhotosUserTimeline(mUserKey.getId(), paging);
}
if (mUserScreenName != null) {
return twitter.getPhotosUserTimeline(mUserScreenName, paging);
@ -131,10 +136,12 @@ public class MediaTimelineLoader extends TwitterAPIStatusesLoader {
}
private boolean isMyTimeline() {
if (mUserId != null) {
return getAccountKey().check(mUserId, null);
final UserKey accountKey = getAccountKey();
if (accountKey == null) return false;
if (mUserKey != null) {
return mUserKey.maybeEquals(accountKey);
} else {
final String accountScreenName = DataStoreUtils.getAccountScreenName(getContext(), getAccountKey());
final String accountScreenName = DataStoreUtils.getAccountScreenName(getContext(), accountKey);
return accountScreenName != null && accountScreenName.equalsIgnoreCase(mUserScreenName);
}
}

View File

@ -69,6 +69,7 @@ import javax.inject.Inject;
public abstract class TwitterAPIStatusesLoader extends ParcelableStatusesLoader {
@Nullable
private final UserKey mAccountKey;
private final String mMaxId, mSinceId;
@Nullable
@ -214,6 +215,7 @@ public abstract class TwitterAPIStatusesLoader extends ParcelableStatusesLoader
return mMaxId;
}
@Nullable
public UserKey getAccountKey() {
return mAccountKey;
}

View File

@ -37,24 +37,24 @@ import java.util.List;
public class UserFavoritesLoader extends TwitterAPIStatusesLoader {
private final String mUserId;
private final UserKey mUserKey;
private final String mUserScreenName;
public UserFavoritesLoader(final Context context, final UserKey accountKey, final String userId,
public UserFavoritesLoader(final Context context, final UserKey accountKey, final UserKey userKey,
final String screenName, final String sinceId, final String maxId,
final List<ParcelableStatus> data, final String[] savedStatusesArgs,
final int tabPosition, boolean fromUser, boolean loadingMore) {
super(context, accountKey, sinceId, maxId, data, savedStatusesArgs, tabPosition, fromUser,
loadingMore);
mUserId = userId;
mUserKey = userKey;
mUserScreenName = screenName;
}
@NonNull
@Override
public ResponseList<Status> getStatuses(@NonNull final Twitter twitter, @NonNull ParcelableCredentials credentials, @NonNull final Paging paging) throws TwitterException {
if (mUserId != null) {
return twitter.getFavorites(mUserId, paging);
if (mUserKey != null) {
return twitter.getFavorites(mUserKey.getId(), paging);
} else if (mUserScreenName != null) {
return twitter.getFavoritesByScreenName(mUserScreenName, paging);
}

View File

@ -21,6 +21,7 @@ package org.mariotaku.twidere.loader;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import org.mariotaku.twidere.api.twitter.Twitter;
import org.mariotaku.twidere.api.twitter.TwitterException;
@ -37,14 +38,16 @@ import java.util.List;
public class UserFollowersLoader extends CursorSupportUsersLoader {
private final String mUserId;
@Nullable
private final UserKey mUserKey;
@Nullable
private final String mScreenName;
public UserFollowersLoader(final Context context, final UserKey accountId, final String userId,
final String screenName, final List<ParcelableUser> data,
final boolean fromUser) {
public UserFollowersLoader(final Context context, final UserKey accountId,
@Nullable final UserKey userKey, @Nullable final String screenName,
final List<ParcelableUser> data, final boolean fromUser) {
super(context, accountId, data, fromUser);
mUserId = userId;
mUserKey = userKey;
mScreenName = screenName;
}
@ -54,22 +57,22 @@ public class UserFollowersLoader extends CursorSupportUsersLoader {
throws TwitterException {
switch (ParcelableAccountUtils.getAccountType(credentials)) {
case ParcelableAccount.Type.STATUSNET: {
if (mUserId != null) {
return twitter.getStatusesFollowersList(mUserId, paging);
if (mUserKey != null) {
return twitter.getStatusesFollowersList(mUserKey.getId(), paging);
} else if (mScreenName != null) {
return twitter.getStatusesFollowersListByScreenName(mScreenName, paging);
}
}
case ParcelableAccount.Type.FANFOU: {
if (mUserId != null) {
return twitter.getUsersFollowers(mUserId, paging);
if (mUserKey != null) {
return twitter.getUsersFollowers(mUserKey.getId(), paging);
} else if (mScreenName != null) {
return twitter.getUsersFollowers(mScreenName, paging);
}
}
default: {
if (mUserId != null) {
return twitter.getFollowersList(mUserId, paging);
if (mUserKey != null) {
return twitter.getFollowersList(mUserKey.getId(), paging);
} else if (mScreenName != null) {
return twitter.getFollowersListByScreenName(mScreenName, paging);
}

View File

@ -37,14 +37,14 @@ import java.util.List;
public class UserFriendsLoader extends CursorSupportUsersLoader {
private final String mUserId;
private final UserKey mUserKey;
private final String mScreenName;
public UserFriendsLoader(final Context context, final UserKey accountKey, final String userId,
public UserFriendsLoader(final Context context, final UserKey accountKey, final UserKey userKey,
final String screenName, final List<ParcelableUser> userList,
boolean fromUser) {
super(context, accountKey, userList, fromUser);
mUserId = userId;
mUserKey = userKey;
mScreenName = screenName;
}
@ -54,22 +54,22 @@ public class UserFriendsLoader extends CursorSupportUsersLoader {
throws TwitterException {
switch (ParcelableAccountUtils.getAccountType(credentials)) {
case ParcelableAccount.Type.STATUSNET: {
if (mUserId != null) {
return twitter.getStatusesFriendsList(mUserId, paging);
if (mUserKey != null) {
return twitter.getStatusesFriendsList(mUserKey.getId(), paging);
} else if (mScreenName != null) {
return twitter.getStatusesFriendsListByScreenName(mScreenName, paging);
}
}
case ParcelableAccount.Type.FANFOU: {
if (mUserId != null) {
return twitter.getUsersFriends(mUserId, paging);
if (mUserKey != null) {
return twitter.getUsersFriends(mUserKey.getId(), paging);
} else if (mScreenName != null) {
return twitter.getUsersFriends(mScreenName, paging);
}
}
default: {
if (mUserId != null) {
return twitter.getFriendsList(mUserId, paging);
if (mUserKey != null) {
return twitter.getFriendsList(mUserKey.getId(), paging);
} else if (mScreenName != null) {
return twitter.getFriendsListByScreenName(mScreenName, paging);
}

View File

@ -32,22 +32,24 @@ import java.util.List;
public class UserGroupsLoader extends BaseGroupsLoader {
private final String mUserId;
private final UserKey mUserKey;
private final String mScreenName;
public UserGroupsLoader(final Context context, final UserKey accountKey, final String userId,
public UserGroupsLoader(final Context context, final UserKey accountKey, final UserKey userKey,
final String screenName, final List<ParcelableGroup> data) {
super(context, accountKey, 0, data);
mUserId = userId;
mUserKey = userKey;
mScreenName = screenName;
}
@Override
public ResponseList<Group> getGroups(final Twitter twitter) throws TwitterException {
if (twitter == null) return null;
if (mUserId != null)
return twitter.getGroups(mUserId);
else if (mScreenName != null) return twitter.getGroups(mScreenName);
if (mUserKey != null) {
return twitter.getGroups(mUserKey.getId());
} else if (mScreenName != null) {
return twitter.getGroups(mScreenName);
}
return null;
}

View File

@ -36,15 +36,15 @@ import java.util.List;
public class UserListMembersLoader extends CursorSupportUsersLoader {
private final long mListId;
private final String mUserId;
private final UserKey mUserKey;
private final String mScreenName, mListName;
public UserListMembersLoader(final Context context, final UserKey accountKey, final long listId,
final String userId, final String screenName, final String listName,
final UserKey userKey, final String screenName, final String listName,
final List<ParcelableUser> data, boolean fromUser) {
super(context, accountKey, data, fromUser);
mListId = listId;
mUserId = userId;
mUserKey = userKey;
mScreenName = screenName;
mListName = listName;
}
@ -55,8 +55,8 @@ public class UserListMembersLoader extends CursorSupportUsersLoader {
throws TwitterException {
if (mListId > 0)
return twitter.getUserListMembers(mListId, paging);
else if (mUserId != null)
return twitter.getUserListMembers(mListName.replace(' ', '-'), mUserId, paging);
else if (mUserKey != null)
return twitter.getUserListMembers(mListName.replace(' ', '-'), mUserKey.getId(), paging);
else if (mScreenName != null)
return twitter.getUserListMembersByScreenName(mListName.replace(' ', '-'), mScreenName, paging);
throw new TwitterException("list_id or list_name and user_id (or screen_name) required");

View File

@ -33,14 +33,14 @@ import java.util.List;
public class UserListMembershipsLoader extends BaseUserListsLoader {
private final String mUserId;
private final UserKey mUserKey;
private final String mScreenName;
public UserListMembershipsLoader(final Context context, final UserKey accountKey,
final String userId, final String screenName,
final UserKey userKey, final String screenName,
final long cursor, final List<ParcelableUserList> data) {
super(context, accountKey, cursor, data);
mUserId = userId;
mUserKey = userKey;
mScreenName = screenName;
}
@ -49,8 +49,8 @@ public class UserListMembershipsLoader extends BaseUserListsLoader {
if (twitter == null) return null;
final Paging paging = new Paging();
paging.cursor(getCursor());
if (mUserId != null) {
return twitter.getUserListMemberships(mUserId, paging);
if (mUserKey != null) {
return twitter.getUserListMemberships(mUserKey.getId(), paging);
} else if (mScreenName != null) {
return twitter.getUserListMembershipsByScreenName(mScreenName, paging);
}

View File

@ -36,15 +36,15 @@ import java.util.List;
public class UserListSubscribersLoader extends CursorSupportUsersLoader {
private final long mListId;
private final String mUserId;
private final UserKey mUserKey;
private final String mScreenName, mListName;
public UserListSubscribersLoader(final Context context, final UserKey accountKey, final long listId,
final String userId, final String screenName, final String listName,
final UserKey userKey, final String screenName, final String listName,
final List<ParcelableUser> data, boolean fromUser) {
super(context, accountKey, data, fromUser);
mListId = listId;
mUserId = userId;
mUserKey = userKey;
mScreenName = screenName;
mListName = listName;
}
@ -55,8 +55,8 @@ public class UserListSubscribersLoader extends CursorSupportUsersLoader {
throws TwitterException {
if (mListId > 0)
return twitter.getUserListSubscribers(mListId, paging);
else if (mUserId != null)
return twitter.getUserListSubscribers(mListName.replace(' ', '-'), mUserId, paging);
else if (mUserKey != null)
return twitter.getUserListSubscribers(mListName.replace(' ', '-'), mUserKey.getId(), paging);
else if (mScreenName != null)
return twitter.getUserListSubscribersByScreenName(mListName.replace(' ', '-'), mScreenName, paging);
throw new TwitterException("list_id or list_name and user_id (or screen_name) required");

View File

@ -38,17 +38,17 @@ import java.util.List;
public class UserListTimelineLoader extends TwitterAPIStatusesLoader {
private final String mUserId;
private final UserKey mUserKey;
private final String mScreenName, mListName;
private final long mListId;
public UserListTimelineLoader(final Context context, final UserKey accountKey, final long listId,
final String userId, final String screenName, final String listName,
final UserKey userKey, final String screenName, final String listName,
final String sinceId, final String maxId, final List<ParcelableStatus> data,
final String[] savedStatusesArgs, final int tabPosition, boolean fromUser, boolean loadingMore) {
super(context, accountKey, sinceId, maxId, data, savedStatusesArgs, tabPosition, fromUser, loadingMore);
mListId = listId;
mUserId = userId;
mUserKey = userKey;
mScreenName = screenName;
mListName = listName;
}
@ -60,8 +60,8 @@ public class UserListTimelineLoader extends TwitterAPIStatusesLoader {
return twitter.getUserListStatuses(mListId, paging);
else if (mListName == null)
throw new TwitterException("No list name or id given");
else if (mUserId != null)
return twitter.getUserListStatuses(mListName.replace(' ', '-'), mUserId, paging);
else if (mUserKey != null)
return twitter.getUserListStatuses(mListName.replace(' ', '-'), mUserKey.getId(), paging);
else if (mScreenName != null)
return twitter.getUserListStatuses(mListName.replace(' ', '-'), mScreenName, paging);
throw new TwitterException("User id or screen name is required for list name");

View File

@ -32,14 +32,14 @@ import java.util.List;
public class UserListsLoader extends BaseUserListsLoader {
private final String mUserId;
private final UserKey mUserKey;
private final String mScreenName;
private final boolean mReverse;
public UserListsLoader(final Context context, final UserKey accountKey, final String userId,
public UserListsLoader(final Context context, final UserKey accountKey, final UserKey userKey,
final String screenName, final boolean reverse, final List<ParcelableUserList> data) {
super(context, accountKey, 0, data);
mUserId = userId;
mUserKey = userKey;
mScreenName = screenName;
mReverse = reverse;
}
@ -47,8 +47,8 @@ public class UserListsLoader extends BaseUserListsLoader {
@Override
public ResponseList<UserList> getUserLists(final Twitter twitter) throws TwitterException {
if (twitter == null) return null;
if (mUserId != null) {
return twitter.getUserLists(mUserId, mReverse);
if (mUserKey != null) {
return twitter.getUserLists(mUserKey.getId(), mReverse);
} else if (mScreenName != null) {
return twitter.getUserListsByScreenName(mScreenName, mReverse);
}

View File

@ -43,8 +43,10 @@ public class UserMentionsLoader extends TweetSearchLoader {
@NonNull
@Override
protected String processQuery(ParcelableCredentials credentials, @NonNull final String query) {
final UserKey accountKey = getAccountKey();
if (accountKey == null) return query;
final String screenName = query.startsWith("@") ? query.substring(1) : query;
if (TwitterAPIFactory.isTwitterCredentials(getContext(), getAccountKey())) {
if (TwitterAPIFactory.isTwitterCredentials(getContext(), accountKey)) {
return String.format(Locale.ROOT, "to:%s exclude:retweets", screenName);
}
return String.format(Locale.ROOT, "@%s -RT", screenName);

View File

@ -40,11 +40,13 @@ import java.util.List;
public class UserTimelineLoader extends TwitterAPIStatusesLoader {
private final String mUserId;
@Nullable
private final UserKey mUserId;
@Nullable
private final String mUserScreenName;
public UserTimelineLoader(final Context context, @Nullable final UserKey accountId,
final String userId, final String screenName,
@Nullable final UserKey userId, @Nullable final String screenName,
final String sinceId, final String maxId,
final List<ParcelableStatus> data, final String[] savedStatusesArgs,
final int tabPosition, boolean fromUser, boolean loadingMore) {
@ -59,7 +61,7 @@ public class UserTimelineLoader extends TwitterAPIStatusesLoader {
@NonNull ParcelableCredentials credentials,
@NonNull final Paging paging) throws TwitterException {
if (mUserId != null) {
return twitter.getUserTimeline(mUserId, paging);
return twitter.getUserTimeline(mUserId.getId(), paging);
} else if (mUserScreenName != null) {
return twitter.getUserTimelineByScreenName(mUserScreenName, paging);
} else {
@ -71,7 +73,8 @@ public class UserTimelineLoader extends TwitterAPIStatusesLoader {
@Override
protected boolean shouldFilterStatus(final SQLiteDatabase database, final ParcelableStatus status) {
final UserKey accountId = getAccountKey();
if (accountId != null && TextUtils.equals(accountId.getId(), mUserId)) return false;
if (accountId != null && mUserId != null && TextUtils.equals(accountId.getId(), mUserId.getId()))
return false;
final UserKey retweetUserId = status.is_retweet ? status.user_key : null;
return InternalTwitterContentUtils.isFiltered(database, retweetUserId, status.text_plain,
status.spans, status.source, null, status.quoted_user_key);

View File

@ -6,6 +6,8 @@ import android.support.annotation.NonNull;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
import org.mariotaku.twidere.model.UserKey;
/**
* Created by mariotaku on 16/3/6.
*/
@ -13,21 +15,28 @@ import com.bluelinelabs.logansquare.annotation.JsonObject;
public class UserArguments extends TabArguments {
@JsonField(name = "user_id")
String userId;
@JsonField(name = "user_key")
UserKey userKey;
public void setUserId(String userId) {
this.userId = userId;
public void setUserKey(UserKey userKey) {
this.userKey = userKey;
}
@Override
public void copyToBundle(@NonNull Bundle bundle) {
super.copyToBundle(bundle);
bundle.putString(EXTRA_USER_ID, userId);
if (userKey == null) {
bundle.putParcelable(EXTRA_USER_ID, UserKey.valueOf(userId));
} else {
bundle.putParcelable(EXTRA_USER_KEY, userKey);
}
}
@Override
public String toString() {
return "UserArguments{" +
"userId=" + userId +
"userId='" + userId + '\'' +
", userKey=" + userKey +
"} " + super.toString();
}
}

View File

@ -419,15 +419,16 @@ public class IntentUtils implements Constants {
public static void openUserFavorites(@NonNull final Context context,
@Nullable final UserKey accountKey,
final String userId, final String screenName) {
@Nullable final UserKey userKey,
@Nullable final String screenName) {
final Uri.Builder builder = new Uri.Builder();
builder.scheme(SCHEME_TWIDERE);
builder.authority(AUTHORITY_USER_FAVORITES);
if (accountKey != null) {
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString());
}
if (userId != null) {
builder.appendQueryParameter(QUERY_PARAM_USER_ID, userId);
if (userKey != null) {
builder.appendQueryParameter(QUERY_PARAM_USER_KEY, userKey.toString());
}
if (screenName != null) {
builder.appendQueryParameter(QUERY_PARAM_SCREEN_NAME, screenName);
@ -438,16 +439,17 @@ public class IntentUtils implements Constants {
}
public static void openUserFollowers(@NonNull final Context context,
@Nullable final UserKey accountKey, final String userId,
final String screenName) {
@Nullable final UserKey accountKey,
@Nullable final UserKey userKey,
@Nullable final String screenName) {
final Uri.Builder builder = new Uri.Builder();
builder.scheme(SCHEME_TWIDERE);
builder.authority(AUTHORITY_USER_FOLLOWERS);
if (accountKey != null) {
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString());
}
if (userId != null) {
builder.appendQueryParameter(QUERY_PARAM_USER_ID, userId);
if (userKey != null) {
builder.appendQueryParameter(QUERY_PARAM_USER_KEY, userKey.toString());
}
if (screenName != null) {
builder.appendQueryParameter(QUERY_PARAM_SCREEN_NAME, screenName);
@ -457,16 +459,17 @@ public class IntentUtils implements Constants {
}
public static void openUserFriends(@NonNull final Context context,
@Nullable final UserKey accountKey, final String userId,
final String screenName) {
@Nullable final UserKey accountKey,
@Nullable final UserKey userKey,
@Nullable final String screenName) {
final Uri.Builder builder = new Uri.Builder();
builder.scheme(SCHEME_TWIDERE);
builder.authority(AUTHORITY_USER_FRIENDS);
if (accountKey != null) {
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString());
}
if (userId != null) {
builder.appendQueryParameter(QUERY_PARAM_USER_ID, userId);
if (userKey != null) {
builder.appendQueryParameter(QUERY_PARAM_USER_KEY, userKey.toString());
}
if (screenName != null) {
builder.appendQueryParameter(QUERY_PARAM_SCREEN_NAME, screenName);
@ -478,7 +481,8 @@ public class IntentUtils implements Constants {
public static void openUserListDetails(@NonNull final Context context,
@Nullable final UserKey accountKey, final long listId,
final String userId, final String screenName, final String listName) {
@Nullable final UserKey userId,
@Nullable final String screenName, final String listName) {
final Uri.Builder builder = new Uri.Builder();
builder.scheme(SCHEME_TWIDERE);
builder.authority(AUTHORITY_USER_LIST);
@ -489,7 +493,7 @@ public class IntentUtils implements Constants {
builder.appendQueryParameter(QUERY_PARAM_LIST_ID, String.valueOf(listId));
}
if (userId != null) {
builder.appendQueryParameter(QUERY_PARAM_USER_ID, userId);
builder.appendQueryParameter(QUERY_PARAM_USER_KEY, userId.toString());
}
if (screenName != null) {
builder.appendQueryParameter(QUERY_PARAM_SCREEN_NAME, screenName);
@ -501,16 +505,17 @@ public class IntentUtils implements Constants {
context.startActivity(intent);
}
public static void openUserListDetails(@NonNull final Context context, @NonNull final ParcelableUserList userList) {
final UserKey userId = userList.user_key;
public static void openUserListDetails(@NonNull final Context context,
@NonNull final ParcelableUserList userList) {
final UserKey userKey = userList.user_key;
final long listId = userList.id;
final Bundle extras = new Bundle();
extras.putParcelable(EXTRA_USER_LIST, userList);
final Uri.Builder builder = new Uri.Builder();
builder.scheme(SCHEME_TWIDERE);
builder.authority(AUTHORITY_USER_LIST);
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, String.valueOf(userList.account_key));
builder.appendQueryParameter(QUERY_PARAM_USER_ID, String.valueOf(userId));
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, userList.account_key.toString());
builder.appendQueryParameter(QUERY_PARAM_USER_KEY, userKey.toString());
builder.appendQueryParameter(QUERY_PARAM_LIST_ID, String.valueOf(listId));
final Intent intent = new Intent(Intent.ACTION_VIEW, builder.build());
intent.setExtrasClassLoader(context.getClassLoader());
@ -533,16 +538,18 @@ public class IntentUtils implements Constants {
context.startActivity(intent);
}
public static void openUserLists(@NonNull final Context context, @Nullable final UserKey accountKey, final String userId,
final String screenName) {
public static void openUserLists(@NonNull final Context context,
@Nullable final UserKey accountKey,
@Nullable final UserKey userKey,
@Nullable final String screenName) {
final Uri.Builder builder = new Uri.Builder();
builder.scheme(SCHEME_TWIDERE);
builder.authority(AUTHORITY_USER_LISTS);
if (accountKey != null) {
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString());
}
if (userId != null) {
builder.appendQueryParameter(QUERY_PARAM_USER_ID, userId);
if (userKey != null) {
builder.appendQueryParameter(QUERY_PARAM_USER_KEY, userKey.toString());
}
if (screenName != null) {
builder.appendQueryParameter(QUERY_PARAM_SCREEN_NAME, screenName);
@ -552,8 +559,10 @@ public class IntentUtils implements Constants {
}
public static void openUserGroups(@NonNull final Context context, @Nullable final UserKey accountKey, final String userId,
final String screenName) {
public static void openUserGroups(@NonNull final Context context,
@Nullable final UserKey accountKey,
@Nullable final UserKey userId,
@Nullable final String screenName) {
final Uri.Builder builder = new Uri.Builder();
builder.scheme(SCHEME_TWIDERE);
builder.authority(AUTHORITY_USER_GROUPS);
@ -561,7 +570,7 @@ public class IntentUtils implements Constants {
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString());
}
if (userId != null) {
builder.appendQueryParameter(QUERY_PARAM_USER_ID, userId);
builder.appendQueryParameter(QUERY_PARAM_USER_KEY, userId.toString());
}
if (screenName != null) {
builder.appendQueryParameter(QUERY_PARAM_SCREEN_NAME, screenName);
@ -603,25 +612,6 @@ public class IntentUtils implements Constants {
context.startActivity(intent);
}
public static void openUserMediaTimeline(final Activity activity, final UserKey accountKey,
final long userId, final String screenName) {
if (activity == null) return;
final Uri.Builder builder = new Uri.Builder();
builder.scheme(SCHEME_TWIDERE);
builder.authority(AUTHORITY_USER_MEDIA_TIMELINE);
if (accountKey != null) {
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, String.valueOf(accountKey));
}
if (userId > 0) {
builder.appendQueryParameter(QUERY_PARAM_USER_ID, String.valueOf(userId));
}
if (screenName != null) {
builder.appendQueryParameter(QUERY_PARAM_SCREEN_NAME, screenName);
}
final Intent intent = new Intent(Intent.ACTION_VIEW, builder.build());
activity.startActivity(intent);
}
public static void openAccountsManager(Context context) {
final Intent intent = new Intent();
final Uri.Builder builder = new Uri.Builder();

View File

@ -99,7 +99,7 @@ public class InternalParseUtils {
private static boolean shouldUseString(final String key) {
switch (key) {
case CompatibilityConstants.EXTRA_ACCOUNT_ID:
case IntentConstants.EXTRA_USER_ID:
case CompatibilityConstants.EXTRA_USER_ID:
return true;
}
return IntentConstants.EXTRA_LIST_ID.equals(key);

View File

@ -67,7 +67,6 @@ public class LinkCreator implements Constants {
}
if (userKey != null) {
builder.appendQueryParameter(QUERY_PARAM_USER_KEY, userKey.toString());
builder.appendQueryParameter(QUERY_PARAM_USER_ID, userKey.getId());
}
if (screenName != null) {
builder.appendQueryParameter(QUERY_PARAM_SCREEN_NAME, screenName);

View File

@ -502,14 +502,10 @@ public final class Utils implements Constants {
case LINK_ID_USER: {
fragment = new UserFragment();
final String paramScreenName = uri.getQueryParameter(QUERY_PARAM_SCREEN_NAME);
final String paramUserId = uri.getQueryParameter(QUERY_PARAM_USER_ID);
final UserKey paramUserKey = UserKey.valueOf(uri.getQueryParameter(QUERY_PARAM_USER_KEY));
if (!args.containsKey(EXTRA_SCREEN_NAME)) {
args.putString(EXTRA_SCREEN_NAME, paramScreenName);
}
if (!args.containsKey(EXTRA_USER_ID)) {
args.putString(EXTRA_USER_ID, paramUserId);
}
if (!args.containsKey(EXTRA_USER_KEY)) {
args.putParcelable(EXTRA_USER_KEY, paramUserKey);
}
@ -519,79 +515,79 @@ public final class Utils implements Constants {
case LINK_ID_USER_LIST_MEMBERSHIPS: {
fragment = new UserListMembershipsFragment();
final String paramScreenName = uri.getQueryParameter(QUERY_PARAM_SCREEN_NAME);
final String paramUserId = uri.getQueryParameter(QUERY_PARAM_USER_ID);
final UserKey paramUserKey = UserKey.valueOf(uri.getQueryParameter(QUERY_PARAM_USER_KEY));
if (!args.containsKey(EXTRA_SCREEN_NAME)) {
args.putString(EXTRA_SCREEN_NAME, paramScreenName);
}
if (!args.containsKey(EXTRA_USER_ID)) {
args.putString(EXTRA_USER_ID, paramUserId);
if (!args.containsKey(EXTRA_USER_KEY)) {
args.putParcelable(EXTRA_USER_KEY, paramUserKey);
}
break;
}
case LINK_ID_USER_TIMELINE: {
fragment = new UserTimelineFragment();
final String paramScreenName = uri.getQueryParameter(QUERY_PARAM_SCREEN_NAME);
final String paramUserId = uri.getQueryParameter(QUERY_PARAM_USER_ID);
final UserKey paramUserKey = UserKey.valueOf(uri.getQueryParameter(QUERY_PARAM_USER_KEY));
if (!args.containsKey(EXTRA_SCREEN_NAME)) {
args.putString(EXTRA_SCREEN_NAME, paramScreenName);
}
if (!args.containsKey(EXTRA_USER_ID)) {
args.putString(EXTRA_USER_ID, paramUserId);
if (!args.containsKey(EXTRA_USER_KEY)) {
args.putParcelable(EXTRA_USER_KEY, paramUserKey);
}
if (isEmpty(paramScreenName) && isEmpty(paramUserId)) return null;
if (isEmpty(paramScreenName) && paramUserKey == null) return null;
break;
}
case LINK_ID_USER_MEDIA_TIMELINE: {
fragment = new UserMediaTimelineFragment();
final String paramScreenName = uri.getQueryParameter(QUERY_PARAM_SCREEN_NAME);
final String paramUserId = uri.getQueryParameter(QUERY_PARAM_USER_ID);
final UserKey paramUserKey = UserKey.valueOf(uri.getQueryParameter(QUERY_PARAM_USER_KEY));
if (!args.containsKey(EXTRA_SCREEN_NAME)) {
args.putString(EXTRA_SCREEN_NAME, paramScreenName);
}
if (!args.containsKey(EXTRA_USER_ID)) {
args.putString(EXTRA_USER_ID, paramUserId);
if (!args.containsKey(EXTRA_USER_KEY)) {
args.putParcelable(EXTRA_USER_KEY, paramUserKey);
}
if (isEmpty(paramScreenName) && isEmpty(paramUserId)) return null;
if (isEmpty(paramScreenName) && paramUserKey == null) return null;
break;
}
case LINK_ID_USER_FAVORITES: {
fragment = new UserFavoritesFragment();
final String paramScreenName = uri.getQueryParameter(QUERY_PARAM_SCREEN_NAME);
final String paramUserId = uri.getQueryParameter(QUERY_PARAM_USER_ID);
final UserKey paramUserKey = UserKey.valueOf(uri.getQueryParameter(QUERY_PARAM_USER_KEY));
if (!args.containsKey(EXTRA_SCREEN_NAME)) {
args.putString(EXTRA_SCREEN_NAME, paramScreenName);
}
if (!args.containsKey(EXTRA_USER_ID)) {
args.putString(EXTRA_USER_ID, paramUserId);
if (!args.containsKey(EXTRA_USER_KEY)) {
args.putParcelable(EXTRA_USER_KEY, paramUserKey);
}
if (!args.containsKey(EXTRA_SCREEN_NAME) && !args.containsKey(EXTRA_USER_ID))
if (!args.containsKey(EXTRA_SCREEN_NAME) && !args.containsKey(EXTRA_USER_KEY))
return null;
break;
}
case LINK_ID_USER_FOLLOWERS: {
fragment = new UserFollowersFragment();
final String paramScreenName = uri.getQueryParameter(QUERY_PARAM_SCREEN_NAME);
final String paramUserId = uri.getQueryParameter(QUERY_PARAM_USER_ID);
final UserKey paramUserKey = UserKey.valueOf(uri.getQueryParameter(QUERY_PARAM_USER_KEY));
if (!args.containsKey(EXTRA_SCREEN_NAME)) {
args.putString(EXTRA_SCREEN_NAME, paramScreenName);
}
if (!args.containsKey(EXTRA_USER_ID)) {
args.putString(EXTRA_USER_ID, paramUserId);
if (!args.containsKey(EXTRA_USER_KEY)) {
args.putParcelable(EXTRA_USER_KEY, paramUserKey);
}
if (isEmpty(paramScreenName) && isEmpty(paramUserId)) return null;
if (isEmpty(paramScreenName) && paramUserKey == null) return null;
break;
}
case LINK_ID_USER_FRIENDS: {
fragment = new UserFriendsFragment();
final String paramScreenName = uri.getQueryParameter(QUERY_PARAM_SCREEN_NAME);
final String paramUserId = uri.getQueryParameter(QUERY_PARAM_USER_ID);
final UserKey paramUserKey = UserKey.valueOf(uri.getQueryParameter(QUERY_PARAM_USER_KEY));
if (!args.containsKey(EXTRA_SCREEN_NAME)) {
args.putString(EXTRA_SCREEN_NAME, paramScreenName);
}
if (!args.containsKey(EXTRA_USER_ID)) {
args.putString(EXTRA_USER_ID, paramUserId);
if (!args.containsKey(EXTRA_USER_KEY)) {
args.putParcelable(EXTRA_USER_KEY, paramUserKey);
}
if (isEmpty(paramScreenName) && isEmpty(paramUserId)) return null;
if (isEmpty(paramScreenName) && paramUserKey == null) return null;
break;
}
case LINK_ID_USER_BLOCKS: {
@ -637,14 +633,15 @@ public final class Utils implements Constants {
case LINK_ID_USER_LIST: {
fragment = new UserListFragment();
final String paramScreenName = uri.getQueryParameter(QUERY_PARAM_SCREEN_NAME);
final String paramUserId = uri.getQueryParameter(QUERY_PARAM_USER_ID);
final UserKey paramUserKey = UserKey.valueOf(uri.getQueryParameter(QUERY_PARAM_USER_KEY));
final String paramListId = uri.getQueryParameter(QUERY_PARAM_LIST_ID);
final String paramListName = uri.getQueryParameter(QUERY_PARAM_LIST_NAME);
if (isEmpty(paramListId)
&& (isEmpty(paramListName) || isEmpty(paramScreenName) && isEmpty(paramUserId)))
if ((isEmpty(paramListName) || isEmpty(paramScreenName) && paramUserKey == null)
&& isEmpty(paramListId)) {
return null;
}
args.putLong(EXTRA_LIST_ID, NumberUtils.toLong(paramListId, -1));
args.putString(EXTRA_USER_ID, paramUserId);
args.putParcelable(EXTRA_USER_KEY, paramUserKey);
args.putString(EXTRA_SCREEN_NAME, paramScreenName);
args.putString(EXTRA_LIST_NAME, paramListName);
break;
@ -661,40 +658,41 @@ public final class Utils implements Constants {
case LINK_ID_USER_LISTS: {
fragment = new ListsFragment();
final String paramScreenName = uri.getQueryParameter(QUERY_PARAM_SCREEN_NAME);
final String paramUserId = uri.getQueryParameter(QUERY_PARAM_USER_ID);
final UserKey paramUserKey = UserKey.valueOf(uri.getQueryParameter(QUERY_PARAM_USER_KEY));
if (!args.containsKey(EXTRA_SCREEN_NAME)) {
args.putString(EXTRA_SCREEN_NAME, paramScreenName);
}
if (!args.containsKey(EXTRA_USER_ID)) {
args.putString(EXTRA_USER_ID, paramUserId);
if (!args.containsKey(EXTRA_USER_KEY)) {
args.putParcelable(EXTRA_USER_KEY, paramUserKey);
}
if (isEmpty(paramScreenName) && isEmpty(paramUserId)) return null;
if (isEmpty(paramScreenName) && paramUserKey == null) return null;
break;
}
case LINK_ID_USER_GROUPS: {
fragment = new UserGroupsFragment();
final String paramScreenName = uri.getQueryParameter(QUERY_PARAM_SCREEN_NAME);
final String paramUserId = uri.getQueryParameter(QUERY_PARAM_USER_ID);
final UserKey paramUserKey = UserKey.valueOf(uri.getQueryParameter(QUERY_PARAM_USER_KEY));
if (!args.containsKey(EXTRA_SCREEN_NAME)) {
args.putString(EXTRA_SCREEN_NAME, paramScreenName);
}
if (!args.containsKey(EXTRA_USER_ID)) {
args.putString(EXTRA_USER_ID, paramUserId);
if (!args.containsKey(EXTRA_USER_KEY)) {
args.putParcelable(EXTRA_USER_KEY, paramUserKey);
}
if (isEmpty(paramScreenName) && isEmpty(paramUserId)) return null;
if (isEmpty(paramScreenName) && paramUserKey == null) return null;
break;
}
case LINK_ID_USER_LIST_TIMELINE: {
fragment = new UserListTimelineFragment();
final String paramScreenName = uri.getQueryParameter(QUERY_PARAM_SCREEN_NAME);
final String paramUserId = uri.getQueryParameter(QUERY_PARAM_USER_ID);
final UserKey paramUserKey = UserKey.valueOf(uri.getQueryParameter(QUERY_PARAM_USER_KEY));
final String paramListId = uri.getQueryParameter(QUERY_PARAM_LIST_ID);
final String paramListName = uri.getQueryParameter(QUERY_PARAM_LIST_NAME);
if (isEmpty(paramListId)
&& (isEmpty(paramListName) || isEmpty(paramScreenName) && isEmpty(paramUserId)))
if ((isEmpty(paramListName) || isEmpty(paramScreenName) && paramUserKey == null)
&& isEmpty(paramListId)) {
return null;
}
args.putLong(EXTRA_LIST_ID, NumberUtils.toLong(paramListId, -1));
args.putString(EXTRA_USER_ID, paramUserId);
args.putParcelable(EXTRA_USER_KEY, paramUserKey);
args.putString(EXTRA_SCREEN_NAME, paramScreenName);
args.putString(EXTRA_LIST_NAME, paramListName);
break;
@ -702,14 +700,14 @@ public final class Utils implements Constants {
case LINK_ID_USER_LIST_MEMBERS: {
fragment = new UserListMembersFragment();
final String paramScreenName = uri.getQueryParameter(QUERY_PARAM_SCREEN_NAME);
final String paramUserId = uri.getQueryParameter(QUERY_PARAM_USER_ID);
final UserKey paramUserKey = UserKey.valueOf(uri.getQueryParameter(QUERY_PARAM_USER_KEY));
final String paramListId = uri.getQueryParameter(QUERY_PARAM_LIST_ID);
final String paramListName = uri.getQueryParameter(QUERY_PARAM_LIST_NAME);
if (isEmpty(paramListId)
&& (isEmpty(paramListName) || isEmpty(paramScreenName) && isEmpty(paramUserId)))
if ((isEmpty(paramListName) || isEmpty(paramScreenName) && paramUserKey == null)
&& isEmpty(paramListId))
return null;
args.putLong(EXTRA_LIST_ID, NumberUtils.toLong(paramListId, -1));
args.putString(EXTRA_USER_ID, paramUserId);
args.putParcelable(EXTRA_USER_KEY, paramUserKey);
args.putString(EXTRA_SCREEN_NAME, paramScreenName);
args.putString(EXTRA_LIST_NAME, paramListName);
break;
@ -717,14 +715,14 @@ public final class Utils implements Constants {
case LINK_ID_USER_LIST_SUBSCRIBERS: {
fragment = new UserListSubscribersFragment();
final String paramScreenName = uri.getQueryParameter(QUERY_PARAM_SCREEN_NAME);
final String paramUserId = uri.getQueryParameter(QUERY_PARAM_USER_ID);
final UserKey paramUserKey = UserKey.valueOf(uri.getQueryParameter(QUERY_PARAM_USER_KEY));
final String paramListId = uri.getQueryParameter(QUERY_PARAM_LIST_ID);
final String paramListName = uri.getQueryParameter(QUERY_PARAM_LIST_NAME);
if (isEmpty(paramListId)
&& (isEmpty(paramListName) || isEmpty(paramScreenName) && isEmpty(paramUserId)))
&& (isEmpty(paramListName) || isEmpty(paramScreenName) && paramUserKey == null))
return null;
args.putLong(EXTRA_LIST_ID, NumberUtils.toLong(paramListId, -1));
args.putString(EXTRA_USER_ID, paramUserId);
args.putParcelable(EXTRA_USER_KEY, paramUserKey);
args.putString(EXTRA_SCREEN_NAME, paramScreenName);
args.putString(EXTRA_LIST_NAME, paramListName);
break;