Merge "Fine-tune the location of the logging for accessibility text and reading options." into tm-dev
diff --git a/src/com/android/settings/accessibility/PreviewSizeSeekBarController.java b/src/com/android/settings/accessibility/PreviewSizeSeekBarController.java
index 711eb0f..2078112 100644
--- a/src/com/android/settings/accessibility/PreviewSizeSeekBarController.java
+++ b/src/com/android/settings/accessibility/PreviewSizeSeekBarController.java
@@ -22,9 +22,7 @@
 import androidx.annotation.NonNull;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.accessibility.TextReadingPreferenceFragment.EntryPoint;
 import com.android.settings.core.BasePreferenceController;
-import com.android.settings.core.instrumentation.SettingsStatsLog;
 import com.android.settings.widget.LabeledSeekBarPreference;
 
 /**
@@ -38,9 +36,6 @@
     private ProgressInteractionListener mInteractionListener;
     private LabeledSeekBarPreference mSeekBarPreference;
 
-    @EntryPoint
-    private int mEntryPoint;
-
     private final SeekBar.OnSeekBarChangeListener mSeekBarChangeListener =
             new SeekBar.OnSeekBarChangeListener() {
                 @Override
@@ -51,11 +46,6 @@
                         mInteractionListener.onProgressChanged();
                     }
 
-                    SettingsStatsLog.write(
-                            SettingsStatsLog.ACCESSIBILITY_TEXT_READING_OPTIONS_CHANGED,
-                            AccessibilityStatsLogUtils.convertToItemKeyName(getPreferenceKey()),
-                            progress,
-                            AccessibilityStatsLogUtils.convertToEntryPoint(mEntryPoint));
                 }
 
                 @Override
@@ -107,14 +97,6 @@
         mSeekBarPreference.setProgress(defaultProgress);
     }
 
-    /**
-     * The entry point is used for logging.
-     *
-     * @param entryPoint from which settings page
-     */
-    void setEntryPoint(@EntryPoint int entryPoint) {
-        mEntryPoint = entryPoint;
-    }
 
     /**
      * Interface for callbacks when users interact with the seek bar.
diff --git a/src/com/android/settings/accessibility/TextReadingPreferenceFragment.java b/src/com/android/settings/accessibility/TextReadingPreferenceFragment.java
index 104be26..4033404 100644
--- a/src/com/android/settings/accessibility/TextReadingPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/TextReadingPreferenceFragment.java
@@ -129,18 +129,17 @@
 
         final TextReadingPreviewController previewController = new TextReadingPreviewController(
                 context, PREVIEW_KEY, fontSizeData, displaySizeData);
+        previewController.setEntryPoint(mEntryPoint);
         controllers.add(previewController);
 
         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 =
diff --git a/src/com/android/settings/accessibility/TextReadingPreviewController.java b/src/com/android/settings/accessibility/TextReadingPreviewController.java
index cef20aa..1be8c70 100644
--- a/src/com/android/settings/accessibility/TextReadingPreviewController.java
+++ b/src/com/android/settings/accessibility/TextReadingPreviewController.java
@@ -19,6 +19,7 @@
 import android.content.Context;
 import android.content.res.Configuration;
 import android.os.SystemClock;
+import android.util.Log;
 import android.view.Choreographer;
 import android.view.View;
 
@@ -26,7 +27,9 @@
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
+import com.android.settings.accessibility.TextReadingPreferenceFragment.EntryPoint;
 import com.android.settings.core.BasePreferenceController;
+import com.android.settings.core.instrumentation.SettingsStatsLog;
 import com.android.settings.display.PreviewPagerAdapter;
 import com.android.settings.widget.LabeledSeekBarPreference;
 
@@ -38,6 +41,7 @@
  */
 class TextReadingPreviewController extends BasePreferenceController implements
         PreviewSizeSeekBarController.ProgressInteractionListener {
+    private static final String TAG = "TextReadingPreviewCtrl";
     static final int[] PREVIEW_SAMPLE_RES_IDS = new int[]{
             R.layout.accessibility_text_reading_preview_app_grid,
             R.layout.screen_zoom_preview_1,
@@ -58,6 +62,9 @@
     private LabeledSeekBarPreference mFontSizePreference;
     private LabeledSeekBarPreference mDisplaySizePreference;
 
+    @EntryPoint
+    private int mEntryPoint;
+
     private final Choreographer.FrameCallback mCommit = f -> {
         tryCommitFontSizeConfig();
         tryCommitDisplaySizeConfig();
@@ -92,8 +99,8 @@
                 /* message= */ "Display size preference is null, the preview controller"
                         + " couldn't get the info");
 
-        mLastFontProgress = mFontSizePreference.getProgress();
-        mLastDisplayProgress = mDisplaySizePreference.getProgress();
+        mLastFontProgress = mFontSizeData.getInitialIndex();
+        mLastDisplayProgress = mDisplaySizeData.getInitialIndex();
 
         final Configuration origConfig = mContext.getResources().getConfiguration();
         final boolean isLayoutRtl =
@@ -132,6 +139,15 @@
     }
 
     /**
+     * The entry point is used for logging.
+     *
+     * @param entryPoint from which settings page
+     */
+    void setEntryPoint(@EntryPoint int entryPoint) {
+        mEntryPoint = entryPoint;
+    }
+
+    /**
      * Avoids the flicker when switching to the previous or next level.
      *
      * <p><br>[Flickering problem steps] commit()-> snapshot in framework(old screenshot) ->
@@ -162,6 +178,16 @@
         if (fontProgress != mLastFontProgress) {
             mFontSizeData.commit(fontProgress);
             mLastFontProgress = fontProgress;
+
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "Font size: " + fontProgress);
+            }
+
+            SettingsStatsLog.write(
+                    SettingsStatsLog.ACCESSIBILITY_TEXT_READING_OPTIONS_CHANGED,
+                    AccessibilityStatsLogUtils.convertToItemKeyName(mFontSizePreference.getKey()),
+                    fontProgress,
+                    AccessibilityStatsLogUtils.convertToEntryPoint(mEntryPoint));
         }
     }
 
@@ -170,6 +196,17 @@
         if (displayProgress != mLastDisplayProgress) {
             mDisplaySizeData.commit(displayProgress);
             mLastDisplayProgress = displayProgress;
+
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "Display size: " + displayProgress);
+            }
+
+            SettingsStatsLog.write(
+                    SettingsStatsLog.ACCESSIBILITY_TEXT_READING_OPTIONS_CHANGED,
+                    AccessibilityStatsLogUtils.convertToItemKeyName(
+                            mDisplaySizePreference.getKey()),
+                    displayProgress,
+                    AccessibilityStatsLogUtils.convertToEntryPoint(mEntryPoint));
         }
     }