Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
NTV-365 Migrate to Kotlin
DiscoveryAdapter.java
(#1531)
* Rename .java to .kt * Migrate to Kotlin `DiscoveryAdapter.java` * Add Discovery sections adapter * Update DiscoveryOnboardingViewHolder * Update DiscoveryFragment with Discovery adapters * Remove DiscoveryAdapter * Update format * rename object * update ActivitySampleFriendBackingViewHolder * update ActivitySampleFriendBackingViewHolder ActivitySampleProjectViewHolder * Add viewModels to viewholders * Add viewModels test * Add viewModels test * Solve viewmodel issue
- Loading branch information
Showing
18 changed files
with
662 additions
and
236 deletions.
There are no files selected for viewing
95 changes: 95 additions & 0 deletions
95
app/src/main/java/com/kickstarter/ui/adapters/DiscoveryActivitySampleAdapter.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
package com.kickstarter.ui.adapters | ||
|
||
import android.view.LayoutInflater | ||
import android.view.ViewGroup | ||
import androidx.annotation.LayoutRes | ||
import com.kickstarter.R | ||
import com.kickstarter.databinding.ActivitySampleFriendBackingViewBinding | ||
import com.kickstarter.databinding.ActivitySampleFriendFollowViewBinding | ||
import com.kickstarter.databinding.ActivitySampleProjectViewBinding | ||
import com.kickstarter.databinding.EmptyViewBinding | ||
import com.kickstarter.models.Activity | ||
import com.kickstarter.ui.viewholders.ActivitySampleFriendBackingViewHolder | ||
import com.kickstarter.ui.viewholders.ActivitySampleFriendFollowViewHolder | ||
import com.kickstarter.ui.viewholders.ActivitySampleProjectViewHolder | ||
import com.kickstarter.ui.viewholders.EmptyViewHolder | ||
import com.kickstarter.ui.viewholders.KSViewHolder | ||
|
||
class DiscoveryActivitySampleAdapter(private val delegate: Delegate) : KSListAdapter() { | ||
interface Delegate : | ||
ActivitySampleFriendFollowViewHolder.Delegate, | ||
ActivitySampleFriendBackingViewHolder.Delegate, | ||
ActivitySampleProjectViewHolder.Delegate | ||
|
||
fun takeActivity(activity: Activity?) { | ||
activity?.let { | ||
setSection(SECTION_ACTIVITY_SAMPLE_VIEW, listOf(activity)) | ||
} | ||
submitList(items()) | ||
} | ||
|
||
@LayoutRes | ||
override fun layout(sectionRow: SectionRow): Int { | ||
return if (objectFromSectionRow(sectionRow) is Activity) { | ||
val activity = objectFromSectionRow(sectionRow) as Activity | ||
return when { | ||
activity.category() == Activity.CATEGORY_BACKING -> { | ||
R.layout.activity_sample_friend_backing_view | ||
} | ||
activity.category() == Activity.CATEGORY_FOLLOW -> { | ||
R.layout.activity_sample_friend_follow_view | ||
} | ||
else -> { | ||
R.layout.activity_sample_project_view | ||
} | ||
} | ||
} else { | ||
R.layout.empty_view | ||
} | ||
} | ||
|
||
override fun viewHolder(@LayoutRes layout: Int, viewGroup: ViewGroup): KSViewHolder { | ||
return when (layout) { | ||
R.layout.activity_sample_friend_backing_view -> ActivitySampleFriendBackingViewHolder( | ||
ActivitySampleFriendBackingViewBinding.inflate( | ||
LayoutInflater.from(viewGroup.context), | ||
viewGroup, | ||
false | ||
), | ||
delegate | ||
) | ||
R.layout.activity_sample_friend_follow_view -> ActivitySampleFriendFollowViewHolder( | ||
ActivitySampleFriendFollowViewBinding.inflate( | ||
LayoutInflater.from(viewGroup.context), | ||
viewGroup, | ||
false | ||
), | ||
delegate | ||
) | ||
R.layout.activity_sample_project_view -> ActivitySampleProjectViewHolder( | ||
ActivitySampleProjectViewBinding.inflate( | ||
LayoutInflater.from(viewGroup.context), | ||
viewGroup, | ||
false | ||
), | ||
delegate | ||
) | ||
else -> EmptyViewHolder( | ||
EmptyViewBinding.inflate( | ||
LayoutInflater.from( | ||
viewGroup.context | ||
), | ||
viewGroup, false | ||
) | ||
) | ||
} | ||
} | ||
|
||
companion object { | ||
private const val SECTION_ACTIVITY_SAMPLE_VIEW = 0 | ||
} | ||
|
||
init { | ||
insertSection(SECTION_ACTIVITY_SAMPLE_VIEW, emptyList<Activity>()) | ||
} | ||
} |
135 changes: 0 additions & 135 deletions
135
app/src/main/java/com/kickstarter/ui/adapters/DiscoveryAdapter.java
This file was deleted.
Oops, something went wrong.
42 changes: 42 additions & 0 deletions
42
app/src/main/java/com/kickstarter/ui/adapters/DiscoveryEditorialAdapter.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
package com.kickstarter.ui.adapters | ||
import android.view.LayoutInflater | ||
import android.view.ViewGroup | ||
import androidx.annotation.LayoutRes | ||
import com.kickstarter.R | ||
import com.kickstarter.databinding.ItemLightsOnBinding | ||
import com.kickstarter.ui.data.Editorial | ||
import com.kickstarter.ui.viewholders.EditorialViewHolder | ||
import com.kickstarter.ui.viewholders.KSViewHolder | ||
|
||
class DiscoveryEditorialAdapter(private val delegate: Delegate) : KSListAdapter() { | ||
interface Delegate : EditorialViewHolder.Delegate | ||
|
||
fun setShouldShowEditorial(editorial: Editorial?) { | ||
if (editorial == null) { | ||
setSection(SECTION_EDITORIAL_VIEW, emptyList<Any>()) | ||
} else { | ||
setSection(SECTION_EDITORIAL_VIEW, listOf(editorial)) | ||
} | ||
submitList(items()) | ||
} | ||
override fun layout(sectionRow: SectionRow): Int = R.layout.item_lights_on | ||
|
||
override fun viewHolder(@LayoutRes layout: Int, viewGroup: ViewGroup): KSViewHolder { | ||
return EditorialViewHolder( | ||
ItemLightsOnBinding.inflate( | ||
LayoutInflater.from(viewGroup.context), | ||
viewGroup, | ||
false | ||
), | ||
delegate | ||
) | ||
} | ||
|
||
companion object { | ||
private const val SECTION_EDITORIAL_VIEW = 0 | ||
} | ||
|
||
init { | ||
insertSection(SECTION_EDITORIAL_VIEW, emptyList<Editorial>()) | ||
} | ||
} |
44 changes: 44 additions & 0 deletions
44
app/src/main/java/com/kickstarter/ui/adapters/DiscoveryOnboardingAdapter.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
package com.kickstarter.ui.adapters | ||
|
||
import android.view.LayoutInflater | ||
import android.view.ViewGroup | ||
import androidx.annotation.LayoutRes | ||
import com.kickstarter.R | ||
import com.kickstarter.databinding.DiscoveryOnboardingViewBinding | ||
import com.kickstarter.ui.viewholders.DiscoveryOnboardingViewHolder | ||
import com.kickstarter.ui.viewholders.KSViewHolder | ||
|
||
class DiscoveryOnboardingAdapter(private val delegate: Delegate) : KSListAdapter() { | ||
interface Delegate : | ||
DiscoveryOnboardingViewHolder.Delegate | ||
|
||
fun setShouldShowOnboardingView(shouldShowOnboardingView: Boolean) { | ||
if (shouldShowOnboardingView) { | ||
setSection(SECTION_ONBOARDING_VIEW, listOf(true)) | ||
} else { | ||
setSection(SECTION_ONBOARDING_VIEW, emptyList<Boolean>()) | ||
} | ||
submitList(items()) | ||
} | ||
|
||
override fun layout(sectionRow: SectionRow): Int = R.layout.discovery_onboarding_view | ||
|
||
override fun viewHolder(@LayoutRes layout: Int, viewGroup: ViewGroup): KSViewHolder { | ||
return DiscoveryOnboardingViewHolder( | ||
DiscoveryOnboardingViewBinding.inflate( | ||
LayoutInflater.from(viewGroup.context), | ||
viewGroup, | ||
false | ||
), | ||
delegate | ||
) | ||
} | ||
|
||
companion object { | ||
private const val SECTION_ONBOARDING_VIEW = 0 | ||
} | ||
|
||
init { | ||
insertSection(SECTION_ONBOARDING_VIEW, emptyList<Boolean>()) | ||
} | ||
} |
42 changes: 42 additions & 0 deletions
42
app/src/main/java/com/kickstarter/ui/adapters/DiscoveryProjectCardAdapter.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
package com.kickstarter.ui.adapters | ||
|
||
import android.util.Pair | ||
import android.view.LayoutInflater | ||
import android.view.ViewGroup | ||
import androidx.annotation.LayoutRes | ||
import com.kickstarter.R | ||
import com.kickstarter.databinding.ProjectCardViewBinding | ||
import com.kickstarter.models.Project | ||
import com.kickstarter.services.DiscoveryParams | ||
import com.kickstarter.ui.viewholders.KSViewHolder | ||
import com.kickstarter.ui.viewholders.ProjectCardViewHolder | ||
|
||
class DiscoveryProjectCardAdapter(private val delegate: Delegate) : KSListAdapter() { | ||
interface Delegate : | ||
ProjectCardViewHolder.Delegate | ||
|
||
fun takeProjects(projects: List<Pair<Project, DiscoveryParams>>) { | ||
setSection(SECTION_PROJECT_CARD_VIEW, projects) | ||
submitList(items()) | ||
} | ||
override fun layout(sectionRow: SectionRow): Int = R.layout.project_card_view | ||
|
||
override fun viewHolder(@LayoutRes layout: Int, viewGroup: ViewGroup): KSViewHolder { | ||
return ProjectCardViewHolder( | ||
ProjectCardViewBinding.inflate( | ||
LayoutInflater.from(viewGroup.context), | ||
viewGroup, | ||
false | ||
), | ||
delegate | ||
) | ||
} | ||
|
||
companion object { | ||
private const val SECTION_PROJECT_CARD_VIEW = 0 | ||
} | ||
|
||
init { | ||
insertSection(SECTION_PROJECT_CARD_VIEW, emptyList<Pair<Project, DiscoveryParams>>()) | ||
} | ||
} |
Oops, something went wrong.