Merge "profcollectd: register callback to wait until ETM is ready." am: 0a57fb2b79 am: e615db8246
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1972401 Change-Id: Ic27d018b813b4baffcac05f99cf9032007471e0a
This commit is contained in:
@@ -60,6 +60,12 @@ public final class ProfcollectForwardingService extends SystemService {
|
|||||||
private static ProfcollectForwardingService sSelfService;
|
private static ProfcollectForwardingService sSelfService;
|
||||||
private final Handler mHandler = new ProfcollectdHandler(IoThread.getHandler().getLooper());
|
private final Handler mHandler = new ProfcollectdHandler(IoThread.getHandler().getLooper());
|
||||||
|
|
||||||
|
private IProviderStatusCallback mProviderStatusCallback = new IProviderStatusCallback.Stub() {
|
||||||
|
public void onProviderReady() {
|
||||||
|
mHandler.sendEmptyMessage(ProfcollectdHandler.MESSAGE_REGISTER_SCHEDULERS);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
public ProfcollectForwardingService(Context context) {
|
public ProfcollectForwardingService(Context context) {
|
||||||
super(context);
|
super(context);
|
||||||
|
|
||||||
@@ -93,13 +99,23 @@ public final class ProfcollectForwardingService extends SystemService {
|
|||||||
}
|
}
|
||||||
BackgroundThread.get().getThreadHandler().post(() -> {
|
BackgroundThread.get().getThreadHandler().post(() -> {
|
||||||
if (serviceHasSupportedTraceProvider()) {
|
if (serviceHasSupportedTraceProvider()) {
|
||||||
registerObservers();
|
registerProviderStatusCallback();
|
||||||
ProfcollectBGJobService.schedule(getContext());
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void registerProviderStatusCallback() {
|
||||||
|
if (mIProfcollect == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
mIProfcollect.registerProviderStatusCallback(mProviderStatusCallback);
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
Log.e(LOG_TAG, e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private boolean serviceHasSupportedTraceProvider() {
|
private boolean serviceHasSupportedTraceProvider() {
|
||||||
if (mIProfcollect == null) {
|
if (mIProfcollect == null) {
|
||||||
return false;
|
return false;
|
||||||
@@ -141,6 +157,7 @@ public final class ProfcollectForwardingService extends SystemService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static final int MESSAGE_BINDER_CONNECT = 0;
|
public static final int MESSAGE_BINDER_CONNECT = 0;
|
||||||
|
public static final int MESSAGE_REGISTER_SCHEDULERS = 1;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleMessage(android.os.Message message) {
|
public void handleMessage(android.os.Message message) {
|
||||||
@@ -148,6 +165,10 @@ public final class ProfcollectForwardingService extends SystemService {
|
|||||||
case MESSAGE_BINDER_CONNECT:
|
case MESSAGE_BINDER_CONNECT:
|
||||||
connectNativeService();
|
connectNativeService();
|
||||||
break;
|
break;
|
||||||
|
case MESSAGE_REGISTER_SCHEDULERS:
|
||||||
|
registerObservers();
|
||||||
|
ProfcollectBGJobService.schedule(getContext());
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
throw new AssertionError("Unknown message: " + message);
|
throw new AssertionError("Unknown message: " + message);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user