diff --git a/briar-android/src/org/briarproject/android/contact/ConversationActivity.java b/briar-android/src/org/briarproject/android/contact/ConversationActivity.java index d62f6bf638e4156d7dfbc7cff7cb5c0cf3bb7504..f00647318a05c7b4252ef4c90ac6278f5a5db27b 100644 --- a/briar-android/src/org/briarproject/android/contact/ConversationActivity.java +++ b/briar-android/src/org/briarproject/android/contact/ConversationActivity.java @@ -3,6 +3,7 @@ package org.briarproject.android.contact; import android.content.DialogInterface; import android.content.Intent; import android.graphics.PorterDuff; +import android.os.Build; import android.os.Bundle; import android.support.v7.app.ActionBar; import android.support.v7.app.AlertDialog; @@ -133,21 +134,24 @@ public class ConversationActivity extends BriarActivity list.setAdapter(adapter); list.setVisibility(GONE); // scroll down when opening keyboard - list.addOnLayoutChangeListener(new View.OnLayoutChangeListener() { - @Override - public void onLayoutChange(View v, - int left, int top, int right, int bottom, - int oldLeft, int oldTop, int oldRight, int oldBottom) { - if (bottom < oldBottom) { - list.postDelayed(new Runnable() { - @Override - public void run() { - list.scrollToPosition(adapter.getItemCount() - 1); - } - }, 100); + if (Build.VERSION.SDK_INT >= 11) { + list.addOnLayoutChangeListener(new View.OnLayoutChangeListener() { + @Override + public void onLayoutChange(View v, + int left, int top, int right, int bottom, + int oldLeft, int oldTop, int oldRight, int oldBottom) { + if (bottom < oldBottom) { + list.postDelayed(new Runnable() { + @Override + public void run() { + list.scrollToPosition( + adapter.getItemCount() - 1); + } + }, 100); + } } - } - }); + }); + } content = (EditText) findViewById(R.id.contentView); sendButton = (ImageButton) findViewById(R.id.sendButton); diff --git a/briar-android/src/org/briarproject/android/contact/ConversationAdapter.java b/briar-android/src/org/briarproject/android/contact/ConversationAdapter.java index 4b945f7d37cdf84598bb0d5313116b088771160c..0e183a63b571f706e403cf2b81d6ae9cc9c9f158 100644 --- a/briar-android/src/org/briarproject/android/contact/ConversationAdapter.java +++ b/briar-android/src/org/briarproject/android/contact/ConversationAdapter.java @@ -121,8 +121,17 @@ class ConversationAdapter extends ui.status.setImageResource(R.drawable.message_stored); } } else if (!header.isRead()) { + int bottom = ui.layout.getPaddingBottom(); + int top = ui.layout.getPaddingTop(); + int right = ui.layout.getPaddingRight(); + int left = ui.layout.getPaddingLeft(); + // show unread messages in different color to not miss them ui.layout.setBackgroundResource(R.drawable.msg_in_unread); + + // re-apply the previous padding due to bug in some Android versions + // see: https://code.google.com/p/android/issues/detail?id=17885 + ui.layout.setPadding(left, top, right, bottom); } if (item.getBody() == null) { @@ -150,12 +159,12 @@ class ConversationAdapter extends return messages.get(position); } - public void add(final ConversationItem contact) { - this.messages.add(contact); + public void add(final ConversationItem message) { + this.messages.add(message); } - public void remove(final ConversationItem contact) { - this.messages.remove(contact); + public void remove(final ConversationItem message) { + this.messages.remove(message); } public void clear() {