diff --git a/samples/kaspresso-sample/src/androidTest/kotlin/com/kaspersky/kaspressample/recycler/RecyclerScreen.kt b/samples/kaspresso-sample/src/androidTest/kotlin/com/kaspersky/kaspressample/recycler/RecyclerScreen.kt new file mode 100644 index 000000000..f197ac250 --- /dev/null +++ b/samples/kaspresso-sample/src/androidTest/kotlin/com/kaspersky/kaspressample/recycler/RecyclerScreen.kt @@ -0,0 +1,12 @@ +package com.kaspersky.kaspressample.recycler + +import com.kaspersky.kaspressample.R +import com.kaspersky.kaspresso.screens.KScreen +import io.github.kakaocup.kakao.recycler.KRecyclerView + +object RecyclerScreen : KScreen() { + override val layoutId: Int = R.layout.fragment_recycler + override val viewClass: Class<*> = RecyclerFragment::class.java + + val recycler = KRecyclerView(builder = { withId(R.id.recycler) }, {}) +} diff --git a/samples/kaspresso-sample/src/androidTest/kotlin/com/kaspersky/kaspressample/recycler/RecyclerTest.kt b/samples/kaspresso-sample/src/androidTest/kotlin/com/kaspersky/kaspressample/recycler/RecyclerTest.kt new file mode 100644 index 000000000..31f2ee82d --- /dev/null +++ b/samples/kaspresso-sample/src/androidTest/kotlin/com/kaspersky/kaspressample/recycler/RecyclerTest.kt @@ -0,0 +1,22 @@ +package com.kaspersky.kaspressample.recycler + +import androidx.fragment.app.testing.launchFragmentInContainer +import com.kaspersky.kaspressample.R +import com.kaspersky.kaspresso.testcases.api.testcase.TestCase +import org.junit.Test + +class RecyclerTest : TestCase() { + @Test + fun test() = before { + launchFragmentInContainer(themeResId = R.style.AppTheme) + }.after { + }.run { + RecyclerScreen { + recycler { + scrollTo(15) + scrollToEnd() + scrollToStart() + } + } + } +} diff --git a/samples/kaspresso-sample/src/main/kotlin/com/kaspersky/kaspressample/recycler/RecyclerAdapter.kt b/samples/kaspresso-sample/src/main/kotlin/com/kaspersky/kaspressample/recycler/RecyclerAdapter.kt new file mode 100644 index 000000000..7219f9fbe --- /dev/null +++ b/samples/kaspresso-sample/src/main/kotlin/com/kaspersky/kaspressample/recycler/RecyclerAdapter.kt @@ -0,0 +1,31 @@ +package com.kaspersky.kaspressample.recycler + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.kaspersky.kaspressample.R + +class RecyclerAdapter : RecyclerView.Adapter() { + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerViewHolder { + val view = LayoutInflater.from(parent.context).inflate(R.layout.item_recycler, parent, false) + return RecyclerViewHolder(view) + } + + override fun getItemCount() = ITEMS_COUNT + + override fun onBindViewHolder(holder: RecyclerViewHolder, position: Int) = holder.bind(position) + + class RecyclerViewHolder(view: View) : RecyclerView.ViewHolder(view) { + private val textView: TextView by lazy { view.findViewById(R.id.textView) } + + fun bind(position: Int) { + textView.text = position.toString() + } + } + + companion object { + private const val ITEMS_COUNT = 30 + } +} diff --git a/samples/kaspresso-sample/src/main/kotlin/com/kaspersky/kaspressample/recycler/RecyclerFragment.kt b/samples/kaspresso-sample/src/main/kotlin/com/kaspersky/kaspressample/recycler/RecyclerFragment.kt new file mode 100644 index 000000000..4832c3541 --- /dev/null +++ b/samples/kaspresso-sample/src/main/kotlin/com/kaspersky/kaspressample/recycler/RecyclerFragment.kt @@ -0,0 +1,18 @@ +package com.kaspersky.kaspressample.recycler + +import android.os.Bundle +import android.view.View +import androidx.fragment.app.Fragment +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.kaspersky.kaspressample.R + +class RecyclerFragment : Fragment(R.layout.fragment_recycler) { + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + view.findViewById(R.id.recycler).run { + layoutManager = LinearLayoutManager(view.context) + adapter = RecyclerAdapter() + } + } +} diff --git a/samples/kaspresso-sample/src/main/res/layout/fragment_recycler.xml b/samples/kaspresso-sample/src/main/res/layout/fragment_recycler.xml new file mode 100644 index 000000000..8ccdf8217 --- /dev/null +++ b/samples/kaspresso-sample/src/main/res/layout/fragment_recycler.xml @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/samples/kaspresso-sample/src/main/res/layout/item_recycler.xml b/samples/kaspresso-sample/src/main/res/layout/item_recycler.xml new file mode 100644 index 000000000..004ef917a --- /dev/null +++ b/samples/kaspresso-sample/src/main/res/layout/item_recycler.xml @@ -0,0 +1,16 @@ + + + + + \ No newline at end of file