Reduce license notifications in emoji2 artifact
This change removes the dependencies that added OFL and UNICODE files
to the emoji2 library.
As a result, this module does not have access to the emojicompat font
for testing. All tests for emojicompat that depend upon the font are
moved into emoji2-bundled.
Some methods were promoted to a visibily higher than LIBRARY to allow this refactoring:
- EmojiSpan.getMetadata // LIBRARY_GROUP
- EmojiSpan.getHeight // TESTS
- EmojiCompat.getMetadataRepoLoader() // LIBRARY_GROUP
In addition, MetedataRepo's test factory was refactored to allow it
to be called from outside of the emoji2 module:
- MetadataRepo.create(Typeface) replaces MetadataRepo.create(Typeface,
MetadatList)
As the MetadataList class is not constructable outside of the emoji2
module due to the embedded library file structure from bundleInside.
None of these functions should have higher visibility, as they are only
useful for writing tests of emoji2, and are not useful for writing tests
of an app that uses emoji2.
Test: Instrumentation tests
Bug: b/178035684
Change-Id: I3233ccacfff9a4b77e05f24f86e36b714720b757
diff --git a/emoji2/emoji2-benchmark/build.gradle b/emoji2/emoji2-benchmark/build.gradle
index 643376d..17f0792 100644
--- a/emoji2/emoji2-benchmark/build.gradle
+++ b/emoji2/emoji2-benchmark/build.gradle
@@ -13,11 +13,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-import static androidx.build.dependencies.DependenciesKt.*
+
import androidx.build.LibraryGroups
-import androidx.build.LibraryVersions
import androidx.build.Publish
+import static androidx.build.dependencies.DependenciesKt.*
+
plugins {
id("AndroidXPlugin")
id("com.android.library")
diff --git a/emoji2/emoji2-bundled/build.gradle b/emoji2/emoji2-bundled/build.gradle
index 9d49183..b48c953 100644
--- a/emoji2/emoji2-bundled/build.gradle
+++ b/emoji2/emoji2-bundled/build.gradle
@@ -1,7 +1,8 @@
import androidx.build.LibraryGroups
import androidx.build.LibraryVersions
import androidx.build.Publish
-import androidx.build.RunApiTasks
+
+import static androidx.build.dependencies.DependenciesKt.*
plugins {
id("AndroidXPlugin")
@@ -14,12 +15,34 @@
android {
sourceSets {
- main.assets.srcDirs new File(fontDir, "font").getAbsolutePath()
+ main {
+ assets.srcDirs new File(fontDir, "font").getAbsolutePath()
+ resources {
+ srcDirs += [fontDir.getAbsolutePath()]
+ includes += ["LICENSE_UNICODE", "LICENSE_OFL"]
+ }
+ }
+
+ androidTest {
+ assets {
+ srcDirs = [new File(fontDir, "supported-emojis").getAbsolutePath()]
+ }
+ }
}
+
}
dependencies {
api(project(":emoji2:emoji2"))
+
+ androidTestImplementation(ANDROIDX_TEST_EXT_JUNIT)
+ androidTestImplementation(ANDROIDX_TEST_CORE)
+ androidTestImplementation(ANDROIDX_TEST_RUNNER)
+ androidTestImplementation(ANDROIDX_TEST_RULES)
+ androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
+ androidTestImplementation(MOCKITO_CORE, libs.exclude_bytebuddy) // DexMaker has it"s own MockMaker
+ androidTestImplementation(DEXMAKER_MOCKITO, libs.exclude_bytebuddy) // DexMaker has it"s own MockMaker
+ androidTestImplementation project(':internal-testutils-runtime')
}
androidx {
diff --git a/emoji2/emoji2/src/androidTest/AndroidManifest.xml b/emoji2/emoji2-bundled/src/androidTest/AndroidManifest.xml
similarity index 94%
rename from emoji2/emoji2/src/androidTest/AndroidManifest.xml
rename to emoji2/emoji2-bundled/src/androidTest/AndroidManifest.xml
index 0b2cc8b..3b9ba38f 100644
--- a/emoji2/emoji2/src/androidTest/AndroidManifest.xml
+++ b/emoji2/emoji2-bundled/src/androidTest/AndroidManifest.xml
@@ -14,7 +14,7 @@
limitations under the License.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="androidx.emoji2.text">
+ package="androidx.emoji2.bundled">
<application>
<activity android:name=".TestActivity"/>
diff --git a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/AllEmojisTest.java b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/AllEmojisTest.java
similarity index 95%
rename from emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/AllEmojisTest.java
rename to emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/AllEmojisTest.java
index 6e5a680..1e5a600 100644
--- a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/AllEmojisTest.java
+++ b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/AllEmojisTest.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package androidx.emoji2.text;
+package androidx.emoji2.bundled;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
@@ -23,8 +23,11 @@
import android.text.Spanned;
import androidx.core.graphics.PaintCompat;
-import androidx.emoji2.util.EmojiMatcher;
-import androidx.emoji2.util.TestString;
+import androidx.emoji2.bundled.util.EmojiMatcher;
+import androidx.emoji2.bundled.util.TestString;
+import androidx.emoji2.text.EmojiCompat;
+import androidx.emoji2.text.EmojiMetadata;
+import androidx.emoji2.text.EmojiSpan;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.filters.LargeTest;
import androidx.test.filters.SdkSuppress;
diff --git a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/ConfigTest.java b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/ConfigTest.java
similarity index 95%
rename from emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/ConfigTest.java
rename to emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/ConfigTest.java
index 34525b1..fb1be38 100644
--- a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/ConfigTest.java
+++ b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/ConfigTest.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package androidx.emoji2.text;
+package androidx.emoji2.bundled;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -31,9 +31,10 @@
import android.content.Context;
import android.graphics.Color;
-import androidx.emoji2.util.Emoji;
-import androidx.emoji2.util.EmojiMatcher;
-import androidx.emoji2.util.TestString;
+import androidx.emoji2.bundled.util.Emoji;
+import androidx.emoji2.bundled.util.EmojiMatcher;
+import androidx.emoji2.bundled.util.TestString;
+import androidx.emoji2.text.EmojiCompat;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.MediumTest;
@@ -58,16 +59,19 @@
@Test(expected = NullPointerException.class)
public void testConstructor_throwsExceptionIfMetadataLoaderNull() {
+ //noinspection ConstantConditions
new TestConfigBuilder.TestConfig(null);
}
@Test(expected = NullPointerException.class)
public void testInitCallback_throwsExceptionIfNull() {
+ //noinspection ConstantConditions
new ValidTestConfig().registerInitCallback(null);
}
@Test(expected = NullPointerException.class)
public void testUnregisterInitCallback_throwsExceptionIfNull() {
+ //noinspection ConstantConditions
new ValidTestConfig().unregisterInitCallback(null);
}
diff --git a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/EmojiCompatTest.java b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/EmojiCompatTest.java
similarity index 97%
rename from emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/EmojiCompatTest.java
rename to emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/EmojiCompatTest.java
index 46d51bc..2315bff 100644
--- a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/EmojiCompatTest.java
+++ b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/EmojiCompatTest.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package androidx.emoji2.text;
+package androidx.emoji2.bundled;
import static org.hamcrest.Matchers.instanceOf;
import static org.junit.Assert.assertEquals;
@@ -46,10 +46,12 @@
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputConnection;
-import androidx.emoji2.util.Emoji;
-import androidx.emoji2.util.EmojiMatcher;
-import androidx.emoji2.util.KeyboardUtil;
-import androidx.emoji2.util.TestString;
+import androidx.emoji2.bundled.util.Emoji;
+import androidx.emoji2.bundled.util.EmojiMatcher;
+import androidx.emoji2.bundled.util.KeyboardUtil;
+import androidx.emoji2.bundled.util.TestString;
+import androidx.emoji2.text.EmojiCompat;
+import androidx.emoji2.text.EmojiSpan;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.MediumTest;
import androidx.test.filters.SdkSuppress;
@@ -703,8 +705,8 @@
@Test
@SdkSuppress(maxSdkVersion = 18)
public void testLoad_pre19() {
- final EmojiCompat.MetadataRepoLoader loader = Mockito.spy(new TestConfigBuilder
- .TestEmojiDataLoader());
+ final EmojiCompat.MetadataRepoLoader loader =
+ Mockito.spy(new TestConfigBuilder.TestEmojiDataLoader());
final EmojiCompat.Config config = new TestConfigBuilder.TestConfig(loader)
.setMetadataLoadStrategy(EmojiCompat.LOAD_STRATEGY_MANUAL);
@@ -720,8 +722,8 @@
@Test
@SdkSuppress(minSdkVersion = 19)
public void testLoad_startsLoading() {
- final EmojiCompat.MetadataRepoLoader loader = Mockito.spy(new TestConfigBuilder
- .TestEmojiDataLoader());
+ final EmojiCompat.MetadataRepoLoader loader =
+ Mockito.spy(new TestConfigBuilder.TestEmojiDataLoader());
final EmojiCompat.Config config = new TestConfigBuilder.TestConfig(loader)
.setMetadataLoadStrategy(EmojiCompat.LOAD_STRATEGY_MANUAL);
@@ -738,8 +740,8 @@
@Test
@SdkSuppress(minSdkVersion = 19)
public void testLoad_onceSuccessDoesNotStartLoading() {
- final EmojiCompat.MetadataRepoLoader loader = Mockito.spy(new TestConfigBuilder
- .TestEmojiDataLoader());
+ final EmojiCompat.MetadataRepoLoader loader =
+ Mockito.spy(new TestConfigBuilder.TestEmojiDataLoader());
final EmojiCompat.Config config = new TestConfigBuilder.TestConfig(loader)
.setMetadataLoadStrategy(EmojiCompat.LOAD_STRATEGY_MANUAL);
diff --git a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/EmojiKeyboardTest.java b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/EmojiKeyboardTest.java
similarity index 95%
rename from emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/EmojiKeyboardTest.java
rename to emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/EmojiKeyboardTest.java
index 9b813d4..8b4de90 100644
--- a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/EmojiKeyboardTest.java
+++ b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/EmojiKeyboardTest.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package androidx.emoji2.text;
+package androidx.emoji2.bundled;
import static org.junit.Assert.assertThat;
@@ -22,11 +22,12 @@
import android.view.inputmethod.InputConnection;
import android.widget.EditText;
-import androidx.emoji2.test.R;
-import androidx.emoji2.util.Emoji;
-import androidx.emoji2.util.EmojiMatcher;
-import androidx.emoji2.util.KeyboardUtil;
-import androidx.emoji2.util.TestString;
+import androidx.emoji2.bundled.test.R;
+import androidx.emoji2.bundled.util.Emoji;
+import androidx.emoji2.bundled.util.EmojiMatcher;
+import androidx.emoji2.bundled.util.KeyboardUtil;
+import androidx.emoji2.bundled.util.TestString;
+import androidx.emoji2.text.EmojiCompat;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.LargeTest;
import androidx.test.filters.Suppress;
diff --git a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/EmojiSpanInstrumentationTest.java b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/EmojiSpanInstrumentationTest.java
similarity index 92%
rename from emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/EmojiSpanInstrumentationTest.java
rename to emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/EmojiSpanInstrumentationTest.java
index 573a8f4..7ece287 100644
--- a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/EmojiSpanInstrumentationTest.java
+++ b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/EmojiSpanInstrumentationTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package androidx.emoji2.text;
+package androidx.emoji2.bundled;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -27,10 +27,12 @@
import android.util.TypedValue;
import android.widget.TextView;
-import androidx.emoji2.test.R;
-import androidx.emoji2.util.Emoji;
-import androidx.emoji2.util.EmojiMatcher;
-import androidx.emoji2.util.TestString;
+import androidx.emoji2.bundled.test.R;
+import androidx.emoji2.bundled.util.Emoji;
+import androidx.emoji2.bundled.util.EmojiMatcher;
+import androidx.emoji2.bundled.util.TestString;
+import androidx.emoji2.text.EmojiCompat;
+import androidx.emoji2.text.EmojiSpan;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.LargeTest;
import androidx.test.filters.SdkSuppress;
diff --git a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/FontRequestEmojiCompatConfigTest.java b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/FontRequestEmojiCompatConfigTest.java
similarity index 86%
rename from emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/FontRequestEmojiCompatConfigTest.java
rename to emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/FontRequestEmojiCompatConfigTest.java
index 92afb67..18cff62 100644
--- a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/FontRequestEmojiCompatConfigTest.java
+++ b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/FontRequestEmojiCompatConfigTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package androidx.emoji2.text;
+package androidx.emoji2.bundled;
import static android.content.res.AssetManager.ACCESS_BUFFER;
@@ -53,6 +53,9 @@
import androidx.core.provider.FontRequest;
import androidx.core.provider.FontsContractCompat.FontFamilyResult;
import androidx.core.provider.FontsContractCompat.FontInfo;
+import androidx.emoji2.text.EmojiCompat;
+import androidx.emoji2.text.FontRequestEmojiCompatConfig;
+import androidx.emoji2.text.MetadataRepo;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.LargeTest;
@@ -68,7 +71,6 @@
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
-import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
@@ -84,17 +86,19 @@
public void setup() {
mContext = ApplicationProvider.getApplicationContext();
mFontRequest = new FontRequest("authority", "package", "query",
- new ArrayList<List<byte[]>>());
+ new ArrayList<>());
mFontProviderHelper = mock(FontRequestEmojiCompatConfig.FontProviderHelper.class);
}
@Test(expected = NullPointerException.class)
public void testConstructor_withNullContext() {
+ //noinspection ConstantConditions
new FontRequestEmojiCompatConfig(null, mFontRequest);
}
@Test(expected = NullPointerException.class)
public void testConstructor_withNullFontRequest() {
+ //noinspection ConstantConditions
new FontRequestEmojiCompatConfig(mContext, null);
}
@@ -105,10 +109,10 @@
doThrow(exception).when(mFontProviderHelper).fetchFonts(
any(Context.class), any(FontRequest.class));
final WaitingLoaderCallback callback = spy(new WaitingLoaderCallback());
- final EmojiCompat.Config config = new FontRequestEmojiCompatConfig(mContext, mFontRequest,
- mFontProviderHelper);
+ final TestFontRequestEmojiCompatConfig config =
+ new TestFontRequestEmojiCompatConfig(mContext, mFontRequest, mFontProviderHelper);
- config.getMetadataRepoLoader().load(callback);
+ config.loadForTests(callback);
callback.await(DEFAULT_TIMEOUT_MILLIS);
verify(callback, times(1)).onFailed(same(exception));
}
@@ -119,15 +123,16 @@
doThrow(new NameNotFoundException()).when(mFontProviderHelper).fetchFonts(
any(Context.class), any(FontRequest.class));
final WaitingLoaderCallback callback = spy(new WaitingLoaderCallback());
- final EmojiCompat.Config config = new FontRequestEmojiCompatConfig(mContext,
- mFontRequest, mFontProviderHelper);
+ final TestFontRequestEmojiCompatConfig config =
+ new TestFontRequestEmojiCompatConfig(mContext, mFontRequest, mFontProviderHelper);
- config.getMetadataRepoLoader().load(callback);
+ config.loadForTests(callback);
callback.await(DEFAULT_TIMEOUT_MILLIS);
final ArgumentCaptor<Throwable> argumentCaptor = ArgumentCaptor.forClass(Throwable.class);
verify(callback, times(1)).onFailed(argumentCaptor.capture());
- assertThat(argumentCaptor.getValue().getMessage(), containsString("provider not found"));
+ assertThat(argumentCaptor.getValue().getMessage(),
+ containsString("provider not found"));
}
@Test
@@ -195,10 +200,10 @@
doReturn(new FontFamilyResult(STATUS_OK, fonts)).when(mFontProviderHelper).fetchFonts(
any(Context.class), any(FontRequest.class));
final WaitingLoaderCallback callback = spy(new WaitingLoaderCallback());
- final EmojiCompat.Config config = new FontRequestEmojiCompatConfig(mContext,
- mFontRequest, mFontProviderHelper);
+ final TestFontRequestEmojiCompatConfig config =
+ new TestFontRequestEmojiCompatConfig(mContext, mFontRequest, mFontProviderHelper);
- config.getMetadataRepoLoader().load(callback);
+ config.loadForTests(callback);
callback.await(DEFAULT_TIMEOUT_MILLIS);
verify(callback, times(1)).onLoaded(any(MetadataRepo.class));
}
@@ -215,10 +220,11 @@
any(Context.class), any(FontRequest.class));
final WaitingLoaderCallback callback = spy(new WaitingLoaderCallback());
final WaitingRetryPolicy retryPolicy = spy(new WaitingRetryPolicy(-1, 1));
- final EmojiCompat.Config config = new FontRequestEmojiCompatConfig(mContext,
- mFontRequest, mFontProviderHelper).setRetryPolicy(retryPolicy);
+ final TestFontRequestEmojiCompatConfig config =
+ new TestFontRequestEmojiCompatConfig(mContext, mFontRequest, mFontProviderHelper);
+ config.setRetryPolicy(retryPolicy);
- config.getMetadataRepoLoader().load(callback);
+ config.loadForTests(callback);
callback.await(DEFAULT_TIMEOUT_MILLIS);
verify(callback, never()).onLoaded(any(MetadataRepo.class));
verify(callback, times(1)).onFailed(any(Throwable.class));
@@ -237,10 +243,11 @@
any(Context.class), any(FontRequest.class));
final WaitingLoaderCallback callback = spy(new WaitingLoaderCallback());
final WaitingRetryPolicy retryPolicy = spy(new WaitingRetryPolicy(500, 1));
- final EmojiCompat.Config config = new FontRequestEmojiCompatConfig(mContext,
- mFontRequest, mFontProviderHelper).setRetryPolicy(retryPolicy);
+ final TestFontRequestEmojiCompatConfig config =
+ new TestFontRequestEmojiCompatConfig(mContext, mFontRequest, mFontProviderHelper);
+ config.setRetryPolicy(retryPolicy);
- config.getMetadataRepoLoader().load(callback);
+ config.loadForTests(callback);
retryPolicy.await(DEFAULT_TIMEOUT_MILLIS);
verify(callback, never()).onLoaded(any(MetadataRepo.class));
verify(callback, never()).onFailed(any(Throwable.class));
@@ -271,11 +278,11 @@
try {
Handler handler = new Handler(thread.getLooper());
- final EmojiCompat.Config config = new FontRequestEmojiCompatConfig(mContext,
- mFontRequest, mFontProviderHelper).setHandler(handler)
- .setRetryPolicy(retryPolicy);
+ final TestFontRequestEmojiCompatConfig config = new TestFontRequestEmojiCompatConfig(
+ mContext, mFontRequest, mFontProviderHelper);
+ config.setHandler(handler).setRetryPolicy(retryPolicy);
- config.getMetadataRepoLoader().load(callback);
+ config.loadForTests(callback);
retryPolicy.await(DEFAULT_TIMEOUT_MILLIS);
verify(callback, never()).onLoaded(any(MetadataRepo.class));
verify(callback, never()).onFailed(any(Throwable.class));
@@ -328,11 +335,11 @@
try {
Handler handler = new Handler(thread.getLooper());
- final EmojiCompat.Config config = new FontRequestEmojiCompatConfig(mContext,
- mFontRequest, mFontProviderHelper).setHandler(handler)
- .setRetryPolicy(retryPolicy);
+ final TestFontRequestEmojiCompatConfig config = new TestFontRequestEmojiCompatConfig(
+ mContext, mFontRequest, mFontProviderHelper);
+ config.setHandler(handler).setRetryPolicy(retryPolicy);
- config.getMetadataRepoLoader().load(callback);
+ config.loadForTests(callback);
retryPolicy.await(DEFAULT_TIMEOUT_MILLIS);
verify(callback, never()).onLoaded(any(MetadataRepo.class));
verify(callback, never()).onFailed(any(Throwable.class));
@@ -383,14 +390,14 @@
thread.start();
try {
Handler handler = new Handler(thread.getLooper());
- final EmojiCompat.Config config = new FontRequestEmojiCompatConfig(mContext,
- mFontRequest, mFontProviderHelper).setHandler(handler)
- .setRetryPolicy(retryPolicy);
+ final TestFontRequestEmojiCompatConfig config = new TestFontRequestEmojiCompatConfig(
+ mContext, mFontRequest, mFontProviderHelper);
+ config.setHandler(handler).setRetryPolicy(retryPolicy);
ArgumentCaptor<ContentObserver> observerCaptor =
ArgumentCaptor.forClass(ContentObserver.class);
- config.getMetadataRepoLoader().load(callback);
+ config.loadForTests(callback);
retryPolicy.await(DEFAULT_TIMEOUT_MILLIS);
verify(callback, never()).onLoaded(any(MetadataRepo.class));
verify(callback, never()).onFailed(any(Throwable.class));
@@ -439,14 +446,14 @@
thread.start();
try {
Handler handler = new Handler(thread.getLooper());
- final EmojiCompat.Config config = new FontRequestEmojiCompatConfig(mContext,
- mFontRequest, mFontProviderHelper).setHandler(handler)
- .setRetryPolicy(retryPolicy);
+ final TestFontRequestEmojiCompatConfig config = new TestFontRequestEmojiCompatConfig(
+ mContext, mFontRequest, mFontProviderHelper);
+ config.setRetryPolicy(retryPolicy).setHandler(handler);
ArgumentCaptor<ContentObserver> observerCaptor =
ArgumentCaptor.forClass(ContentObserver.class);
- config.getMetadataRepoLoader().load(callback);
+ config.loadForTests(callback);
retryPolicy.await(DEFAULT_TIMEOUT_MILLIS);
verify(callback, never()).onLoaded(any(MetadataRepo.class));
verify(callback, never()).onFailed(any(Throwable.class));
@@ -482,10 +489,10 @@
doReturn(new FontFamilyResult(statusCode, fonts)).when(mFontProviderHelper).fetchFonts(
any(Context.class), any(FontRequest.class));
final WaitingLoaderCallback callback = spy(new WaitingLoaderCallback());
- final EmojiCompat.Config config = new FontRequestEmojiCompatConfig(mContext, mFontRequest,
- mFontProviderHelper);
+ final TestFontRequestEmojiCompatConfig config = new TestFontRequestEmojiCompatConfig(
+ mContext, mFontRequest, mFontProviderHelper);
- config.getMetadataRepoLoader().load(callback);
+ config.loadForTests(callback);
callback.await(DEFAULT_TIMEOUT_MILLIS);
final ArgumentCaptor<Throwable> argumentCaptor = ArgumentCaptor.forClass(Throwable.class);
@@ -582,4 +589,28 @@
return new FontInfo[] { new FontInfo(Uri.parse("file:///some/placeholder/file"),
0 /* ttc index */, 400 /* weight */, false /* italic */, resultCode) };
}
+
+ /**
+ * This class exists since the test suite is in another package and we need to call the
+ * `protected` method `getMetadataRepoLoader` in these tests.
+ */
+ private static class TestFontRequestEmojiCompatConfig extends FontRequestEmojiCompatConfig {
+
+ TestFontRequestEmojiCompatConfig(
+ @NonNull Context context,
+ @NonNull FontRequest request) {
+ super(context, request);
+ }
+
+ TestFontRequestEmojiCompatConfig(
+ @NonNull Context context,
+ @NonNull FontRequest request,
+ @NonNull FontRequestEmojiCompatConfig.FontProviderHelper fontProviderHelper) {
+ super(context, request, fontProviderHelper);
+ }
+
+ public void loadForTests(EmojiCompat.MetadataRepoLoaderCallback loaderCallback) {
+ getMetadataRepoLoader().load(loaderCallback);
+ }
+ }
}
diff --git a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/HardDeleteTest.java b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/HardDeleteTest.java
similarity index 96%
rename from emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/HardDeleteTest.java
rename to emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/HardDeleteTest.java
index 5ea5680..5ef6199 100644
--- a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/HardDeleteTest.java
+++ b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/HardDeleteTest.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package androidx.emoji2.text;
+package androidx.emoji2.bundled;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -24,10 +24,11 @@
import android.text.SpannableStringBuilder;
import android.view.KeyEvent;
-import androidx.emoji2.util.Emoji;
-import androidx.emoji2.util.EmojiMatcher;
-import androidx.emoji2.util.KeyboardUtil;
-import androidx.emoji2.util.TestString;
+import androidx.emoji2.bundled.util.Emoji;
+import androidx.emoji2.bundled.util.EmojiMatcher;
+import androidx.emoji2.bundled.util.KeyboardUtil;
+import androidx.emoji2.bundled.util.TestString;
+import androidx.emoji2.text.EmojiCompat;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SdkSuppress;
import androidx.test.filters.SmallTest;
diff --git a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/InitCallbackTest.java b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/InitCallbackTest.java
similarity index 98%
rename from emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/InitCallbackTest.java
rename to emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/InitCallbackTest.java
index 118d823..40329c0 100644
--- a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/InitCallbackTest.java
+++ b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/InitCallbackTest.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package androidx.emoji2.text;
+package androidx.emoji2.bundled;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.nullable;
@@ -23,6 +23,7 @@
import static org.mockito.Mockito.verify;
import androidx.annotation.NonNull;
+import androidx.emoji2.text.EmojiCompat;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.MediumTest;
import androidx.test.filters.SdkSuppress;
diff --git a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/SoftDeleteTest.java b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/SoftDeleteTest.java
similarity index 97%
rename from emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/SoftDeleteTest.java
rename to emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/SoftDeleteTest.java
index 9890903..a945feb 100644
--- a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/SoftDeleteTest.java
+++ b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/SoftDeleteTest.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package androidx.emoji2.text;
+package androidx.emoji2.bundled;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -26,9 +26,10 @@
import android.text.SpannableStringBuilder;
import android.view.inputmethod.InputConnection;
-import androidx.emoji2.util.Emoji;
-import androidx.emoji2.util.EmojiMatcher;
-import androidx.emoji2.util.TestString;
+import androidx.emoji2.bundled.util.Emoji;
+import androidx.emoji2.bundled.util.EmojiMatcher;
+import androidx.emoji2.bundled.util.TestString;
+import androidx.emoji2.text.EmojiCompat;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SdkSuppress;
import androidx.test.filters.SmallTest;
diff --git a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/TestActivity.java b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/TestActivity.java
similarity index 92%
rename from emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/TestActivity.java
rename to emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/TestActivity.java
index bae3630..82ae1a0 100644
--- a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/TestActivity.java
+++ b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/TestActivity.java
@@ -13,12 +13,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package androidx.emoji2.text;
+package androidx.emoji2.bundled;
import android.app.Activity;
import android.os.Bundle;
-import androidx.emoji2.test.R;
+import androidx.emoji2.bundled.test.R;
public class TestActivity extends Activity {
diff --git a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/TestConfigBuilder.java b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/TestConfigBuilder.java
similarity index 95%
rename from emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/TestConfigBuilder.java
rename to emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/TestConfigBuilder.java
index e44b5a4..e0f9112 100644
--- a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/TestConfigBuilder.java
+++ b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/TestConfigBuilder.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package androidx.emoji2.text;
+package androidx.emoji2.bundled;
import static org.junit.Assert.fail;
import static org.mockito.Mockito.mock;
@@ -24,8 +24,9 @@
import androidx.annotation.GuardedBy;
import androidx.annotation.NonNull;
+import androidx.emoji2.text.EmojiCompat;
+import androidx.emoji2.text.MetadataRepo;
import androidx.test.core.app.ApplicationProvider;
-import androidx.text.emoji.flatbuffer.MetadataList;
import java.util.concurrent.CountDownLatch;
@@ -52,7 +53,7 @@
super(new TestEmojiDataLoader());
}
- TestConfig(final EmojiCompat.MetadataRepoLoader metadataLoader) {
+ TestConfig(@NonNull final EmojiCompat.MetadataRepoLoader metadataLoader) {
super(metadataLoader);
}
}
@@ -88,8 +89,7 @@
try {
mLoaderLatch.await();
if (mSuccess) {
- loaderCallback.onLoaded(MetadataRepo.create(mock(Typeface.class),
- new MetadataList()));
+ loaderCallback.onLoaded(MetadataRepo.create(mock(Typeface.class)));
} else {
loaderCallback.onFailed(null);
}
diff --git a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/util/Emoji.java b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/util/Emoji.java
similarity index 98%
rename from emoji2/emoji2/src/androidTest/java/androidx/emoji2/util/Emoji.java
rename to emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/util/Emoji.java
index 73117a2..1413eb4 100644
--- a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/util/Emoji.java
+++ b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/util/Emoji.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package androidx.emoji2.util;
+package androidx.emoji2.bundled.util;
import androidx.annotation.NonNull;
diff --git a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/util/EmojiMatcher.java b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/util/EmojiMatcher.java
similarity index 99%
rename from emoji2/emoji2/src/androidTest/java/androidx/emoji2/util/EmojiMatcher.java
rename to emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/util/EmojiMatcher.java
index 32d8e03..3025c68 100644
--- a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/util/EmojiMatcher.java
+++ b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/util/EmojiMatcher.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package androidx.emoji2.util;
+package androidx.emoji2.bundled.util;
import static org.mockito.ArgumentMatchers.argThat;
diff --git a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/util/KeyboardUtil.java b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/util/KeyboardUtil.java
similarity index 98%
rename from emoji2/emoji2/src/androidTest/java/androidx/emoji2/util/KeyboardUtil.java
rename to emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/util/KeyboardUtil.java
index 48a6d2e..f640452 100644
--- a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/util/KeyboardUtil.java
+++ b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/util/KeyboardUtil.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package androidx.emoji2.util;
+package androidx.emoji2.bundled.util;
import android.app.Instrumentation;
import android.text.Selection;
diff --git a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/util/TestString.java b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/util/TestString.java
similarity index 98%
rename from emoji2/emoji2/src/androidTest/java/androidx/emoji2/util/TestString.java
rename to emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/util/TestString.java
index 83728da..eaf0213 100644
--- a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/util/TestString.java
+++ b/emoji2/emoji2-bundled/src/androidTest/java/androidx/emoji2/bundled/util/TestString.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package androidx.emoji2.util;
+package androidx.emoji2.bundled.util;
import java.util.ArrayList;
import java.util.List;
diff --git a/emoji2/emoji2/src/androidTest/res/layout/activity_default.xml b/emoji2/emoji2-bundled/src/androidTest/res/layout/activity_default.xml
similarity index 100%
rename from emoji2/emoji2/src/androidTest/res/layout/activity_default.xml
rename to emoji2/emoji2-bundled/src/androidTest/res/layout/activity_default.xml
diff --git a/emoji2/emoji2-bundled/src/main/AndroidManifest.xml b/emoji2/emoji2-bundled/src/main/AndroidManifest.xml
index 56ac589..ee983ff 100644
--- a/emoji2/emoji2-bundled/src/main/AndroidManifest.xml
+++ b/emoji2/emoji2-bundled/src/main/AndroidManifest.xml
@@ -13,4 +13,4 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<manifest package="androidx.emoji.bundled"/>
\ No newline at end of file
+<manifest package="androidx.emoji2.bundled"/>
\ No newline at end of file
diff --git a/emoji2/emoji2-views-helper/build.gradle b/emoji2/emoji2-views-helper/build.gradle
index 6137849..4acd93b 100644
--- a/emoji2/emoji2-views-helper/build.gradle
+++ b/emoji2/emoji2-views-helper/build.gradle
@@ -1,4 +1,3 @@
-import androidx.build.BundleInsideHelper
import androidx.build.LibraryGroups
import androidx.build.LibraryVersions
import androidx.build.Publish
diff --git a/emoji2/emoji2/build.gradle b/emoji2/emoji2/build.gradle
index 2882681..b60150b 100644
--- a/emoji2/emoji2/build.gradle
+++ b/emoji2/emoji2/build.gradle
@@ -2,7 +2,6 @@
import androidx.build.LibraryGroups
import androidx.build.LibraryVersions
import androidx.build.Publish
-import androidx.build.RunApiTasks
import static androidx.build.dependencies.DependenciesKt.*
@@ -12,10 +11,6 @@
id("com.github.johnrengelman.shadow")
}
-ext {
- fontDir = project(':noto-emoji-compat-font').projectDir
-}
-
BundleInsideHelper.forInsideAar(
project,
/* from = */ "com.google.flatbuffers",
@@ -43,17 +38,6 @@
main {
// We use a non-standard manifest path.
manifest.srcFile 'AndroidManifest.xml'
- resources {
- srcDirs += [fontDir.getAbsolutePath()]
- includes += ["LICENSE_UNICODE", "LICENSE_OFL"]
- }
- }
-
- androidTest {
- assets {
- srcDirs = [new File(fontDir, "font").getAbsolutePath(),
- new File(fontDir, "supported-emojis").getAbsolutePath()]
- }
}
}
}
@@ -65,14 +49,4 @@
mavenGroup = LibraryGroups.EMOJI2
inceptionYear = "2017"
description = "Core library to enable emoji compatibility in Kitkat and newer devices to avoid the empty emoji characters."
-
- license {
- name = "SIL Open Font License, Version 1.1"
- url = "http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web"
- }
-
- license {
- name = "Unicode, Inc. License"
- url = "http://www.unicode.org/copyright.html#License"
- }
}
diff --git a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/EmojiSpanTest.java b/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/EmojiSpanTest.java
index 77694aa..ff969db 100644
--- a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/EmojiSpanTest.java
+++ b/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/EmojiSpanTest.java
@@ -46,7 +46,7 @@
@Before
public void setup() {
- EmojiCompat.reset(TestConfigBuilder.config());
+ EmojiCompat.reset(NoFontTestEmojiConfig.emptyConfig());
}
@Test
@@ -97,14 +97,14 @@
final int bottom = 30;
// verify the case where indicators are disabled
- EmojiCompat.reset(TestConfigBuilder.config().setEmojiSpanIndicatorEnabled(false));
+ EmojiCompat.reset(NoFontTestEmojiConfig.emptyConfig().setEmojiSpanIndicatorEnabled(false));
span.draw(canvas, "a", 0 /*start*/, 1 /*end*/, x, top, y, bottom, mock(Paint.class));
verify(canvas, times(0)).drawRect(eq(x), eq((float) top), eq(x + spanWidth),
eq((float) bottom), any(Paint.class));
// verify the case where indicators are enabled
- EmojiCompat.reset(TestConfigBuilder.config().setEmojiSpanIndicatorEnabled(true));
+ EmojiCompat.reset(NoFontTestEmojiConfig.emptyConfig().setEmojiSpanIndicatorEnabled(true));
reset(canvas);
span.draw(canvas, "a", 0 /*start*/, 1 /*end*/, x, top, y, bottom, mock(Paint.class));
diff --git a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/MetadataRepoTest.java b/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/MetadataRepoTest.java
index 3039f17..0a51020 100644
--- a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/MetadataRepoTest.java
+++ b/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/MetadataRepoTest.java
@@ -24,7 +24,6 @@
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SdkSuppress;
import androidx.test.filters.SmallTest;
-import androidx.text.emoji.flatbuffer.MetadataList;
import org.junit.Before;
import org.junit.Test;
@@ -39,7 +38,7 @@
@Before
public void clearResourceIndex() {
- mMetadataRepo = MetadataRepo.create(mock(Typeface.class), new MetadataList());
+ mMetadataRepo = MetadataRepo.create(mock(Typeface.class));
}
@Test(expected = NullPointerException.class)
diff --git a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/NoFontTestEmojiConfig.java b/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/NoFontTestEmojiConfig.java
new file mode 100644
index 0000000..812a223
--- /dev/null
+++ b/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/NoFontTestEmojiConfig.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2021 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package androidx.emoji2.text;
+
+import static org.mockito.Mockito.mock;
+
+import android.graphics.Typeface;
+
+import androidx.annotation.NonNull;
+
+public class NoFontTestEmojiConfig extends EmojiCompat.Config {
+
+ static EmojiCompat.Config emptyConfig() {
+ return new NoFontTestEmojiConfig(new EmptyEmojiDataLoader());
+ }
+
+ static EmojiCompat.Config neverLoadsConfig() {
+ return new NoFontTestEmojiConfig(new NeverCompletesMetadataRepoLoader());
+ }
+
+ static EmojiCompat.Config fromLoader(EmojiCompat.MetadataRepoLoader loader) {
+ return new NoFontTestEmojiConfig(loader);
+ }
+
+ private NoFontTestEmojiConfig(EmojiCompat.MetadataRepoLoader loader) {
+ super(loader);
+ }
+
+ private static class EmptyEmojiDataLoader implements EmojiCompat.MetadataRepoLoader {
+ @Override
+ public void load(@NonNull EmojiCompat.MetadataRepoLoaderCallback loaderCallback) {
+ loaderCallback.onLoaded(MetadataRepo.create(mock(Typeface.class)));
+ }
+ }
+
+ private static class NeverCompletesMetadataRepoLoader
+ implements EmojiCompat.MetadataRepoLoader {
+ @Override
+ public void load(@NonNull final EmojiCompat.MetadataRepoLoaderCallback loaderCallback) {
+ // do nothing, this will be called on the test thread and is a no-op
+ }
+ }
+}
diff --git a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/UninitializedStateTest.java b/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/UninitializedStateTest.java
index 6cc85cd..1a15f44 100644
--- a/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/UninitializedStateTest.java
+++ b/emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/UninitializedStateTest.java
@@ -19,7 +19,6 @@
import androidx.test.filters.SdkSuppress;
import androidx.test.filters.SmallTest;
-import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -29,19 +28,9 @@
@SdkSuppress(minSdkVersion = 19)
public class UninitializedStateTest {
- private TestConfigBuilder.WaitingDataLoader mWaitingDataLoader;
-
@Before
public void setup() {
- mWaitingDataLoader = new TestConfigBuilder.WaitingDataLoader(true);
- final EmojiCompat.Config config = new TestConfigBuilder.TestConfig(mWaitingDataLoader);
- EmojiCompat.reset(config);
- }
-
- @After
- public void after() {
- mWaitingDataLoader.getLoaderLatch().countDown();
- mWaitingDataLoader.getTestLatch().countDown();
+ EmojiCompat.reset(NoFontTestEmojiConfig.neverLoadsConfig());
}
@Test(expected = IllegalStateException.class)
diff --git a/emoji2/emoji2/src/main/java/androidx/emoji2/text/EmojiCompat.java b/emoji2/emoji2/src/main/java/androidx/emoji2/text/EmojiCompat.java
index f13c2a9..ac35a2d 100644
--- a/emoji2/emoji2/src/main/java/androidx/emoji2/text/EmojiCompat.java
+++ b/emoji2/emoji2/src/main/java/androidx/emoji2/text/EmojiCompat.java
@@ -509,20 +509,20 @@
}
/**
- * @return whether a background should be drawn for the emoji.
+ * @return whether a background should be drawn for the emoji for debugging
* @hide
*/
- @RestrictTo(LIBRARY)
- boolean isEmojiSpanIndicatorEnabled() {
+ @RestrictTo(LIBRARY_GROUP)
+ public boolean isEmojiSpanIndicatorEnabled() {
return mEmojiSpanIndicatorEnabled;
}
/**
- * @return whether a background should be drawn for the emoji.
+ * @return color of background drawn if {@link EmojiCompat#isEmojiSpanIndicatorEnabled} is true
* @hide
*/
- @RestrictTo(LIBRARY)
- @ColorInt int getEmojiSpanIndicatorColor() {
+ @RestrictTo(LIBRARY_GROUP)
+ public @ColorInt int getEmojiSpanIndicatorColor() {
return mEmojiSpanIndicatorColor;
}
diff --git a/emoji2/emoji2/src/main/java/androidx/emoji2/text/EmojiSpan.java b/emoji2/emoji2/src/main/java/androidx/emoji2/text/EmojiSpan.java
index 5760f20..28f39ef 100644
--- a/emoji2/emoji2/src/main/java/androidx/emoji2/text/EmojiSpan.java
+++ b/emoji2/emoji2/src/main/java/androidx/emoji2/text/EmojiSpan.java
@@ -16,6 +16,7 @@
package androidx.emoji2.text;
import static androidx.annotation.RestrictTo.Scope.LIBRARY;
+import static androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP;
import static androidx.annotation.RestrictTo.Scope.TESTS;
import android.annotation.SuppressLint;
@@ -102,8 +103,9 @@
/**
* @hide
*/
- @RestrictTo(LIBRARY)
- final EmojiMetadata getMetadata() {
+ @NonNull
+ @RestrictTo(LIBRARY_GROUP)
+ public final EmojiMetadata getMetadata() {
return mMetadata;
}
@@ -122,8 +124,8 @@
*
* @hide
*/
- @RestrictTo(LIBRARY)
- final int getHeight() {
+ @RestrictTo(TESTS)
+ public final int getHeight() {
return mHeight;
}
diff --git a/emoji2/emoji2/src/main/java/androidx/emoji2/text/MetadataRepo.java b/emoji2/emoji2/src/main/java/androidx/emoji2/text/MetadataRepo.java
index 3549952..27afc5d 100644
--- a/emoji2/emoji2/src/main/java/androidx/emoji2/text/MetadataRepo.java
+++ b/emoji2/emoji2/src/main/java/androidx/emoji2/text/MetadataRepo.java
@@ -79,12 +79,15 @@
}
/**
- * Construct MetadataRepo from a preloaded MetadatList.
+ * Construct MetadataRepo with empty metadata.
+ *
+ * This should only be used from tests.
+ * @hide
*/
@NonNull
- static MetadataRepo create(@NonNull final Typeface typeface,
- @NonNull final MetadataList metadataList) {
- return new MetadataRepo(typeface, metadataList);
+ @RestrictTo(RestrictTo.Scope.TESTS)
+ public static MetadataRepo create(@NonNull final Typeface typeface) {
+ return new MetadataRepo(typeface, new MetadataList());
}
/**