Skip to content

Commit

Permalink
Move SynchronizedTypefaceHelper from Litho to RC to reuse in other RC…
Browse files Browse the repository at this point in the history
…-based frameworks

Differential Revision: D46985421

fbshipit-source-id: 84c92e5b64d43301ddceb37dbd7cbb74ddac00a0
  • Loading branch information
colriot authored and facebook-github-bot committed Jun 28, 2023
1 parent a0bfff5 commit 54432d5
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 40 deletions.
39 changes: 0 additions & 39 deletions litho-it/src/test/java/com/facebook/litho/widget/TextSpecTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,11 @@

import android.content.res.ColorStateList;
import android.graphics.Color;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.text.Layout;
import android.text.Spannable;
import android.text.TextUtils.TruncateAt;
import android.text.style.ClickableSpan;
import android.util.SparseArray;
import android.view.MotionEvent;
import android.view.View;
import androidx.core.text.TextDirectionHeuristicCompat;
Expand Down Expand Up @@ -269,43 +267,6 @@ private TextDrawable getMountedDrawableForTextWithColors(
ComponentTestHelper.mountComponent(mContext, builder.build()).getDrawables().get(0);
}

@Test
public void testSynchronizedTypefaceSparseArray() {
SparseArray<Typeface> sparseArray = new SparseArray<>();
sparseArray.put(1, Typeface.DEFAULT);
SynchronizedTypefaceHelper.SynchronizedTypefaceSparseArray synchronizedSparseArray =
new SynchronizedTypefaceHelper.SynchronizedTypefaceSparseArray(sparseArray);
synchronizedSparseArray.put(2, Typeface.DEFAULT_BOLD);
assertThat(synchronizedSparseArray.get(1)).isSameAs(Typeface.DEFAULT);
assertThat(synchronizedSparseArray.get(2)).isSameAs(Typeface.DEFAULT_BOLD);
}

@Test
public void testSynchronizedLongSparseArray() {
SynchronizedTypefaceHelper.SynchronizedLongSparseArray synchronizedLongSparseArray =
new SynchronizedTypefaceHelper.SynchronizedLongSparseArray(new Object(), 2);
SparseArray<Typeface> sparseArray = new SparseArray<>();
sparseArray.put(1, Typeface.DEFAULT);
synchronizedLongSparseArray.put(2, sparseArray);
SparseArray<Typeface> gotSparseArray = synchronizedLongSparseArray.get(2);
assertThat(gotSparseArray)
.isInstanceOf(SynchronizedTypefaceHelper.SynchronizedTypefaceSparseArray.class);
assertThat(gotSparseArray.get(1)).isSameAs(Typeface.DEFAULT);
}

@Test
public void testSynchronizedSparseArray() {
SynchronizedTypefaceHelper.SynchronizedSparseArray synchronizedSparseArray =
new SynchronizedTypefaceHelper.SynchronizedSparseArray(new Object(), 2);
SparseArray<Typeface> sparseArray = new SparseArray<>();
sparseArray.put(1, Typeface.DEFAULT);
synchronizedSparseArray.put(2, sparseArray);
SparseArray<Typeface> gotSparseArray = synchronizedSparseArray.get(2);
assertThat(gotSparseArray)
.isInstanceOf(SynchronizedTypefaceHelper.SynchronizedTypefaceSparseArray.class);
assertThat(gotSparseArray.get(1)).isSameAs(Typeface.DEFAULT);
}

@Test
public void testFullWidthText() {
final Layout layout = setupWidthTestTextLayout();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* limitations under the License.
*/

package com.facebook.litho.widget;
package com.facebook.rendercore.utils;

import android.annotation.TargetApi;
import android.graphics.Typeface;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
// (c) Meta Platforms, Inc. and affiliates. Confidential and proprietary.

package com.facebook.rendercore.utils;

import static org.assertj.core.api.Assertions.assertThat;

import android.graphics.Typeface;
import android.util.SparseArray;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;

@RunWith(RobolectricTestRunner.class)
public class SynchronizedTypefaceHelperTest {

@Test
public void testSynchronizedTypefaceSparseArray() {
SparseArray<Typeface> sparseArray = new SparseArray<>();
sparseArray.put(1, Typeface.DEFAULT);
SynchronizedTypefaceHelper.SynchronizedTypefaceSparseArray synchronizedSparseArray =
new SynchronizedTypefaceHelper.SynchronizedTypefaceSparseArray(sparseArray);
synchronizedSparseArray.put(2, Typeface.DEFAULT_BOLD);
assertThat(synchronizedSparseArray.get(1)).isSameAs(Typeface.DEFAULT);
assertThat(synchronizedSparseArray.get(2)).isSameAs(Typeface.DEFAULT_BOLD);
}

@Test
public void testSynchronizedLongSparseArray() {
SynchronizedTypefaceHelper.SynchronizedLongSparseArray synchronizedLongSparseArray =
new SynchronizedTypefaceHelper.SynchronizedLongSparseArray(new Object(), 2);
SparseArray<Typeface> sparseArray = new SparseArray<>();
sparseArray.put(1, Typeface.DEFAULT);
synchronizedLongSparseArray.put(2, sparseArray);
SparseArray<Typeface> gotSparseArray = synchronizedLongSparseArray.get(2);
assertThat(gotSparseArray)
.isInstanceOf(SynchronizedTypefaceHelper.SynchronizedTypefaceSparseArray.class);
assertThat(gotSparseArray.get(1)).isSameAs(Typeface.DEFAULT);
}

@Test
public void testSynchronizedSparseArray() {
SynchronizedTypefaceHelper.SynchronizedSparseArray synchronizedSparseArray =
new SynchronizedTypefaceHelper.SynchronizedSparseArray(new Object(), 2);
SparseArray<Typeface> sparseArray = new SparseArray<>();
sparseArray.put(1, Typeface.DEFAULT);
synchronizedSparseArray.put(2, sparseArray);
SparseArray<Typeface> gotSparseArray = synchronizedSparseArray.get(2);
assertThat(gotSparseArray)
.isInstanceOf(SynchronizedTypefaceHelper.SynchronizedTypefaceSparseArray.class);
assertThat(gotSparseArray.get(1)).isSameAs(Typeface.DEFAULT);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import com.facebook.litho.Output;
import com.facebook.litho.R;
import com.facebook.litho.config.ComponentsConfiguration;
import com.facebook.rendercore.utils.SynchronizedTypefaceHelper;

public final class TextStylesHelper {
static {
Expand Down

0 comments on commit 54432d5

Please sign in to comment.