Fix issue 1034 (received images can't be viewed in native gallery right after being downloaded)

This commit is contained in:
Sylvain Berfini 2013-11-29 11:24:57 +01:00
parent 5d9f5a3a7f
commit 24bf8520ed
2 changed files with 11 additions and 4 deletions

View file

@ -392,7 +392,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
private void displayImageMessage(int id, Bitmap image, long time, boolean isIncoming, LinphoneChatMessage.State status, RelativeLayout layout, final String url, boolean show) {
id = checkId(id);
BubbleChat bubble = new BubbleChat(layout.getContext(), id, null, image, time, isIncoming, status, url, previousMessageID);
final BubbleChat bubble = new BubbleChat(layout.getContext(), id, null, image, time, isIncoming, status, url, previousMessageID);
if (!isIncoming) {
lastSentMessageBubble = bubble;
}
@ -411,7 +411,8 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
final Bitmap bm = ChatFragment.downloadImage(url);
if (bm != null) {
if (useLinphoneMessageStorage) {
saveImage(bm, finalId, null);
String newFileUrl = saveImage(bm, finalId, null);
bubble.updateUrl(newFileUrl);
} else {
LinphoneActivity.instance().getChatStorage().saveImage(finalId, bm);
}

View file

@ -88,9 +88,11 @@ public class BubbleChat {
private RelativeLayout view;
private ImageView statusView;
private Button downloadOrShow;
private String imageUrl;
public BubbleChat(final Context context, int id, String message, Bitmap image, long time, boolean isIncoming, LinphoneChatMessage.State status, final String url, int previousID) {
public BubbleChat(final Context context, int id, String message, Bitmap image, long time, boolean isIncoming, LinphoneChatMessage.State status, String url, int previousID) {
view = new RelativeLayout(context);
imageUrl = url;
LayoutParams layoutParams = new LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
@ -156,7 +158,7 @@ public class BubbleChat {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("file://" + url), "image/*");
intent.setDataAndType(Uri.parse("file://" + imageUrl), "image/*");
context.startActivity(intent);
}
});
@ -292,4 +294,8 @@ public class BubbleChat {
downloadOrShow.setText(buttonName);
}
}
public void updateUrl(String newFileUrl) {
imageUrl = newFileUrl;
}
}