'Refactoring File

I have a problem of refactoring file into a package when I got 'One type argument expected for class Result' after a refactor HomeActivity, HomeView, and HomeAdapter into a package called presentation. Here is the problem: [1]: https://i.stack.imgur.com/HI6vr.png Error 'One type argument expected for class Result'

And here is the code:

HomeActivity:

package id.kotlin.belajar.presentation


import android.util.Log
import android.view.View
import android.widget.ProgressBar
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.RecyclerView
import id.kotlin.belajar.R
import id.kotlin.belajar.presentation.HomeView
import id.kotlin.belajar.presentation.HomeAdapter
import id.kotlin.belajar.data.HomeDataSource
import id.kotlin.belajar.data.HomeResponse


class HomeActivity : AppCompatActivity(), HomeView {
    private lateinit var progressBar: ProgressBar
    private lateinit var recyclerView: RecyclerView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_home)

        progressBar = findViewById(R.id.pb_home)
        recyclerView = findViewById(R.id.rv_home)

        val presenter = HomePresenter(this)
        presenter.discoverMovie()
    }

    override fun onShowLoading() {
        progressBar.visibility = View.VISIBLE
    }
    override fun onHideLoading() {
        progressBar.visibility = View.GONE
        recyclerView.visibility = View.VISIBLE
    }

    override fun onResponse(results: List<Result>) {
        recyclerView.addItemDecoration(DividerItemDecoration(this@HomeActivity, 
        DividerItemDecoration.VERTICAL))
        recyclerView.adapter = HomeAdapter(results)
    }

    override fun onFailure(t:Throwable) {
        Log.e(HomeActivity::class.java.simpleName, "${t.printStackTrace()}")
    }
}

HomeAdapter:

package id.kotlin.belajar.presentation

import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import id.kotlin.belajar.R
import id.kotlin.belajar.presentation.HomeView
import id.kotlin.belajar.data.HomeDataSource
import id.kotlin.belajar.data.HomeResponse


class HomeAdapter (private val results: List<Result>): RecyclerView.Adapter<HomeAdapter.HomeViewHolder>(){

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): HomeViewHolder {
        return HomeViewHolder(
            LayoutInflater
                .from(parent.context).inflate(
                    R.layout.item_home,
                    parent,
                    false
                )
        )
    }

    override fun onBindViewHolder(holder: HomeViewHolder, position: Int){
        holder.bind(results[holder.adapterPosition])
    }
    override fun getItemCount(): Int{
        return results.count()
    }

    inner class HomeViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView){
        fun bind(result: Result){
            with(itemView) {
                val name = findViewById<TextView>(R.id.original_title)
                name.text = result.title

                val country = findViewById<TextView>(R.id.overview)
                country.text = result.overview
            }
        }

  }
}

HomeView:

package id.kotlin.belajar.presentation



interface HomeView {
    fun onShowLoading()
    fun onHideLoading()
    fun onResponse(results: List<Result>)
    fun onFailure(t: Throwable)
}

I have added some import code path to get access on those program files, but there is no effect to it. I need help, as I'm still beginner of mobile programming



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source