mirror of
https://github.com/TwidereProject/Twidere-Android
synced 2025-02-09 00:08:41 +01:00
crash fixes
This commit is contained in:
parent
0b381c013e
commit
e3978b91bf
@ -49,6 +49,7 @@ public class ParcelableUser implements Parcelable, Comparable<ParcelableUser> {
|
|||||||
|
|
||||||
@ParcelableThisPlease
|
@ParcelableThisPlease
|
||||||
@JsonField(name = "account_id", typeConverter = UserKeyConverter.class)
|
@JsonField(name = "account_id", typeConverter = UserKeyConverter.class)
|
||||||
|
@Nullable
|
||||||
public UserKey account_key;
|
public UserKey account_key;
|
||||||
|
|
||||||
@ParcelableThisPlease
|
@ParcelableThisPlease
|
||||||
|
@ -959,13 +959,14 @@ class ComposeActivity : BaseActivity(), OnMenuItemClickListener, OnClickListener
|
|||||||
|
|
||||||
@SuppressLint("SetTextI18n")
|
@SuppressLint("SetTextI18n")
|
||||||
private fun handleMentionIntent(user: ParcelableUser?): Boolean {
|
private fun handleMentionIntent(user: ParcelableUser?): Boolean {
|
||||||
if (user == null || user.key == null) return false
|
if (user?.key == null) return false
|
||||||
val accountScreenName = DataStoreUtils.getAccountScreenName(this, user.account_key)
|
val accountKey = user.account_key ?: return false
|
||||||
|
val accountScreenName = DataStoreUtils.getAccountScreenName(this, accountKey)
|
||||||
if (TextUtils.isEmpty(accountScreenName)) return false
|
if (TextUtils.isEmpty(accountScreenName)) return false
|
||||||
editText.setText("@${user.acct} ")
|
editText.setText("@${user.acct} ")
|
||||||
val selectionEnd = editText.length()
|
val selectionEnd = editText.length()
|
||||||
editText.setSelection(selectionEnd)
|
editText.setSelection(selectionEnd)
|
||||||
accountsAdapter.selectedAccountKeys = arrayOf(user.account_key)
|
accountsAdapter.selectedAccountKeys = arrayOf(accountKey)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,21 +26,16 @@ import org.mariotaku.twidere.R
|
|||||||
import org.mariotaku.twidere.util.StatusCodeMessageUtils
|
import org.mariotaku.twidere.util.StatusCodeMessageUtils
|
||||||
import java.security.cert.CertPathValidatorException
|
import java.security.cert.CertPathValidatorException
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by mariotaku on 2017/4/20.
|
|
||||||
*/
|
|
||||||
|
|
||||||
fun Throwable.getErrorMessage(context: Context): CharSequence = when (this) {
|
fun Throwable.getErrorMessage(context: Context): CharSequence = when (this) {
|
||||||
is MicroBlogException -> getMicroBlogErrorMessage(context)
|
is MicroBlogException -> getMicroBlogErrorMessage(context)
|
||||||
is CertPathValidatorException -> context.getString(R.string.message_toast_ssl_tls_error)
|
is CertPathValidatorException -> context.getString(R.string.message_toast_ssl_tls_error)
|
||||||
else -> message ?: toString()
|
else -> message ?: toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun MicroBlogException.getMicroBlogErrorMessage(context: Context): String {
|
private fun MicroBlogException.getMicroBlogErrorMessage(context: Context): String {
|
||||||
if (isRateLimitExceeded) {
|
val rateLimitStatus = this.rateLimitStatus
|
||||||
val status = rateLimitStatus
|
if (isRateLimitExceeded && rateLimitStatus != null) {
|
||||||
val secUntilReset = status.secondsUntilReset * 1000L
|
val secUntilReset = rateLimitStatus.secondsUntilReset * 1000L
|
||||||
val nextResetTime = DateUtils.getRelativeTimeSpanString(System.currentTimeMillis() + secUntilReset)
|
val nextResetTime = DateUtils.getRelativeTimeSpanString(System.currentTimeMillis() + secUntilReset)
|
||||||
return context.getString(R.string.error_message_rate_limit, nextResetTime.trim())
|
return context.getString(R.string.error_message_rate_limit, nextResetTime.trim())
|
||||||
} else if (isCausedByNetworkIssue) {
|
} else if (isCausedByNetworkIssue) {
|
||||||
@ -50,12 +45,10 @@ private fun MicroBlogException.getMicroBlogErrorMessage(context: Context): Strin
|
|||||||
}
|
}
|
||||||
return context.getString(R.string.message_toast_network_error_with_message, msg)
|
return context.getString(R.string.message_toast_network_error_with_message, msg)
|
||||||
}
|
}
|
||||||
val msg = if (StatusCodeMessageUtils.containsTwitterError(errorCode)) {
|
val msg = when {
|
||||||
StatusCodeMessageUtils.getTwitterErrorMessage(context, errorCode)
|
StatusCodeMessageUtils.containsTwitterError(errorCode) -> StatusCodeMessageUtils.getTwitterErrorMessage(context, errorCode)
|
||||||
} else if (StatusCodeMessageUtils.containsHttpStatus(statusCode)) {
|
StatusCodeMessageUtils.containsHttpStatus(statusCode) -> StatusCodeMessageUtils.getHttpStatusMessage(context, statusCode)
|
||||||
StatusCodeMessageUtils.getHttpStatusMessage(context, statusCode)
|
else -> errorMessage
|
||||||
} else {
|
|
||||||
errorMessage
|
|
||||||
}
|
}
|
||||||
return msg ?: message ?: javaClass.simpleName
|
return msg ?: message ?: javaClass.simpleName
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,7 @@ import org.mariotaku.twidere.util.Utils
|
|||||||
fun ParcelableUser.getBestProfileBanner(width: Int, height: Int = 0): String? {
|
fun ParcelableUser.getBestProfileBanner(width: Int, height: Int = 0): String? {
|
||||||
return profile_banner_url?.let {
|
return profile_banner_url?.let {
|
||||||
InternalTwitterContentUtils.getBestBannerUrl(it, width, height)
|
InternalTwitterContentUtils.getBestBannerUrl(it, width, height)
|
||||||
} ?: if (USER_TYPE_FANFOU_COM == key.host) {
|
} ?: if (USER_TYPE_FANFOU_COM == key?.host) {
|
||||||
profile_background_url
|
profile_background_url
|
||||||
} else {
|
} else {
|
||||||
null
|
null
|
||||||
@ -60,11 +60,12 @@ fun ParcelableUser.applyTo(relationship: ParcelableRelationship) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val ParcelableUser.relationship: ParcelableRelationship get() = ParcelableRelationship().also {
|
val ParcelableUser.relationship: ParcelableRelationship
|
||||||
|
get() = ParcelableRelationship().also {
|
||||||
it.account_key = this.account_key
|
it.account_key = this.account_key
|
||||||
it.user_key = this.key
|
it.user_key = this.key
|
||||||
this.applyTo(it)
|
this.applyTo(it)
|
||||||
}
|
}
|
||||||
|
|
||||||
val ParcelableUser.host: String
|
val ParcelableUser.host: String
|
||||||
get() {
|
get() {
|
||||||
@ -77,18 +78,22 @@ val ParcelableUser.host: String
|
|||||||
val ParcelableUser.isFanfouUser: Boolean
|
val ParcelableUser.isFanfouUser: Boolean
|
||||||
get() = USER_TYPE_FANFOU_COM == key.host
|
get() = USER_TYPE_FANFOU_COM == key.host
|
||||||
|
|
||||||
inline val ParcelableUser.originalProfileImage: String? get() {
|
inline val ParcelableUser.originalProfileImage: String?
|
||||||
|
get() {
|
||||||
return extras?.profile_image_url_original?.takeIf(String::isNotEmpty)
|
return extras?.profile_image_url_original?.takeIf(String::isNotEmpty)
|
||||||
?: Utils.getOriginalTwitterProfileImage(profile_image_url)
|
?: Utils.getOriginalTwitterProfileImage(profile_image_url)
|
||||||
}
|
}
|
||||||
|
|
||||||
inline val ParcelableUser.urlPreferred: String? get() = url_expanded?.takeIf(String::isNotEmpty) ?: url
|
inline val ParcelableUser.urlPreferred: String? get() = url_expanded?.takeIf(String::isNotEmpty) ?: url
|
||||||
|
|
||||||
|
inline val ParcelableUser.acct: String
|
||||||
inline val ParcelableUser.acct: String get() = if (account_key.host == key.host) {
|
get() {
|
||||||
|
val key = this.key ?: return screen_name
|
||||||
|
return if (account_key?.host == key.host) {
|
||||||
screen_name
|
screen_name
|
||||||
} else {
|
} else {
|
||||||
"$screen_name@${key.host}"
|
"$screen_name@${key.host}"
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
inline val ParcelableUser.groups_count: Long get() = extras?.groups_count ?: -1
|
inline val ParcelableUser.groups_count: Long get() = extras?.groups_count ?: -1
|
@ -40,7 +40,8 @@ class AddUserFilterDialogFragment : AbsUserMuteBlockDialogFragment() {
|
|||||||
|
|
||||||
override fun performUserAction(user: ParcelableUser, filterEverywhere: Boolean) {
|
override fun performUserAction(user: ParcelableUser, filterEverywhere: Boolean) {
|
||||||
DataStoreUtils.addToFilter(context, listOf(user), filterEverywhere)
|
DataStoreUtils.addToFilter(context, listOf(user), filterEverywhere)
|
||||||
bus.post(FriendshipTaskEvent(FriendshipTaskEvent.Action.FILTER, user.account_key, user.key).apply {
|
val accountKey = user.account_key ?: return
|
||||||
|
bus.post(FriendshipTaskEvent(FriendshipTaskEvent.Action.FILTER, accountKey, user.key).apply {
|
||||||
isFinished = true
|
isFinished = true
|
||||||
isSucceeded = true
|
isSucceeded = true
|
||||||
})
|
})
|
||||||
|
@ -42,7 +42,8 @@ class CreateUserBlockDialogFragment : AbsUserMuteBlockDialogFragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun performUserAction(user: ParcelableUser, filterEverywhere: Boolean) {
|
override fun performUserAction(user: ParcelableUser, filterEverywhere: Boolean) {
|
||||||
twitterWrapper.createBlockAsync(user.account_key, user.key, filterEverywhere)
|
val accountKey = user.account_key ?: return
|
||||||
|
twitterWrapper.createBlockAsync(accountKey, user.key, filterEverywhere)
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
@ -43,7 +43,8 @@ class CreateUserMuteDialogFragment : AbsUserMuteBlockDialogFragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun performUserAction(user: ParcelableUser, filterEverywhere: Boolean) {
|
override fun performUserAction(user: ParcelableUser, filterEverywhere: Boolean) {
|
||||||
twitterWrapper.createMuteAsync(user.account_key, user.key, filterEverywhere)
|
val accountKey = user.account_key ?: return
|
||||||
|
twitterWrapper.createMuteAsync(accountKey, user.key, filterEverywhere)
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
@ -39,7 +39,8 @@ class DestroyFriendshipDialogFragment : BaseDialogFragment(), DialogInterface.On
|
|||||||
override fun onClick(dialog: DialogInterface, which: Int) {
|
override fun onClick(dialog: DialogInterface, which: Int) {
|
||||||
when (which) {
|
when (which) {
|
||||||
DialogInterface.BUTTON_POSITIVE -> {
|
DialogInterface.BUTTON_POSITIVE -> {
|
||||||
twitterWrapper.destroyFriendshipAsync(user.account_key, user.key)
|
val accountKey = user.account_key ?: return
|
||||||
|
twitterWrapper.destroyFriendshipAsync(accountKey, user.key)
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
}
|
}
|
||||||
|
@ -209,24 +209,27 @@ abstract class ParcelableUsersFragment : AbsContentListRecyclerViewFragment<Parc
|
|||||||
|
|
||||||
override fun onFollowClicked(holder: UserViewHolder, position: Int) {
|
override fun onFollowClicked(holder: UserViewHolder, position: Int) {
|
||||||
val user = adapter.getUser(position) ?: return
|
val user = adapter.getUser(position) ?: return
|
||||||
if (twitterWrapper.isUpdatingRelationship(user.account_key, user.key)) return
|
val accountKey = user.account_key ?: return
|
||||||
|
if (twitterWrapper.isUpdatingRelationship(accountKey, user.key)) return
|
||||||
if (user.is_following) {
|
if (user.is_following) {
|
||||||
DestroyFriendshipDialogFragment.show(fragmentManager, user)
|
DestroyFriendshipDialogFragment.show(fragmentManager, user)
|
||||||
} else {
|
} else {
|
||||||
twitterWrapper.createFriendshipAsync(user.account_key, user.key, user.screen_name)
|
twitterWrapper.createFriendshipAsync(accountKey, user.key, user.screen_name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onUnblockClicked(holder: UserViewHolder, position: Int) {
|
override fun onUnblockClicked(holder: UserViewHolder, position: Int) {
|
||||||
val user = adapter.getUser(position) ?: return
|
val user = adapter.getUser(position) ?: return
|
||||||
if (twitterWrapper.isUpdatingRelationship(user.account_key, user.key)) return
|
val accountKey = user.account_key ?: return
|
||||||
twitterWrapper.destroyBlockAsync(user.account_key, user.key)
|
if (twitterWrapper.isUpdatingRelationship(accountKey, user.key)) return
|
||||||
|
twitterWrapper.destroyBlockAsync(accountKey, user.key)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onUnmuteClicked(holder: UserViewHolder, position: Int) {
|
override fun onUnmuteClicked(holder: UserViewHolder, position: Int) {
|
||||||
val user = adapter.getUser(position) ?: return
|
val user = adapter.getUser(position) ?: return
|
||||||
if (twitterWrapper.isUpdatingRelationship(user.account_key, user.key)) return
|
val accountKey = user.account_key ?: return
|
||||||
twitterWrapper.destroyMuteAsync(user.account_key, user.key)
|
if (twitterWrapper.isUpdatingRelationship(accountKey, user.key)) return
|
||||||
|
twitterWrapper.destroyMuteAsync(accountKey, user.key)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -43,7 +43,8 @@ class ReportUserSpamDialogFragment : AbsUserMuteBlockDialogFragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun performUserAction(user: ParcelableUser, filterEverywhere: Boolean) {
|
override fun performUserAction(user: ParcelableUser, filterEverywhere: Boolean) {
|
||||||
twitterWrapper.reportSpamAsync(user.account_key, user.key)
|
val accountKey = user.account_key ?: return
|
||||||
|
twitterWrapper.reportSpamAsync(accountKey, user.key)
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
@ -410,7 +410,7 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener,
|
|||||||
val activity = activity ?: return
|
val activity = activity ?: return
|
||||||
this.user = user
|
this.user = user
|
||||||
this.account = account
|
this.account = account
|
||||||
if (user == null || user.key == null) {
|
if (user?.key == null) {
|
||||||
profileImage.visibility = View.GONE
|
profileImage.visibility = View.GONE
|
||||||
profileType.visibility = View.GONE
|
profileType.visibility = View.GONE
|
||||||
val theme = Chameleon.getOverrideTheme(activity, activity)
|
val theme = Chameleon.getOverrideTheme(activity, activity)
|
||||||
@ -612,36 +612,34 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener,
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
||||||
val user = user
|
val user = user ?: return
|
||||||
|
val accountKey = user.account_key ?: return
|
||||||
when (requestCode) {
|
when (requestCode) {
|
||||||
REQUEST_SET_COLOR -> {
|
REQUEST_SET_COLOR -> {
|
||||||
if (user == null) return
|
|
||||||
if (resultCode == Activity.RESULT_OK) {
|
if (resultCode == Activity.RESULT_OK) {
|
||||||
if (data == null) return
|
if (data == null) return
|
||||||
val color = data.getIntExtra(EXTRA_COLOR, Color.TRANSPARENT)
|
val color = data.getIntExtra(EXTRA_COLOR, Color.TRANSPARENT)
|
||||||
userColorNameManager.setUserColor(this.user!!.key, color)
|
userColorNameManager.setUserColor(user.key, color)
|
||||||
} else if (resultCode == ColorPickerDialogActivity.RESULT_CLEARED) {
|
} else if (resultCode == ColorPickerDialogActivity.RESULT_CLEARED) {
|
||||||
userColorNameManager.clearUserColor(this.user!!.key)
|
userColorNameManager.clearUserColor(user.key)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
REQUEST_ADD_TO_LIST -> {
|
REQUEST_ADD_TO_LIST -> {
|
||||||
if (user == null) return
|
|
||||||
if (resultCode == Activity.RESULT_OK && data != null) {
|
if (resultCode == Activity.RESULT_OK && data != null) {
|
||||||
val twitter = twitterWrapper
|
val twitter = twitterWrapper
|
||||||
val list = data.getParcelableExtra<ParcelableUserList>(EXTRA_USER_LIST) ?: return
|
val list = data.getParcelableExtra<ParcelableUserList>(EXTRA_USER_LIST) ?: return
|
||||||
twitter.addUserListMembersAsync(user.account_key, list.id, user)
|
twitter.addUserListMembersAsync(accountKey, list.id, user)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
REQUEST_SELECT_ACCOUNT -> {
|
REQUEST_SELECT_ACCOUNT -> {
|
||||||
if (user == null) return
|
|
||||||
if (resultCode == Activity.RESULT_OK) {
|
if (resultCode == Activity.RESULT_OK) {
|
||||||
if (data == null || !data.hasExtra(EXTRA_ID)) return
|
if (data == null || !data.hasExtra(EXTRA_ID)) return
|
||||||
val accountKey = data.getParcelableExtra<UserKey>(EXTRA_ACCOUNT_KEY)
|
val selectedAccountKey: UserKey = data.getParcelableExtra(EXTRA_ACCOUNT_KEY) ?: return
|
||||||
var userKey = user.key
|
var userKey = user.key
|
||||||
if (account?.type == AccountType.MASTODON && account?.key?.host != accountKey.host) {
|
if (account?.type == AccountType.MASTODON && account?.key?.host != selectedAccountKey.host) {
|
||||||
userKey = AcctPlaceholderUserKey(user.key.host)
|
userKey = AcctPlaceholderUserKey(user.key.host)
|
||||||
}
|
}
|
||||||
IntentUtils.openUserProfile(activity, accountKey, userKey, user.screen_name,
|
IntentUtils.openUserProfile(activity, selectedAccountKey, userKey, user.screen_name,
|
||||||
user.extras?.statusnet_profile_url, preferences[newDocumentApiKey],
|
user.extras?.statusnet_profile_url, preferences[newDocumentApiKey],
|
||||||
null)
|
null)
|
||||||
}
|
}
|
||||||
@ -786,10 +784,11 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener,
|
|||||||
@UiThread
|
@UiThread
|
||||||
override fun onPrepareOptionsMenu(menu: Menu) {
|
override fun onPrepareOptionsMenu(menu: Menu) {
|
||||||
val user = this.user ?: return
|
val user = this.user ?: return
|
||||||
|
val accountKey = user.account_key ?: return
|
||||||
val account = this.account
|
val account = this.account
|
||||||
val relationship = this.relationship
|
val relationship = this.relationship
|
||||||
|
|
||||||
val isMyself = user.account_key.maybeEquals(user.key)
|
val isMyself = accountKey.maybeEquals(user.key)
|
||||||
val mentionItem = menu.findItem(R.id.mention)
|
val mentionItem = menu.findItem(R.id.mention)
|
||||||
if (mentionItem != null) {
|
if (mentionItem != null) {
|
||||||
val displayName = UserColorNameManager.decideDisplayName(user.nickname,
|
val displayName = UserColorNameManager.decideDisplayName(user.nickname,
|
||||||
@ -881,14 +880,14 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener,
|
|||||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||||
val context = context
|
val context = context
|
||||||
val twitter = twitterWrapper
|
val twitter = twitterWrapper
|
||||||
val user = user
|
val user = user ?: return false
|
||||||
|
val accountKey = user.account_key ?: return false
|
||||||
val userRelationship = relationship
|
val userRelationship = relationship
|
||||||
if (user == null) return false
|
|
||||||
when (item.itemId) {
|
when (item.itemId) {
|
||||||
R.id.block -> {
|
R.id.block -> {
|
||||||
if (userRelationship == null) return true
|
if (userRelationship == null) return true
|
||||||
if (userRelationship.blocking) {
|
if (userRelationship.blocking) {
|
||||||
twitter.destroyBlockAsync(user.account_key, user.key)
|
twitter.destroyBlockAsync(accountKey, user.key)
|
||||||
} else {
|
} else {
|
||||||
CreateUserBlockDialogFragment.show(fragmentManager, user)
|
CreateUserBlockDialogFragment.show(fragmentManager, user)
|
||||||
}
|
}
|
||||||
@ -910,7 +909,7 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener,
|
|||||||
R.id.mute_user -> {
|
R.id.mute_user -> {
|
||||||
if (userRelationship == null) return true
|
if (userRelationship == null) return true
|
||||||
if (userRelationship.muting) {
|
if (userRelationship.muting) {
|
||||||
twitter.destroyMuteAsync(user.account_key, user.key)
|
twitter.destroyMuteAsync(accountKey, user.key)
|
||||||
} else {
|
} else {
|
||||||
CreateUserMuteDialogFragment.show(fragmentManager, user)
|
CreateUserMuteDialogFragment.show(fragmentManager, user)
|
||||||
}
|
}
|
||||||
@ -928,10 +927,10 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener,
|
|||||||
scheme(SCHEME_TWIDERE)
|
scheme(SCHEME_TWIDERE)
|
||||||
authority(AUTHORITY_MESSAGES)
|
authority(AUTHORITY_MESSAGES)
|
||||||
path(PATH_MESSAGES_CONVERSATION_NEW)
|
path(PATH_MESSAGES_CONVERSATION_NEW)
|
||||||
appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, user.account_key.toString())
|
appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
||||||
}
|
}
|
||||||
val intent = Intent(Intent.ACTION_VIEW, builder.build())
|
val intent = Intent(Intent.ACTION_VIEW, builder.build())
|
||||||
intent.putExtra(EXTRA_ACCOUNT, AccountUtils.getAccountDetails(am, user.account_key,
|
intent.putExtra(EXTRA_ACCOUNT, AccountUtils.getAccountDetails(am, accountKey,
|
||||||
true))
|
true))
|
||||||
intent.putExtra(EXTRA_USERS, arrayOf(user))
|
intent.putExtra(EXTRA_USERS, arrayOf(user))
|
||||||
intent.putExtra(EXTRA_OPEN_CONVERSATION, true)
|
intent.putExtra(EXTRA_OPEN_CONVERSATION, true)
|
||||||
@ -966,13 +965,13 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener,
|
|||||||
}
|
}
|
||||||
R.id.follow -> {
|
R.id.follow -> {
|
||||||
if (userRelationship == null) return true
|
if (userRelationship == null) return true
|
||||||
val updatingRelationship = twitter.isUpdatingRelationship(user.account_key,
|
val updatingRelationship = twitter.isUpdatingRelationship(accountKey,
|
||||||
user.key)
|
user.key)
|
||||||
if (!updatingRelationship) {
|
if (!updatingRelationship) {
|
||||||
if (userRelationship.following) {
|
if (userRelationship.following) {
|
||||||
DestroyFriendshipDialogFragment.show(fragmentManager, user)
|
DestroyFriendshipDialogFragment.show(fragmentManager, user)
|
||||||
} else {
|
} else {
|
||||||
twitter.createFriendshipAsync(user.account_key, user.key, user.screen_name)
|
twitter.createFriendshipAsync(accountKey, user.key, user.screen_name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
@ -981,7 +980,7 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener,
|
|||||||
val newState = !item.isChecked
|
val newState = !item.isChecked
|
||||||
val update = FriendshipUpdate()
|
val update = FriendshipUpdate()
|
||||||
update.retweets(newState)
|
update.retweets(newState)
|
||||||
twitter.updateFriendship(user.account_key, user.key, update)
|
twitter.updateFriendship(accountKey, user.key, update)
|
||||||
item.isChecked = newState
|
item.isChecked = newState
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
@ -993,28 +992,28 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener,
|
|||||||
}
|
}
|
||||||
val update = FriendshipUpdate()
|
val update = FriendshipUpdate()
|
||||||
update.deviceNotifications(newState)
|
update.deviceNotifications(newState)
|
||||||
twitter.updateFriendship(user.account_key, user.key, update)
|
twitter.updateFriendship(accountKey, user.key, update)
|
||||||
item.isChecked = newState
|
item.isChecked = newState
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
R.id.muted_users -> {
|
R.id.muted_users -> {
|
||||||
IntentUtils.openMutesUsers(activity, user.account_key)
|
IntentUtils.openMutesUsers(activity, accountKey)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
R.id.blocked_users -> {
|
R.id.blocked_users -> {
|
||||||
IntentUtils.openUserBlocks(activity, user.account_key)
|
IntentUtils.openUserBlocks(activity, accountKey)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
R.id.incoming_friendships -> {
|
R.id.incoming_friendships -> {
|
||||||
IntentUtils.openIncomingFriendships(activity, user.account_key)
|
IntentUtils.openIncomingFriendships(activity, accountKey)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
R.id.user_mentions -> {
|
R.id.user_mentions -> {
|
||||||
IntentUtils.openUserMentions(context, user.account_key, user.screen_name)
|
IntentUtils.openUserMentions(context, accountKey, user.screen_name)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
R.id.saved_searches -> {
|
R.id.saved_searches -> {
|
||||||
IntentUtils.openSavedSearches(context, user.account_key)
|
IntentUtils.openSavedSearches(context, accountKey)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
R.id.open_in_browser -> {
|
R.id.open_in_browser -> {
|
||||||
@ -1039,22 +1038,22 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener,
|
|||||||
}
|
}
|
||||||
R.id.add_user_to_home_screen -> {
|
R.id.add_user_to_home_screen -> {
|
||||||
ShortcutCreator.performCreation(this) {
|
ShortcutCreator.performCreation(this) {
|
||||||
ShortcutCreator.user(context, user.account_key, user)
|
ShortcutCreator.user(context, accountKey, user)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
R.id.add_statuses_to_home_screen -> {
|
R.id.add_statuses_to_home_screen -> {
|
||||||
ShortcutCreator.performCreation(this) {
|
ShortcutCreator.performCreation(this) {
|
||||||
ShortcutCreator.userTimeline(context, user.account_key, user)
|
ShortcutCreator.userTimeline(context, accountKey, user)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
R.id.add_favorites_to_home_screen -> {
|
R.id.add_favorites_to_home_screen -> {
|
||||||
ShortcutCreator.performCreation(this) {
|
ShortcutCreator.performCreation(this) {
|
||||||
ShortcutCreator.userFavorites(context, user.account_key, user)
|
ShortcutCreator.userFavorites(context, accountKey, user)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
R.id.add_media_to_home_screen -> {
|
R.id.add_media_to_home_screen -> {
|
||||||
ShortcutCreator.performCreation(this) {
|
ShortcutCreator.performCreation(this) {
|
||||||
ShortcutCreator.userMediaTimeline(context, user.account_key, user)
|
ShortcutCreator.userMediaTimeline(context, accountKey, user)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
@ -1197,28 +1196,28 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener,
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onClick(view: View) {
|
override fun onClick(view: View) {
|
||||||
val activity = activity
|
val activity = activity ?: return
|
||||||
val user = user
|
val user = user ?: return
|
||||||
if (activity == null || user == null) return
|
val accountKey = user.account_key ?: return
|
||||||
when (view.id) {
|
when (view.id) {
|
||||||
R.id.errorContainer -> {
|
R.id.errorContainer -> {
|
||||||
getUserInfo(true)
|
getUserInfo(true)
|
||||||
}
|
}
|
||||||
R.id.follow -> {
|
R.id.follow -> {
|
||||||
if (user.account_key.maybeEquals(user.key)) {
|
if (accountKey.maybeEquals(user.key)) {
|
||||||
IntentUtils.openProfileEditor(getActivity(), user.account_key)
|
IntentUtils.openProfileEditor(getActivity(), accountKey)
|
||||||
} else {
|
} else {
|
||||||
val userRelationship = relationship
|
val userRelationship = relationship
|
||||||
val twitter = twitterWrapper
|
val twitter = twitterWrapper
|
||||||
if (userRelationship == null) return
|
if (userRelationship == null) return
|
||||||
if (userRelationship.blocking) {
|
if (userRelationship.blocking) {
|
||||||
twitter.destroyBlockAsync(user.account_key, user.key)
|
twitter.destroyBlockAsync(accountKey, user.key)
|
||||||
} else if (userRelationship.blocked_by) {
|
} else if (userRelationship.blocked_by) {
|
||||||
CreateUserBlockDialogFragment.show(childFragmentManager, user)
|
CreateUserBlockDialogFragment.show(childFragmentManager, user)
|
||||||
} else if (userRelationship.following) {
|
} else if (userRelationship.following) {
|
||||||
DestroyFriendshipDialogFragment.show(fragmentManager, user)
|
DestroyFriendshipDialogFragment.show(fragmentManager, user)
|
||||||
} else {
|
} else {
|
||||||
twitter.createFriendshipAsync(user.account_key, user.key, user.screen_name)
|
twitter.createFriendshipAsync(accountKey, user.key, user.screen_name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1228,7 +1227,7 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener,
|
|||||||
profileImage.type = ParcelableMedia.Type.IMAGE
|
profileImage.type = ParcelableMedia.Type.IMAGE
|
||||||
profileImage.preview_url = user.profile_image_url
|
profileImage.preview_url = user.profile_image_url
|
||||||
val media = arrayOf(profileImage)
|
val media = arrayOf(profileImage)
|
||||||
IntentUtils.openMedia(activity, user.account_key, media, null, false,
|
IntentUtils.openMedia(activity, accountKey, media, null, false,
|
||||||
preferences[newDocumentApiKey], preferences[displaySensitiveContentsKey])
|
preferences[newDocumentApiKey], preferences[displaySensitiveContentsKey])
|
||||||
}
|
}
|
||||||
R.id.profileBanner -> {
|
R.id.profileBanner -> {
|
||||||
@ -1236,28 +1235,28 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener,
|
|||||||
val profileBanner = ParcelableMediaUtils.image(url)
|
val profileBanner = ParcelableMediaUtils.image(url)
|
||||||
profileBanner.type = ParcelableMedia.Type.IMAGE
|
profileBanner.type = ParcelableMedia.Type.IMAGE
|
||||||
val media = arrayOf(profileBanner)
|
val media = arrayOf(profileBanner)
|
||||||
IntentUtils.openMedia(activity, user.account_key, media, null, false,
|
IntentUtils.openMedia(activity, accountKey, media, null, false,
|
||||||
preferences[newDocumentApiKey], preferences[displaySensitiveContentsKey])
|
preferences[newDocumentApiKey], preferences[displaySensitiveContentsKey])
|
||||||
}
|
}
|
||||||
R.id.listedContainer -> {
|
R.id.listedContainer -> {
|
||||||
IntentUtils.openUserLists(getActivity(), user.account_key, user.key,
|
IntentUtils.openUserLists(getActivity(), accountKey, user.key,
|
||||||
user.screen_name)
|
user.screen_name)
|
||||||
}
|
}
|
||||||
R.id.groupsContainer -> {
|
R.id.groupsContainer -> {
|
||||||
IntentUtils.openUserGroups(getActivity(), user.account_key, user.key,
|
IntentUtils.openUserGroups(getActivity(), accountKey, user.key,
|
||||||
user.screen_name)
|
user.screen_name)
|
||||||
}
|
}
|
||||||
R.id.followersContainer -> {
|
R.id.followersContainer -> {
|
||||||
IntentUtils.openUserFollowers(getActivity(), user.account_key, user.key,
|
IntentUtils.openUserFollowers(getActivity(), accountKey, user.key,
|
||||||
user.screen_name)
|
user.screen_name)
|
||||||
}
|
}
|
||||||
R.id.friendsContainer -> {
|
R.id.friendsContainer -> {
|
||||||
IntentUtils.openUserFriends(getActivity(), user.account_key, user.key,
|
IntentUtils.openUserFriends(getActivity(), accountKey, user.key,
|
||||||
user.screen_name)
|
user.screen_name)
|
||||||
}
|
}
|
||||||
R.id.nameContainer -> {
|
R.id.nameContainer -> {
|
||||||
if (user.account_key == user.key) return
|
if (accountKey == user.key) return
|
||||||
IntentUtils.openProfileEditor(getActivity(), user.account_key)
|
IntentUtils.openProfileEditor(getActivity(), accountKey)
|
||||||
}
|
}
|
||||||
R.id.urlContainer -> {
|
R.id.urlContainer -> {
|
||||||
val uri = user.urlPreferred?.let(Uri::parse) ?: return
|
val uri = user.urlPreferred?.let(Uri::parse) ?: return
|
||||||
@ -1379,7 +1378,8 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener,
|
|||||||
|
|
||||||
private fun getUserInfo(omitIntentExtra: Boolean) {
|
private fun getUserInfo(omitIntentExtra: Boolean) {
|
||||||
val user = this.user ?: return
|
val user = this.user ?: return
|
||||||
getUserInfo(user.account_key, user.key, user.screen_name, omitIntentExtra)
|
val accountKey = user.account_key ?: return
|
||||||
|
getUserInfo(accountKey, user.key, user.screen_name, omitIntentExtra)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setUiColor(color: Int) {
|
private fun setUiColor(color: Int) {
|
||||||
@ -1598,6 +1598,7 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener,
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun showAddToListDialog(user: ParcelableUser) {
|
private fun showAddToListDialog(user: ParcelableUser) {
|
||||||
|
val accountKey = user.account_key ?: return
|
||||||
val weakThis = WeakReference(this)
|
val weakThis = WeakReference(this)
|
||||||
executeAfterFragmentResumed {
|
executeAfterFragmentResumed {
|
||||||
ProgressDialogFragment.show(it.childFragmentManager, "get_list_progress")
|
ProgressDialogFragment.show(it.childFragmentManager, "get_list_progress")
|
||||||
@ -1618,7 +1619,7 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener,
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
val microBlog = MicroBlogAPIFactory.getInstance(fragment.context, user.account_key)
|
val microBlog = MicroBlogAPIFactory.getInstance(fragment.context, accountKey)
|
||||||
val ownedLists = ArrayList<ParcelableUserList>()
|
val ownedLists = ArrayList<ParcelableUserList>()
|
||||||
val listMemberships = microBlog.getUserListOwnerMemberships(user.key.id)
|
val listMemberships = microBlog.getUserListOwnerMemberships(user.key.id)
|
||||||
val paging = Paging()
|
val paging = Paging()
|
||||||
@ -1627,7 +1628,7 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener,
|
|||||||
do {
|
do {
|
||||||
val resp = microBlog.getUserListOwnerships(paging)
|
val resp = microBlog.getUserListOwnerships(paging)
|
||||||
resp.mapTo(ownedLists) { item ->
|
resp.mapTo(ownedLists) { item ->
|
||||||
val userList = item.toParcelable(user.account_key)
|
val userList = item.toParcelable(accountKey)
|
||||||
userList.is_user_inside = listMemberships.any { it.id == item.id }
|
userList.is_user_inside = listMemberships.any { it.id == item.id }
|
||||||
return@mapTo userList
|
return@mapTo userList
|
||||||
}
|
}
|
||||||
@ -1645,7 +1646,7 @@ class UserFragment : BaseFragment(), OnClickListener, OnLinkClickListener,
|
|||||||
fragment.executeAfterFragmentResumed { f ->
|
fragment.executeAfterFragmentResumed { f ->
|
||||||
val df = AddRemoveUserListDialogFragment()
|
val df = AddRemoveUserListDialogFragment()
|
||||||
df.arguments = Bundle {
|
df.arguments = Bundle {
|
||||||
this[EXTRA_ACCOUNT_KEY] = user.account_key
|
this[EXTRA_ACCOUNT_KEY] = accountKey
|
||||||
this[EXTRA_USER_KEY] = user.key
|
this[EXTRA_USER_KEY] = user.key
|
||||||
this[EXTRA_USER_LISTS] = result
|
this[EXTRA_USER_LISTS] = result
|
||||||
}
|
}
|
||||||
|
@ -57,12 +57,14 @@ class IncomingFriendshipsFragment : ParcelableUsersFragment(), IUsersAdapter.Req
|
|||||||
|
|
||||||
override fun onAcceptClicked(holder: UserViewHolder, position: Int) {
|
override fun onAcceptClicked(holder: UserViewHolder, position: Int) {
|
||||||
val user = adapter.getUser(position) ?: return
|
val user = adapter.getUser(position) ?: return
|
||||||
twitterWrapper.acceptFriendshipAsync(user.account_key, user.key)
|
val accountKey = user.account_key ?: return
|
||||||
|
twitterWrapper.acceptFriendshipAsync(accountKey, user.key)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDenyClicked(holder: UserViewHolder, position: Int) {
|
override fun onDenyClicked(holder: UserViewHolder, position: Int) {
|
||||||
val user = adapter.getUser(position) ?: return
|
val user = adapter.getUser(position) ?: return
|
||||||
twitterWrapper.denyFriendshipAsync(user.account_key, user.key)
|
val accountKey = user.account_key ?: return
|
||||||
|
twitterWrapper.denyFriendshipAsync(accountKey, user.key)
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("SwitchIntDef")
|
@SuppressLint("SwitchIntDef")
|
||||||
|
@ -36,7 +36,7 @@ abstract class ComponentPickerPreference(context: Context, attrs: AttributeSet?
|
|||||||
|
|
||||||
override fun getSummary(): CharSequence {
|
override fun getSummary(): CharSequence {
|
||||||
if (isNoneValue(value)) return noneEntry
|
if (isNoneValue(value)) return noneEntry
|
||||||
return entry
|
return entry ?: noneEntry
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract val intentAction: String
|
protected abstract val intentAction: String
|
||||||
|
@ -69,7 +69,7 @@ object IntentUtils {
|
|||||||
|
|
||||||
fun userProfile(user: ParcelableUser): Intent {
|
fun userProfile(user: ParcelableUser): Intent {
|
||||||
val uri = LinkCreator.getTwidereUserLink(user.account_key, user.key, user.screen_name)
|
val uri = LinkCreator.getTwidereUserLink(user.account_key, user.key, user.screen_name)
|
||||||
val intent = Intent(Intent.ACTION_VIEW, uri)
|
val intent = uri.intent()
|
||||||
intent.setExtrasClassLoader(TwidereApplication::class.java.classLoader)
|
intent.setExtrasClassLoader(TwidereApplication::class.java.classLoader)
|
||||||
intent.putExtra(EXTRA_USER, user)
|
intent.putExtra(EXTRA_USER, user)
|
||||||
if (user.extras != null) {
|
if (user.extras != null) {
|
||||||
@ -81,7 +81,7 @@ object IntentUtils {
|
|||||||
fun userProfile(accountKey: UserKey?, userKey: UserKey?, screenName: String?,
|
fun userProfile(accountKey: UserKey?, userKey: UserKey?, screenName: String?,
|
||||||
profileUrl: String? = null, accountHost: String? = accountKey?.host ?: userKey?.host): Intent {
|
profileUrl: String? = null, accountHost: String? = accountKey?.host ?: userKey?.host): Intent {
|
||||||
val uri = LinkCreator.getTwidereUserLink(accountKey, userKey, screenName)
|
val uri = LinkCreator.getTwidereUserLink(accountKey, userKey, screenName)
|
||||||
val intent = Intent(Intent.ACTION_VIEW, uri)
|
val intent = uri.intent()
|
||||||
intent.putExtra(EXTRA_PROFILE_URL, profileUrl)
|
intent.putExtra(EXTRA_PROFILE_URL, profileUrl)
|
||||||
intent.putExtra(EXTRA_ACCOUNT_HOST, accountHost)
|
intent.putExtra(EXTRA_ACCOUNT_HOST, accountHost)
|
||||||
return intent
|
return intent
|
||||||
@ -100,7 +100,7 @@ object IntentUtils {
|
|||||||
profileUrl: String? = null): Intent {
|
profileUrl: String? = null): Intent {
|
||||||
val uri = LinkCreator.getTwidereUserRelatedLink(AUTHORITY_USER_MEDIA_TIMELINE, accountKey,
|
val uri = LinkCreator.getTwidereUserRelatedLink(AUTHORITY_USER_MEDIA_TIMELINE, accountKey,
|
||||||
userKey, screenName)
|
userKey, screenName)
|
||||||
val intent = Intent(Intent.ACTION_VIEW, uri)
|
val intent = uri.intent()
|
||||||
intent.putExtra(EXTRA_PROFILE_URL, profileUrl)
|
intent.putExtra(EXTRA_PROFILE_URL, profileUrl)
|
||||||
return intent
|
return intent
|
||||||
}
|
}
|
||||||
@ -109,7 +109,7 @@ object IntentUtils {
|
|||||||
profileUrl: String? = null): Intent {
|
profileUrl: String? = null): Intent {
|
||||||
val uri = LinkCreator.getTwidereUserRelatedLink(AUTHORITY_USER_FAVORITES, accountKey,
|
val uri = LinkCreator.getTwidereUserRelatedLink(AUTHORITY_USER_FAVORITES, accountKey,
|
||||||
userKey, screenName)
|
userKey, screenName)
|
||||||
val intent = Intent(Intent.ACTION_VIEW, uri)
|
val intent = uri.intent()
|
||||||
intent.putExtra(EXTRA_PROFILE_URL, profileUrl)
|
intent.putExtra(EXTRA_PROFILE_URL, profileUrl)
|
||||||
return intent
|
return intent
|
||||||
}
|
}
|
||||||
@ -118,25 +118,20 @@ object IntentUtils {
|
|||||||
if (items == null) return
|
if (items == null) return
|
||||||
val extras = Bundle()
|
val extras = Bundle()
|
||||||
extras.putParcelableArrayList(EXTRA_ITEMS, ArrayList(items))
|
extras.putParcelableArrayList(EXTRA_ITEMS, ArrayList(items))
|
||||||
val builder = Uri.Builder()
|
val builder = UriBuilder(AUTHORITY_ITEMS)
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
val intent = builder.intent()
|
||||||
builder.authority(AUTHORITY_ITEMS)
|
|
||||||
val intent = Intent(Intent.ACTION_VIEW, builder.build())
|
|
||||||
intent.putExtras(extras)
|
intent.putExtras(extras)
|
||||||
context.startActivity(intent)
|
context.startActivity(intent)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openUserMentions(context: Context, accountKey: UserKey?,
|
fun openUserMentions(context: Context, accountKey: UserKey?,
|
||||||
screenName: String) {
|
screenName: String) {
|
||||||
val builder = Uri.Builder()
|
val builder = UriBuilder(AUTHORITY_USER_MENTIONS)
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
|
||||||
builder.authority(AUTHORITY_USER_MENTIONS)
|
|
||||||
if (accountKey != null) {
|
if (accountKey != null) {
|
||||||
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
||||||
}
|
}
|
||||||
builder.appendQueryParameter(QUERY_PARAM_SCREEN_NAME, screenName)
|
builder.appendQueryParameter(QUERY_PARAM_SCREEN_NAME, screenName)
|
||||||
val intent = Intent(Intent.ACTION_VIEW, builder.build())
|
context.startActivity(builder.intent())
|
||||||
context.startActivity(intent)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openMedia(context: Context, status: ParcelableStatus,
|
fun openMedia(context: Context, status: ParcelableStatus,
|
||||||
@ -250,137 +245,107 @@ object IntentUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun messageConversation(accountKey: UserKey, conversationId: String): Intent {
|
fun messageConversation(accountKey: UserKey, conversationId: String): Intent {
|
||||||
val builder = Uri.Builder()
|
val builder = UriBuilder(AUTHORITY_MESSAGES)
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
|
||||||
builder.authority(AUTHORITY_MESSAGES)
|
|
||||||
builder.path(PATH_MESSAGES_CONVERSATION)
|
builder.path(PATH_MESSAGES_CONVERSATION)
|
||||||
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
||||||
builder.appendQueryParameter(QUERY_PARAM_CONVERSATION_ID, conversationId)
|
builder.appendQueryParameter(QUERY_PARAM_CONVERSATION_ID, conversationId)
|
||||||
val intent = Intent(Intent.ACTION_VIEW, builder.build())
|
return builder.intent()
|
||||||
intent.`package` = BuildConfig.APPLICATION_ID
|
|
||||||
return intent
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun messageConversationInfo(accountKey: UserKey, conversationId: String): Intent {
|
fun messageConversationInfo(accountKey: UserKey, conversationId: String): Intent {
|
||||||
val builder = Uri.Builder()
|
val builder = UriBuilder(AUTHORITY_MESSAGES)
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
|
||||||
builder.authority(AUTHORITY_MESSAGES)
|
|
||||||
builder.path(PATH_MESSAGES_CONVERSATION_INFO)
|
builder.path(PATH_MESSAGES_CONVERSATION_INFO)
|
||||||
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
||||||
builder.appendQueryParameter(QUERY_PARAM_CONVERSATION_ID, conversationId)
|
builder.appendQueryParameter(QUERY_PARAM_CONVERSATION_ID, conversationId)
|
||||||
val intent = Intent(Intent.ACTION_VIEW, builder.build())
|
return builder.intent()
|
||||||
intent.`package` = BuildConfig.APPLICATION_ID
|
|
||||||
return intent
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun newMessageConversation(accountKey: UserKey): Intent {
|
fun newMessageConversation(accountKey: UserKey): Intent {
|
||||||
val builder = Uri.Builder()
|
val builder = UriBuilder(AUTHORITY_MESSAGES)
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
|
||||||
builder.authority(AUTHORITY_MESSAGES)
|
|
||||||
builder.path(PATH_MESSAGES_CONVERSATION_NEW)
|
builder.path(PATH_MESSAGES_CONVERSATION_NEW)
|
||||||
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
||||||
val intent = Intent(Intent.ACTION_VIEW, builder.build())
|
return builder.intent()
|
||||||
intent.`package` = BuildConfig.APPLICATION_ID
|
|
||||||
return intent
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openIncomingFriendships(context: Context,
|
fun openIncomingFriendships(context: Context,
|
||||||
accountKey: UserKey?) {
|
accountKey: UserKey?) {
|
||||||
val builder = Uri.Builder()
|
val builder = UriBuilder(AUTHORITY_INCOMING_FRIENDSHIPS)
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
|
||||||
builder.authority(AUTHORITY_INCOMING_FRIENDSHIPS)
|
|
||||||
if (accountKey != null) {
|
if (accountKey != null) {
|
||||||
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
||||||
}
|
}
|
||||||
val intent = Intent(Intent.ACTION_VIEW, builder.build())
|
context.startActivity(builder.intent())
|
||||||
intent.`package` = BuildConfig.APPLICATION_ID
|
|
||||||
context.startActivity(intent)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openMap(context: Context, latitude: Double, longitude: Double) {
|
fun openMap(context: Context, latitude: Double, longitude: Double) {
|
||||||
if (!ParcelableLocationUtils.isValidLocation(latitude, longitude)) return
|
if (!ParcelableLocationUtils.isValidLocation(latitude, longitude)) return
|
||||||
val builder = Uri.Builder()
|
val builder = UriBuilder(AUTHORITY_MAP)
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
|
||||||
builder.authority(AUTHORITY_MAP)
|
|
||||||
builder.appendQueryParameter(QUERY_PARAM_LAT, latitude.toString())
|
builder.appendQueryParameter(QUERY_PARAM_LAT, latitude.toString())
|
||||||
builder.appendQueryParameter(QUERY_PARAM_LNG, longitude.toString())
|
builder.appendQueryParameter(QUERY_PARAM_LNG, longitude.toString())
|
||||||
val intent = Intent(Intent.ACTION_VIEW, builder.build())
|
context.startActivity(builder.intent())
|
||||||
intent.`package` = BuildConfig.APPLICATION_ID
|
|
||||||
context.startActivity(intent)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openMutesUsers(context: Context,
|
fun openMutesUsers(context: Context,
|
||||||
accountKey: UserKey?) {
|
accountKey: UserKey?) {
|
||||||
val builder = Uri.Builder()
|
val builder = UriBuilder(AUTHORITY_MUTES_USERS)
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
|
||||||
builder.authority(AUTHORITY_MUTES_USERS)
|
|
||||||
if (accountKey != null) {
|
if (accountKey != null) {
|
||||||
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
||||||
}
|
}
|
||||||
val intent = Intent(Intent.ACTION_VIEW, builder.build())
|
context.startActivity(builder.intent())
|
||||||
intent.`package` = BuildConfig.APPLICATION_ID
|
|
||||||
context.startActivity(intent)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openSavedSearches(context: Context, accountKey: UserKey?) {
|
fun openSavedSearches(context: Context, accountKey: UserKey?) {
|
||||||
val builder = Uri.Builder()
|
val builder = UriBuilder(AUTHORITY_SAVED_SEARCHES)
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
|
||||||
builder.authority(AUTHORITY_SAVED_SEARCHES)
|
|
||||||
if (accountKey != null) {
|
if (accountKey != null) {
|
||||||
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
||||||
}
|
}
|
||||||
val intent = Intent(Intent.ACTION_VIEW, builder.build())
|
context.startActivity(builder.intent())
|
||||||
intent.`package` = BuildConfig.APPLICATION_ID
|
|
||||||
context.startActivity(intent)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openSearch(context: Context, accountKey: UserKey?, query: String, type: String? = null) {
|
fun openSearch(context: Context, accountKey: UserKey?, query: String, type: String? = null) {
|
||||||
val intent = Intent(Intent.ACTION_VIEW)
|
val builder = UriBuilder(AUTHORITY_SEARCH)
|
||||||
// Some devices cannot process query parameter with hashes well, so add this intent extra
|
|
||||||
intent.putExtra(EXTRA_QUERY, query)
|
|
||||||
if (accountKey != null) {
|
|
||||||
intent.putExtra(EXTRA_ACCOUNT_KEY, accountKey)
|
|
||||||
}
|
|
||||||
|
|
||||||
val builder = Uri.Builder()
|
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
|
||||||
builder.authority(AUTHORITY_SEARCH)
|
|
||||||
if (accountKey != null) {
|
if (accountKey != null) {
|
||||||
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
||||||
}
|
}
|
||||||
builder.appendQueryParameter(QUERY_PARAM_QUERY, query)
|
builder.appendQueryParameter(QUERY_PARAM_QUERY, query)
|
||||||
if (!TextUtils.isEmpty(type)) {
|
if (!TextUtils.isEmpty(type)) {
|
||||||
builder.appendQueryParameter(QUERY_PARAM_TYPE, type)
|
builder.appendQueryParameter(QUERY_PARAM_TYPE, type)
|
||||||
|
}
|
||||||
|
|
||||||
|
val intent = builder.intent()
|
||||||
|
// Some devices cannot process query parameter with hashes well, so add this intent extra
|
||||||
|
intent.putExtra(EXTRA_QUERY, query)
|
||||||
|
|
||||||
|
if (!TextUtils.isEmpty(type)) {
|
||||||
intent.putExtra(EXTRA_TYPE, type)
|
intent.putExtra(EXTRA_TYPE, type)
|
||||||
}
|
}
|
||||||
intent.data = builder.build()
|
|
||||||
|
|
||||||
|
if (accountKey != null) {
|
||||||
|
intent.putExtra(EXTRA_ACCOUNT_KEY, accountKey)
|
||||||
|
}
|
||||||
context.startActivity(intent)
|
context.startActivity(intent)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openMastodonSearch(context: Context, accountKey: UserKey?, query: String) {
|
fun openMastodonSearch(context: Context, accountKey: UserKey?, query: String) {
|
||||||
val intent = Intent(Intent.ACTION_VIEW)
|
val builder = UriBuilder(AUTHORITY_MASTODON_SEARCH)
|
||||||
|
|
||||||
|
if (accountKey != null) {
|
||||||
|
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
||||||
|
}
|
||||||
|
builder.appendQueryParameter(QUERY_PARAM_QUERY, query)
|
||||||
|
val intent = builder.intent()
|
||||||
|
|
||||||
// Some devices cannot process query parameter with hashes well, so add this intent extra
|
// Some devices cannot process query parameter with hashes well, so add this intent extra
|
||||||
intent.putExtra(EXTRA_QUERY, query)
|
intent.putExtra(EXTRA_QUERY, query)
|
||||||
if (accountKey != null) {
|
if (accountKey != null) {
|
||||||
intent.putExtra(EXTRA_ACCOUNT_KEY, accountKey)
|
intent.putExtra(EXTRA_ACCOUNT_KEY, accountKey)
|
||||||
}
|
}
|
||||||
|
|
||||||
val builder = Uri.Builder()
|
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
|
||||||
builder.authority(AUTHORITY_MASTODON_SEARCH)
|
|
||||||
if (accountKey != null) {
|
|
||||||
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
|
||||||
}
|
|
||||||
builder.appendQueryParameter(QUERY_PARAM_QUERY, query)
|
|
||||||
intent.data = builder.build()
|
|
||||||
|
|
||||||
context.startActivity(intent)
|
context.startActivity(intent)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun status(accountKey: UserKey?, statusId: String): Intent {
|
fun status(accountKey: UserKey?, statusId: String): Intent {
|
||||||
val uri = LinkCreator.getTwidereStatusLink(accountKey, statusId)
|
val uri = LinkCreator.getTwidereStatusLink(accountKey, statusId)
|
||||||
return Intent(Intent.ACTION_VIEW, uri)
|
return Intent(Intent.ACTION_VIEW, uri).setPackage(BuildConfig.APPLICATION_ID)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openStatus(context: Context, accountKey: UserKey?, statusId: String) {
|
fun openStatus(context: Context, accountKey: UserKey?, statusId: String) {
|
||||||
@ -388,65 +353,44 @@ object IntentUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun openStatus(context: Context, status: ParcelableStatus, activityOptions: Bundle? = null) {
|
fun openStatus(context: Context, status: ParcelableStatus, activityOptions: Bundle? = null) {
|
||||||
val builder = Uri.Builder()
|
val intent = status(status.account_key, status.id)
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
|
||||||
builder.authority(AUTHORITY_STATUS)
|
|
||||||
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, status.account_key.toString())
|
|
||||||
builder.appendQueryParameter(QUERY_PARAM_STATUS_ID, status.id)
|
|
||||||
val intent = Intent(Intent.ACTION_VIEW, builder.build())
|
|
||||||
intent.setExtrasClassLoader(TwidereApplication::class.java.classLoader)
|
intent.setExtrasClassLoader(TwidereApplication::class.java.classLoader)
|
||||||
intent.putExtra(EXTRA_STATUS, status)
|
intent.putExtra(EXTRA_STATUS, status)
|
||||||
ActivityCompat.startActivity(context, intent, activityOptions)
|
ActivityCompat.startActivity(context, intent, activityOptions)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openStatusFavoriters(context: Context, accountKey: UserKey?,
|
fun openStatusFavoriters(context: Context, accountKey: UserKey?, statusId: String) {
|
||||||
statusId: String) {
|
val builder = UriBuilder(AUTHORITY_STATUS_FAVORITERS)
|
||||||
val builder = Uri.Builder()
|
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
|
||||||
builder.authority(AUTHORITY_STATUS_FAVORITERS)
|
|
||||||
if (accountKey != null) {
|
if (accountKey != null) {
|
||||||
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
||||||
}
|
}
|
||||||
builder.appendQueryParameter(QUERY_PARAM_STATUS_ID, statusId)
|
builder.appendQueryParameter(QUERY_PARAM_STATUS_ID, statusId)
|
||||||
val intent = Intent(Intent.ACTION_VIEW, builder.build())
|
ActivityCompat.startActivity(context, builder.intent(), null)
|
||||||
ActivityCompat.startActivity(context, intent, null)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openStatusRetweeters(context: Context, accountKey: UserKey?,
|
fun openStatusRetweeters(context: Context, accountKey: UserKey?, statusId: String) {
|
||||||
statusId: String) {
|
val builder = UriBuilder(AUTHORITY_STATUS_RETWEETERS)
|
||||||
val builder = Uri.Builder()
|
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
|
||||||
builder.authority(AUTHORITY_STATUS_RETWEETERS)
|
|
||||||
if (accountKey != null) {
|
if (accountKey != null) {
|
||||||
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
||||||
}
|
}
|
||||||
builder.appendQueryParameter(QUERY_PARAM_STATUS_ID, statusId)
|
builder.appendQueryParameter(QUERY_PARAM_STATUS_ID, statusId)
|
||||||
val intent = Intent(Intent.ACTION_VIEW, builder.build())
|
ActivityCompat.startActivity(context, builder.intent(), null)
|
||||||
ActivityCompat.startActivity(context, intent, null)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openTweetSearch(context: Context, accountKey: UserKey?,
|
fun openTweetSearch(context: Context, accountKey: UserKey?, query: String) {
|
||||||
query: String) {
|
|
||||||
openSearch(context, accountKey, query, QUERY_PARAM_VALUE_TWEETS)
|
openSearch(context, accountKey, query, QUERY_PARAM_VALUE_TWEETS)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openUserBlocks(activity: Activity?, accountKey: UserKey) {
|
fun openUserBlocks(activity: Activity?, accountKey: UserKey) {
|
||||||
if (activity == null) return
|
if (activity == null) return
|
||||||
val builder = Uri.Builder()
|
val builder = UriBuilder(AUTHORITY_USER_BLOCKS)
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
|
||||||
builder.authority(AUTHORITY_USER_BLOCKS)
|
|
||||||
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
||||||
val intent = Intent(Intent.ACTION_VIEW, builder.build())
|
activity.startActivity(builder.intent())
|
||||||
activity.startActivity(intent)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openUserFavorites(context: Context,
|
fun openUserFavorites(context: Context, accountKey: UserKey?, userKey: UserKey?,
|
||||||
accountKey: UserKey?,
|
|
||||||
userKey: UserKey?,
|
|
||||||
screenName: String?) {
|
screenName: String?) {
|
||||||
val builder = Uri.Builder()
|
val builder = UriBuilder(AUTHORITY_USER_FAVORITES)
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
|
||||||
builder.authority(AUTHORITY_USER_FAVORITES)
|
|
||||||
if (accountKey != null) {
|
if (accountKey != null) {
|
||||||
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
||||||
}
|
}
|
||||||
@ -456,8 +400,7 @@ object IntentUtils {
|
|||||||
if (screenName != null) {
|
if (screenName != null) {
|
||||||
builder.appendQueryParameter(QUERY_PARAM_SCREEN_NAME, screenName)
|
builder.appendQueryParameter(QUERY_PARAM_SCREEN_NAME, screenName)
|
||||||
}
|
}
|
||||||
val intent = Intent(Intent.ACTION_VIEW, builder.build())
|
context.startActivity(builder.intent())
|
||||||
context.startActivity(intent)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -468,13 +411,9 @@ object IntentUtils {
|
|||||||
context.startActivity(Intent(Intent.ACTION_VIEW, intent))
|
context.startActivity(Intent(Intent.ACTION_VIEW, intent))
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openUserFriends(context: Context,
|
fun openUserFriends(context: Context, accountKey: UserKey?, userKey: UserKey?,
|
||||||
accountKey: UserKey?,
|
|
||||||
userKey: UserKey?,
|
|
||||||
screenName: String?) {
|
screenName: String?) {
|
||||||
val builder = Uri.Builder()
|
val builder = UriBuilder(AUTHORITY_USER_FRIENDS)
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
|
||||||
builder.authority(AUTHORITY_USER_FRIENDS)
|
|
||||||
if (accountKey != null) {
|
if (accountKey != null) {
|
||||||
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
||||||
}
|
}
|
||||||
@ -484,9 +423,7 @@ object IntentUtils {
|
|||||||
if (screenName != null) {
|
if (screenName != null) {
|
||||||
builder.appendQueryParameter(QUERY_PARAM_SCREEN_NAME, screenName)
|
builder.appendQueryParameter(QUERY_PARAM_SCREEN_NAME, screenName)
|
||||||
}
|
}
|
||||||
val intent = Intent(Intent.ACTION_VIEW, builder.build())
|
context.startActivity(builder.intent())
|
||||||
context.startActivity(intent)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openUserListDetails(context: Context, accountKey: UserKey?, listId: String?,
|
fun openUserListDetails(context: Context, accountKey: UserKey?, listId: String?,
|
||||||
@ -496,14 +433,14 @@ object IntentUtils {
|
|||||||
|
|
||||||
fun userListDetails(accountKey: UserKey?, listId: String?, userKey: UserKey?,
|
fun userListDetails(accountKey: UserKey?, listId: String?, userKey: UserKey?,
|
||||||
screenName: String?, listName: String?): Intent {
|
screenName: String?, listName: String?): Intent {
|
||||||
return Intent(Intent.ACTION_VIEW, getTwidereUserListRelatedLink(AUTHORITY_USER_LIST,
|
return getTwidereUserListRelatedLink(AUTHORITY_USER_LIST, accountKey, listId, userKey,
|
||||||
accountKey, listId, userKey, screenName, listName))
|
screenName, listName).intent()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun userListTimeline(accountKey: UserKey?, listId: String?, userKey: UserKey?,
|
fun userListTimeline(accountKey: UserKey?, listId: String?, userKey: UserKey?,
|
||||||
screenName: String?, listName: String?): Intent {
|
screenName: String?, listName: String?): Intent {
|
||||||
return Intent(Intent.ACTION_VIEW, getTwidereUserListRelatedLink(AUTHORITY_USER_LIST_TIMELINE,
|
return getTwidereUserListRelatedLink(AUTHORITY_USER_LIST_TIMELINE, accountKey, listId,
|
||||||
accountKey, listId, userKey, screenName, listName))
|
userKey, screenName, listName).intent()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openUserListDetails(context: Context, userList: ParcelableUserList) {
|
fun openUserListDetails(context: Context, userList: ParcelableUserList) {
|
||||||
@ -513,35 +450,28 @@ object IntentUtils {
|
|||||||
fun userListDetails(userList: ParcelableUserList): Intent {
|
fun userListDetails(userList: ParcelableUserList): Intent {
|
||||||
val userKey = userList.user_key
|
val userKey = userList.user_key
|
||||||
val listId = userList.id
|
val listId = userList.id
|
||||||
val builder = Uri.Builder()
|
val builder = UriBuilder(AUTHORITY_USER_LIST)
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
|
||||||
builder.authority(AUTHORITY_USER_LIST)
|
|
||||||
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, userList.account_key.toString())
|
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, userList.account_key.toString())
|
||||||
builder.appendQueryParameter(QUERY_PARAM_USER_KEY, userKey.toString())
|
builder.appendQueryParameter(QUERY_PARAM_USER_KEY, userKey.toString())
|
||||||
builder.appendQueryParameter(QUERY_PARAM_LIST_ID, listId)
|
builder.appendQueryParameter(QUERY_PARAM_LIST_ID, listId)
|
||||||
val intent = Intent(Intent.ACTION_VIEW, builder.build())
|
val intent = builder.intent()
|
||||||
intent.setExtrasClassLoader(TwidereApplication::class.java.classLoader)
|
intent.setExtrasClassLoader(TwidereApplication::class.java.classLoader)
|
||||||
intent.putExtra(EXTRA_USER_LIST, userList)
|
intent.putExtra(EXTRA_USER_LIST, userList)
|
||||||
return intent
|
return intent
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openGroupDetails(context: Context, group: ParcelableGroup) {
|
fun openGroupDetails(context: Context, group: ParcelableGroup) {
|
||||||
val builder = Uri.Builder()
|
val builder = UriBuilder(AUTHORITY_GROUP)
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
|
||||||
builder.authority(AUTHORITY_GROUP)
|
|
||||||
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, group.account_key.toString())
|
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, group.account_key.toString())
|
||||||
builder.appendQueryParameter(QUERY_PARAM_GROUP_ID, group.id)
|
builder.appendQueryParameter(QUERY_PARAM_GROUP_ID, group.id)
|
||||||
builder.appendQueryParameter(QUERY_PARAM_GROUP_NAME, group.nickname)
|
builder.appendQueryParameter(QUERY_PARAM_GROUP_NAME, group.nickname)
|
||||||
val intent = Intent(Intent.ACTION_VIEW, builder.build())
|
val intent = builder.intent()
|
||||||
intent.setExtrasClassLoader(TwidereApplication::class.java.classLoader)
|
intent.setExtrasClassLoader(TwidereApplication::class.java.classLoader)
|
||||||
intent.putExtra(EXTRA_GROUP, group)
|
intent.putExtra(EXTRA_GROUP, group)
|
||||||
context.startActivity(intent)
|
context.startActivity(intent)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openUserLists(context: Context,
|
fun openUserLists(context: Context, accountKey: UserKey?, userKey: UserKey?, screenName: String?) {
|
||||||
accountKey: UserKey?,
|
|
||||||
userKey: UserKey?,
|
|
||||||
screenName: String?) {
|
|
||||||
val builder = Uri.Builder()
|
val builder = Uri.Builder()
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
builder.scheme(SCHEME_TWIDERE)
|
||||||
builder.authority(AUTHORITY_USER_LISTS)
|
builder.authority(AUTHORITY_USER_LISTS)
|
||||||
@ -554,16 +484,12 @@ object IntentUtils {
|
|||||||
if (screenName != null) {
|
if (screenName != null) {
|
||||||
builder.appendQueryParameter(QUERY_PARAM_SCREEN_NAME, screenName)
|
builder.appendQueryParameter(QUERY_PARAM_SCREEN_NAME, screenName)
|
||||||
}
|
}
|
||||||
val intent = Intent(Intent.ACTION_VIEW, builder.build())
|
context.startActivity(builder.intent())
|
||||||
context.startActivity(intent)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fun openUserGroups(context: Context, accountKey: UserKey?, userKey: UserKey?,
|
fun openUserGroups(context: Context, accountKey: UserKey?, userKey: UserKey?, screenName: String?) {
|
||||||
screenName: String?) {
|
val builder = UriBuilder(AUTHORITY_USER_GROUPS)
|
||||||
val builder = Uri.Builder()
|
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
|
||||||
builder.authority(AUTHORITY_USER_GROUPS)
|
|
||||||
if (accountKey != null) {
|
if (accountKey != null) {
|
||||||
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
||||||
}
|
}
|
||||||
@ -573,104 +499,69 @@ object IntentUtils {
|
|||||||
if (screenName != null) {
|
if (screenName != null) {
|
||||||
builder.appendQueryParameter(QUERY_PARAM_SCREEN_NAME, screenName)
|
builder.appendQueryParameter(QUERY_PARAM_SCREEN_NAME, screenName)
|
||||||
}
|
}
|
||||||
val intent = Intent(Intent.ACTION_VIEW, builder.build())
|
context.startActivity(builder.intent())
|
||||||
context.startActivity(intent)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openDirectMessages(context: Context, accountKey: UserKey?) {
|
fun openDirectMessages(context: Context, accountKey: UserKey?) {
|
||||||
val builder = Uri.Builder()
|
val builder = UriBuilder(AUTHORITY_MESSAGES)
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
|
||||||
builder.authority(AUTHORITY_MESSAGES)
|
|
||||||
if (accountKey != null) {
|
if (accountKey != null) {
|
||||||
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
||||||
}
|
}
|
||||||
val intent = Intent(Intent.ACTION_VIEW, builder.build())
|
context.startActivity(builder.intent())
|
||||||
context.startActivity(intent)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openInteractions(context: Context, accountKey: UserKey?) {
|
fun openInteractions(context: Context, accountKey: UserKey?) {
|
||||||
val builder = Uri.Builder()
|
val builder = UriBuilder(AUTHORITY_INTERACTIONS)
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
|
||||||
builder.authority(AUTHORITY_INTERACTIONS)
|
|
||||||
if (accountKey != null) {
|
if (accountKey != null) {
|
||||||
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
||||||
}
|
}
|
||||||
val intent = Intent(Intent.ACTION_VIEW, builder.build())
|
context.startActivity(builder.intent())
|
||||||
context.startActivity(intent)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openPublicTimeline(context: Context, accountKey: UserKey?) {
|
fun openPublicTimeline(context: Context, accountKey: UserKey?) {
|
||||||
val builder = Uri.Builder()
|
val builder = UriBuilder(AUTHORITY_PUBLIC_TIMELINE)
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
|
||||||
builder.authority(AUTHORITY_PUBLIC_TIMELINE)
|
|
||||||
if (accountKey != null) {
|
if (accountKey != null) {
|
||||||
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
||||||
}
|
}
|
||||||
val intent = Intent(Intent.ACTION_VIEW, builder.build())
|
context.startActivity(builder.intent())
|
||||||
context.startActivity(intent)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openNetworkPublicTimeline(context: Context, accountKey: UserKey?) {
|
fun openNetworkPublicTimeline(context: Context, accountKey: UserKey?) {
|
||||||
val builder = Uri.Builder()
|
val builder = UriBuilder(AUTHORITY_NETWORK_PUBLIC_TIMELINE)
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
|
||||||
builder.authority(AUTHORITY_NETWORK_PUBLIC_TIMELINE)
|
|
||||||
if (accountKey != null) {
|
if (accountKey != null) {
|
||||||
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
||||||
}
|
}
|
||||||
val intent = Intent(Intent.ACTION_VIEW, builder.build())
|
context.startActivity(builder.intent())
|
||||||
context.startActivity(intent)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openAccountsManager(context: Context) {
|
fun openAccountsManager(context: Context) {
|
||||||
val intent = Intent()
|
val builder = UriBuilder(AUTHORITY_ACCOUNTS)
|
||||||
val builder = Uri.Builder()
|
context.startActivity(builder.intent())
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
|
||||||
builder.authority(AUTHORITY_ACCOUNTS)
|
|
||||||
intent.data = builder.build()
|
|
||||||
intent.`package` = BuildConfig.APPLICATION_ID
|
|
||||||
context.startActivity(intent)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openDrafts(context: Context) {
|
fun openDrafts(context: Context) {
|
||||||
val intent = Intent()
|
val builder = UriBuilder(AUTHORITY_DRAFTS)
|
||||||
val builder = Uri.Builder()
|
context.startActivity(builder.intent())
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
|
||||||
builder.authority(AUTHORITY_DRAFTS)
|
|
||||||
intent.data = builder.build()
|
|
||||||
intent.`package` = BuildConfig.APPLICATION_ID
|
|
||||||
context.startActivity(intent)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun settings(initialTag: String? = null): Intent {
|
fun settings(initialTag: String? = null): Intent {
|
||||||
val intent = Intent()
|
|
||||||
val builder = Uri.Builder()
|
val builder = Uri.Builder()
|
||||||
builder.scheme(SCHEME_TWIDERE_SETTINGS)
|
builder.scheme(SCHEME_TWIDERE_SETTINGS)
|
||||||
builder.authority(initialTag.orEmpty())
|
builder.authority(initialTag.orEmpty())
|
||||||
intent.data = builder.build()
|
return builder.intent()
|
||||||
intent.`package` = BuildConfig.APPLICATION_ID
|
|
||||||
return intent
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openProfileEditor(context: Context, accountKey: UserKey?) {
|
fun openProfileEditor(context: Context, accountKey: UserKey?) {
|
||||||
val intent = Intent()
|
val builder = UriBuilder(AUTHORITY_PROFILE_EDITOR)
|
||||||
val builder = Uri.Builder()
|
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
|
||||||
builder.authority(AUTHORITY_PROFILE_EDITOR)
|
|
||||||
if (accountKey != null) {
|
if (accountKey != null) {
|
||||||
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
builder.appendQueryParameter(QUERY_PARAM_ACCOUNT_KEY, accountKey.toString())
|
||||||
}
|
}
|
||||||
intent.data = builder.build()
|
context.startActivity(builder.intent())
|
||||||
intent.`package` = BuildConfig.APPLICATION_ID
|
|
||||||
context.startActivity(intent)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openFilters(context: Context, initialTab: String? = null) {
|
fun openFilters(context: Context, initialTab: String? = null) {
|
||||||
val intent = Intent()
|
val builder = UriBuilder(AUTHORITY_FILTERS)
|
||||||
val builder = Uri.Builder()
|
val intent = builder.intent()
|
||||||
builder.scheme(SCHEME_TWIDERE)
|
|
||||||
builder.authority(AUTHORITY_FILTERS)
|
|
||||||
intent.data = builder.build()
|
|
||||||
intent.`package` = BuildConfig.APPLICATION_ID
|
|
||||||
intent.putExtra(EXTRA_INITIAL_TAB, initialTab)
|
intent.putExtra(EXTRA_INITIAL_TAB, initialTab)
|
||||||
context.startActivity(intent)
|
context.startActivity(intent)
|
||||||
}
|
}
|
||||||
@ -702,4 +593,16 @@ object IntentUtils {
|
|||||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT)
|
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun UriBuilder(authority: String): Uri.Builder {
|
||||||
|
return Uri.Builder().scheme(SCHEME_TWIDERE).authority(authority)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun Uri.intent(action: String = Intent.ACTION_VIEW): Intent {
|
||||||
|
return Intent(action, this).setPackage(BuildConfig.APPLICATION_ID)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun Uri.Builder.intent(action: String = Intent.ACTION_VIEW): Intent {
|
||||||
|
return build().intent(action)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -134,8 +134,8 @@ object LinkCreator {
|
|||||||
when (user.user_type) {
|
when (user.user_type) {
|
||||||
AccountType.FANFOU -> return getFanfouUserLink(user.key.id)
|
AccountType.FANFOU -> return getFanfouUserLink(user.key.id)
|
||||||
AccountType.MASTODON -> {
|
AccountType.MASTODON -> {
|
||||||
val host = user.key.host ?: user.account_key.host
|
val host = (user.key.host ?: user.account_key?.host)!! // Let it crash
|
||||||
return getMastodonUserLink(host!!, user.screen_name)
|
return getMastodonUserLink(host, user.screen_name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return getTwitterUserLink(user.screen_name)
|
return getTwitterUserLink(user.screen_name)
|
||||||
|
@ -120,14 +120,15 @@ class UserViewHolder(
|
|||||||
profileImageView.visibility = View.GONE
|
profileImageView.visibility = View.GONE
|
||||||
}
|
}
|
||||||
|
|
||||||
if (user.account_key != null && twitter.isUpdatingRelationship(user.account_key, user.key)) {
|
val accountKey = user.account_key
|
||||||
|
if (accountKey != null && twitter.isUpdatingRelationship(accountKey, user.key)) {
|
||||||
processingRequestProgress.visibility = View.VISIBLE
|
processingRequestProgress.visibility = View.VISIBLE
|
||||||
actionsContainer.visibility = View.GONE
|
actionsContainer.visibility = View.GONE
|
||||||
} else {
|
} else {
|
||||||
processingRequestProgress.visibility = View.GONE
|
processingRequestProgress.visibility = View.GONE
|
||||||
actionsContainer.visibility = View.VISIBLE
|
actionsContainer.visibility = View.VISIBLE
|
||||||
}
|
}
|
||||||
if (user.account_key != null && user.key.hasSameHost(user.account_key)) {
|
if (accountKey != null && user.key.hasSameHost(accountKey)) {
|
||||||
externalIndicator.visibility = View.GONE
|
externalIndicator.visibility = View.GONE
|
||||||
} else {
|
} else {
|
||||||
externalIndicator.visibility = View.VISIBLE
|
externalIndicator.visibility = View.VISIBLE
|
||||||
@ -137,7 +138,7 @@ class UserViewHolder(
|
|||||||
followButton.setImageResource(if (user.is_following) R.drawable.ic_action_confirm else R.drawable.ic_action_add)
|
followButton.setImageResource(if (user.is_following) R.drawable.ic_action_confirm else R.drawable.ic_action_add)
|
||||||
followButton.isActivated = user.is_following
|
followButton.isActivated = user.is_following
|
||||||
|
|
||||||
val isMySelf = user.account_key == user.key
|
val isMySelf = accountKey == user.key
|
||||||
|
|
||||||
if (requestClickListener != null && !isMySelf) {
|
if (requestClickListener != null && !isMySelf) {
|
||||||
acceptRequestButton.visibility = View.VISIBLE
|
acceptRequestButton.visibility = View.VISIBLE
|
||||||
|
Loading…
x
Reference in New Issue
Block a user