fix off-thread UI interactions in ConversationItem

Fixes #2966
Closes #2973

// FREEBIE
This commit is contained in:
Jake McGinty 2015-04-13 10:30:22 -07:00 committed by Moxie Marlinspike
parent cb84cc39ce
commit 7aaedf500f

View File

@ -42,6 +42,7 @@ import android.widget.Toast;
import com.afollestad.materialdialogs.AlertDialogWrapper;
import org.thoughtcrime.securesms.ConversationFragment.SelectionClickListener;
import org.thoughtcrime.securesms.components.BubbleContainer;
import org.thoughtcrime.securesms.components.ForegroundImageView;
import org.thoughtcrime.securesms.contacts.ContactPhotoFactory;
import org.thoughtcrime.securesms.crypto.MasterSecret;
@ -59,12 +60,10 @@ import org.thoughtcrime.securesms.mms.PartAuthority;
import org.thoughtcrime.securesms.mms.Slide;
import org.thoughtcrime.securesms.mms.SlideDeck;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.components.BubbleContainer;
import org.thoughtcrime.securesms.util.DateUtils;
import org.thoughtcrime.securesms.util.Emoji;
import org.thoughtcrime.securesms.util.FutureTaskListener;
import org.thoughtcrime.securesms.util.ListenableFutureTask;
import org.thoughtcrime.securesms.util.ResUtil;
import java.util.Set;
@ -626,6 +625,9 @@ public class ConversationItem extends LinearLayout {
public void onSuccess(final SlideDeck slideDeck) {
if (slideDeck == null) return;
handler.post(new Runnable() {
@Override
public void run() {
Slide slide = slideDeck.getThumbnailSlide(context);
if (slide != null) {
thumbnailFuture = slide.getThumbnail(context);
@ -640,11 +642,18 @@ public class ConversationItem extends LinearLayout {
}
mediaThumbnail.hide();
}
});
}
@Override
public void onFailure(Throwable error) {
Log.w(TAG, error);
handler.post(new Runnable() {
@Override
public void run() {
mediaThumbnail.hide();
}
});
}
}
}