Add @UiThread annotation to methods that update DisplayMetrics

Summary:
It seems like DisplayMetricsHolder doesn't have any thread safety policy, but in practice it only updates DisplayMetrics from the main thread. Let's formalize that by adding some annotations to that effect.

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D19417331

fbshipit-source-id: f1d464f228776197fd0df2978c9e8edbaab67850
This commit is contained in:
Emily Janzer 2020-01-24 15:13:20 -08:00 коммит произвёл Facebook Github Bot
Родитель 58d226f0b5
Коммит 53ce7b2183
1 изменённых файлов: 8 добавлений и 0 удалений

Просмотреть файл

@ -13,7 +13,9 @@ import android.util.DisplayMetrics;
import android.view.Display;
import android.view.WindowManager;
import androidx.annotation.Nullable;
import androidx.annotation.UiThread;
import com.facebook.infer.annotation.Assertions;
import com.facebook.react.bridge.UiThreadUtil;
import com.facebook.react.bridge.WritableNativeMap;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
@ -37,7 +39,9 @@ public class DisplayMetricsHolder {
* @deprecated Use {@link #setScreenDisplayMetrics(DisplayMetrics)} instead. See comment above as
* to why this is not correct to use.
*/
@UiThread
public static void setWindowDisplayMetrics(DisplayMetrics displayMetrics) {
UiThreadUtil.assertOnUiThread();
sWindowDisplayMetrics = displayMetrics;
}
@ -48,7 +52,9 @@ public class DisplayMetricsHolder {
initDisplayMetrics(context);
}
@UiThread
public static void initDisplayMetrics(Context context) {
UiThreadUtil.assertOnUiThread();
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
DisplayMetricsHolder.setWindowDisplayMetrics(displayMetrics);
@ -95,7 +101,9 @@ public class DisplayMetricsHolder {
return sWindowDisplayMetrics;
}
@UiThread
public static void setScreenDisplayMetrics(DisplayMetrics screenDisplayMetrics) {
UiThreadUtil.assertOnUiThread();
sScreenDisplayMetrics = screenDisplayMetrics;
}