tiktok_source/df_rn_kit/com/facebook/react/HeadlessJsTaskService.java
2020-07-11 13:32:14 -07:00

110 lines
4.2 KiB
Java

package com.facebook.react;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;
import android.os.PowerManager;
import com.facebook.i.a.a;
import com.facebook.react.bridge.ReactContext;
import com.facebook.react.bridge.UiThreadUtil;
import com.facebook.react.jstasks.HeadlessJsTaskConfig;
import com.facebook.react.jstasks.HeadlessJsTaskContext;
import com.facebook.react.jstasks.HeadlessJsTaskEventListener;
import java.util.Set;
import java.util.concurrent.CopyOnWriteArraySet;
public abstract class HeadlessJsTaskService extends Service implements HeadlessJsTaskEventListener {
private static PowerManager.WakeLock sWakeLock;
public final Set<Integer> mActiveTasks = new CopyOnWriteArraySet<Integer>();
public static void acquireWakeLockNow(Context paramContext) {
PowerManager.WakeLock wakeLock = sWakeLock;
if (wakeLock == null || !wakeLock.isHeld()) {
PowerManager.WakeLock wakeLock1 = ((PowerManager)a.b(paramContext.getSystemService("power"))).newWakeLock(1, HeadlessJsTaskService.class.getSimpleName());
sWakeLock = wakeLock1;
wakeLock1.setReferenceCounted(false);
sWakeLock.acquire();
}
}
protected ReactNativeHost getReactNativeHost() {
return ((ReactApplication)getApplication()).getReactNativeHost();
}
protected HeadlessJsTaskConfig getTaskConfig(Intent paramIntent) {
return null;
}
public void invokeStartTask(ReactContext paramReactContext, final HeadlessJsTaskConfig taskConfig) {
final HeadlessJsTaskContext headlessJsTaskContext = HeadlessJsTaskContext.getInstance(paramReactContext);
headlessJsTaskContext.addTaskEventListener(this);
UiThreadUtil.runOnUiThread(new Runnable() {
public void run() {
int i = headlessJsTaskContext.startTask(taskConfig);
HeadlessJsTaskService.this.mActiveTasks.add(Integer.valueOf(i));
}
});
}
public IBinder onBind(Intent paramIntent) {
return null;
}
public void onDestroy() {
super.onDestroy();
if (getReactNativeHost().hasInstance()) {
ReactContext reactContext = getReactNativeHost().getReactInstanceManager().getCurrentReactContext();
if (reactContext != null)
HeadlessJsTaskContext.getInstance(reactContext).removeTaskEventListener(this);
}
PowerManager.WakeLock wakeLock = sWakeLock;
if (wakeLock != null)
wakeLock.release();
}
public void onHeadlessJsTaskFinish(int paramInt) {
this.mActiveTasks.remove(Integer.valueOf(paramInt));
if (this.mActiveTasks.size() == 0)
stopSelf();
}
public void onHeadlessJsTaskStart(int paramInt) {}
public int onStartCommand(Intent paramIntent, int paramInt1, int paramInt2) {
HeadlessJsTaskConfig headlessJsTaskConfig = getTaskConfig(paramIntent);
if (headlessJsTaskConfig != null) {
startTask(headlessJsTaskConfig);
return 3;
}
return 2;
}
protected void startTask(final HeadlessJsTaskConfig taskConfig) {
UiThreadUtil.assertOnUiThread();
acquireWakeLockNow((Context)this);
final ReactInstanceManager reactInstanceManager = getReactNativeHost().getReactInstanceManager();
ReactContext reactContext = reactInstanceManager.getCurrentReactContext();
if (reactContext == null) {
reactInstanceManager.addReactInstanceEventListener(new ReactInstanceManager.ReactInstanceEventListener() {
public void onReactContextInitialized(ReactContext param1ReactContext) {
HeadlessJsTaskService.this.invokeStartTask(param1ReactContext, taskConfig);
reactInstanceManager.removeReactInstanceEventListener(this);
}
});
if (!reactInstanceManager.hasStartedCreatingInitialContext()) {
reactInstanceManager.createReactContextInBackground();
return;
}
} else {
invokeStartTask(reactContext, taskConfig);
}
}
}
/* Location: C:\Users\august\Desktop\tik\df_rn_kit\classes.jar.jar!\com\facebook\react\HeadlessJsTaskService.class
* Java compiler version: 6 (50.0)
* JD-Core Version: 1.1.3
*/