Files
app_Settings/src/com/android/settings/accessibility/AccessibilityStatsLogUtils.java
Peter_Liang fcce62aa77 Logging for the feature "Text and reading options" in Android T.
Logging for the status of five features “Font size”, “Display size”, “Bold Text”, “High contrast text”, and “Reset” in the “Display size and text” page.

Bug: 222661478
Test: manual test
Change-Id: I33060fca860e02ddac7716275e8682e70fbaff1f
2022-04-27 15:25:30 +08:00

116 lines
5.6 KiB
Java

/*
* Copyright (C) 2020 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.settings.accessibility;
import static com.android.settings.accessibility.TextReadingPreferenceFragment.BOLD_TEXT_KEY;
import static com.android.settings.accessibility.TextReadingPreferenceFragment.DISPLAY_SIZE_KEY;
import static com.android.settings.accessibility.TextReadingPreferenceFragment.EntryPoint.ACCESSIBILITY_SETTINGS;
import static com.android.settings.accessibility.TextReadingPreferenceFragment.EntryPoint.DISPLAY_SETTINGS;
import static com.android.settings.accessibility.TextReadingPreferenceFragment.EntryPoint.SUW_ANYTHING_ELSE;
import static com.android.settings.accessibility.TextReadingPreferenceFragment.EntryPoint.SUW_VISION_SETTINGS;
import static com.android.settings.accessibility.TextReadingPreferenceFragment.FONT_SIZE_KEY;
import static com.android.settings.accessibility.TextReadingPreferenceFragment.HIGH_TEXT_CONTRAST_KEY;
import static com.android.settings.accessibility.TextReadingPreferenceFragment.RESET_KEY;
import android.content.ComponentName;
import com.android.settings.core.instrumentation.SettingsStatsLog;
/** Methods for logging accessibility states. */
public final class AccessibilityStatsLogUtils {
private AccessibilityStatsLogUtils() {}
/**
* Logs accessibility service name and its enabled status. Calls this when the user trigger
* the accessibility service to be enabled/disabled.
*
* @param componentName component name of the service
* @param enabled {@code true} if the service is enabled
*/
static void logAccessibilityServiceEnabled(ComponentName componentName, boolean enabled) {
SettingsStatsLog.write(SettingsStatsLog.ACCESSIBILITY_SERVICE_REPORTED,
componentName.flattenToString(), convertToLoggingServiceEnabled(enabled));
}
private static int convertToLoggingServiceEnabled(boolean enabled) {
return enabled ? SettingsStatsLog.ACCESSIBILITY_SERVICE_REPORTED__SERVICE_STATUS__ENABLED
: SettingsStatsLog.ACCESSIBILITY_SERVICE_REPORTED__SERVICE_STATUS__DISABLED;
}
/**
* Logs when the non-a11y category service is disabled. Calls this when the user disables the
* non-a11y category service for the first time.
*
* @param packageName package name of the service
* @param durationMills duration in milliseconds between starting the page and disabling the
* service
*/
static void logDisableNonA11yCategoryService(String packageName, long durationMills) {
com.android.internal.accessibility.util.AccessibilityStatsLogUtils
.logNonA11yToolServiceWarningReported(
packageName,
com.android.internal.accessibility.util.AccessibilityStatsLogUtils
.ACCESSIBILITY_PRIVACY_WARNING_STATUS_SERVICE_DISABLED,
durationMills);
}
/**
* Converts to the key name for logging.
*
* @param prefKey the preference key
* @return the int value which maps to the key name
*/
static int convertToItemKeyName(String prefKey) {
switch (prefKey) {
case FONT_SIZE_KEY:
return SettingsStatsLog.ACCESSIBILITY_TEXT_READING_OPTIONS_CHANGED__NAME__TEXT_READING_FONT_SIZE;
case DISPLAY_SIZE_KEY:
return SettingsStatsLog.ACCESSIBILITY_TEXT_READING_OPTIONS_CHANGED__NAME__TEXT_READING_DISPLAY_SIZE;
case BOLD_TEXT_KEY:
return SettingsStatsLog.ACCESSIBILITY_TEXT_READING_OPTIONS_CHANGED__NAME__TEXT_READING_BOLD_TEXT;
case HIGH_TEXT_CONTRAST_KEY:
return SettingsStatsLog.ACCESSIBILITY_TEXT_READING_OPTIONS_CHANGED__NAME__TEXT_READING_HIGH_CONTRAST_TEXT;
case RESET_KEY:
return SettingsStatsLog.ACCESSIBILITY_TEXT_READING_OPTIONS_CHANGED__NAME__TEXT_READING_RESET;
default:
return SettingsStatsLog.ACCESSIBILITY_TEXT_READING_OPTIONS_CHANGED__NAME__TEXT_READING_UNKNOWN_ITEM;
}
}
/**
* Converts to the entry point for logging.
*
* @param entryPoint the entry point
* @return the int value which maps to the entry point
*/
static int convertToEntryPoint(int entryPoint) {
switch (entryPoint) {
case SUW_VISION_SETTINGS:
return SettingsStatsLog.ACCESSIBILITY_TEXT_READING_OPTIONS_CHANGED__ENTRY_POINT__TEXT_READING_SUW_VISION_SETTINGS;
case SUW_ANYTHING_ELSE:
return SettingsStatsLog.ACCESSIBILITY_TEXT_READING_OPTIONS_CHANGED__ENTRY_POINT__TEXT_READING_SUW_ANYTHING_ELSE;
case DISPLAY_SETTINGS:
return SettingsStatsLog.ACCESSIBILITY_TEXT_READING_OPTIONS_CHANGED__ENTRY_POINT__TEXT_READING_DISPLAY_SETTINGS;
case ACCESSIBILITY_SETTINGS:
return SettingsStatsLog.ACCESSIBILITY_TEXT_READING_OPTIONS_CHANGED__ENTRY_POINT__TEXT_READING_ACCESSIBILITY_SETTINGS;
default:
return SettingsStatsLog.ACCESSIBILITY_TEXT_READING_OPTIONS_CHANGED__ENTRY_POINT__TEXT_READING_UNKNOWN_ENTRY;
}
}
}