Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 17d81c24 authored by archisha's avatar archisha Committed by Archisha Baranwal
Browse files

Using ViewCaptureAwareWindowManager to enable view tracing for windows

in system ui.

Bug: 342100136
Flag: com.android.systemui.enable_view_capture_tracing
Test: Ran the respective unit tests locally to verify the new changes.

Change-Id: I0115f2cb9d22a7c01d796763a290a6fbfb995079
parent 4ad3c8ad
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import android.view.WindowManager;
import android.view.animation.PathInterpolator;
import android.widget.FrameLayout;

import com.android.app.viewcapture.ViewCaptureAwareWindowManager;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.systemui.assist.AssistLogger;
@@ -66,7 +67,7 @@ public class DefaultUiController implements AssistManager.UiController {
    protected InvocationLightsView mInvocationLightsView;
    protected final AssistLogger mAssistLogger;

    private final WindowManager mWindowManager;
    private final ViewCaptureAwareWindowManager mWindowManager;
    private final MetricsLogger mMetricsLogger;
    private final Lazy<AssistManager> mAssistManagerLazy;
    private final WindowManager.LayoutParams mLayoutParams;
@@ -80,12 +81,12 @@ public class DefaultUiController implements AssistManager.UiController {

    @Inject
    public DefaultUiController(Context context, AssistLogger assistLogger,
            WindowManager windowManager, MetricsLogger metricsLogger,
            Lazy<AssistManager> assistManagerLazy,
            ViewCaptureAwareWindowManager viewCaptureAwareWindowManager,
            MetricsLogger metricsLogger, Lazy<AssistManager> assistManagerLazy,
            NavigationBarController navigationBarController) {
        mAssistLogger = assistLogger;
        mRoot = new FrameLayout(context);
        mWindowManager = windowManager;
        mWindowManager = viewCaptureAwareWindowManager;
        mMetricsLogger = metricsLogger;
        mAssistManagerLazy = assistManagerLazy;

+3 −2
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.view.ViewGroup.LayoutParams.MATCH_PARENT
import android.view.WindowManager
import android.widget.ProgressBar
import androidx.core.view.isGone
import com.android.app.viewcapture.ViewCaptureAwareWindowManager
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.res.R
import javax.inject.Inject
@@ -37,7 +38,7 @@ class SideFpsProgressBar
@Inject
constructor(
    private val layoutInflater: LayoutInflater,
    private val windowManager: WindowManager,
    private val windowManager: ViewCaptureAwareWindowManager,
) {
    private var overlayView: View? = null

@@ -90,7 +91,7 @@ constructor(
    ) {
        if (overlayView == null) {
            overlayView = layoutInflater.inflate(R.layout.sidefps_progress_bar, null, false)
            windowManager.addView(overlayView, overlayViewParams)
            windowManager.addView(requireNotNull(overlayView), overlayViewParams)
            progressBar?.pivotX = 0.0f
            progressBar?.pivotY = 0.0f
        }
+3 −2
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import androidx.annotation.VisibleForTesting
import androidx.core.os.postDelayed
import androidx.core.view.isVisible
import androidx.dynamicanimation.animation.DynamicAnimation
import com.android.app.viewcapture.ViewCaptureAwareWindowManager
import com.android.internal.jank.Cuj
import com.android.internal.jank.InteractionJankMonitor
import com.android.internal.util.LatencyTracker
@@ -83,7 +84,7 @@ private const val DEBUG = false
class BackPanelController
internal constructor(
    context: Context,
    private val windowManager: WindowManager,
    private val windowManager: ViewCaptureAwareWindowManager,
    private val viewConfiguration: ViewConfiguration,
    private val mainHandler: Handler,
    private val systemClock: SystemClock,
@@ -102,7 +103,7 @@ internal constructor(
    class Factory
    @Inject
    constructor(
        private val windowManager: WindowManager,
        private val windowManager: ViewCaptureAwareWindowManager,
        private val viewConfiguration: ViewConfiguration,
        @BackPanelUiThread private val uiThreadContext: UiThreadContext,
        private val systemClock: SystemClock,
+1 −12
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ package com.android.systemui.navigationbar.views;
import static android.inputmethodservice.InputMethodService.canImeRenderGesturalNavButtons;
import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL;

import static com.android.systemui.Flags.enableViewCaptureTracing;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_HOME_DISABLED;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_OVERVIEW_DISABLED;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_SEARCH_DISABLED;
@@ -38,7 +37,6 @@ import android.content.res.Configuration;
import android.graphics.Canvas;
import android.graphics.Point;
import android.graphics.Rect;
import android.media.permission.SafeCloseable;
import android.os.Bundle;
import android.os.RemoteException;
import android.util.AttributeSet;
@@ -61,19 +59,18 @@ import android.widget.FrameLayout;
import androidx.annotation.Nullable;

import com.android.app.animation.Interpolators;
import com.android.app.viewcapture.ViewCaptureFactory;
import com.android.internal.annotations.VisibleForTesting;
import com.android.settingslib.Utils;
import com.android.systemui.Gefingerpoken;
import com.android.systemui.model.SysUiState;
import com.android.systemui.navigationbar.ScreenPinningNotify;
import com.android.systemui.navigationbar.gestural.EdgeBackGestureHandler;
import com.android.systemui.navigationbar.views.buttons.ButtonDispatcher;
import com.android.systemui.navigationbar.views.buttons.ContextualButton;
import com.android.systemui.navigationbar.views.buttons.ContextualButtonGroup;
import com.android.systemui.navigationbar.views.buttons.DeadZone;
import com.android.systemui.navigationbar.views.buttons.KeyButtonDrawable;
import com.android.systemui.navigationbar.views.buttons.NearestTouchFrame;
import com.android.systemui.navigationbar.gestural.EdgeBackGestureHandler;
import com.android.systemui.recents.Recents;
import com.android.systemui.res.R;
import com.android.systemui.settings.DisplayTracker;
@@ -181,7 +178,6 @@ public class NavigationBarView extends FrameLayout {
    private boolean mOverviewProxyEnabled;
    private boolean mShowSwipeUpUi;
    private UpdateActiveTouchRegionsCallback mUpdateActiveTouchRegionsCallback;
    private SafeCloseable mViewCaptureCloseable;

    private class NavTransitionListener implements TransitionListener {
        private boolean mBackTransitioning;
@@ -1082,10 +1078,6 @@ public class NavigationBarView extends FrameLayout {
        }

        updateNavButtonIcons();
        if (enableViewCaptureTracing()) {
            mViewCaptureCloseable = ViewCaptureFactory.getInstance(getContext())
                    .startCapture(getRootView(), ".NavigationBarView");
        }
    }

    @Override
@@ -1098,9 +1090,6 @@ public class NavigationBarView extends FrameLayout {
            mFloatingRotationButton.hide();
            mRotationButtonController.unregisterListeners();
        }
        if (mViewCaptureCloseable != null) {
            mViewCaptureCloseable.close();
        }
    }

    void dump(PrintWriter pw) {
+4 −3
Original line number Diff line number Diff line
@@ -65,6 +65,7 @@ import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import androidx.annotation.WorkerThread;

import com.android.app.viewcapture.ViewCaptureAwareWindowManager;
import com.android.internal.logging.UiEventLogger;
import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.keyguard.KeyguardUpdateMonitorCallback;
@@ -184,7 +185,7 @@ public class InternetDialogController implements AccessPointController.AccessPoi
    private GlobalSettings mGlobalSettings;
    private int mDefaultDataSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
    private ConnectivityManager.NetworkCallback mConnectivityManagerNetworkCallback;
    private WindowManager mWindowManager;
    private ViewCaptureAwareWindowManager mWindowManager;
    private ToastFactory mToastFactory;
    private SignalDrawable mSignalDrawable;
    private SignalDrawable mSecondarySignalDrawable; // For the secondary mobile data sub in DSDS
@@ -246,7 +247,7 @@ public class InternetDialogController implements AccessPointController.AccessPoi
            @Main Handler handler, @Main Executor mainExecutor,
            BroadcastDispatcher broadcastDispatcher, KeyguardUpdateMonitor keyguardUpdateMonitor,
            GlobalSettings globalSettings, KeyguardStateController keyguardStateController,
            WindowManager windowManager, ToastFactory toastFactory,
            ViewCaptureAwareWindowManager viewCaptureAwareWindowManager, ToastFactory toastFactory,
            @Background Handler workerHandler,
            CarrierConfigTracker carrierConfigTracker,
            LocationController locationController,
@@ -278,7 +279,7 @@ public class InternetDialogController implements AccessPointController.AccessPoi
        mAccessPointController = accessPointController;
        mWifiIconInjector = new WifiUtils.InternetIconInjector(mContext);
        mConnectivityManagerNetworkCallback = new DataConnectivityListener();
        mWindowManager = windowManager;
        mWindowManager = viewCaptureAwareWindowManager;
        mToastFactory = toastFactory;
        mSignalDrawable = new SignalDrawable(mContext);
        mSecondarySignalDrawable = new SignalDrawable(mContext);
Loading