Skip to content

Commit

Permalink
Merge pull request #40 from AmityCo/release-3.5-leto
Browse files Browse the repository at this point in the history
chore: apply release 3.5.0 source code
  • Loading branch information
Enixma authored Jun 29, 2023
2 parents 9231a2e + c023ddb commit e4e935e
Show file tree
Hide file tree
Showing 7 changed files with 76 additions and 24 deletions.
2 changes: 1 addition & 1 deletion buildsystem/dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ buildscript {
amityKotlinVersion = "1.6.20"
amityLifecycleExtensionVersion = "2.0.0"
amityMockkVersion = "1.10.0"
amityMessagingSdkVersion = '6.9.0'
amityMessagingSdkVersion = '6.11.0'
amityRxLifeCycleVersion = '1.1.2-beta01'

amityJacocoVersion = '0.8.5'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@ package com.amity.socialcloud.uikit.common.base
import android.os.Bundle
import android.view.View
import androidx.appcompat.app.ActionBar
import androidx.appcompat.app.AppCompatActivity
import androidx.databinding.DataBindingUtil
import androidx.fragment.app.Fragment
import com.amity.socialcloud.uikit.common.R
import com.amity.socialcloud.uikit.common.components.AmityToolBar
import com.amity.socialcloud.uikit.common.components.AmityToolBarClickListener
import com.amity.socialcloud.uikit.common.databinding.AmityActivityBaseToolbarFragmentContainerBinding
import com.trello.rxlifecycle4.components.support.RxAppCompatActivity

abstract class AmityBaseToolbarFragmentContainerActivity : AppCompatActivity(),
abstract class AmityBaseToolbarFragmentContainerActivity : RxAppCompatActivity(),
AmityToolBarClickListener {
lateinit var binding: AmityActivityBaseToolbarFragmentContainerBinding
override fun onCreate(savedInstanceState: Bundle?) {
Expand Down
2 changes: 1 addition & 1 deletion sample/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ android {
minSdkVersion 21
targetSdkVersion 33
versionCode 1
versionName "3.4.0"
versionName "3.5.0"
multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,42 @@ import android.content.Intent
import androidx.activity.result.contract.ActivityResultContract
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import com.amity.socialcloud.sdk.api.social.AmitySocialClient
import com.amity.socialcloud.sdk.api.social.community.AmityCommunityRepository
import com.amity.socialcloud.sdk.model.social.community.AmityCommunity
import com.amity.socialcloud.uikit.common.base.AmityBaseToolbarFragmentContainerActivity
import com.amity.socialcloud.uikit.community.R
import com.amity.socialcloud.uikit.community.newsfeed.fragment.AmityPollPostCreatorFragment
import com.amity.socialcloud.uikit.community.utils.EXTRA_PARAM_COMMUNITY_ID
import com.ekoapp.rxlifecycle.extension.untilLifecycleEnd
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers


class AmityPollPostCreatorActivity : AmityBaseToolbarFragmentContainerActivity() {

private var communityRepository: AmityCommunityRepository = AmitySocialClient.newCommunityRepository()

override fun initToolbar() {
val communityId = intent?.getStringExtra(EXTRA_PARAM_COMMUNITY_ID)
getToolBar()?.setLeftDrawable(ContextCompat.getDrawable(this, R.drawable.amity_ic_cross))
getToolBar()?.setLeftString(getString(R.string.amity_my_timeline))
if (communityId != null) {
getCommunity(communityRepository,communityId)
} else {
getToolBar()?.setLeftString(getString(R.string.amity_my_timeline))
}
}
private fun getCommunity(communityRepository: AmityCommunityRepository, communityId: Any) {
communityRepository
.getCommunity(communityId = communityId.toString())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doOnNext { community: AmityCommunity ->
var displayName = community.getDisplayName()
getToolBar()?.setLeftString(displayName)
}
.untilLifecycleEnd(this)
.subscribe()
}

override fun getContentFragment(): Fragment {
Expand All @@ -42,4 +68,4 @@ class AmityPollPostCreatorActivity : AmityBaseToolbarFragmentContainerActivity()
else null
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,34 +6,54 @@ import android.content.Intent
import androidx.activity.result.contract.ActivityResultContract
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import com.amity.socialcloud.sdk.api.social.AmitySocialClient
import com.amity.socialcloud.sdk.api.social.community.AmityCommunityRepository
import com.amity.socialcloud.sdk.model.social.community.AmityCommunity
import com.amity.socialcloud.uikit.common.base.AmityBaseToolbarFragmentContainerActivity
import com.amity.socialcloud.uikit.community.R
import com.amity.socialcloud.uikit.community.explore.activity.EXTRA_PARAM_COMMUNITY
import com.amity.socialcloud.uikit.community.newsfeed.fragment.AmityPostCreatorFragment
import com.amity.socialcloud.uikit.community.utils.EXTRA_PARAM_POST_ID
import com.ekoapp.rxlifecycle.extension.untilLifecycleEnd
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers

class AmityPostCreatorActivity : AmityBaseToolbarFragmentContainerActivity() {

private var communityRepository: AmityCommunityRepository = AmitySocialClient.newCommunityRepository()

override fun initToolbar() {
val community = intent?.getParcelableExtra<AmityCommunity>(EXTRA_PARAM_COMMUNITY)
val communityId = intent?.getStringExtra(EXTRA_PARAM_COMMUNITY)
getToolBar()?.setLeftDrawable(ContextCompat.getDrawable(this, R.drawable.amity_ic_cross))
getToolBar()?.setLeftString(
community?.getDisplayName() ?: getString(
R.string.amity_my_timeline
)
)
if (communityId != null) {
getCommunity(communityRepository,communityId)
} else {
getToolBar()?.setLeftString(getString(R.string.amity_my_timeline))
}
}
fun getCommunity(communityRepository: AmityCommunityRepository, communityId: Any) {
communityRepository
.getCommunity(communityId = communityId.toString())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doOnNext { community: AmityCommunity ->
var displayName = community.getDisplayName()
getToolBar()?.setLeftString(displayName)
}
.untilLifecycleEnd(this)
.subscribe()
}


override fun getContentFragment(): Fragment {
return intent?.getStringExtra(EXTRA_PARAM_COMMUNITY)?.let { communityId ->
return AmityPostCreatorFragment.newInstance()
.onCommunityFeed(communityId)
.build()
.onCommunityFeed(communityId)
.build()
} ?: kotlin.run {
AmityPostCreatorFragment.newInstance()
.onMyFeed()
.build()
.onMyFeed()
.build()
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -794,7 +794,7 @@ abstract class AmityBaseCreatePostFragment : AmityBaseFragment(),
mediaScanIntent.data = contentUri
activity?.sendBroadcast(mediaScanIntent)
val images = viewModel.addMedia(listOf(contentUri), PostMedia.Type.IMAGE)
uploadMedia(images[0])
uploadMedia(images)
}
}
AmityConstants.CAPTURE_VIDEO -> {
Expand All @@ -808,7 +808,7 @@ abstract class AmityBaseCreatePostFragment : AmityBaseFragment(),
mediaScanIntent.data = contentUri
activity?.sendBroadcast(mediaScanIntent)
val videos = viewModel.addMedia(listOf(contentUri), PostMedia.Type.VIDEO)
uploadMedia(videos[0])
uploadMedia(videos)
}
}
} else {
Expand Down Expand Up @@ -890,11 +890,11 @@ abstract class AmityBaseCreatePostFragment : AmityBaseFragment(),
setupImageAdapter()
val resultUris = Matisse.obtainResult(it)
val postMediaList = viewModel.addMedia(resultUris, mediaType)
postMediaList.forEach { uploadMedia(it) }
uploadMedia(postMediaList)
}

private fun uploadMedia(media: PostMedia) {
viewModel.uploadMedia(media)
private fun uploadMedia(mediaList: List<PostMedia>) {
viewModel.uploadMediaList(mediaList)
.untilLifecycleEnd(this)
.subscribe()
}
Expand Down Expand Up @@ -1117,4 +1117,3 @@ abstract class AmityBaseCreatePostFragment : AmityBaseFragment(),
return binding.recyclerViewUserMention.visibility == View.VISIBLE
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -457,7 +457,12 @@ class AmityCreatePostViewModel : AmityBaseViewModel() {
}
}

fun uploadMedia(postMedia: PostMedia): Completable {
fun uploadMediaList(postMedia: List<PostMedia>): Completable {
return Flowable.fromIterable(postMedia)
.flatMapCompletable(::uploadMedia)
}

private fun uploadMedia(postMedia: PostMedia): Completable {
when (postMedia.type) {
PostMedia.Type.IMAGE -> {
return fileRepository
Expand Down Expand Up @@ -652,11 +657,13 @@ class AmityCreatePostViewModel : AmityBaseViewModel() {
postText: String,
userMentions: List<AmityMentionMetadata.USER>
): Single<AmityPost> {
val orderById = imageMap.values.withIndex().associate { it.value.id to it.index }
val sortedImages = uploadedMediaMap.values.toList().sortedBy { orderById[it.getFileId()] }
return when {
isUploadedImageMedia() -> {
createPostTextAndImages(
postText,
uploadedMediaMap.values.toList() as List<AmityImage>,
sortedImages as List<AmityImage>,
userMentions
)
}
Expand Down

0 comments on commit e4e935e

Please sign in to comment.