title: DiffUtil is not updating the RecyclerView
body: <p>I have made an adapter for a recyclerView and used DiffUtil to show the updation of the list in a fancier way. I used google codelabs for a reference for this. But the list is not updating from the following code. Please help</p>
  
  <pre><code>class LaptopAdapter : ListAdapter&lt;Laptop, LaptopAdapter.ViewHolder&gt;(Diff()) {
  
      override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
          return ViewHolder.from(parent)
      }
  
      override fun onBindViewHolder(holder: ViewHolder, position: Int) {
          val item = getItem(position)
          holder.bind(item)
      }
  
      class ViewHolder private constructor(itemView: View) : RecyclerView.ViewHolder(itemView) {
          var ramText: TextView = itemView.findViewById(R.id.ramText)
          var diskText: TextView = itemView.findViewById(R.id.diskText)
          var screenText: TextView = itemView.findViewById(R.id.screenText)
          var osText: TextView = itemView.findViewById(R.id.osText)
  
          fun bind(item: Laptop) {
              ramText.text = item.ram.toString()
              diskText.text = item.disk
              screenText.text = item.screen.toString()
              osText.text = item.os
          }
  
          companion object {
              fun from(parent: ViewGroup) =
                      ViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.item, parent, false))
          }
      }
  }
  
  class Diff : DiffUtil.ItemCallback&lt;Laptop&gt;() {
      override fun areItemsTheSame(oldItem: Laptop, newItem: Laptop): Boolean {
          return oldItem.id == newItem.id
      }
  
      override fun areContentsTheSame(oldItem: Laptop, newItem: Laptop): Boolean {
          return oldItem == newItem
      }
  }
  </code></pre>
  
  <p>My MainActivity file is</p>
  
  <pre><code>setContentView(R.layout.activity_main)
  
          val list: ArrayList&lt;Laptop&gt; = ArrayList()
          list.add(Laptop(11, 4, "SSD", 14, "Windows"))
          list.add(Laptop(12, 4, "HDD", 14, "Ubuntu"))
          list.add(Laptop(17, 16, "SSD", 14, "Windows"))
          list.add(Laptop(13, 8, "SSD", 14, "Windows"))
  
          val rv: RecyclerView = findViewById(R.id.rv)
          rv.layoutManager = LinearLayoutManager(this)
          val adapter = LaptopAdapter()
          rv.adapter = adapter
          adapter.submitList(list)
  
          val btn: Button = findViewById(R.id.btn)
          btn.setOnClickListener {
              list.add(Laptop(15, 12, "HDD", 12, "DOS"))
              list.sortBy {
                  it.ram
              }
              adapter.submitList(list)
          }
  </code></pre>
  
  <p>I tried previous stackOverflow answers and none were working. Please help</p>