Merge "Log FOLD_STATE_DURATION_REPORTED atom"

This commit is contained in:
TreeHugger Robot
2022-01-13 05:38:31 +00:00
committed by Android (Google) Code Review
3 changed files with 61 additions and 0 deletions

View File

@@ -28,6 +28,8 @@ import com.android.systemui.media.taptotransfer.receiver.MediaTttChipControllerR
import com.android.systemui.media.taptotransfer.sender.MediaTttChipControllerSender;
import com.android.systemui.people.PeopleProvider;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.unfold.FoldStateLogger;
import com.android.systemui.unfold.FoldStateLoggingProvider;
import com.android.systemui.unfold.SysUIUnfoldComponent;
import com.android.systemui.unfold.UnfoldLatencyTracker;
import com.android.systemui.unfold.util.NaturalRotationUnfoldProgressProvider;
@@ -139,6 +141,8 @@ public interface SysUIComponent {
getMediaTttChipControllerReceiver();
getMediaTttCommandLineHelper();
getUnfoldLatencyTracker().init();
getFoldStateLoggingProvider().ifPresent(FoldStateLoggingProvider::init);
getFoldStateLogger().ifPresent(FoldStateLogger::init);
}
/**
@@ -165,6 +169,18 @@ public interface SysUIComponent {
@SysUISingleton
UnfoldLatencyTracker getUnfoldLatencyTracker();
/**
* Creates a FoldStateLoggingProvider.
*/
@SysUISingleton
Optional<FoldStateLoggingProvider> getFoldStateLoggingProvider();
/**
* Creates a FoldStateLogger.
*/
@SysUISingleton
Optional<FoldStateLogger> getFoldStateLogger();
/**
* Main dependency providing module.
*/

View File

@@ -0,0 +1,36 @@
/*
* Copyright (C) 2022 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.systemui.unfold
import com.android.internal.util.FrameworkStatsLog
/** Logs fold state changes. */
class FoldStateLogger(private val foldStateLoggingProvider: FoldStateLoggingProvider) :
FoldStateLoggingProvider.FoldStateLoggingListener {
fun init() {
foldStateLoggingProvider.addCallback(this)
}
override fun onFoldUpdate(foldStateUpdate: FoldStateChange) {
FrameworkStatsLog.write(
FrameworkStatsLog.FOLD_STATE_DURATION_REPORTED,
foldStateUpdate.previous,
foldStateUpdate.current,
foldStateUpdate.dtMillis)
}
}

View File

@@ -100,6 +100,15 @@ class UnfoldTransitionModule {
FoldStateLoggingProviderImpl(foldStateProvider, SystemClockImpl())
}
@Provides
@Singleton
fun providesFoldStateLogger(
optionalFoldStateLoggingProvider: Optional<FoldStateLoggingProvider>
): Optional<FoldStateLogger> =
optionalFoldStateLoggingProvider.map { FoldStateLoggingProvider ->
FoldStateLogger(FoldStateLoggingProvider)
}
@Provides
@Singleton
fun provideUnfoldTransitionConfig(context: Context): UnfoldTransitionConfig =