diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 2f4f37ab47..411282e6bb 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -1,6 +1,6 @@
- 64dip
+ 40dip
3dp
2dp
\ No newline at end of file
diff --git a/src/org/thoughtcrime/securesms/components/EmojiDrawer.java b/src/org/thoughtcrime/securesms/components/EmojiDrawer.java
index c936facd4e..f5a8fa7e8e 100644
--- a/src/org/thoughtcrime/securesms/components/EmojiDrawer.java
+++ b/src/org/thoughtcrime/securesms/components/EmojiDrawer.java
@@ -12,6 +12,7 @@ import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.EditText;
@@ -35,7 +36,6 @@ public class EmojiDrawer extends FrameLayout {
private GridView emojiGrid;
private GridView recentEmojiGrid;
private ViewPager pager;
- private PagerTabStrip pagerTabStrip;
public EmojiDrawer(Context context) {
super(context);
@@ -70,8 +70,7 @@ public class EmojiDrawer extends FrameLayout {
private void initializeResources() {
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- this.pager = (ViewPager ) findViewById(R.id.emoji_pager );
- this.pagerTabStrip = (PagerTabStrip) findViewById(R.id.emoji_tab_strip);
+ this.pager = (ViewPager ) findViewById(R.id.emoji_pager);
this.emojiGridLayout = (FrameLayout ) inflater.inflate(R.layout.emoji_grid_layout, null);
this.recentEmojiGridLayout = (FrameLayout ) inflater.inflate(R.layout.emoji_grid_layout, null);
this.emojiGrid = (GridView ) emojiGridLayout.findViewById(R.id.emoji);
@@ -128,9 +127,11 @@ public class EmojiDrawer extends FrameLayout {
private class EmojiGridAdapter extends BaseAdapter {
private final int type;
+ private final int emojiSize;
public EmojiGridAdapter(int type) {
this.type = type;
+ emojiSize = (int) getResources().getDimension(R.dimen.emoji_drawer_size);
}
@Override
@@ -162,6 +163,7 @@ public class EmojiDrawer extends FrameLayout {
return convertView;
} else {
ImageView imageView = new ImageView(getContext());
+ imageView.setLayoutParams(new AbsListView.LayoutParams(emojiSize, emojiSize));
imageView.setImageDrawable(drawable);
return imageView;
}
diff --git a/src/org/thoughtcrime/securesms/util/Emoji.java b/src/org/thoughtcrime/securesms/util/Emoji.java
index 145ceb9874..90cbcce1eb 100644
--- a/src/org/thoughtcrime/securesms/util/Emoji.java
+++ b/src/org/thoughtcrime/securesms/util/Emoji.java
@@ -10,6 +10,7 @@ import android.preference.PreferenceManager;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.style.ImageSpan;
+import android.util.DisplayMetrics;
import android.util.Log;
import com.google.thoughtcrimegson.Gson;
@@ -45,12 +46,14 @@ public class Emoji {
private static final Pattern EMOJI_RANGE = Pattern.compile("[\ud83d\ude01-\ud83d\ude4f]");
public static final double EMOJI_LARGE = 1;
- public static final double EMOJI_SMALL = 0.7;
+ public static final double EMOJI_SMALL = 0.75;
+ public static final int EMOJI_LARGE_SIZE = 22;
private final Context context;
private final String[] emojiAssets;
private final Set emojiAssetsSet;
private final BitmapFactory.Options bitmapOptions;
+ private final int bigDrawSize;
private Emoji(Context context) {
this.context = context.getApplicationContext();
@@ -58,9 +61,15 @@ public class Emoji {
this.emojiAssetsSet = new HashSet();
this.bitmapOptions = initializeBitmapOptions();
+ this.bigDrawSize = scale(EMOJI_LARGE_SIZE);
+
Collections.addAll(this.emojiAssetsSet, emojiAssets);
}
+ private int scale(float value) {
+ return (int)(context.getResources().getDisplayMetrics().density * value);
+ }
+
public int getEmojiAssetCount() {
return emojiAssets.length;
}
@@ -91,8 +100,8 @@ public class Emoji {
if (emojiAssetsSet.contains(resource)) {
Drawable drawable = getEmojiDrawable(resource);
- drawable.setBounds(0, 0, (int)(drawable.getIntrinsicWidth()*size),
- (int)(drawable.getIntrinsicHeight()*size));
+ drawable.setBounds(0, 0, (int)(bigDrawSize*size),
+ (int)(bigDrawSize*size));
ImageSpan imageSpan = new ImageSpan(drawable, ImageSpan.ALIGN_BOTTOM);
text.setSpan(imageSpan, matches.start(), matches.end(),
@@ -129,7 +138,7 @@ public class Emoji {
Bitmap bitmap = BitmapFactory.decodeStream(context.getAssets().open("emoji" + File.separator + assetName),
null, bitmapOptions);
- bitmap = Bitmap.createScaledBitmap(bitmap, 40, 40, true);
+ bitmap = Bitmap.createScaledBitmap(bitmap, 64, 64, true);
return new BitmapDrawable(context.getResources(), bitmap);
} catch (IOException e) {
@@ -150,8 +159,8 @@ public class Emoji {
BitmapFactory.Options options = new BitmapFactory.Options();
options.inScaled = true;
-// options.inDensity = 64;
- options.inTargetDensity = context.getResources().getDimensionPixelSize(R.dimen.emoji_size);
+ options.inDensity = DisplayMetrics.DENSITY_MEDIUM;
+ options.inTargetDensity = context.getResources().getDisplayMetrics().densityDpi;
options.inSampleSize = 1;
options.inJustDecodeBounds = false;