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

Commit 0de1d437 authored by Fabian Kozynski's avatar Fabian Kozynski Committed by Automerger Merge Worker
Browse files

Merge "Add new QS Ui EVents" into rvc-dev am: 84fdc620 am: 392fb397 am: 1f4b09e0

Change-Id: I0b6efc3560b522bde9d2c0e80461fd9f828157e0
parents da6a0988 1f4b09e0
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ import android.content.Intent;
import android.view.View;
import android.view.ViewGroup;

import com.android.internal.logging.UiEventLogger;
import com.android.systemui.plugins.annotations.ProvidesInterface;

@ProvidesInterface(version = DetailAdapter.VERSION)
@@ -44,4 +45,18 @@ public interface DetailAdapter {
    default boolean hasHeader() {
        return true;
    }

    default UiEventLogger.UiEventEnum openDetailEvent() {
        return INVALID;
    }

    default UiEventLogger.UiEventEnum closeDetailEvent() {
        return INVALID;
    }

    default UiEventLogger.UiEventEnum moreSettingsEvent() {
        return INVALID;
    }

    UiEventLogger.UiEventEnum INVALID = () -> 0;
}
+13 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.graphics.drawable.Drawable;
import android.metrics.LogMaker;
import android.service.quicksettings.Tile;

import com.android.internal.logging.InstanceId;
import com.android.systemui.plugins.annotations.DependsOn;
import com.android.systemui.plugins.annotations.ProvidesInterface;
import com.android.systemui.plugins.qs.QSTile.Callback;
@@ -81,6 +82,18 @@ public interface QSTile {
        return logMaker;
    }

    /**
     * Return a string to be used to identify the tile in UiEvents.
     */
    default String getMetricsSpec() {
        return getClass().getSimpleName();
    }

    /**
     * Return an {@link InstanceId} to be used to identify the tile in UiEvents.
     */
    InstanceId getInstanceId();

    @ProvidesInterface(version = Callback.VERSION)
    public interface Callback {
        public static final int VERSION = 1;
+9 −0
Original line number Diff line number Diff line
@@ -33,6 +33,8 @@ import android.view.LayoutInflater;
import android.view.WindowManager;

import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.UiEventLogger;
import com.android.internal.logging.UiEventLoggerImpl;
import com.android.internal.util.NotificationMessagingUtil;
import com.android.internal.widget.LockPatternUtils;
import com.android.keyguard.ViewMediatorCallback;
@@ -218,4 +220,11 @@ public class DependencyProvider {
    public Choreographer providesChoreographer() {
        return Choreographer.getInstance();
    }

    /** Provides an instance of {@link com.android.internal.logging.UiEventLogger} */
    @Singleton
    @Provides
    static UiEventLogger provideUiEventLogger() {
        return new UiEventLoggerImpl();
    }
}
+12 −1
Original line number Diff line number Diff line
@@ -20,10 +20,14 @@ import android.content.Context
import android.content.res.Configuration
import android.view.View
import android.view.ViewGroup
import com.android.internal.logging.UiEventLogger
import com.android.systemui.R
import com.android.systemui.qs.TileLayout.exactly

class DoubleLineTileLayout(context: Context) : ViewGroup(context), QSPanel.QSTileLayout {
class DoubleLineTileLayout(
    context: Context,
    private val uiEventLogger: UiEventLogger
) : ViewGroup(context), QSPanel.QSTileLayout {

    companion object {
        private const val NUM_LINES = 2
@@ -86,6 +90,13 @@ class DoubleLineTileLayout(context: Context) : ViewGroup(context), QSPanel.QSTil
        for (record in mRecords) {
            record.tile.setListening(this, listening)
        }
        if (listening) {
            for (i in 0 until numVisibleTiles) {
                val tile = mRecords[i].tile
                uiEventLogger.logWithInstanceId(
                        QSEvent.QQS_TILE_VISIBLE, 0, tile.metricsSpec, tile.instanceId)
            }
        }
    }

    override fun getNumVisibleTiles() = tilesToShow
+19 −2
Original line number Diff line number Diff line
@@ -22,7 +22,9 @@ import android.widget.Scroller;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;

import com.android.internal.logging.UiEventLogger;
import com.android.systemui.R;
import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.qs.QSPanel.QSTileLayout;
import com.android.systemui.qs.QSPanel.TileRecord;

@@ -63,7 +65,7 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout {
    private int mLayoutDirection;
    private int mHorizontalClipBound;
    private final Rect mClippingRect;
    private int mLastMaxHeight = -1;
    private final UiEventLogger mUiEventLogger = QSEvents.INSTANCE.getQsUiEventsLogger();

    public PagedTileLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
@@ -75,6 +77,7 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout {
        mLayoutDirection = getLayoutDirection();
        mClippingRect = new Rect();
    }
    private int mLastMaxHeight = -1;

    public void saveInstanceState(Bundle outState) {
        outState.putInt(CURRENT_PAGE, getCurrentItem());
@@ -126,6 +129,15 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout {
        return page;
    }

    // This will dump to the ui log all the tiles that are visible in this page
    private void logVisibleTiles(TilePage page) {
        for (int i = 0; i < page.mRecords.size(); i++) {
            QSTile t = page.mRecords.get(i).tile;
            mUiEventLogger.logWithInstanceId(QSEvent.QS_TILE_VISIBLE, 0, t.getMetricsSpec(),
                    t.getInstanceId());
        }
    }

    @Override
    public void setListening(boolean listening) {
        if (mListening == listening) return;
@@ -218,7 +230,11 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout {
        setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS);
        int currentItem = getCurrentPageNumber();
        for (int i = 0; i < mPages.size(); i++) {
            mPages.get(i).setSelected(i == currentItem ? selected : false);
            TilePage page = mPages.get(i);
            page.setSelected(i == currentItem ? selected : false);
            if (page.isSelected()) {
                logVisibleTiles(page);
            }
        }
        setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_AUTO);
    }
@@ -419,6 +435,7 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout {
                        mPageListener.onPageChanged(isLayoutRtl() ? position == mPages.size() - 1
                                : position == 0);
                    }

                }

                @Override
Loading