title: Update recycler view adapter on Observable emission
body: <p>While working on chat application a necessity of image handling - its download and upload - has been faced. Handling itself is done with help of Observables of RxJava2; while commands for downloads or uploads are done from OnBindViewHolder() of RecyclerView Adapter.</p>
  
  <pre><code>override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
      if (currentlyUsedPositionToMessageMap.containsKey(position)) {
          val message = currentlyUsedPositionToMessageMap[position]
          when (message) {
              is TextMessage -&gt; (holder as TextMessageViewHolder).bind(message)
              is ImageMessage -&gt; (holder as ImageMessageViewHolder).bind(message)
          }
      } else {
          val (messageType, downloadableMessage) = downloadableMessages[position]
  
          disposables += downloadableMessage                    //Observable
              .subscribeBy(
                  onNext = {
                      currentlyUsedPositionToMessageMap[position] = it
                      notifyItemChanged(position)
                  },
                  onError = {
                      Log.e(LOG_TAG, Log.getStackTraceString(it))
                  }
              )
  
          when (messageType){
              "image" -&gt; (holder as ImageMessageViewHolder).showDefaultAnimation()
              "text" -&gt; (holder as TextMessageViewHolder).showDefaultAnimation()
          }
      }
  }
  </code></pre>
  
  <p><strong>The idea for code above is:</strong> if image(or text) has been already downloaded fill in ViewHolder with data else set download task and make ViewHolder show some default animation.</p>
  
  <p><strong>Problem faced:</strong> no ability to update visible ViewHolders after downloaded task has been done because notifyItemChanged(position) causes following error:</p>
  
  <pre><code>java.lang.IllegalStateException: Cannot call this method while RecyclerView is computing a layout or scrolling androidx.recyclerview.widget.RecyclerView
  </code></pre>
  
  <p>So, how can I resolve this Exception? In other words, <strong>how can I update ViewHolder at [position] (if it is visible) after successful Image download with downloaded Image?</strong></p>