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
This commit is contained in:
@@ -22,9 +22,11 @@ import android.app.Dialog;
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.IntDef;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
|
||||
import com.android.settings.R;
|
||||
@@ -36,8 +38,11 @@ import com.android.settingslib.search.SearchIndexable;
|
||||
|
||||
import com.google.common.annotations.VisibleForTesting;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -46,15 +51,40 @@ import java.util.stream.Collectors;
|
||||
*/
|
||||
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
|
||||
public class TextReadingPreferenceFragment extends DashboardFragment {
|
||||
public static final String EXTRA_LAUNCHED_FROM = "launched_from";
|
||||
private static final String TAG = "TextReadingPreferenceFragment";
|
||||
private static final String FONT_SIZE_KEY = "font_size";
|
||||
private static final String DISPLAY_SIZE_KEY = "display_size";
|
||||
private static final String CATEGORY_FOR_ANYTHING_ELSE =
|
||||
"com.android.settings.suggested.category.DISPLAY_SETTINGS";
|
||||
static final String FONT_SIZE_KEY = "font_size";
|
||||
static final String DISPLAY_SIZE_KEY = "display_size";
|
||||
static final String BOLD_TEXT_KEY = "toggle_force_bold_text";
|
||||
static final String HIGH_TEXT_CONTRAST_KEY = "toggle_high_text_contrast_preference";
|
||||
static final String RESET_KEY = "reset";
|
||||
private static final String PREVIEW_KEY = "preview";
|
||||
private static final String RESET_KEY = "reset";
|
||||
private static final String BOLD_TEXT_KEY = "toggle_force_bold_text";
|
||||
private static final String HIGHT_TEXT_CONTRAST_KEY = "toggle_high_text_contrast_preference";
|
||||
private static final String NEED_RESET_SETTINGS = "need_reset_settings";
|
||||
private FontWeightAdjustmentPreferenceController mFontWeightAdjustmentController;
|
||||
private int mEntryPoint = EntryPoint.UNKNOWN_ENTRY;
|
||||
|
||||
/**
|
||||
* The entry point which launches the {@link TextReadingPreferenceFragment}.
|
||||
*
|
||||
* <p>This should only be used for logging.
|
||||
*/
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
@IntDef({
|
||||
EntryPoint.UNKNOWN_ENTRY,
|
||||
EntryPoint.SUW_VISION_SETTINGS,
|
||||
EntryPoint.SUW_ANYTHING_ELSE,
|
||||
EntryPoint.DISPLAY_SETTINGS,
|
||||
EntryPoint.ACCESSIBILITY_SETTINGS,
|
||||
})
|
||||
@interface EntryPoint {
|
||||
int UNKNOWN_ENTRY = 0;
|
||||
int SUW_VISION_SETTINGS = 1;
|
||||
int SUW_ANYTHING_ELSE = 2;
|
||||
int DISPLAY_SETTINGS = 3;
|
||||
int ACCESSIBILITY_SETTINGS = 4;
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
List<ResetStateListener> mResetStateListeners;
|
||||
@@ -91,6 +121,8 @@ public class TextReadingPreferenceFragment extends DashboardFragment {
|
||||
|
||||
@Override
|
||||
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
|
||||
updateEntryPoint();
|
||||
|
||||
final List<AbstractPreferenceController> controllers = new ArrayList<>();
|
||||
final FontSizeData fontSizeData = new FontSizeData(context);
|
||||
final DisplaySizeData displaySizeData = createDisplaySizeData(context);
|
||||
@@ -102,24 +134,29 @@ public class TextReadingPreferenceFragment extends DashboardFragment {
|
||||
final PreviewSizeSeekBarController fontSizeController = new PreviewSizeSeekBarController(
|
||||
context, FONT_SIZE_KEY, fontSizeData);
|
||||
fontSizeController.setInteractionListener(previewController);
|
||||
fontSizeController.setEntryPoint(mEntryPoint);
|
||||
controllers.add(fontSizeController);
|
||||
|
||||
final PreviewSizeSeekBarController displaySizeController = new PreviewSizeSeekBarController(
|
||||
context, DISPLAY_SIZE_KEY, displaySizeData);
|
||||
displaySizeController.setInteractionListener(previewController);
|
||||
displaySizeController.setEntryPoint(mEntryPoint);
|
||||
controllers.add(displaySizeController);
|
||||
|
||||
mFontWeightAdjustmentController =
|
||||
new FontWeightAdjustmentPreferenceController(context, BOLD_TEXT_KEY);
|
||||
mFontWeightAdjustmentController.setEntryPoint(mEntryPoint);
|
||||
controllers.add(mFontWeightAdjustmentController);
|
||||
|
||||
final HighTextContrastPreferenceController highTextContrastController =
|
||||
new HighTextContrastPreferenceController(context, HIGHT_TEXT_CONTRAST_KEY);
|
||||
new HighTextContrastPreferenceController(context, HIGH_TEXT_CONTRAST_KEY);
|
||||
highTextContrastController.setEntryPoint(mEntryPoint);
|
||||
controllers.add(highTextContrastController);
|
||||
|
||||
final TextReadingResetController resetController =
|
||||
new TextReadingResetController(context, RESET_KEY,
|
||||
v -> showDialog(DialogEnums.DIALOG_RESET_SETTINGS));
|
||||
resetController.setEntryPoint(mEntryPoint);
|
||||
controllers.add(resetController);
|
||||
|
||||
return controllers;
|
||||
@@ -162,6 +199,24 @@ public class TextReadingPreferenceFragment extends DashboardFragment {
|
||||
return new DisplaySizeData(context);
|
||||
}
|
||||
|
||||
private void updateEntryPoint() {
|
||||
final Bundle bundle = getArguments();
|
||||
if (bundle != null && bundle.containsKey(EXTRA_LAUNCHED_FROM)) {
|
||||
mEntryPoint = bundle.getInt(EXTRA_LAUNCHED_FROM, EntryPoint.UNKNOWN_ENTRY);
|
||||
return;
|
||||
}
|
||||
|
||||
final Intent intent = getIntent();
|
||||
if (intent == null) {
|
||||
mEntryPoint = EntryPoint.UNKNOWN_ENTRY;
|
||||
return;
|
||||
}
|
||||
|
||||
final Set<String> categories = intent.getCategories();
|
||||
mEntryPoint = categories != null && categories.contains(CATEGORY_FOR_ANYTHING_ELSE)
|
||||
? EntryPoint.SUW_ANYTHING_ELSE : EntryPoint.UNKNOWN_ENTRY;
|
||||
}
|
||||
|
||||
private void onPositiveButtonClicked(DialogInterface dialog, int which) {
|
||||
// To avoid showing the dialog again, probably the onDetach() of SettingsDialogFragment
|
||||
// was interrupted by unexpectedly recreating the activity.
|
||||
|
Reference in New Issue
Block a user