Merge "Add IME tracing to data gathered in WinscopeTrace"
This commit is contained in:
@@ -49,6 +49,7 @@ import androidx.annotation.VisibleForTesting;
|
||||
|
||||
import com.android.internal.app.LocalePicker;
|
||||
import com.android.internal.statusbar.IStatusBarService;
|
||||
import com.android.internal.view.IInputMethodManager;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.development.WirelessDebuggingPreferenceController;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
@@ -197,6 +198,7 @@ public abstract class DevelopmentTiles extends TileService {
|
||||
static final int SURFACE_FLINGER_LAYER_TRACE_STATUS_CODE = 1026;
|
||||
private IBinder mSurfaceFlinger;
|
||||
private IWindowManager mWindowManager;
|
||||
private IInputMethodManager mInputMethodManager;
|
||||
private Toast mToast;
|
||||
|
||||
@Override
|
||||
@@ -204,6 +206,8 @@ public abstract class DevelopmentTiles extends TileService {
|
||||
super.onCreate();
|
||||
mWindowManager = WindowManagerGlobal.getWindowManagerService();
|
||||
mSurfaceFlinger = ServiceManager.getService("SurfaceFlinger");
|
||||
mInputMethodManager = IInputMethodManager.Stub.asInterface(
|
||||
ServiceManager.getService("input_method"));
|
||||
Context context = getApplicationContext();
|
||||
CharSequence text = "Trace files written to /data/misc/wmtrace";
|
||||
mToast = Toast.makeText(context, text, Toast.LENGTH_LONG);
|
||||
@@ -256,9 +260,19 @@ public abstract class DevelopmentTiles extends TileService {
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean isImeTraceEnabled() {
|
||||
try {
|
||||
return mInputMethodManager.isImeTraceEnabled();
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "Could not get ime trace status, defaulting to false.", e);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isEnabled() {
|
||||
return isWindowTraceEnabled() || isLayerTraceEnabled() || isSystemUiTracingEnabled();
|
||||
return isWindowTraceEnabled() || isLayerTraceEnabled() || isSystemUiTracingEnabled()
|
||||
|| isImeTraceEnabled();
|
||||
}
|
||||
|
||||
private void setWindowTraceEnabled(boolean isEnabled) {
|
||||
@@ -308,11 +322,24 @@ public abstract class DevelopmentTiles extends TileService {
|
||||
}
|
||||
}
|
||||
|
||||
private void setImeTraceEnabled(boolean isEnabled) {
|
||||
try {
|
||||
if (isEnabled) {
|
||||
mInputMethodManager.startImeTrace();
|
||||
} else {
|
||||
mInputMethodManager.stopImeTrace();
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "Could not set ime trace status." + e.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setIsEnabled(boolean isEnabled) {
|
||||
setWindowTraceEnabled(isEnabled);
|
||||
setLayerTraceEnabled(isEnabled);
|
||||
setSystemUiTracing(isEnabled);
|
||||
setImeTraceEnabled(isEnabled);
|
||||
if (!isEnabled) {
|
||||
mToast.show();
|
||||
}
|
||||
|
Reference in New Issue
Block a user