update emoji lib with compressed emojis
|
|
@ -19,7 +19,6 @@
|
|||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="com.android.vending.BILLING" />
|
||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
|
||||
<application
|
||||
android:name=".HabiticaApplication"
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ dependencies {
|
|||
//QR Code
|
||||
compile 'com.github.kenglxn.QRGen:android:2.2.0'
|
||||
// Emojis
|
||||
compile 'com.github.viirus:emoji-lib:0.0.4'
|
||||
compile 'com.github.viirus:emoji-lib:0.0.5'
|
||||
// Markdown
|
||||
compile 'com.commonsware.cwac:anddown:0.3.0'
|
||||
// About View for all dependent Libraries, we are using
|
||||
|
|
@ -166,7 +166,7 @@ android {
|
|||
release {
|
||||
signingConfig signingConfigs.release
|
||||
debuggable false
|
||||
multiDexEnabled true
|
||||
multiDexEnabled false
|
||||
minifyEnabled true
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||
resValue "string", "content_provider", "com.habitrpg.android.habitica.fileprovider"
|
||||
|
|
@ -216,18 +216,18 @@ android {
|
|||
javaMaxHeapSize "6g" // Use gig increments depending on needs
|
||||
}
|
||||
|
||||
lintOptions {
|
||||
disable 'MissingTranslation','InvalidPackage'
|
||||
enable 'LogConditional','IconExpectedSize','MissingRegistered','TypographyQuotes'
|
||||
}
|
||||
|
||||
splits {
|
||||
abi {
|
||||
enable true
|
||||
reset()
|
||||
include 'armeabi-v7a', 'arm64-v8a', 'mips', 'x86', 'x86_64'
|
||||
universalApk true
|
||||
}
|
||||
lintOptions {
|
||||
disable 'MissingTranslation','InvalidPackage'
|
||||
enable 'LogConditional','IconExpectedSize','MissingRegistered','TypographyQuotes'
|
||||
}
|
||||
|
||||
splits {
|
||||
abi {
|
||||
enable true
|
||||
reset()
|
||||
include 'armeabi-v7a', 'arm64-v8a', 'mips', 'x86', 'x86_64'
|
||||
universalApk true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
21
Habitica/proguard-rules.pro
vendored
|
|
@ -57,11 +57,6 @@
|
|||
@retrofit2.http.* <methods>;
|
||||
}
|
||||
|
||||
#dbFlow
|
||||
-keep class * extends com.raizlabs.android.dbflow.config.DatabaseHolder { *; }
|
||||
-keep class * extends com.raizlabs.android.dbflow.config.BaseDatabaseDefinition { *; }
|
||||
-keep class com.raizlabs.android.dbflow.** {*;}
|
||||
|
||||
#gson
|
||||
# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)
|
||||
-keep class * implements com.google.gson.TypeAdapterFactory
|
||||
|
|
@ -69,7 +64,15 @@
|
|||
-keep class * implements com.google.gson.JsonDeserializer
|
||||
|
||||
#keep models
|
||||
-keep class com.magicmicky.habitrpgwrapper.lib.models.** { *; }
|
||||
-keep class com.habitrpg.android.habitica.models.** { *; }
|
||||
|
||||
#realm
|
||||
-keep class io.realm.annotations.RealmModule
|
||||
-keep @io.realm.annotations.RealmModule class *
|
||||
-keep class io.realm.internal.Keep
|
||||
-keep @io.realm.internal.Keep class *
|
||||
-dontwarn javax.**
|
||||
-dontwarn io.realm.**
|
||||
|
||||
#eventbus
|
||||
-keepclassmembers class ** {
|
||||
|
|
@ -147,6 +150,9 @@
|
|||
#checkout
|
||||
-keep class com.android.vending.billing.**
|
||||
|
||||
#seeds sdk
|
||||
-keep class com.playseeds.** { *; }
|
||||
|
||||
-assumenosideeffects class org.solovyev.android.checkout.Billing {
|
||||
public static void debug(...);
|
||||
public static void warning(...);
|
||||
|
|
@ -164,5 +170,8 @@
|
|||
-dontwarn okio.**
|
||||
-dontwarn rx.**
|
||||
-dontwarn com.android.volley.toolbox.**
|
||||
-dontwarn com.facebook.infer.**
|
||||
-dontwarn com.roughike.bottombar.**
|
||||
-dontwarn com.viewpagerindicator.**
|
||||
#-ignorewarnings
|
||||
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 2 KiB |
|
Before Width: | Height: | Size: 2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 4.1 KiB |
|
|
@ -93,9 +93,7 @@
|
|||
android:id="@+id/lvl_tv"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="36dp"
|
||||
android:drawableLeft="@drawable/ic_header_warrior"
|
||||
android:drawablePadding="6dp"
|
||||
android:drawableStart="@drawable/ic_header_warrior"
|
||||
android:gravity="center"
|
||||
android:textSize="14sp" />
|
||||
|
||||
|
|
|
|||
|
|
@ -74,8 +74,6 @@
|
|||
android:id="@+id/lvl_tv"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="36dp"
|
||||
android:drawableLeft="@drawable/ic_header_warrior"
|
||||
android:drawableStart="@drawable/ic_header_warrior"
|
||||
android:drawablePadding="6dp"
|
||||
android:gravity="center"
|
||||
android:textSize="14sp"
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.habitrpg.android.habitica.ui;
|
|||
|
||||
import android.annotation.TargetApi;
|
||||
import android.content.Context;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Build;
|
||||
import android.support.v4.content.res.ResourcesCompat;
|
||||
|
|
@ -93,22 +94,20 @@ public class AvatarWithBarsViewModel {
|
|||
lvlText.setCompoundDrawables(null, null, null, null);
|
||||
} else {
|
||||
lvlText.setText(context.getString(R.string.user_level_with_class, user.getStats().getLvl(), userClass.substring(0, 1).toUpperCase(Locale.getDefault()) + userClass.substring(1)));
|
||||
Drawable drawable;
|
||||
Drawable drawable = null;
|
||||
switch (stats.getHabitClass()) {
|
||||
case "warrior":
|
||||
drawable = ResourcesCompat.getDrawable(res, R.drawable.ic_header_warrior, null);
|
||||
drawable = new BitmapDrawable(context.getResources(), HabiticaIconsHelper.imageOfWarriorDarkBg());
|
||||
break;
|
||||
case "rogue":
|
||||
drawable = ResourcesCompat.getDrawable(res, R.drawable.ic_header_rogue, null);
|
||||
drawable = new BitmapDrawable(context.getResources(), HabiticaIconsHelper.imageOfRogueDarkBg());
|
||||
break;
|
||||
case "wizard":
|
||||
drawable = ResourcesCompat.getDrawable(res, R.drawable.ic_header_mage, null);
|
||||
drawable = new BitmapDrawable(context.getResources(), HabiticaIconsHelper.imageOfMageDarkBg());
|
||||
break;
|
||||
case "healer":
|
||||
drawable = ResourcesCompat.getDrawable(res, R.drawable.ic_header_healer, null);
|
||||
drawable = new BitmapDrawable(context.getResources(), HabiticaIconsHelper.imageOfHealerDarkBg());
|
||||
break;
|
||||
default:
|
||||
drawable = ResourcesCompat.getDrawable(res, R.drawable.ic_header_warrior, null);
|
||||
|
||||
}
|
||||
if (drawable != null) {
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@ import com.habitrpg.android.habitica.events.TaskTappedEvent;
|
|||
import com.habitrpg.android.habitica.models.tasks.Task;
|
||||
import com.habitrpg.android.habitica.ui.helpers.MarkdownParser;
|
||||
|
||||
import net.pherth.android.emoji_library.EmojiTextView;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
import butterknife.BindColor;
|
||||
|
|
@ -28,10 +30,10 @@ public abstract class BaseTaskViewHolder extends RecyclerView.ViewHolder impleme
|
|||
public Task task;
|
||||
protected Context context;
|
||||
@BindView(R.id.checkedTextView)
|
||||
TextView titleTextView;
|
||||
EmojiTextView titleTextView;
|
||||
|
||||
@BindView(R.id.notesTextView)
|
||||
TextView notesTextView;
|
||||
EmojiTextView notesTextView;
|
||||
|
||||
@Nullable
|
||||
@BindView(R.id.rightBorderView)
|
||||
|
|
|
|||
|
|
@ -146,20 +146,6 @@ public class HabiticaIconsHelper {
|
|||
return imageOfHeartLightBg;
|
||||
}
|
||||
|
||||
private static Bitmap imageOfWarrior = null;
|
||||
public static Bitmap imageOfWarrior() {
|
||||
if (imageOfWarrior != null)
|
||||
return imageOfWarrior;
|
||||
|
||||
int size = scaleSize(25);
|
||||
imageOfWarrior = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
|
||||
Canvas canvas = new Canvas(imageOfWarrior);
|
||||
canvas.scale(displayDensity, displayDensity);
|
||||
HabiticaIcons.drawWarrior(canvas);
|
||||
|
||||
return imageOfWarrior;
|
||||
}
|
||||
|
||||
private static Bitmap imageOfHeartLarge = null;
|
||||
public static Bitmap imageOfHeartLarge() {
|
||||
if (imageOfHeartLarge != null)
|
||||
|
|
@ -322,4 +308,116 @@ public class HabiticaIconsHelper {
|
|||
|
||||
return imageOfGem_36;
|
||||
}
|
||||
|
||||
private static Bitmap imageOfWarriorLightBg = null;
|
||||
public static Bitmap imageOfWarriorLightBg() {
|
||||
if (imageOfWarriorLightBg != null)
|
||||
return imageOfWarriorLightBg;
|
||||
|
||||
int size = scaleSize(32);
|
||||
imageOfWarriorLightBg = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
|
||||
Canvas canvas = new Canvas(imageOfWarriorLightBg);
|
||||
canvas.scale(displayDensity, displayDensity);
|
||||
HabiticaIcons.drawWarriorLightBg(canvas);
|
||||
|
||||
return imageOfWarriorLightBg;
|
||||
}
|
||||
|
||||
private static Bitmap imageOfWarriorDarkBg = null;
|
||||
public static Bitmap imageOfWarriorDarkBg() {
|
||||
if (imageOfWarriorDarkBg != null)
|
||||
return imageOfWarriorDarkBg;
|
||||
|
||||
int size = scaleSize(32);
|
||||
imageOfWarriorDarkBg = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
|
||||
Canvas canvas = new Canvas(imageOfWarriorDarkBg);
|
||||
canvas.scale(displayDensity, displayDensity);
|
||||
HabiticaIcons.drawWarriorDarkBg(canvas);
|
||||
|
||||
return imageOfWarriorDarkBg;
|
||||
}
|
||||
|
||||
private static Bitmap imageOfRogueLightBg = null;
|
||||
public static Bitmap imageOfRogueLightBg() {
|
||||
if (imageOfRogueLightBg != null)
|
||||
return imageOfRogueLightBg;
|
||||
|
||||
int size = scaleSize(32);
|
||||
imageOfRogueLightBg = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
|
||||
Canvas canvas = new Canvas(imageOfRogueLightBg);
|
||||
canvas.scale(displayDensity, displayDensity);
|
||||
HabiticaIcons.drawRogueLightBg(canvas);
|
||||
|
||||
return imageOfRogueLightBg;
|
||||
}
|
||||
|
||||
private static Bitmap imageOfRogueDarkBg = null;
|
||||
public static Bitmap imageOfRogueDarkBg() {
|
||||
if (imageOfRogueDarkBg != null)
|
||||
return imageOfRogueDarkBg;
|
||||
|
||||
int size = scaleSize(32);
|
||||
imageOfRogueDarkBg = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
|
||||
Canvas canvas = new Canvas(imageOfRogueDarkBg);
|
||||
canvas.scale(displayDensity, displayDensity);
|
||||
HabiticaIcons.drawRogueDarkBg(canvas);
|
||||
|
||||
return imageOfRogueDarkBg;
|
||||
}
|
||||
|
||||
private static Bitmap imageOfHealerLightBg = null;
|
||||
public static Bitmap imageOfHealerLightBg() {
|
||||
if (imageOfHealerLightBg != null)
|
||||
return imageOfHealerLightBg;
|
||||
|
||||
int size = scaleSize(32);
|
||||
imageOfHealerLightBg = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
|
||||
Canvas canvas = new Canvas(imageOfHealerLightBg);
|
||||
canvas.scale(displayDensity, displayDensity);
|
||||
HabiticaIcons.drawHealerLightBg(canvas);
|
||||
|
||||
return imageOfHealerLightBg;
|
||||
}
|
||||
|
||||
private static Bitmap imageOfHealerDarkBg = null;
|
||||
public static Bitmap imageOfHealerDarkBg() {
|
||||
if (imageOfHealerDarkBg != null)
|
||||
return imageOfHealerDarkBg;
|
||||
|
||||
int size = scaleSize(32);
|
||||
imageOfHealerDarkBg = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
|
||||
Canvas canvas = new Canvas(imageOfHealerDarkBg);
|
||||
canvas.scale(displayDensity, displayDensity);
|
||||
HabiticaIcons.drawHealerDarkBg(canvas);
|
||||
|
||||
return imageOfHealerDarkBg;
|
||||
}
|
||||
|
||||
private static Bitmap imageOfMageDarkBg = null;
|
||||
public static Bitmap imageOfMageDarkBg() {
|
||||
if (imageOfMageDarkBg != null)
|
||||
return imageOfMageDarkBg;
|
||||
|
||||
int size = scaleSize(32);
|
||||
imageOfMageDarkBg = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
|
||||
Canvas canvas = new Canvas(imageOfMageDarkBg);
|
||||
canvas.scale(displayDensity, displayDensity);
|
||||
HabiticaIcons.drawMageDarkBg(canvas);
|
||||
|
||||
return imageOfMageDarkBg;
|
||||
}
|
||||
|
||||
private static Bitmap imageOfMageLightBg = null;
|
||||
public static Bitmap imageOfMageLightBg() {
|
||||
if (imageOfMageLightBg != null)
|
||||
return imageOfMageLightBg;
|
||||
|
||||
int size = scaleSize(32);
|
||||
imageOfMageLightBg = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
|
||||
Canvas canvas = new Canvas(imageOfMageLightBg);
|
||||
canvas.scale(displayDensity, displayDensity);
|
||||
HabiticaIcons.drawMageLightBg(canvas);
|
||||
|
||||
return imageOfMageLightBg;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ buildscript {
|
|||
classpath 'com.google.gms:google-services:3.0.0'
|
||||
classpath 'me.tatarka:gradle-retrolambda:3.3.1'
|
||||
classpath 'me.tatarka.retrolambda.projectlombok:lombok.ast:0.2.3.a2'
|
||||
classpath "io.realm:realm-gradle-plugin:3.5.0"
|
||||
classpath "io.realm:realm-gradle-plugin:3.7.0"
|
||||
}
|
||||
|
||||
// Exclude the version that the android plugin depends on.
|
||||
|
|
|
|||