diff --git a/emojicompat/FileMojiCompat/filemojicompat/build.gradle b/emojicompat/FileMojiCompat/filemojicompat/build.gradle
index e53adb7b1..e93659300 100644
--- a/emojicompat/FileMojiCompat/filemojicompat/build.gradle
+++ b/emojicompat/FileMojiCompat/filemojicompat/build.gradle
@@ -18,7 +18,7 @@ ext {
libraryDescription = 'An EmojiCompat implementation using files from a local file or a file inside your assets directory'
siteUrl = 'https://github.com/c1710/blobmoji'
gitUrl = 'https://github.com/c1710/blobmoji.git'
- libraryVersion = '1.0.11'
+ libraryVersion = '1.0.13'
developerId = 'c1710'
developerName = 'Constantin A.'
developerEmail = 'c1710.apps@outlook.com'
@@ -33,8 +33,8 @@ android {
defaultConfig {
minSdkVersion 14
targetSdkVersion 27
- versionCode 12
- versionName "1.0.12"
+ versionCode 13
+ versionName "1.0.13"
}
@@ -49,6 +49,7 @@ dependencies {
implementation 'com.android.support:support-emoji:27.1.1'
}
+
apply from: 'https://raw.githubusercontent.com/numetriclabz/jcenter/master/installv.gradle'
apply from: 'https://raw.githubusercontent.com/numetriclabz/jcenter/master/bintrayv.gradle'
diff --git a/emojicompat/FileMojiCompat/filemojicompat/src/main/AndroidManifest.xml b/emojicompat/FileMojiCompat/filemojicompat/src/main/AndroidManifest.xml
index 51b79a617..f47514943 100644
--- a/emojicompat/FileMojiCompat/filemojicompat/src/main/AndroidManifest.xml
+++ b/emojicompat/FileMojiCompat/filemojicompat/src/main/AndroidManifest.xml
@@ -1,2 +1 @@
-
* This means that you can have the flexibility of {@link AssetEmojiCompatConfig} * while giving your users the choice to optionally override the font. - *
+ ** The default location for a substituting font is * {@code /sdcard/Android/data/your.apps.package/files/EmojiCompat.ttf}. * @@ -83,13 +170,13 @@ public class FileEmojiCompatConfig extends EmojiCompat.Config { /** * Creates a new FileEmojiCompatConfig based on an asset. - *
+ ** This means that you can have the flexibility of {@link AssetEmojiCompatConfig} * while giving your users the choice to optionally override the font. - *
+ ** The default location for a substituting font is * {@code /sdcard/Android/data/your.apps.package/files/EmojiCompat.ttf}. - *
+ ** The default name for the Assets font is {@code NoEmojiCompat.ttf}. * If you wish to use a different name for this font, please use * {@link #createFromAsset(Context, String)}. @@ -101,90 +188,6 @@ public class FileEmojiCompatConfig extends EmojiCompat.Config { return createFromAsset(context, FONT_FALLBACK); } - /** - * Create a new configuration for this EmojiCompat - * @param path The file name/path of the requested font - * @param context Context instance - */ - public FileEmojiCompatConfig(@NonNull Context context, - // NEW - @NonNull String path) { - // This one is obviously new - this(context, path, FONT_FALLBACK); - } - - /** - * Create a new configuration for this EmojiCompat - * @param path The file name/path of the requested font - * @param context Context instance - * @param fallbackFont The asset path of the fallback font - */ - public FileEmojiCompatConfig(@NonNull Context context, - // NEW - @NonNull String path, - @Nullable String fallbackFont) { - // This one is obviously new - this(context, new File(path), fallbackFont); - } - - /** - * Create a new configuration for this EmojiCompat based on a file - * @param context Context instance - * @param fontFile The file containing the EmojiCompat font - */ - public FileEmojiCompatConfig(@NonNull Context context, - // NEW - @Nullable File fontFile) { - this(context, fontFile, FONT_FALLBACK); - } - - /** - * Create a new configuration for this EmojiCompat based on a file - * @param context Context instance - * @param fontFile The file containing the EmojiCompat font - * @param fallbackFont The asset path of the fallback font - */ - public FileEmojiCompatConfig(@NonNull Context context, - // NEW - @Nullable File fontFile, - @Nullable String fallbackFont) { - super(new FileMetadataLoader(context, - fontFile, - fallbackFont != null ? fallbackFont : FONT_FALLBACK)); - if(fontFile != null && fontFile.exists() && fontFile.canRead()) { - try { - // Is it a font? - Typeface typeface = Typeface.createFromFile(fontFile); - // Is it an EmojiCompat font? - /* - Please note that this will possibly cause a race condition. But all in all it's - better to have a chance of detecting such a non-valid font than either having to - wait for a long time or not being able to detect it at all. - However, since this Thread is started immediately, it should be faster than - the initialization process of EmojiCompat itself... - */ - if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { - new Thread(() -> { - try { - MetadataRepo.create(typeface, new FileInputStream(fontFile)); - } catch (Throwable t) { - fallback = true; - setReplaceAll(false); - Log.w(TAG, "FileEmojiCompatConfig: No valid EmojiCompat font provided. Fallback enabled", t); - } - }).start(); - } - } catch (RuntimeException ex) { - fallback = true; - Log.e(TAG, "FileEmojiCompatConfig: Font file corrupt. Fallback enabled", ex); - } - } else { - // The heck, this is not even an actual _file_! - fallback = true; - } - - } - @Override public FileEmojiCompatConfig setReplaceAll(boolean replaceAll) { return setReplaceAll(replaceAll, replaceAllOnFallback); @@ -192,19 +195,19 @@ public class FileEmojiCompatConfig extends EmojiCompat.Config { /** * Replace all emojis - * @param replaceAll Whether all emojis should be replaced + * + * @param replaceAll Whether all emojis should be replaced * @param replaceAllOnFallback true if this is supposed to be the case even when using the fallback font. * Useful if the NoEmojiCompat.ttf is overridden by a "real" EmojiCompat font. * @return This EmojiCompat.Config */ public FileEmojiCompatConfig setReplaceAll(boolean replaceAll, boolean replaceAllOnFallback) { this.replaceAllOnFallback = replaceAllOnFallback; - if(!fallback || replaceAllOnFallback) { + if (!fallback || replaceAllOnFallback) { super.setReplaceAll(replaceAll); - } - else { + } else { super.setReplaceAll(false); - if(replaceAll) { + if (replaceAll) { // If replaceAll would have been set to false anyway, there's no need for apologizing. Log.w(TAG, "setReplaceAll: Cannot replace all emojis. Fallback font is active"); } @@ -216,7 +219,7 @@ public class FileEmojiCompatConfig extends EmojiCompat.Config { * This is the MetadataLoader. Derived from BundledMetadataLoader but with * the addition of a custom file name. */ - private static class FileMetadataLoader implements EmojiCompat.MetadataRepoLoader{ + private static class FileMetadataLoader implements EmojiCompat.MetadataRepoLoader { private final Context mContext; // NEW private final File fontFile; @@ -274,8 +277,7 @@ public class FileEmojiCompatConfig extends EmojiCompat.Config { final InputStream stream = new FileInputStream(FONT_FILE); MetadataRepo resourceIndex = MetadataRepo.create(typeface, stream); loaderCallback.onLoaded(resourceIndex); - } - catch (Throwable t) { + } catch (Throwable t) { // Instead of crashing, this one will first try to load the fallback font try { android.util.Log.w(TAG, "Error while loading the font file.", t); diff --git a/emojicompat/FileMojiCompat/gradle.properties b/emojicompat/FileMojiCompat/gradle.properties index 9fdc93c10..5cbd0ac77 100644 --- a/emojicompat/FileMojiCompat/gradle.properties +++ b/emojicompat/FileMojiCompat/gradle.properties @@ -1,16 +1,12 @@ # Project-wide Gradle settings. - # IDE (e.g. Android Studio) users: # Gradle settings configured through the IDE *will override* # any settings specified in this file. - # For more details on how to configure your build environment visit # http://www.gradle.org/docs/current/userguide/build_environment.html - # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. org.gradle.jvmargs=-Xmx1024m - # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects