@@ -115,8 +115,16 @@ public void addDescription(UploadMediaDetail uploadMediaDetail) {
115115 */
116116 public void removeDescription (final UploadMediaDetail uploadMediaDetail , final int position ) {
117117 selectedLanguages .remove (position );
118- this .uploadMediaDetails .remove (uploadMediaDetail );
118+ final int ListPosition =
119+ (int ) selectedLanguages .keySet ().stream ().filter (e -> e < position ).count ();
120+ this .uploadMediaDetails .remove (uploadMediaDetails .get (ListPosition ));
121+ int i = position + 1 ;
122+ while (selectedLanguages .containsKey (i )) {
123+ selectedLanguages .remove (i );
124+ i ++;
125+ }
119126 notifyItemRemoved (position );
127+ notifyItemRangeChanged (position , uploadMediaDetails .size () - position );
120128 }
121129
122130 public class ViewHolder extends RecyclerView .ViewHolder {
@@ -140,6 +148,10 @@ public class ViewHolder extends RecyclerView.ViewHolder {
140148 @ BindView (R .id .btn_remove )
141149 ImageView removeButton ;
142150
151+ AbstractTextWatcher captionListener ;
152+
153+ AbstractTextWatcher descriptionListener ;
154+
143155 public ViewHolder (View itemView ) {
144156 super (itemView );
145157 ButterKnife .bind (this , itemView );
@@ -157,6 +169,8 @@ public void bind(int position) {
157169 eventListener .onPrimaryCaptionTextChange (value .length () != 0 );
158170 }
159171 }));
172+ captionItemEditText .removeTextChangedListener (captionListener );
173+ descItemEditText .removeTextChangedListener (descriptionListener );
160174 captionItemEditText .setText (uploadMediaDetail .getCaptionText ());
161175 descItemEditText .setText (uploadMediaDetail .getDescriptionText ());
162176
@@ -182,13 +196,14 @@ public void bind(int position) {
182196 }
183197
184198 removeButton .setOnClickListener (v -> removeDescription (uploadMediaDetail , position ));
185-
186- captionItemEditText .addTextChangedListener (new AbstractTextWatcher (
187- captionText -> uploadMediaDetails .get (position ).setCaptionText (captionText )));
199+ captionListener = new AbstractTextWatcher (
200+ captionText -> uploadMediaDetails .get (position ).setCaptionText (captionText ));
201+ descriptionListener = new AbstractTextWatcher (
202+ descriptionText -> uploadMediaDetails .get (position ).setDescriptionText (descriptionText ));
203+ captionItemEditText .addTextChangedListener (captionListener );
188204 initLanguage (position , uploadMediaDetail );
189205
190- descItemEditText .addTextChangedListener (new AbstractTextWatcher (
191- descriptionText -> uploadMediaDetails .get (position ).setDescriptionText (descriptionText )));
206+ descItemEditText .addTextChangedListener (descriptionListener );
192207 initLanguage (position , uploadMediaDetail );
193208
194209 //If the description was manually added by the user, it deserves focus, if not, let the user decide
0 commit comments