package com.wamod;
import android.content.Context;
import android.graphics.Paint;
import android.graphics.Typeface;
import android.text.Editable;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.style.TypefaceSpan;
import android.util.Log;
import android.widget.TextView;
import com.wamod.CustomTypefaceSpan;
import com.wamod.Utils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Created by brianvalente on 12/2/16.
*/
public class Emoji {
private static final int EMOJISET_WHATSAPP = 0;
private static final int EMOJISET_SYSTEM = 1;
private static final int EMOJISET_APPLE = 2;
private static final int EMOJISET_GOOGLE = 3;
private static final int EMOJISET_ONE = 4;
public static SpannableStringBuilder getEmojiSpannable(CharSequence charSequence, Context context, com.whatsapp.a6g a6g, com.whatsapp.lg lg) {
if (charSequence == null) return null;
int emojiSet = Integer.parseInt(Utils.prefs.getString("emojiset", "0"));
if (emojiSet == EMOJISET_WHATSAPP)
return com.whatsapp.a_7.a_WaMethod(charSequence, context, a6g, lg);
else if (emojiSet == EMOJISET_SYSTEM)
return new SpannableStringBuilder(charSequence);
else
return getEmojiSpannable(new SpannableStringBuilder(charSequence));
}
public static void getEmojiSpannable(Editable editable, Context context, Paint paint) {
if (editable == null) return;
int emojiSet = Integer.parseInt(Utils.prefs.getString("emojiset", "0"));
if (emojiSet == EMOJISET_WHATSAPP)
com.whatsapp.a_7.a_WaMethod(editable, context, paint);
else if (emojiSet == EMOJISET_SYSTEM)
return;
else {
getEmojiSpannable(new SpannableStringBuilder(editable));
}
}
private static SpannableStringBuilder getEmojiSpannable(SpannableStringBuilder spannableStringBuilder) {
String fontAssetLocation = "";
int emojiSet = Integer.parseInt(Utils.prefs.getString("emojiset", "0"));
switch (emojiSet) {
default:
case EMOJISET_APPLE:
/*fontAssetLocation += "fonts/Emoji-Apple.ttf";
break;*/
case EMOJISET_GOOGLE:
fontAssetLocation += "fonts/Emoji-Google.ttf";
break;
case EMOJISET_ONE:
fontAssetLocation += "fonts/Emoji-One.ttf";
break;
}
Typeface appleEmojis = Typeface.createFromAsset(Utils.context.getResources().getAssets(), fontAssetLocation);
// TODO: Find a better pattern
Pattern pattern = Pattern.compile("[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]");
//Pattern pattern = Pattern.compile("[\uD83D\uDE01-\uD83D\uDE4F]");
Matcher matcher = pattern.matcher(spannableStringBuilder);
while (matcher.find()) {
TypefaceSpan appleEmojisSpan = new CustomTypefaceSpan("", appleEmojis);
spannableStringBuilder.setSpan(appleEmojisSpan, matcher.start(), matcher.end(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
}
return spannableStringBuilder;
}
}