diff --git a/.gitignore b/.gitignore
index 425985fb3..d563845a4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,3 @@
add_emoji_gsub.pyc
build
-waveflag
+waveflag
\ No newline at end of file
diff --git a/emojicompat/FileMojiCompat/README.md b/emojicompat/FileMojiCompat/README.md
deleted file mode 100644
index 882c69e71..000000000
--- a/emojicompat/FileMojiCompat/README.md
+++ /dev/null
@@ -1,72 +0,0 @@
-# FileMojiCompat
-## What is this?
-This is a library providing an easy solution to use [EmojiCompat](https://developer.android.com/guide/topics/ui/look-and-feel/emoji-compat)
-with fonts that are either stored in the `assets`-folder with another name than `NotoColorEmojiCompat.ttf` or you can use
-EmojiCompat fonts which are stored anywhere on the device's local storage.
-## How do I get this library?
-That's relatively easy: Just add the following line to your module's `build.gradle` inside `dependencies`:
-```
-implementation 'de.c1710:filemojicompat:1.0.7'
-```
-## How do I use it?
-There are two different methods included in this library:
-1. ### [`AssetEmojiCompatConfig`](https://github.com/C1710/blobmoji/blob/filemojicompat/emojicompat/FileMojiCompat/filemojicompat/src/main/java/de/c1710/filemojicompat/AssetEmojiCompatConfig.java)
- You can use this just like you would usually use [`BundledEmojiCompatConfig`](https://developer.android.com/guide/topics/ui/look-and-feel/emoji-compat#bundled-fonts)
- except for the detail that you can choose the font's name as the second parameter.
- Example:
- ```java
- EmojiCompat.Config config = new AssetEmojiCompatConfig(getContext(), "Blobmoji.ttf");
- ```
- This will create a new EmojiCompat configuration using the file provided in `assets/Blobmoji.ttf`.
- Anyhow, I don't recommend using `AssetEmojiCompatConfig` anymore as [this](#i-want-to-let-my-users-only-choose-another-font-if-they-dont-like-my-current-one) approach is more flexible and just as easy to use.
-2. ### [`FileEmojiCompatConfig`](https://github.com/C1710/blobmoji/blob/filemojicompat/emojicompat/FileMojiCompat/filemojicompat/src/main/java/de/c1710/filemojicompat/FileEmojiCompatConfig.java)
- This is the more complex and interesting option.
- Instead of providing a short String containing the font's name, you can provide a [`File`](https://developer.android.com/reference/java/io/File)
- (or the String containing the full path of it).
- This will try to load the font from this path.
- In case it gets into any trouble - let's say because of missing permissions or a non-existent file, it will fallback to using no EmojiCompat at all.
- (Technically this is wrong as leaving EmojiCompat uninitialized would crash the components using it. There's an explanation below).
- Example:
- ```java
- Context context = getContext();
- File fontFile = new File(context.getExternalFilesDir(null), "emoji/Blobmoji.ttf");
- EmojiCompat.Config config = new FileEmojiCompatConfig(context, fontFile);
- ```
- In this example, your app would try to load the font file `Blobmoji.ttf` located at `/storage/emulated/0/Android/data/[your.app.package]/files/Blobmoji.ttf`.
- If this file is not available, EmojiCompat won't be visible.
- Hint: When accessing a file inside your private directory (i.e. the one used in the example), you _don't_ need storage permissions.
- However, if you want to load the font from somewhere else - let's say the `Download` directory, you ***will*** need storage permissions.
- But don't worry (too much) - your app won't crash (probably) as this missing file is just being ignored in this case.
-
-### What happens if I don't provide the font file in `FileEmojiCompatConfig`?
-In this case, there won't be a visible difference to not using EmojiCompat.
-#### But what does that mean _exactly_?
-If you take a look at `EmojiCompat` itself, you'll notice that it isn't build with missing fonts in mind. If anything happens,
-`onLoadFailed` is called and EmojiCompat crashes - and so do all components relying on it.
-To prevent this case, `FileEmojiCompatConfig` includes a fallback solution - inside the `assets` folder, you'll find a file called [`NoEmojiCompat.ttf`](https://github.com/C1710/blobmoji/blob/filemojicompat/emojicompat/FileMojiCompat/filemojicompat/src/main/assets/NoEmojiCompat.ttf) which
-is much smaller than most of the EmojiCompat font files (~40kiB). That's because it only includes 10 characters which are the flags for China, Germany, Spain, France, United Kingdom, Italy, Japan, South Korea, Russia, USA.
-These are the flags which where originally included in [Noto Emoji](https://github.com/googlei18n/noto-emoji) and they are only used to _fill_ the font
-file with something.
-#### Will my users see these flags when the fallback font is used?
-Yes, they will. But only if their device either doesn't support these flags (which is basically impossible) or if they use a device which already uses
-these assets as their default emojis. They won't replace any existing emojis.
-#### But I did `setReplaceAll(true)`?!
-This won't change anything as `FileEmojiCompatConfig` will detect if the font file is not valid and it will simply ignore `setReplaceAll(true)`.
-## I want to let my users only choose another font if they don't like my current one
-This is easily possible with the introduction of `FileMojiCompat 1.0.6`.
-In this case you override the fallback font by putting your font into the `assets` folder of your app using the name `NoEmojiCompat.ttf`.
-Whenever the fallback font is needed (which is the case if the user doesn't specify another one), this font is being used.
-In order to prevent blocking the `setReplaceAll` method, you'll have to call it with `setReplaceAll(true, true)`.
-The second argument indicates that you want to ignore this `replaceAll`-prevention (if set to `true`. Setting it to `false` won't change anything).
-So here's a short example of using this very flexible, yet easy to use method.
-But please be aware that changing the emoji font using this snippet isn't very easy as it needs the user to copy (and potentially rename) some files:
-```java
- Context context = getContext();
- File fontFile = new File(context.getExternalFilesDir(null), "emoji.ttf");
- EmojiCompat.Config config = new FileEmojiCompatConfig(context, fontFile)
- .setReplaceAll(true, true);
-```
-In this case, the font specified in `assets/NoEmojiCompat.ttf` will be used until `/storage/emulated/0/Android/[yourpackage]/files/emoji.ttf` exists and includes a valid `EmojiCompat` font.
-This method combines the easy approach of `AssetEmojiCompatConfig` and the flexibility of `FileEmojiCompatConfig` with some tradeoffs on the usability side.
-If you need a different asset path for your fallback file, you can simply add it as another argument for `FileEmojiCompatConfig`. This feature has been introduced in `1.0.7`.
-**_PLEASE use at least this method in your app. It's always better to give the users a choice._**
diff --git a/emojicompat/FileMojiCompat/build.gradle b/emojicompat/FileMojiCompat/build.gradle
deleted file mode 100644
index 3fc3f5158..000000000
--- a/emojicompat/FileMojiCompat/build.gradle
+++ /dev/null
@@ -1,28 +0,0 @@
-// Top-level build file where you can add configuration options common to all sub-projects/modules.
-
-buildscript {
-
- repositories {
- google()
- jcenter()
- }
- dependencies {
- classpath 'com.android.tools.build:gradle:3.1.2'
- classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
- classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
-
- // NOTE: Do not place your application dependencies here; they belong
- // in the individual module build.gradle files
- }
-}
-
-allprojects {
- repositories {
- google()
- jcenter()
- }
-}
-
-task clean(type: Delete) {
- delete rootProject.buildDir
-}
diff --git a/emojicompat/FileMojiCompat/filemojicompat/build.gradle b/emojicompat/FileMojiCompat/filemojicompat/build.gradle
deleted file mode 100644
index e53adb7b1..000000000
--- a/emojicompat/FileMojiCompat/filemojicompat/build.gradle
+++ /dev/null
@@ -1,54 +0,0 @@
-apply plugin: 'com.android.library'
-buildscript {
- repositories {
- mavenCentral()
- google()
- }
- dependencies {
- classpath 'com.android.tools.build:gradle:3.1.3'
- }
-}
-
-ext {
- bintrayRepo = 'FileMojiCompat'
- bintrayName = 'filemojicompat'
- publishedGroupId = 'de.c1710'
- libraryName = 'filemojicompat'
- artifact = 'filemojicompat'
- 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'
- developerId = 'c1710'
- developerName = 'Constantin A.'
- developerEmail = 'c1710.apps@outlook.com'
- licenseName = 'The Apache Software License, Version 2.0'
- licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
- allLicenses = ["Apache-2.0"]
-}
-
-android {
- compileSdkVersion 27
-
- defaultConfig {
- minSdkVersion 14
- targetSdkVersion 27
- versionCode 12
- versionName "1.0.12"
- }
-
-
- compileOptions {
- targetCompatibility 1.8
- sourceCompatibility 1.8
- }
-}
-
-dependencies {
- implementation fileTree(dir: 'libs', include: ['*.jar'])
- 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/proguard-rules.pro b/emojicompat/FileMojiCompat/filemojicompat/proguard-rules.pro
deleted file mode 100644
index 6e7ffa997..000000000
--- a/emojicompat/FileMojiCompat/filemojicompat/proguard-rules.pro
+++ /dev/null
@@ -1,21 +0,0 @@
-# Add project specific ProGuard rules here.
-# You can control the set of applied configuration files using the
-# proguardFiles setting in build.gradle.
-#
-# For more details, see
-# http://developer.android.com/guide/developing/tools/proguard.html
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-# public *;
-#}
-
-# Uncomment this to preserve the line number information for
-# debugging stack traces.
-#-keepattributes SourceFile,LineNumberTable
-
-# If you keep the line number information, uncomment this to
-# hide the original source file name.
-#-renamesourcefileattribute SourceFile
diff --git a/emojicompat/FileMojiCompat/filemojicompat/src/main/AndroidManifest.xml b/emojicompat/FileMojiCompat/filemojicompat/src/main/AndroidManifest.xml
deleted file mode 100644
index 51b79a617..000000000
--- a/emojicompat/FileMojiCompat/filemojicompat/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-
diff --git a/emojicompat/FileMojiCompat/filemojicompat/src/main/assets/NoEmojiCompat.ttf b/emojicompat/FileMojiCompat/filemojicompat/src/main/assets/NoEmojiCompat.ttf
deleted file mode 100644
index 72c9e7160..000000000
Binary files a/emojicompat/FileMojiCompat/filemojicompat/src/main/assets/NoEmojiCompat.ttf and /dev/null differ
diff --git a/emojicompat/FileMojiCompat/filemojicompat/src/main/java/de/c1710/filemojicompat/AssetEmojiCompatConfig.java b/emojicompat/FileMojiCompat/filemojicompat/src/main/java/de/c1710/filemojicompat/AssetEmojiCompatConfig.java
deleted file mode 100644
index 803df987d..000000000
--- a/emojicompat/FileMojiCompat/filemojicompat/src/main/java/de/c1710/filemojicompat/AssetEmojiCompatConfig.java
+++ /dev/null
@@ -1,112 +0,0 @@
-package de.c1710.filemojicompat;
-/*
- * Original file (https://android.googlesource.com/platform/frameworks/support/+/master/emoji/bundled/src/main/java/android/support/text/emoji/bundled/BundledEmojiCompatConfig.java):
- * Copyright (C) 2017 The Android Open Source Project
- * Modifications Copyright (C) 2018 Constantin A.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import android.content.Context;
-import android.content.res.AssetManager;
-import android.support.annotation.NonNull;
-import android.support.annotation.RequiresApi;
-import android.support.text.emoji.EmojiCompat;
-import android.support.text.emoji.MetadataRepo;
-
-/**
- * A simple implementation of EmojiCompat.Config using typeface assets.
- * Based on:
- * https://android.googlesource.com/platform/frameworks/support/+/master/emoji/bundled/src/main/java/android/support/text/emoji/bundled/BundledEmojiCompatConfig.java
- * Changes are marked with comments. Formatting and other simple changes are not always marked.
- * @deprecated Please use {@link FileEmojiCompatConfig#createFromAsset(Context, String)} instead
- * for greater flexibility.
- */
-@Deprecated
-public class AssetEmojiCompatConfig extends EmojiCompat.Config {
- // The class name is obviously changed from the original file
-
- /**
- * Create a new configuration for this EmojiCompat
- * @param assetName The file name/path of the requested font
- * @param context Context instance
- */
- public AssetEmojiCompatConfig(@NonNull Context context,
- // NEW
- @NonNull String assetName) {
- // This one is oviously new
- super(new AssetMetadataLoader(context, assetName));
- }
-
- /**
- * This is the MetadataLoader. Derived from BundledMetadataLoader but with
- * the addition of a custom asset name.
- */
- private static class AssetMetadataLoader implements EmojiCompat.MetadataRepoLoader{
- private final Context mContext;
- // NEW
- private final String assetName;
-
- private AssetMetadataLoader(@NonNull Context context,
- // NEW
- String assetName) {
- this.mContext = context.getApplicationContext();
- // NEW
- this.assetName = assetName;
- }
-
-
- // Copied from BundledEmojiCompatConfig
- @Override
- @RequiresApi(19)
- public void load(@NonNull EmojiCompat.MetadataRepoLoaderCallback loaderCallback) {
- // This one doesn't work as it's not android.support
- //Preconditions.checkNotNull(loaderCallback, "loaderCallback cannot be null");
- final InitRunnable runnable = new InitRunnable(mContext, loaderCallback, assetName);
- final Thread thread = new Thread(runnable);
- thread.setDaemon(false);
- thread.start();
- }
- }
-
- @RequiresApi(19)
- private static class InitRunnable implements Runnable {
- // The font name is assigned in the constructor.
- private final String FONT_NAME;
- // Slightly different variable names
- private final EmojiCompat.MetadataRepoLoaderCallback loaderCallback;
- private final Context context;
-
- private InitRunnable(final Context context,
- final EmojiCompat.MetadataRepoLoaderCallback loaderCallback,
- // NEW parameter
- final String FONT_NAME) {
- // This has been changed a bit in order to get some consistency
- this.context = context;
- this.loaderCallback = loaderCallback;
- this.FONT_NAME = FONT_NAME;
- }
-
- // This has been copied from BundledEmojiCompatConfig
- @Override
- public void run() {
- try {
- final AssetManager assetManager = context.getAssets();
- final MetadataRepo resourceIndex = MetadataRepo.create(assetManager, FONT_NAME);
- loaderCallback.onLoaded(resourceIndex);
- } catch (Throwable t) {
- loaderCallback.onFailed(t);
- }
- }
- }
-}
diff --git a/emojicompat/FileMojiCompat/filemojicompat/src/main/java/de/c1710/filemojicompat/FileEmojiCompatConfig.java b/emojicompat/FileMojiCompat/filemojicompat/src/main/java/de/c1710/filemojicompat/FileEmojiCompatConfig.java
deleted file mode 100644
index 8ce3e60bb..000000000
--- a/emojicompat/FileMojiCompat/filemojicompat/src/main/java/de/c1710/filemojicompat/FileEmojiCompatConfig.java
+++ /dev/null
@@ -1,293 +0,0 @@
-package de.c1710.filemojicompat;
-/*
- * Adapted from https://android.googlesource.com/platform/frameworks/support/+/master/emoji/bundled/src/main/java/android/support/text/emoji/bundled/BundledEmojiCompatConfig.java
- * Copyright (C) 2017 The Android Open Source Project
- * Modifications Copyright (C) 2018 Constantin A.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import android.content.Context;
-import android.content.res.AssetManager;
-import android.graphics.Typeface;
-import android.os.Build;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.annotation.RequiresApi;
-import android.support.text.emoji.EmojiCompat;
-import android.support.text.emoji.MetadataRepo;
-import android.util.Log;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-
-/**
- * A simple implementation of EmojiCompat.Config using typeface files.
- * Based on:
- * https://android.googlesource.com/platform/frameworks/support/+/master/emoji/bundled/src/main/java/android/support/text/emoji/bundled/BundledEmojiCompatConfig.java
- * Changes are marked with comments. Formatting and other simple changes are not always marked.
- */
-public class FileEmojiCompatConfig extends EmojiCompat.Config {
- // The class name is obviously changed from the original file
- private final static String TAG = "FileEmojiCompatConfig";
-
- /**
- * This boolean indicates whether the fallback solution is used.
- */
- private boolean fallback;
- /**
- * Indicates whether all emojis should be replaced when the fallback font is used.
- */
- private boolean replaceAllOnFallback = false;
- /**
- * The default name of the fallback font
- */
- private static final String FONT_FALLBACK = "NoEmojiCompat.ttf";
-
- /**
- * 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}.
- *
- * @param context The app's context is needed for several tasks
- * @param assetPath The path inside the {@code assets} folder for the default font file
- * @return A FileEmojiCompatConfig which will use the given font by default
- */
- public FileEmojiCompatConfig createFromAsset(@NonNull Context context,
- @Nullable String assetPath) {
- if (assetPath != null) {
- FileEmojiCompatConfig config = new FileEmojiCompatConfig(context,
- new File(context.getExternalFilesDir(null), "EmojiCompat.ttf"),
- assetPath);
- config.replaceAllOnFallback = true;
- return config;
- } else {
- return createFromAsset(context);
- }
- }
-
- /**
- * 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)}.
- *
- * @param context The app's context is needed for several tasks
- * @return A FileEmojiCompatConfig which will use the given font by default
- */
- public FileEmojiCompatConfig createFromAsset(@NonNull Context context) {
- 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);
- }
-
- /**
- * Replace all emojis
- * @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) {
- super.setReplaceAll(replaceAll);
- }
- else {
- super.setReplaceAll(false);
- 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");
- }
- }
- return this;
- }
-
- /**
- * This is the MetadataLoader. Derived from BundledMetadataLoader but with
- * the addition of a custom file name.
- */
- private static class FileMetadataLoader implements EmojiCompat.MetadataRepoLoader{
- private final Context mContext;
- // NEW
- private final File fontFile;
- private final String fallbackFont;
-
- private FileMetadataLoader(@NonNull Context context,
- // NEW
- @Nullable File fontFile,
- @NonNull String fallbackFont) {
- this.mContext = context.getApplicationContext();
- // NEW
- this.fontFile = fontFile;
- this.fallbackFont = fallbackFont;
- }
-
-
- // Copied from BundledEmojiCompatConfig
- @Override
- @RequiresApi(19)
- public void load(@NonNull EmojiCompat.MetadataRepoLoaderCallback loaderCallback) {
- //Preconditions.checkNotNull(loaderCallback, "loaderCallback cannot be null");
- final InitRunnable runnable = new InitRunnable(mContext, loaderCallback, fontFile, fallbackFont);
- final Thread thread = new Thread(runnable);
- thread.setDaemon(false);
- thread.start();
- }
- }
-
- @RequiresApi(19)
- private static class InitRunnable implements Runnable {
- // The font names are assigned in the constructor.
- private final File FONT_FILE;
- private final String FONT_FALLBACK;
- // Slightly different variable names
- private final EmojiCompat.MetadataRepoLoaderCallback loaderCallback;
- private final Context context;
-
- private InitRunnable(final Context context,
- final EmojiCompat.MetadataRepoLoaderCallback loaderCallback,
- // NEW parameter
- final File FONT_FILE,
- final String FONT_FALLBACK) {
- // This has been changed a bit in order to get some consistency
- this.context = context;
- this.loaderCallback = loaderCallback;
- this.FONT_FILE = FONT_FILE;
- this.FONT_FALLBACK = FONT_FALLBACK;
- }
-
- @Override
- public void run() {
- try {
- // Changed to load a file
- final Typeface typeface = Typeface.createFromFile(FONT_FILE);
- final InputStream stream = new FileInputStream(FONT_FILE);
- MetadataRepo resourceIndex = MetadataRepo.create(typeface, stream);
- loaderCallback.onLoaded(resourceIndex);
- }
- 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);
- final AssetManager assetManager = context.getAssets();
- final MetadataRepo resourceIndex =
- MetadataRepo.create(assetManager, FONT_FALLBACK);
- loaderCallback.onLoaded(resourceIndex);
- } catch (Throwable t2) {
- Log.e(TAG, "Even the fallback font couldn't be loaded", t2);
- loaderCallback.onFailed(t);
- }
- }
- }
- }
-}
diff --git a/emojicompat/FileMojiCompat/gradle.properties b/emojicompat/FileMojiCompat/gradle.properties
deleted file mode 100644
index 9fdc93c10..000000000
--- a/emojicompat/FileMojiCompat/gradle.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-# 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
-# org.gradle.parallel=true
diff --git a/emojicompat/FileMojiCompat/gradle/wrapper/gradle-wrapper.jar b/emojicompat/FileMojiCompat/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index 13372aef5..000000000
Binary files a/emojicompat/FileMojiCompat/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/emojicompat/FileMojiCompat/gradle/wrapper/gradle-wrapper.properties b/emojicompat/FileMojiCompat/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index 870e127a2..000000000
--- a/emojicompat/FileMojiCompat/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-#Thu Apr 26 17:31:13 CEST 2018
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
diff --git a/emojicompat/FileMojiCompat/gradlew b/emojicompat/FileMojiCompat/gradlew
deleted file mode 100644
index 9d82f7891..000000000
--- a/emojicompat/FileMojiCompat/gradlew
+++ /dev/null
@@ -1,160 +0,0 @@
-#!/usr/bin/env bash
-
-##############################################################################
-##
-## Gradle start up script for UN*X
-##
-##############################################################################
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn ( ) {
- echo "$*"
-}
-
-die ( ) {
- echo
- echo "$*"
- echo
- exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MINGW* )
- msys=true
- ;;
-esac
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
- if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
- else
- JAVACMD="$JAVA_HOME/bin/java"
- fi
- if [ ! -x "$JAVACMD" ] ; then
- die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
- fi
-else
- JAVACMD="java"
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
- MAX_FD_LIMIT=`ulimit -H -n`
- if [ $? -eq 0 ] ; then
- if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
- MAX_FD="$MAX_FD_LIMIT"
- fi
- ulimit -n $MAX_FD
- if [ $? -ne 0 ] ; then
- warn "Could not set maximum file descriptor limit: $MAX_FD"
- fi
- else
- warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
- fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
- GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
- APP_HOME=`cygpath --path --mixed "$APP_HOME"`
- CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
- JAVACMD=`cygpath --unix "$JAVACMD"`
-
- # We build the pattern for arguments to be converted via cygpath
- ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
- SEP=""
- for dir in $ROOTDIRSRAW ; do
- ROOTDIRS="$ROOTDIRS$SEP$dir"
- SEP="|"
- done
- OURCYGPATTERN="(^($ROOTDIRS))"
- # Add a user-defined pattern to the cygpath arguments
- if [ "$GRADLE_CYGPATTERN" != "" ] ; then
- OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
- fi
- # Now convert the arguments - kludge to limit ourselves to /bin/sh
- i=0
- for arg in "$@" ; do
- CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
- CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
-
- if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
- eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
- else
- eval `echo args$i`="\"$arg\""
- fi
- i=$((i+1))
- done
- case $i in
- (0) set -- ;;
- (1) set -- "$args0" ;;
- (2) set -- "$args0" "$args1" ;;
- (3) set -- "$args0" "$args1" "$args2" ;;
- (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
- esac
-fi
-
-# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
-function splitJvmOpts() {
- JVM_OPTS=("$@")
-}
-eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
-JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
-
-exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/emojicompat/FileMojiCompat/gradlew.bat b/emojicompat/FileMojiCompat/gradlew.bat
deleted file mode 100644
index aec99730b..000000000
--- a/emojicompat/FileMojiCompat/gradlew.bat
+++ /dev/null
@@ -1,90 +0,0 @@
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windowz variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-if "%@eval[2+2]" == "4" goto 4NT_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-goto execute
-
-:4NT_args
-@rem Get arguments from the 4NT Shell from JP Software
-set CMD_LINE_ARGS=%$
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
diff --git a/emojicompat/FileMojiCompat/settings.gradle b/emojicompat/FileMojiCompat/settings.gradle
deleted file mode 100644
index e91d23c2f..000000000
--- a/emojicompat/FileMojiCompat/settings.gradle
+++ /dev/null
@@ -1 +0,0 @@
-include ':filemojicompat'