mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
6c0f73b322
Summary: This diff formats the Java class files inside xplat/js/react-native-github. Since google-java-format was enabled in D16071401 we want to codemode the existing code so that users don't have to deal with formatter lint noise at diff-time. ```arc f --paths-cmd 'hg files -I "**/*.java"'``` drop-conflicts Reviewed By: cpojer Differential Revision: D16071725 fbshipit-source-id: fc6e3852e45742c109f0c5ac4065d64201c74204
60 lines
2.0 KiB
Java
60 lines
2.0 KiB
Java
// Copyright (c) Facebook, Inc. and its affiliates.
|
|
|
|
// This source code is licensed under the MIT license found in the
|
|
// LICENSE file in the root directory of this source tree.
|
|
|
|
package com.facebook.react;
|
|
|
|
import android.content.ComponentCallbacks2;
|
|
import android.content.Context;
|
|
import android.content.res.Configuration;
|
|
import com.facebook.react.bridge.MemoryPressureListener;
|
|
import java.util.Collections;
|
|
import java.util.LinkedHashSet;
|
|
import java.util.Set;
|
|
|
|
/** Translates and routes memory pressure events to the current catalyst instance. */
|
|
public class MemoryPressureRouter implements ComponentCallbacks2 {
|
|
private final Set<MemoryPressureListener> mListeners =
|
|
Collections.synchronizedSet(new LinkedHashSet<MemoryPressureListener>());
|
|
|
|
MemoryPressureRouter(Context context) {
|
|
context.getApplicationContext().registerComponentCallbacks(this);
|
|
}
|
|
|
|
public void destroy(Context context) {
|
|
context.getApplicationContext().unregisterComponentCallbacks(this);
|
|
}
|
|
|
|
/** Add a listener to be notified of memory pressure events. */
|
|
public void addMemoryPressureListener(MemoryPressureListener listener) {
|
|
mListeners.add(listener);
|
|
}
|
|
|
|
/** Remove a listener previously added with {@link #addMemoryPressureListener}. */
|
|
public void removeMemoryPressureListener(MemoryPressureListener listener) {
|
|
mListeners.remove(listener);
|
|
}
|
|
|
|
@Override
|
|
public void onTrimMemory(int level) {
|
|
dispatchMemoryPressure(level);
|
|
}
|
|
|
|
@Override
|
|
public void onConfigurationChanged(Configuration newConfig) {}
|
|
|
|
@Override
|
|
public void onLowMemory() {}
|
|
|
|
private void dispatchMemoryPressure(int level) {
|
|
// copy listeners array to avoid ConcurrentModificationException if any of the listeners remove
|
|
// themselves in handleMemoryPressure()
|
|
MemoryPressureListener[] listeners =
|
|
mListeners.toArray(new MemoryPressureListener[mListeners.size()]);
|
|
for (MemoryPressureListener listener : listeners) {
|
|
listener.handleMemoryPressure(level);
|
|
}
|
|
}
|
|
}
|