Skip to content

Commit

Permalink
Revert "- clean up"
Browse files Browse the repository at this point in the history
This reverts commit c469b9e.
  • Loading branch information
Arkariang committed Oct 19, 2021
1 parent c469b9e commit aeeb63f
Show file tree
Hide file tree
Showing 7 changed files with 166 additions and 37 deletions.
Expand Up @@ -5,11 +5,17 @@ import android.content.Intent
import android.util.Pair
import com.kickstarter.models.Project
import com.kickstarter.ui.IntentKey
import com.kickstarter.ui.activities.*
import com.kickstarter.ui.activities.CommentsActivity
import com.kickstarter.ui.activities.CreatorBioActivity
import com.kickstarter.ui.activities.CreatorDashboardActivity
import com.kickstarter.ui.activities.ProjectActivity
import com.kickstarter.ui.activities.ProjectPageActivity
import com.kickstarter.ui.activities.ProjectUpdatesActivity
import com.kickstarter.ui.activities.UpdateActivity
import com.kickstarter.ui.data.ProjectData

fun Intent.getProjectIntent(context: Context, isFfEnabled: Boolean): Intent {
return this.setClass(context, if (true) ProjectPageActivity::class.java else ProjectActivity::class.java)
return this.setClass(context, if (isFfEnabled) ProjectPageActivity::class.java else ProjectActivity::class.java)
}

/**
Expand Down Expand Up @@ -42,11 +48,6 @@ fun Intent.getCreatorDashboardActivityIntent(context: Context, project: Project)
.putExtra(IntentKey.PROJECT, project)
}

fun Intent.getCampaignDetailsActivityIntent(context: Context, projectData: ProjectData): Intent {
return this.setClass(context,CampaignDetailsActivity::class.java)
.putExtra(IntentKey.PROJECT_DATA, projectData)
}

/**
* Return a Intent ready to launch the creator Bio activity
* @param context
Expand Down
Expand Up @@ -47,6 +47,9 @@ import com.kickstarter.ui.data.PledgeReason
import com.kickstarter.ui.data.ProjectData
import com.kickstarter.ui.extensions.hideKeyboard
import com.kickstarter.ui.extensions.showSnackbar
import com.kickstarter.ui.extensions.startCreatorBioWebViewActivity
import com.kickstarter.ui.extensions.startCreatorDashboardActivity
import com.kickstarter.ui.extensions.startProjectUpdatesActivity
import com.kickstarter.ui.extensions.startRootCommentsActivity
import com.kickstarter.ui.extensions.startUpdatesActivity
import com.kickstarter.ui.fragments.BackingFragment
Expand Down Expand Up @@ -265,7 +268,12 @@ class ProjectPageActivity :
.observeOn(AndroidSchedulers.mainThread())
.subscribe { showPledgeFragment(it) }

this.viewModel.outputs.startCampaignWebViewActivity()
.compose(bindToLifecycle())
.observeOn(AndroidSchedulers.mainThread())
.subscribe { this.startCampaignWebViewActivity(it) }

// TODO: delete this is now on view ProjectPageViewModel it lives on the Overview now
this.viewModel.outputs.startRootCommentsActivity()
.compose(bindToLifecycle())
.observeOn(AndroidSchedulers.mainThread())
Expand Down Expand Up @@ -299,6 +307,24 @@ class ProjectPageActivity :
)
}

// TODO: delete this is now on view ProjectPageViewModel it lives on the Overview now
this.viewModel.outputs.startCreatorBioWebViewActivity()
.compose(bindToLifecycle())
.observeOn(AndroidSchedulers.mainThread())
.subscribe { startCreatorBioWebViewActivity(it) }

// TODO: delete this is now on view ProjectPageViewModel it lives on the Overview now
this.viewModel.outputs.startCreatorDashboardActivity()
.compose(bindToLifecycle())
.observeOn(AndroidSchedulers.mainThread())
.subscribe { startCreatorDashboardActivity(it) }

// TODO: delete this is now on view ProjectPageViewModel it lives on the Overview now
this.viewModel.outputs.startProjectUpdatesActivity()
.compose(bindToLifecycle())
.observeOn(AndroidSchedulers.mainThread())
.subscribe { startProjectUpdatesActivity(it) }

this.viewModel.outputs.startLoginToutActivity()
.compose(bindToLifecycle())
.observeOn(AndroidSchedulers.mainThread())
Expand Down Expand Up @@ -705,6 +731,13 @@ class ProjectPageActivity :
backingFragment()?.pledgeSuccessfullyUpdated()
}

private fun startCampaignWebViewActivity(projectData: ProjectData) {
val intent = Intent(this, CampaignDetailsActivity::class.java)
.putExtra(IntentKey.PROJECT_DATA, projectData)
startActivityForResult(intent, ActivityRequestCodes.SHOW_REWARDS)
overridePendingTransition(R.anim.slide_in_right, R.anim.fade_out_slide_out_left)
}

private fun startShareIntent(projectNameAndShareUrl: Pair<String, String>) {
val name = projectNameAndShareUrl.first
val shareMessage = this.ksString.format(getString(this.projectShareCopyString), "project_title", name)
Expand Down
11 changes: 5 additions & 6 deletions app/src/main/java/com/kickstarter/ui/extensions/ActivityExt.kt
Expand Up @@ -10,7 +10,11 @@ import com.google.android.play.core.review.ReviewInfo
import com.google.android.play.core.review.ReviewManagerFactory
import com.kickstarter.R
import com.kickstarter.libs.utils.TransitionUtils
import com.kickstarter.libs.utils.extensions.*
import com.kickstarter.libs.utils.extensions.getCreatorBioWebViewActivityIntent
import com.kickstarter.libs.utils.extensions.getCreatorDashboardActivityIntent
import com.kickstarter.libs.utils.extensions.getProjectUpdatesActivityIntent
import com.kickstarter.libs.utils.extensions.getRootCommentsActivityIntent
import com.kickstarter.libs.utils.extensions.getUpdatesActivityIntent
import com.kickstarter.models.Project
import com.kickstarter.ui.data.ProjectData
import timber.log.Timber
Expand Down Expand Up @@ -88,11 +92,6 @@ fun Activity.startRootCommentsActivity(projectAndData: Pair<Project, ProjectData
}
}

fun Activity.startCampaignWebViewActivity(projectData: ProjectData) {
startActivity(Intent().getCampaignDetailsActivityIntent(this, projectData = projectData))
overridePendingTransition(R.anim.slide_in_right, R.anim.fade_out_slide_out_left)
}

fun Activity.startCreatorDashboardActivity(project: Project) {
startActivity(Intent().getCreatorDashboardActivityIntent(this, project))
overridePendingTransition(R.anim.slide_in_right, R.anim.fade_out_slide_out_left)
Expand Down
Expand Up @@ -33,7 +33,10 @@ import com.kickstarter.ui.ArgumentsKey
import com.kickstarter.ui.IntentKey
import com.kickstarter.ui.activities.ProjectSocialActivity
import com.kickstarter.ui.data.ProjectData
import com.kickstarter.ui.extensions.*
import com.kickstarter.ui.extensions.startCreatorBioWebViewActivity
import com.kickstarter.ui.extensions.startCreatorDashboardActivity
import com.kickstarter.ui.extensions.startProjectUpdatesActivity
import com.kickstarter.ui.extensions.startRootCommentsActivity
import com.kickstarter.viewmodels.projectpage.ProjectOverviewViewModel
import com.squareup.picasso.Picasso
import org.joda.time.DateTime
Expand Down Expand Up @@ -330,13 +333,6 @@ class ProjectOverviewFragment : BaseFragment<ProjectOverviewViewModel.ViewModel>
activity?.startCreatorDashboardActivity(it.project())
}

viewModel.outputs.startCampaignView()
.compose(bindToLifecycle())
.compose(Transformers.observeForUI())
.subscribe {
activity?.startCampaignWebViewActivity(it)
}

binding.projectCreatorDashboardHeader.projectDashboardButton.setOnClickListener {
this.viewModel.inputs.creatorDashboardClicked()
}
Expand Down
Expand Up @@ -722,19 +722,6 @@ interface ProjectOverviewViewModel {
creatorDashBoardView = projectData
.compose(Transformers.takePairWhen(creatorDashboardClicked))
.map { it.first }

startCampaignView
.filter { it.project().isLive && !it.project().isBacking }
.compose(bindToLifecycle())
.subscribe {
this.analyticEvents.trackCampaignDetailsCTAClicked(it)
}

startCreatorView
.compose(bindToLifecycle())
.subscribe {
this.analyticEvents.trackCreatorDetailsCTA(it)
}
}
}
}
Expand Up @@ -54,6 +54,11 @@ import java.util.concurrent.TimeUnit

interface ProjectPageViewModel {
interface Inputs {
/** Call when the blurb view is clicked. */
fun blurbTextViewClicked()

/** Call when the blurb variant view is clicked. */
fun blurbVariantClicked()

/** Call when the cancel pledge option is clicked. */
fun cancelPledgeClicked()
Expand All @@ -64,6 +69,15 @@ interface ProjectPageViewModel {
/** Call when the contact creator option is clicked. */
fun contactCreatorClicked()

/** Call when the creator dashboard button is clicked. */
fun creatorDashboardButtonClicked()

/** Call when the creator info variant is clicked. */
fun creatorInfoVariantClicked()

/** Call when the creator name is clicked. */
fun creatorNameTextViewClicked()

/** Call when the fix payment method is clicked. */
fun fixPaymentMethodButtonClicked()

Expand Down Expand Up @@ -202,17 +216,29 @@ interface ProjectPageViewModel {
/** Emits when the backing has successfully been updated. */
fun showUpdatePledgeSuccess(): Observable<Void>

/** Emits when we should start the campaign [com.kickstarter.ui.activities.CampaignDetailsActivity]. */
fun startCampaignWebViewActivity(): Observable<ProjectData>

/** Emits when we should start [com.kickstarter.ui.activities.RootCommentsActivity]. */
fun startRootCommentsActivity(): Observable<Pair<Project, ProjectData>>

fun startRootCommentsForCommentsThreadActivity(): Observable<Pair<String, Pair<Project, ProjectData>>>

/** Emits when we should start the creator bio [com.kickstarter.ui.activities.CreatorBioActivity]. */
fun startCreatorBioWebViewActivity(): Observable<Project>

/** Emits when we should start the creator dashboard [com.kickstarter.ui.activities.CreatorDashboardActivity]. */
fun startCreatorDashboardActivity(): Observable<Project>

/** Emits when we should start [com.kickstarter.ui.activities.LoginToutActivity]. */
fun startLoginToutActivity(): Observable<Void>

/** Emits when we should show the [com.kickstarter.ui.activities.MessagesActivity]. */
fun startMessagesActivity(): Observable<Project>

/** Emits when we should start [com.kickstarter.ui.activities.ProjectUpdatesActivity]. */
fun startProjectUpdatesActivity(): Observable<Pair<Project, ProjectData>>

/** Emits when we should start [com.kickstarter.ui.activities.UpdateActivity]. */
fun startProjectUpdateActivity(): Observable< Pair<Pair<String, Boolean>, Pair<Project, ProjectData>>>

Expand Down Expand Up @@ -305,10 +331,14 @@ interface ProjectPageViewModel {
private val showSavedPrompt = PublishSubject.create<Void>()
private val showUpdatePledge = PublishSubject.create<Pair<PledgeData, PledgeReason>>()
private val showUpdatePledgeSuccess = PublishSubject.create<Void>()
private val startCampaignWebViewActivity = PublishSubject.create<ProjectData>()
private val startRootCommentsActivity = PublishSubject.create<Pair<Project, ProjectData>>()
private val startRootCommentsForCommentsThreadActivity = PublishSubject.create<Pair<String, Pair<Project, ProjectData>>>()
private val startCreatorBioWebViewActivity = PublishSubject.create<Project>()
private val startCreatorDashboardActivity = PublishSubject.create<Project>()
private val startLoginToutActivity = PublishSubject.create<Void>()
private val startMessagesActivity = PublishSubject.create<Project>()
private val startProjectUpdatesActivity = PublishSubject.create<Pair<Project, ProjectData>>()
private val startProjectUpdateActivity = PublishSubject.create< Pair<Pair<String, Boolean>, Pair<Project, ProjectData>>>()
private val startProjectUpdateToRepliesDeepLinkActivity = PublishSubject.create< Pair<Pair<String, String>, Pair<Project, ProjectData>>>()
private val startThanksActivity = PublishSubject.create<Pair<CheckoutData, PledgeData>>()
Expand Down Expand Up @@ -487,8 +517,31 @@ interface ProjectPageViewModel {
.compose(bindToLifecycle())
.subscribe(this.showShareSheet)

val blurbClicked = Observable.merge(this.blurbTextViewClicked, this.blurbVariantClicked)

currentProjectData
.compose<ProjectData>(takeWhen(blurbClicked))
.compose(bindToLifecycle())
.subscribe(this.startCampaignWebViewActivity)

val creatorInfoClicked = Observable.merge(this.creatorNameTextViewClicked, this.creatorInfoVariantClicked)

currentProject
.compose<Project>(takeWhen(creatorInfoClicked))
.compose(bindToLifecycle())
.subscribe(this.startCreatorBioWebViewActivity)

val latestProjectAndProjectData = currentProject.compose<Pair<Project, ProjectData>>(combineLatestPair(projectData))

this.commentsTextViewClicked
.withLatestFrom(latestProjectAndProjectData) { _, project ->
project
}
.compose(bindToLifecycle())
.subscribe {
this.startRootCommentsActivity.onNext(it)
}

intent()
.take(1)
.delay(1, TimeUnit.SECONDS, environment.scheduler()) // add delay to wait until activity subscribed to viewmodel
Expand Down Expand Up @@ -557,6 +610,16 @@ interface ProjectPageViewModel {
.compose(bindToLifecycle())
.subscribe { this.startProjectUpdateToRepliesDeepLinkActivity.onNext(it) }

currentProject
.compose<Project>(takeWhen(this.creatorDashboardButtonClicked))
.compose(bindToLifecycle())
.subscribe(this.startCreatorDashboardActivity)

this.updatesTextViewClicked
.withLatestFrom(latestProjectAndProjectData) { _, project -> project }
.compose(bindToLifecycle())
.subscribe(this.startProjectUpdatesActivity)

currentProject
.compose(takeWhen(this.playVideoButtonClicked))
.compose(bindToLifecycle())
Expand Down Expand Up @@ -834,6 +897,27 @@ interface ProjectPageViewModel {
this.analyticEvents.trackPledgeInitiateCTA(it.first)
}

fullProjectDataAndPledgeFlowContext
.map { it.first }
.compose<ProjectData>(takeWhen(blurbClicked))
.filter { it.project().isLive && !it.project().isBacking }
.compose(bindToLifecycle())
.subscribe {
this.analyticEvents.trackCampaignDetailsCTAClicked(it)
}

val shouldTrackCTAClickedEvent = this.pledgeActionButtonText
.map { isPledgeCTA(it) }
.compose<Boolean>(takeWhen(this.nativeProjectActionButtonClicked))

fullProjectDataAndCurrentUser
.map { it.first }
.compose<ProjectData>(takeWhen(creatorInfoClicked))
.filter { it.project().isLive && !it.project().isBacking }
.compose(bindToLifecycle())
.subscribe {
this.analyticEvents.trackCreatorDetailsCTA(it)
}

currentProject
.map { ProjectUtils.metadataForProject(it) }
Expand Down Expand Up @@ -899,6 +983,14 @@ interface ProjectPageViewModel {
this.tabSelected.onNext(position)
}

override fun blurbTextViewClicked() {
this.blurbTextViewClicked.onNext(null)
}

override fun blurbVariantClicked() {
this.blurbVariantClicked.onNext(null)
}

override fun cancelPledgeClicked() {
this.cancelPledgeClicked.onNext(null)
}
Expand All @@ -911,6 +1003,18 @@ interface ProjectPageViewModel {
this.contactCreatorClicked.onNext(null)
}

override fun creatorDashboardButtonClicked() {
this.creatorDashboardButtonClicked.onNext(null)
}

override fun creatorInfoVariantClicked() {
this.creatorInfoVariantClicked.onNext(null)
}

override fun creatorNameTextViewClicked() {
this.creatorNameTextViewClicked.onNext(null)
}

override fun fixPaymentMethodButtonClicked() {
this.fixPaymentMethodButtonClicked.onNext(null)
}
Expand Down Expand Up @@ -1061,13 +1165,22 @@ interface ProjectPageViewModel {
@NonNull
override fun showUpdatePledgeSuccess(): Observable<Void> = this.showUpdatePledgeSuccess

@NonNull
override fun startCampaignWebViewActivity(): Observable<ProjectData> = this.startCampaignWebViewActivity

@NonNull
override fun startRootCommentsActivity(): Observable<Pair<Project, ProjectData>> = this.startRootCommentsActivity

@NonNull
override fun startRootCommentsForCommentsThreadActivity(): Observable<Pair<String, Pair<Project, ProjectData>>> =
this.startRootCommentsForCommentsThreadActivity

@NonNull
override fun startCreatorBioWebViewActivity(): Observable<Project> = this.startCreatorBioWebViewActivity

@NonNull
override fun startCreatorDashboardActivity(): Observable<Project> = this.startCreatorDashboardActivity

@NonNull
override fun startLoginToutActivity(): Observable<Void> = this.startLoginToutActivity

Expand All @@ -1077,6 +1190,9 @@ interface ProjectPageViewModel {
@NonNull
override fun startThanksActivity(): Observable<Pair<CheckoutData, PledgeData>> = this.startThanksActivity

@NonNull
override fun startProjectUpdatesActivity(): Observable<Pair<Project, ProjectData>> = this.startProjectUpdatesActivity

@NonNull
override fun startProjectUpdateActivity(): Observable<Pair<Pair<String, Boolean>, Pair<Project, ProjectData>>> = this.startProjectUpdateActivity

Expand Down

0 comments on commit aeeb63f

Please sign in to comment.