Refine metrics log in infrastructure

- Add interfaces to set/get metrics category in BasePreferenceController
  for descendants having a chance to get it.
- Set metrics category in DashboardFragment
- Automatically log metrics in onPreferenceChange of
  TogglePreferenceController
- Add support for TwoStateButtonPreference in TogglePreferenceController
  to make the preference generic

Bug: 137559984
Test: robotest
Change-Id: Ia7e0d24a3db1991b18e0286d9894570fa71247a3
This commit is contained in:
Jason Chiu
2020-04-01 15:40:47 +08:00
parent 9266fe32f7
commit 819abf7f87
10 changed files with 53 additions and 38 deletions

View File

@@ -28,6 +28,7 @@ import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import android.app.settings.SettingsEnums;
import android.content.Context;
import androidx.preference.Preference;
@@ -205,6 +206,15 @@ public class BasePreferenceControllerTest {
assertThat(keys).isEmpty();
}
@Test
public void getMetricsCategory_metricsCategoryIsSet_shouldReturnTheSameCategory() {
mPreferenceController.setMetricsCategory(SettingsEnums.DISPLAY);
final int category = mPreferenceController.getMetricsCategory();
assertThat(category).isEqualTo(SettingsEnums.DISPLAY);
}
private class FakeBasePreferenceController extends BasePreferenceController {
private int mAvailable;