Fix issues 1030 and 1033 (auto scroll when keyboard is showed + can't open sent image just right after

This commit is contained in:
Sylvain Berfini 2013-11-29 11:13:46 +01:00
parent 05af39683d
commit 5d9f5a3a7f

View file

@ -269,13 +269,13 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
public void showKeyboardVisibleMode() { public void showKeyboardVisibleMode() {
LinphoneActivity.instance().hideMenu(true); LinphoneActivity.instance().hideMenu(true);
contactPicture.setVisibility(View.GONE); contactPicture.setVisibility(View.GONE);
//scrollToEnd(); scrollToEnd();
} }
public void hideKeyboardVisibleMode() { public void hideKeyboardVisibleMode() {
LinphoneActivity.instance().hideMenu(false); LinphoneActivity.instance().hideMenu(false);
contactPicture.setVisibility(View.VISIBLE); contactPicture.setVisibility(View.VISIBLE);
//scrollToEnd(); scrollToEnd();
} }
private void invalidate() { private void invalidate() {
@ -624,7 +624,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
latestImageMessages.put(newId, url); latestImageMessages.put(newId, url);
if (useLinphoneMessageStorage) if (useLinphoneMessageStorage)
saveImage(bitmap, newId, chatMessage); url = saveImage(bitmap, newId, chatMessage);
displayImageMessage(newId, bitmap, System.currentTimeMillis(), false, State.InProgress, messagesLayout, url); displayImageMessage(newId, bitmap, System.currentTimeMillis(), false, State.InProgress, messagesLayout, url);
scrollToEnd(); scrollToEnd();
@ -763,14 +763,14 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
private void saveImage(int id) { private void saveImage(int id) {
byte[] rawImage = LinphoneActivity.instance().getChatStorage().getRawImageFromMessage(id); byte[] rawImage = LinphoneActivity.instance().getChatStorage().getRawImageFromMessage(id);
Bitmap bm = BitmapFactory.decodeByteArray(rawImage, 0, rawImage.length); Bitmap bm = BitmapFactory.decodeByteArray(rawImage, 0, rawImage.length);
if (saveImage(bm, id, null)) { if (saveImage(bm, id, null) != null) {
Toast.makeText(getActivity(), getString(R.string.image_saved), Toast.LENGTH_SHORT).show(); Toast.makeText(getActivity(), getString(R.string.image_saved), Toast.LENGTH_SHORT).show();
} else { } else {
Toast.makeText(getActivity(), getString(R.string.image_not_saved), Toast.LENGTH_LONG).show(); Toast.makeText(getActivity(), getString(R.string.image_not_saved), Toast.LENGTH_LONG).show();
} }
} }
private boolean saveImage(Bitmap bm, int id, LinphoneChatMessage message) { private String saveImage(Bitmap bm, int id, LinphoneChatMessage message) {
try { try {
String path = Environment.getExternalStorageDirectory().toString(); String path = Environment.getExternalStorageDirectory().toString();
if (!path.endsWith("/")) if (!path.endsWith("/"))
@ -805,11 +805,11 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
} }
MediaStore.Images.Media.insertImage(getActivity().getContentResolver(),file.getAbsolutePath(),file.getName(),file.getName()); MediaStore.Images.Media.insertImage(getActivity().getContentResolver(),file.getAbsolutePath(),file.getName(),file.getName());
return true; return file.getAbsolutePath();
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
return false; return null;
} }
private long hashBitmap(Bitmap bmp){ private long hashBitmap(Bitmap bmp){