Merge "Log visibility change for all fragments."

This commit is contained in:
TreeHugger Robot
2016-08-18 21:05:59 +00:00
committed by Android (Google) Code Review
183 changed files with 556 additions and 288 deletions

View File

@@ -253,7 +253,7 @@ public class ApnEditor extends SettingsPreferenceFragment
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.APN_EDITOR; return MetricsEvent.APN_EDITOR;
} }

View File

@@ -149,7 +149,7 @@ public class ApnSettings extends RestrictedSettingsFragment implements
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.APN; return MetricsEvent.APN;
} }

View File

@@ -44,7 +44,7 @@ public class ApplicationSettings extends SettingsPreferenceFragment {
private ListPreference mInstallLocation; private ListPreference mInstallLocation;
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.APPLICATION; return MetricsEvent.APPLICATION;
} }

View File

@@ -123,7 +123,7 @@ public class ChooseLockGeneric extends SettingsActivity {
protected boolean mForFingerprint = false; protected boolean mForFingerprint = false;
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.CHOOSE_LOCK_GENERIC; return MetricsEvent.CHOOSE_LOCK_GENERIC;
} }

View File

@@ -50,6 +50,7 @@ import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.internal.widget.LockPatternUtils; import com.android.internal.widget.LockPatternUtils;
import com.android.internal.widget.LockPatternUtils.RequestThrottledException; import com.android.internal.widget.LockPatternUtils.RequestThrottledException;
import com.android.internal.widget.TextViewInputDisabler; import com.android.internal.widget.TextViewInputDisabler;
import com.android.settings.core.InstrumentedFragment;
import com.android.settings.notification.RedactionInterstitial; import com.android.settings.notification.RedactionInterstitial;
import com.android.settings.password.PasswordRequirementAdapter; import com.android.settings.password.PasswordRequirementAdapter;
import com.android.setupwizardlib.GlifLayout; import com.android.setupwizardlib.GlifLayout;
@@ -437,7 +438,7 @@ public class ChooseLockPassword extends SettingsActivity {
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.CHOOSE_LOCK_PASSWORD; return MetricsEvent.CHOOSE_LOCK_PASSWORD;
} }

View File

@@ -36,6 +36,7 @@ import com.android.internal.widget.LockPatternUtils.RequestThrottledException;
import com.android.internal.widget.LockPatternView; import com.android.internal.widget.LockPatternView;
import com.android.internal.widget.LockPatternView.Cell; import com.android.internal.widget.LockPatternView.Cell;
import com.android.internal.widget.LockPatternView.DisplayMode; import com.android.internal.widget.LockPatternView.DisplayMode;
import com.android.settings.core.InstrumentedFragment;
import com.android.settings.notification.RedactionInterstitial; import com.android.settings.notification.RedactionInterstitial;
import com.android.setupwizardlib.GlifLayout; import com.android.setupwizardlib.GlifLayout;
import com.google.android.collect.Lists; import com.google.android.collect.Lists;
@@ -240,7 +241,7 @@ public class ChooseLockPattern extends SettingsActivity {
}; };
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.CHOOSE_LOCK_PATTERN; return MetricsEvent.CHOOSE_LOCK_PATTERN;
} }

View File

@@ -251,7 +251,7 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity {
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.CONFIRM_LOCK_PASSWORD; return MetricsEvent.CONFIRM_LOCK_PASSWORD;
} }

View File

@@ -194,7 +194,7 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity {
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.CONFIRM_LOCK_PATTERN; return MetricsEvent.CONFIRM_LOCK_PATTERN;
} }

View File

@@ -35,6 +35,7 @@ import android.widget.Button;
import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.internal.widget.LockPatternUtils; import com.android.internal.widget.LockPatternUtils;
import com.android.settings.core.InstrumentedFragment;
import java.util.Locale; import java.util.Locale;
@@ -43,7 +44,7 @@ public class CryptKeeperConfirm extends InstrumentedFragment {
private static final String TAG = "CryptKeeperConfirm"; private static final String TAG = "CryptKeeperConfirm";
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.CRYPT_KEEPER_CONFIRM; return MetricsEvent.CRYPT_KEEPER_CONFIRM;
} }

View File

@@ -36,6 +36,7 @@ import android.view.ViewGroup;
import android.widget.Button; import android.widget.Button;
import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.core.InstrumentedFragment;
public class CryptKeeperSettings extends InstrumentedFragment { public class CryptKeeperSettings extends InstrumentedFragment {
private static final String TAG = "CryptKeeper"; private static final String TAG = "CryptKeeper";
@@ -115,7 +116,7 @@ public class CryptKeeperSettings extends InstrumentedFragment {
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.CRYPT_KEEPER; return MetricsEvent.CRYPT_KEEPER;
} }

View File

@@ -83,7 +83,7 @@ public class DateTimeSettings extends SettingsPreferenceFragment
private Preference mDatePref; private Preference mDatePref;
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.DATE_TIME; return MetricsEvent.DATE_TIME;
} }

View File

@@ -332,7 +332,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.DEVELOPMENT; return MetricsEvent.DEVELOPMENT;
} }

View File

@@ -17,7 +17,6 @@
package com.android.settings; package com.android.settings;
import android.app.Activity; import android.app.Activity;
import android.app.AlertDialog;
import android.app.AppGlobals; import android.app.AppGlobals;
import android.app.ListFragment; import android.app.ListFragment;
import android.app.admin.DeviceAdminInfo; import android.app.admin.DeviceAdminInfo;
@@ -31,7 +30,6 @@ import android.content.IntentFilter;
import android.content.pm.ActivityInfo; import android.content.pm.ActivityInfo;
import android.content.pm.IPackageManager; import android.content.pm.IPackageManager;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ResolveInfo; import android.content.pm.ResolveInfo;
import android.content.res.Resources; import android.content.res.Resources;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
@@ -50,6 +48,10 @@ import android.widget.ImageView;
import android.widget.ListView; import android.widget.ListView;
import android.widget.TextView; import android.widget.TextView;
import com.android.internal.logging.MetricsProto;
import com.android.settings.core.instrumentation.VisibilityLoggerMixin;
import com.android.settings.core.instrumentation.Instrumentable;
import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlPullParserException;
import java.io.IOException; import java.io.IOException;
@@ -58,13 +60,14 @@ import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
public class DeviceAdminSettings extends ListFragment { public class DeviceAdminSettings extends ListFragment implements Instrumentable {
static final String TAG = "DeviceAdminSettings"; static final String TAG = "DeviceAdminSettings";
private final VisibilityLoggerMixin mVisibilityLoggerMixin =
new VisibilityLoggerMixin(this);
private DevicePolicyManager mDPM; private DevicePolicyManager mDPM;
private UserManager mUm; private UserManager mUm;
private static class DeviceAdminListItem implements Comparable<DeviceAdminListItem> { private static class DeviceAdminListItem implements Comparable<DeviceAdminListItem> {
public DeviceAdminInfo info; public DeviceAdminInfo info;
@@ -103,6 +106,11 @@ public class DeviceAdminSettings extends ListFragment {
} }
}; };
@Override
public int getMetricsCategory() {
return MetricsProto.MetricsEvent.DEVICE_ADMIN_SETTINGS;
}
@Override @Override
public void onCreate(Bundle icicle) { public void onCreate(Bundle icicle) {
super.onCreate(icicle); super.onCreate(icicle);
@@ -126,9 +134,11 @@ public class DeviceAdminSettings extends ListFragment {
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
final Activity activity = getActivity();
mVisibilityLoggerMixin.onResume(activity);
IntentFilter filter = new IntentFilter(); IntentFilter filter = new IntentFilter();
filter.addAction(DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED); filter.addAction(DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED);
getActivity().registerReceiverAsUser( activity.registerReceiverAsUser(
mBroadcastReceiver, UserHandle.ALL, filter, null, null); mBroadcastReceiver, UserHandle.ALL, filter, null, null);
final ComponentName deviceOwnerComponent = mDPM.getDeviceOwnerComponentOnAnyUser(); final ComponentName deviceOwnerComponent = mDPM.getDeviceOwnerComponentOnAnyUser();
@@ -146,7 +156,9 @@ public class DeviceAdminSettings extends ListFragment {
@Override @Override
public void onPause() { public void onPause() {
getActivity().unregisterReceiver(mBroadcastReceiver); final Activity activity = getActivity();
activity.unregisterReceiver(mBroadcastReceiver);
mVisibilityLoggerMixin.onPause(activity);
super.onPause(); super.onPause();
} }

View File

@@ -86,7 +86,7 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment implements In
private boolean mDebuggingFeaturesDisallowedBySystem; private boolean mDebuggingFeaturesDisallowedBySystem;
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.DEVICEINFO; return MetricsEvent.DEVICEINFO;
} }

View File

@@ -102,7 +102,7 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
private SwitchPreference mCameraGesturePreference; private SwitchPreference mCameraGesturePreference;
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.DISPLAY; return MetricsEvent.DISPLAY;
} }

View File

@@ -76,7 +76,7 @@ public class DreamSettings extends SettingsPreferenceFragment implements
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.DREAM; return MetricsEvent.DREAM;
} }

View File

@@ -92,7 +92,7 @@ public class EncryptionInterstitial extends SettingsActivity {
private int mRequestedPasswordQuality; private int mRequestedPasswordQuality;
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.ENCRYPTION; return MetricsEvent.ENCRYPTION;
} }

View File

@@ -245,7 +245,7 @@ public class HomeSettings extends SettingsPreferenceFragment implements Indexabl
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.HOME; return MetricsEvent.HOME;
} }

View File

@@ -256,7 +256,7 @@ public class IccLockSettings extends SettingsPreferenceFragment
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.ICC_LOCK; return MetricsEvent.ICC_LOCK;
} }

View File

@@ -59,7 +59,7 @@ public class LegalSettings extends SettingsPreferenceFragment implements Indexab
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.ABOUT_LEGAL_SETTINGS; return MetricsEvent.ABOUT_LEGAL_SETTINGS;
} }

View File

@@ -306,7 +306,7 @@ public class MasterClear extends OptionsMenuFragment {
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.MASTER_CLEAR; return MetricsEvent.MASTER_CLEAR;
} }
} }

View File

@@ -177,7 +177,7 @@ public class MasterClearConfirm extends OptionsMenuFragment {
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.MASTER_CLEAR_CONFIRM; return MetricsEvent.MASTER_CLEAR_CONFIRM;
} }
} }

View File

@@ -17,6 +17,8 @@ package com.android.settings;
import android.os.Bundle; import android.os.Bundle;
import com.android.settings.core.InstrumentedFragment;
/** /**
* Base class for a fragment that has the options menu. * Base class for a fragment that has the options menu.
* SettingsPreferenceFragment automatically sets this, but some activities do not use * SettingsPreferenceFragment automatically sets this, but some activities do not use

View File

@@ -1,47 +0,0 @@
/*
* Copyright (C) 2014 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;
import android.app.ListFragment;
import android.view.View;
import android.view.ViewGroup;
/**
* A ListFragment with a pinned header
*/
public class PinnedHeaderListFragment extends ListFragment {
public PinnedHeaderListFragment() {
super();
}
/**
* Set the pinned header view. This can only be done when the ListView is already created.
*
* @param pinnedHeaderView the view to be used for the pinned header view.
*/
public void setPinnedHeaderView(View pinnedHeaderView) {
((ViewGroup) getListView().getParent()).addView(pinnedHeaderView, 0);
}
/**
* Clear the pinned header view. This can only be done when the ListView is already created.
*/
public void clearPinnedHeaderView() {
((ViewGroup) getListView().getParent()).removeViewAt(0);
}
}

View File

@@ -71,7 +71,7 @@ public class PrivacySettings extends SettingsPreferenceFragment implements Index
private boolean mEnabled; private boolean mEnabled;
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.PRIVACY; return MetricsEvent.PRIVACY;
} }

View File

@@ -41,6 +41,7 @@ import android.widget.TextView;
import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.SettingsPreferenceFragment.SettingsDialogFragment; import com.android.settings.SettingsPreferenceFragment.SettingsDialogFragment;
import com.android.settings.core.InstrumentedFragment;
public class ProxySelector extends InstrumentedFragment implements DialogCreatable { public class ProxySelector extends InstrumentedFragment implements DialogCreatable {
private static final String TAG = "ProxySelector"; private static final String TAG = "ProxySelector";
@@ -272,7 +273,7 @@ public class ProxySelector extends InstrumentedFragment implements DialogCreatab
}; };
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.PROXY_SELECTOR; return MetricsEvent.PROXY_SELECTOR;
} }
} }

View File

@@ -207,7 +207,7 @@ public class ResetNetwork extends OptionsMenuFragment {
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.RESET_NETWORK; return MetricsEvent.RESET_NETWORK;
} }
} }

View File

@@ -149,7 +149,7 @@ public class ResetNetworkConfirm extends OptionsMenuFragment {
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.RESET_NETWORK_CONFIRM; return MetricsEvent.RESET_NETWORK_CONFIRM;
} }
} }

View File

@@ -55,7 +55,7 @@ public class ScreenPinningSettings extends SettingsPreferenceFragment
private LockPatternUtils mLockPatternUtils; private LockPatternUtils mLockPatternUtils;
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.SCREEN_PINNING; return MetricsEvent.SCREEN_PINNING;
} }

View File

@@ -153,7 +153,7 @@ public class SecuritySettings extends SettingsPreferenceFragment
private String mCurrentProfilePassword; private String mCurrentProfilePassword;
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.SECURITY; return MetricsEvent.SECURITY;
} }
@@ -1011,7 +1011,7 @@ public class SecuritySettings extends SettingsPreferenceFragment
private DevicePolicyManager mDPM; private DevicePolicyManager mDPM;
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.SECURITY; return MetricsEvent.SECURITY;
} }

View File

@@ -45,6 +45,7 @@ import android.view.ViewGroup;
import android.widget.Button; import android.widget.Button;
import com.android.settings.applications.LayoutPreference; import com.android.settings.applications.LayoutPreference;
import com.android.settings.core.InstrumentedFragment;
import com.android.settingslib.HelpUtils; import com.android.settingslib.HelpUtils;
import java.util.UUID; import java.util.UUID;

View File

@@ -39,7 +39,7 @@ public class TestingSettings extends SettingsPreferenceFragment {
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.TESTING; return MetricsEvent.TESTING;
} }
} }

View File

@@ -119,7 +119,7 @@ public class TetherSettings extends RestrictedSettingsFragment
private Preference mDataSaverFooter; private Preference mDataSaverFooter;
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.TETHER; return MetricsEvent.TETHER;
} }

View File

@@ -70,7 +70,7 @@ public class TrustAgentSettings extends SettingsPreferenceFragment implements
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.TRUST_AGENT; return MetricsEvent.TRUST_AGENT;
} }

View File

@@ -91,7 +91,7 @@ public class TrustedCredentialsSettings extends OptionsMenuFragment
private static final int REQUEST_CONFIRM_CREDENTIALS = 1; private static final int REQUEST_CONFIRM_CREDENTIALS = 1;
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.TRUSTED_CREDENTIALS; return MetricsEvent.TRUSTED_CREDENTIALS;
} }

View File

@@ -68,7 +68,7 @@ public class UserCredentialsSettings extends OptionsMenuFragment implements OnIt
private ListView mListView; private ListView mListView;
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.USER_CREDENTIALS; return MetricsEvent.USER_CREDENTIALS;
} }

View File

@@ -37,13 +37,15 @@ import android.widget.SectionIndexer;
import android.widget.SimpleCursorAdapter; import android.widget.SimpleCursorAdapter;
import android.widget.TextView; import android.widget.TextView;
import com.android.internal.logging.MetricsProto;
import com.android.settings.core.instrumentation.VisibilityLoggerMixin;
import com.android.settings.inputmethod.UserDictionaryAddWordContents; import com.android.settings.inputmethod.UserDictionaryAddWordContents;
import com.android.settings.inputmethod.UserDictionarySettingsUtils; import com.android.settings.inputmethod.UserDictionarySettingsUtils;
import com.android.settings.core.instrumentation.Instrumentable;
import java.util.Locale; import java.util.Locale;
public class UserDictionarySettings extends ListFragment { public class UserDictionarySettings extends ListFragment implements Instrumentable {
private static final String TAG = "UserDictionarySettings";
private static final String[] QUERY_PROJECTION = { private static final String[] QUERY_PROJECTION = {
UserDictionary.Words._ID, UserDictionary.Words.WORD, UserDictionary.Words.SHORTCUT UserDictionary.Words._ID, UserDictionary.Words.WORD, UserDictionary.Words.SHORTCUT
@@ -67,10 +69,17 @@ public class UserDictionarySettings extends ListFragment {
private static final int OPTIONS_MENU_ADD = Menu.FIRST; private static final int OPTIONS_MENU_ADD = Menu.FIRST;
private Cursor mCursor; private final VisibilityLoggerMixin mVisibilityLoggerMixin =
new VisibilityLoggerMixin(this);
private Cursor mCursor;
protected String mLocale; protected String mLocale;
@Override
public int getMetricsCategory() {
return MetricsProto.MetricsEvent.USER_DICTIONARY_SETTINGS;
}
@Override @Override
public View onCreateView( public View onCreateView(
LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
@@ -116,6 +125,12 @@ public class UserDictionarySettings extends ListFragment {
UserDictionarySettingsUtils.getLocaleDisplayName(getActivity(), mLocale)); UserDictionarySettingsUtils.getLocaleDisplayName(getActivity(), mLocale));
} }
@Override
public void onResume() {
super.onResume();
mVisibilityLoggerMixin.onResume(getActivity());
}
private Cursor createCursor(final String locale) { private Cursor createCursor(final String locale) {
// Locale can be any of: // Locale can be any of:
// - The string representation of a locale, as returned by Locale#toString() // - The string representation of a locale, as returned by Locale#toString()
@@ -174,6 +189,12 @@ public class UserDictionarySettings extends ListFragment {
return false; return false;
} }
@Override
public void onPause() {
super.onPause();
mVisibilityLoggerMixin.onPause(getActivity());
}
/** /**
* Add or edit a word. If editingWord is null, it's an add; otherwise, it's an edit. * Add or edit a word. If editingWord is null, it's an add; otherwise, it's an edit.
* @param editingWord the word to edit, or null if it's an add. * @param editingWord the word to edit, or null if it's an add.

View File

@@ -36,7 +36,7 @@ import java.util.List;
public class WallpaperTypeSettings extends SettingsPreferenceFragment implements Indexable { public class WallpaperTypeSettings extends SettingsPreferenceFragment implements Indexable {
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.WALLPAPER_TYPE; return MetricsEvent.WALLPAPER_TYPE;
} }

View File

@@ -28,6 +28,7 @@ import android.util.Log;
import android.webkit.IWebViewUpdateService; import android.webkit.IWebViewUpdateService;
import android.webkit.WebViewProviderInfo; import android.webkit.WebViewProviderInfo;
import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.core.InstrumentedActivity;
import java.util.ArrayList; import java.util.ArrayList;
@@ -97,7 +98,7 @@ public class WebViewImplementation extends InstrumentedActivity implements
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.WEBVIEW_IMPLEMENTATION; return MetricsEvent.WEBVIEW_IMPLEMENTATION;
} }

View File

@@ -191,7 +191,7 @@ public class WifiCallingSettings extends SettingsPreferenceFragment
}; };
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.WIFI_CALLING; return MetricsEvent.WIFI_CALLING;
} }

View File

@@ -207,7 +207,7 @@ public class WirelessSettings extends SettingsPreferenceFragment implements Inde
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.WIRELESS; return MetricsEvent.WIRELESS;
} }

View File

@@ -31,6 +31,9 @@ import android.view.ViewGroup;
import android.widget.ListView; import android.widget.ListView;
import android.widget.SimpleAdapter; import android.widget.SimpleAdapter;
import com.android.internal.logging.MetricsProto;
import com.android.settings.core.instrumentation.VisibilityLoggerMixin;
import com.android.settings.core.instrumentation.Instrumentable;
import com.android.settingslib.datetime.ZoneGetter; import com.android.settingslib.datetime.ZoneGetter;
import java.util.Collections; import java.util.Collections;
@@ -46,8 +49,7 @@ import java.util.TimeZone;
* the time zone. Pressing Back without choosing from the list will not * the time zone. Pressing Back without choosing from the list will not
* result in a change in the time zone setting. * result in a change in the time zone setting.
*/ */
public class ZonePicker extends ListFragment { public class ZonePicker extends ListFragment implements Instrumentable {
private static final String TAG = "ZonePicker";
public interface ZoneSelectionListener { public interface ZoneSelectionListener {
// You can add any argument if you really need it... // You can add any argument if you really need it...
@@ -56,6 +58,7 @@ public class ZonePicker extends ListFragment {
private static final int MENU_TIMEZONE = Menu.FIRST+1; private static final int MENU_TIMEZONE = Menu.FIRST+1;
private static final int MENU_ALPHABETICAL = Menu.FIRST; private static final int MENU_ALPHABETICAL = Menu.FIRST;
private final VisibilityLoggerMixin mVisibilityLoggerMixin = new VisibilityLoggerMixin(this);
private boolean mSortedByTimezone; private boolean mSortedByTimezone;
@@ -132,6 +135,11 @@ public class ZonePicker extends ListFragment {
return TimeZone.getTimeZone((String)((Map<?, ?>)item).get(ZoneGetter.KEY_ID)); return TimeZone.getTimeZone((String)((Map<?, ?>)item).get(ZoneGetter.KEY_ID));
} }
@Override
public int getMetricsCategory() {
return MetricsProto.MetricsEvent.ZONE_PICKER;
}
@Override @Override
public void onActivityCreated(Bundle savedInstanceState) { public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState); super.onActivityCreated(savedInstanceState);
@@ -174,6 +182,12 @@ public class ZonePicker extends ListFragment {
} }
} }
@Override
public void onResume() {
super.onResume();
mVisibilityLoggerMixin.onResume(getActivity());
}
@Override @Override
public boolean onOptionsItemSelected(MenuItem item) { public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) { switch (item.getItemId()) {
@@ -225,6 +239,12 @@ public class ZonePicker extends ListFragment {
} }
} }
@Override
public void onPause() {
super.onPause();
mVisibilityLoggerMixin.onPause(getActivity());
}
private static class MyComparator implements Comparator<Map<?, ?>> { private static class MyComparator implements Comparator<Map<?, ?>> {
private String mSortingKey; private String mSortingKey;

View File

@@ -198,7 +198,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
private DevicePolicyManager mDpm; private DevicePolicyManager mDpm;
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.ACCESSIBILITY; return MetricsEvent.ACCESSIBILITY;
} }

View File

@@ -37,8 +37,6 @@ import java.util.List;
public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragment public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragment
implements Preference.OnPreferenceChangeListener { implements Preference.OnPreferenceChangeListener {
private static final String TAG = AccessibilitySettingsForSetupWizard.class.getSimpleName();
// Preferences. // Preferences.
private static final String DISPLAY_MAGNIFICATION_PREFERENCE = private static final String DISPLAY_MAGNIFICATION_PREFERENCE =
"screen_magnification_preference"; "screen_magnification_preference";
@@ -50,7 +48,7 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm
private Preference mScreenReaderPreference; private Preference mScreenReaderPreference;
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.SUW_ACCESSIBILITY; return MetricsEvent.SUW_ACCESSIBILITY;
} }

View File

@@ -97,7 +97,7 @@ public class CaptionPropertiesFragment extends SettingsPreferenceFragment
private boolean mShowingCustom; private boolean mShowingCustom;
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.ACCESSIBILITY_CAPTION_PROPERTIES; return MetricsEvent.ACCESSIBILITY_CAPTION_PROPERTIES;
} }

View File

@@ -23,7 +23,7 @@ public class FontSizePreferenceFragmentForSetupWizard
extends ToggleFontSizePreferenceFragment { extends ToggleFontSizePreferenceFragment {
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.SUW_ACCESSIBILITY_FONT_SIZE; return MetricsEvent.SUW_ACCESSIBILITY_FONT_SIZE;
} }

View File

@@ -78,7 +78,7 @@ public class ToggleAccessibilityServicePreferenceFragment
private int mShownDialogId; private int mShownDialogId;
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.ACCESSIBILITY_SERVICE; return MetricsEvent.ACCESSIBILITY_SERVICE;
} }

View File

@@ -100,7 +100,7 @@ public class ToggleAutoclickPreferenceFragment extends ToggleFeaturePreferenceFr
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.ACCESSIBILITY_TOGGLE_AUTOCLICK; return MetricsEvent.ACCESSIBILITY_TOGGLE_AUTOCLICK;
} }

View File

@@ -37,7 +37,7 @@ public class ToggleDaltonizerPreferenceFragment extends ToggleFeaturePreferenceF
private ListPreference mType; private ListPreference mType;
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.ACCESSIBILITY_TOGGLE_DALTONIZER; return MetricsEvent.ACCESSIBILITY_TOGGLE_DALTONIZER;
} }

View File

@@ -73,7 +73,7 @@ public class ToggleFontSizePreferenceFragment extends PreviewSeekBarPreferenceFr
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.ACCESSIBILITY_FONT_SIZE; return MetricsEvent.ACCESSIBILITY_FONT_SIZE;
} }

View File

@@ -45,7 +45,7 @@ public class ToggleGlobalGesturePreferenceFragment
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.ACCESSIBILITY_TOGGLE_GLOBAL_GESTURE; return MetricsEvent.ACCESSIBILITY_TOGGLE_GLOBAL_GESTURE;
} }
} }

View File

@@ -178,7 +178,7 @@ public class ToggleScreenMagnificationPreferenceFragment extends ToggleFeaturePr
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFICATION; return MetricsEvent.ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFICATION;
} }

View File

@@ -33,7 +33,7 @@ public class ToggleScreenMagnificationPreferenceFragmentForSetupWizard
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.SUW_ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFICATION; return MetricsEvent.SUW_ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFICATION;
} }

View File

@@ -33,7 +33,7 @@ public class ToggleScreenReaderPreferenceFragmentForSetupWizard
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.SUW_ACCESSIBILITY_TOGGLE_SCREEN_READER; return MetricsEvent.SUW_ACCESSIBILITY_TOGGLE_SCREEN_READER;
} }

View File

@@ -134,7 +134,7 @@ public class AccountSettings extends SettingsPreferenceFragment
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.ACCOUNT; return MetricsEvent.ACCOUNT;
} }

View File

@@ -145,7 +145,7 @@ public class AccountSyncSettings extends AccountPreferenceBase {
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.ACCOUNTS_ACCOUNT_SYNC; return MetricsEvent.ACCOUNTS_ACCOUNT_SYNC;
} }

View File

@@ -93,7 +93,7 @@ public class ChooseAccountActivity extends SettingsPreferenceFragment {
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.ACCOUNTS_CHOOSE_ACCOUNT_ACTIVITY; return MetricsEvent.ACCOUNTS_CHOOSE_ACCOUNT_ACTIVITY;
} }

View File

@@ -88,7 +88,7 @@ public class ManageAccountsSettings extends AccountPreferenceBase
private Account mFirstAccount; private Account mFirstAccount;
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.ACCOUNTS_MANAGE_ACCOUNTS; return MetricsEvent.ACCOUNTS_MANAGE_ACCOUNTS;
} }

View File

@@ -118,7 +118,7 @@ public class ManagedProfileSettings extends SettingsPreferenceFragment
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsProto.MetricsEvent.ACCOUNTS_WORK_PROFILE_SETTINGS; return MetricsProto.MetricsEvent.ACCOUNTS_WORK_PROFILE_SETTINGS;
} }

View File

@@ -77,7 +77,7 @@ public class AdvancedAppSettings extends SettingsPreferenceFragment implements
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.APPLICATIONS_ADVANCED; return MetricsEvent.APPLICATIONS_ADVANCED;
} }

View File

@@ -212,7 +212,7 @@ public class AppLaunchSettings extends AppInfoWithHeader implements OnClickListe
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.APPLICATIONS_APP_LAUNCH; return MetricsEvent.APPLICATIONS_APP_LAUNCH;
} }
} }

View File

@@ -39,7 +39,7 @@ import android.widget.Switch;
import android.widget.TextView; import android.widget.TextView;
import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.InstrumentedFragment; import com.android.settings.core.InstrumentedFragment;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.SettingsActivity; import com.android.settings.SettingsActivity;
import com.android.settings.Utils; import com.android.settings.Utils;
@@ -180,7 +180,7 @@ public class AppOpsDetails extends InstrumentedFragment {
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.APP_OPS_DETAILS; return MetricsEvent.APP_OPS_DETAILS;
} }

View File

@@ -29,7 +29,7 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.InstrumentedFragment; import com.android.settings.core.InstrumentedFragment;
import com.android.settings.R; import com.android.settings.R;
public class AppOpsSummary extends InstrumentedFragment { public class AppOpsSummary extends InstrumentedFragment {
@@ -52,7 +52,7 @@ public class AppOpsSummary extends InstrumentedFragment {
int mCurPos; int mCurPos;
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.APP_OPS_SUMMARY; return MetricsEvent.APP_OPS_SUMMARY;
} }

View File

@@ -604,7 +604,7 @@ public class AppStorageSettings extends AppInfoWithHeader
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.APPLICATIONS_APP_STORAGE; return MetricsEvent.APPLICATIONS_APP_STORAGE;
} }

View File

@@ -16,21 +16,15 @@
package com.android.settings.applications; package com.android.settings.applications;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction; import android.app.FragmentTransaction;
import android.content.res.TypedArray;
import android.os.Bundle; import android.os.Bundle;
import android.preference.PreferenceFrameLayout; import android.preference.PreferenceFrameLayout;
import android.support.v13.app.FragmentPagerAdapter;
import android.support.v4.view.PagerTabStrip;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.InstrumentedFragment; import com.android.settings.core.InstrumentedFragment;
import com.android.settings.R; import com.android.settings.R;
public class BackgroundCheckSummary extends InstrumentedFragment { public class BackgroundCheckSummary extends InstrumentedFragment {
@@ -38,7 +32,7 @@ public class BackgroundCheckSummary extends InstrumentedFragment {
private LayoutInflater mInflater; private LayoutInflater mInflater;
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.BACKGROUND_CHECK_SUMMARY; return MetricsEvent.BACKGROUND_CHECK_SUMMARY;
} }

View File

@@ -49,7 +49,7 @@ public class ConfirmConvertToFbe extends SettingsPreferenceFragment {
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.CONVERT_FBE_CONFIRM; return MetricsEvent.CONVERT_FBE_CONFIRM;
} }
} }

View File

@@ -84,7 +84,7 @@ public class ConvertToFbe extends SettingsPreferenceFragment {
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.CONVERT_FBE; return MetricsEvent.CONVERT_FBE;
} }
} }

View File

@@ -157,7 +157,7 @@ public class DrawOverlayDetails extends AppInfoWithHeader implements OnPreferenc
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.SYSTEM_ALERT_WINDOW_APPS; return MetricsEvent.SYSTEM_ALERT_WINDOW_APPS;
} }

View File

@@ -326,7 +326,7 @@ public class InstalledAppDetails extends AppInfoBase
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.APPLICATIONS_INSTALLED_APP_DETAILS; return MetricsEvent.APPLICATIONS_INSTALLED_APP_DETAILS;
} }

View File

@@ -54,7 +54,7 @@ import android.widget.SectionIndexer;
import android.widget.Spinner; import android.widget.Spinner;
import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.AppHeader; import com.android.settings.AppHeader;
import com.android.settings.InstrumentedFragment; import com.android.settings.core.InstrumentedFragment;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Settings.AllApplicationsActivity; import com.android.settings.Settings.AllApplicationsActivity;
import com.android.settings.Settings.DomainsURLsAppListActivity; import com.android.settings.Settings.DomainsURLsAppListActivity;
@@ -409,7 +409,7 @@ public class ManageApplications extends InstrumentedFragment
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
switch (mListType) { switch (mListType) {
case LIST_TYPE_MAIN: case LIST_TYPE_MAIN:
return MetricsEvent.MANAGE_APPLICATIONS; return MetricsEvent.MANAGE_APPLICATIONS;

View File

@@ -74,7 +74,7 @@ public class ManageAssist extends SettingsPreferenceFragment
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.APPLICATIONS_MANAGE_ASSIST; return MetricsEvent.APPLICATIONS_MANAGE_ASSIST;
} }

View File

@@ -18,7 +18,6 @@ import android.annotation.Nullable;
import android.app.Application; import android.app.Application;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.DropDownPreference; import android.support.v7.preference.DropDownPreference;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.support.v7.preference.Preference.OnPreferenceChangeListener; import android.support.v7.preference.Preference.OnPreferenceChangeListener;
@@ -28,7 +27,6 @@ import android.view.View;
import com.android.internal.logging.MetricsProto; import com.android.internal.logging.MetricsProto;
import com.android.internal.telephony.SmsUsageMonitor; import com.android.internal.telephony.SmsUsageMonitor;
import com.android.settings.DividerPreference; import com.android.settings.DividerPreference;
import com.android.settings.InstrumentedFragment;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.applications.AppStateBaseBridge.Callback; import com.android.settings.applications.AppStateBaseBridge.Callback;
import com.android.settings.applications.AppStateSmsPremBridge.SmsState; import com.android.settings.applications.AppStateSmsPremBridge.SmsState;
@@ -76,7 +74,7 @@ public class PremiumSmsAccess extends EmptyTextSettings implements Callback, Cal
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsProto.MetricsEvent.PREMIUM_SMS_ACCESS; return MetricsProto.MetricsEvent.PREMIUM_SMS_ACCESS;
} }

View File

@@ -125,7 +125,7 @@ public class ProcessStatsDetail extends SettingsPreferenceFragment {
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.APPLICATIONS_PROCESS_STATS_DETAIL; return MetricsEvent.APPLICATIONS_PROCESS_STATS_DETAIL;
} }

View File

@@ -26,7 +26,7 @@ import android.widget.TextView;
import com.android.internal.app.procstats.ProcessStats; import com.android.internal.app.procstats.ProcessStats;
import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.InstrumentedFragment; import com.android.settings.core.InstrumentedFragment;
import com.android.settings.R; import com.android.settings.R;
import static com.android.settings.Utils.prepareCustomPreferencesList; import static com.android.settings.Utils.prepareCustomPreferencesList;
@@ -86,7 +86,7 @@ public class ProcessStatsMemDetail extends InstrumentedFragment {
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.APPLICATIONS_PROCESS_STATS_MEM_DETAIL; return MetricsEvent.APPLICATIONS_PROCESS_STATS_MEM_DETAIL;
} }

View File

@@ -98,7 +98,7 @@ public class ProcessStatsSummary extends ProcessStatsBase implements OnPreferenc
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.PROCESS_STATS_SUMMARY; return MetricsEvent.PROCESS_STATS_SUMMARY;
} }

View File

@@ -91,7 +91,7 @@ public class ProcessStatsUi extends ProcessStatsBase {
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.APPLICATIONS_PROCESS_STATS_UI; return MetricsEvent.APPLICATIONS_PROCESS_STATS_UI;
} }

View File

@@ -33,7 +33,7 @@ import android.widget.Button;
import android.widget.TextView; import android.widget.TextView;
import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.InstrumentedFragment; import com.android.settings.core.InstrumentedFragment;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Utils; import com.android.settings.Utils;
@@ -534,7 +534,7 @@ public class RunningServiceDetails extends InstrumentedFragment
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.RUNNING_SERVICE_DETAILS; return MetricsEvent.RUNNING_SERVICE_DETAILS;
} }

View File

@@ -108,7 +108,7 @@ public class RunningServices extends SettingsPreferenceFragment {
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.RUNNING_SERVICES; return MetricsEvent.RUNNING_SERVICES;
} }

View File

@@ -27,7 +27,7 @@ public class SpecialAccessSettings extends SettingsPreferenceFragment {
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.SPECIAL_ACCESS; return MetricsEvent.SPECIAL_ACCESS;
} }
} }

View File

@@ -162,7 +162,7 @@ public class UsageAccessDetails extends AppInfoWithHeader implements OnPreferenc
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.APPLICATIONS_USAGE_ACCESS_DETAIL; return MetricsEvent.APPLICATIONS_USAGE_ACCESS_DETAIL;
} }

View File

@@ -45,7 +45,7 @@ public class VrListenerSettings extends ManagedServiceSettings {
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.VR_MANAGE_LISTENERS; return MetricsEvent.VR_MANAGE_LISTENERS;
} }
} }

View File

@@ -153,7 +153,7 @@ public class WriteSettingsDetails extends AppInfoWithHeader implements OnPrefere
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.SYSTEM_ALERT_WINDOW_APPS; return MetricsEvent.SYSTEM_ALERT_WINDOW_APPS;
} }

View File

@@ -192,7 +192,7 @@ public class ToggleBackupSettingFragment extends SettingsPreferenceFragment
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.PRIVACY; return MetricsEvent.PRIVACY;
} }

View File

@@ -133,7 +133,7 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment implem
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.BLUETOOTH; return MetricsEvent.BLUETOOTH;
} }

View File

@@ -85,7 +85,7 @@ public final class DevicePickerFragment extends DeviceListPreferenceFragment {
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.BLUETOOTH_DEVICE_PICKER; return MetricsEvent.BLUETOOTH_DEVICE_PICKER;
} }

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2015 The Android Open Source Project * Copyright (C) 2016 The Android Open Source Project
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -14,34 +14,29 @@
* limitations under the License. * limitations under the License.
*/ */
package com.android.settings; package com.android.settings.core;
import android.app.Activity; import android.app.Activity;
import com.android.internal.logging.MetricsLogger; import com.android.settings.core.instrumentation.Instrumentable;
import com.android.settings.core.instrumentation.VisibilityLoggerMixin;
/** /**
* Instrumented activity that logs visibility state. * Instrumented activity that logs visibility state.
*/ */
public abstract class InstrumentedActivity extends Activity { public abstract class InstrumentedActivity extends Activity implements Instrumentable {
/**
* Declare the view of this category. private final VisibilityLoggerMixin mVisibilityLoggerMixin = new VisibilityLoggerMixin(this);
*
* Categories are defined in {@link com.android.internal.logging.MetricsProto.MetricsEvent}
* or if there is no relevant existing category you may define one in
* {@link com.android.settings.InstrumentedFragment}.
*/
protected abstract int getMetricsCategory();
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
MetricsLogger.visible(this, getMetricsCategory()); mVisibilityLoggerMixin.onResume(this);
} }
@Override @Override
public void onPause() { public void onPause() {
super.onPause(); super.onPause();
MetricsLogger.hidden(this, getMetricsCategory()); mVisibilityLoggerMixin.onPause(this);
} }
} }

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2015 The Android Open Source Project * Copyright (C) 2016 The Android Open Source Project
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -14,31 +14,20 @@
* limitations under the License. * limitations under the License.
*/ */
package com.android.settings; package com.android.settings.core;
import android.os.Bundle; import android.os.Bundle;
import android.support.v14.preference.PreferenceFragment; import android.support.v14.preference.PreferenceFragment;
import com.android.internal.logging.MetricsLogger; import com.android.settings.core.instrumentation.VisibilityLoggerMixin;
import com.android.settings.core.instrumentation.Instrumentable;
/** /**
* Instrumented fragment that logs visibility state. * Instrumented fragment that logs visibility state.
*/ */
public abstract class InstrumentedFragment extends PreferenceFragment { public abstract class InstrumentedFragment extends PreferenceFragment implements Instrumentable {
// Declare new temporary categories here, starting after this value.
public static final int UNDECLARED = 100000;
// Used by PreferenceActivity for the dummy fragment it adds, no useful data here. private final VisibilityLoggerMixin mVisibilityLoggerMixin = new VisibilityLoggerMixin(this);
public static final int PREFERENCE_ACTIVITY_FRAGMENT = UNDECLARED + 1;
/**
* Declare the view of this category.
*
* Categories are defined in {@link com.android.internal.logging.MetricsProto.MetricsEvent}
* or if there is no relevant existing category you may define one in
* {@link com.android.settings.InstrumentedFragment}.
*/
protected abstract int getMetricsCategory();
@Override @Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
@@ -47,12 +36,12 @@ public abstract class InstrumentedFragment extends PreferenceFragment {
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
MetricsLogger.visible(getActivity(), getMetricsCategory()); mVisibilityLoggerMixin.onResume(getActivity());
} }
@Override @Override
public void onPause() { public void onPause() {
super.onPause(); super.onPause();
MetricsLogger.hidden(getActivity(), getMetricsCategory()); mVisibilityLoggerMixin.onPause(getActivity());
} }
} }

View File

@@ -0,0 +1,59 @@
/*
* Copyright (C) 2016 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.core.instrumentation;
import android.content.Context;
import com.android.internal.logging.MetricsLogger;
/**
* Pass-through Metrics logger for {@link MetricsLogger}.
*/
public class EventLogWriter {
public void visible(Context context, int category) {
MetricsLogger.visible(context, category);
}
public void hidden(Context context, int category) {
MetricsLogger.hidden(context, category);
}
public void action(Context context, int category) {
MetricsLogger.action(context, category, "");
}
public void action(Context context, int category, int value) {
MetricsLogger.action(context, category, Integer.toString(value));
}
public void action(Context context, int category, boolean value) {
MetricsLogger.action(context, category, Boolean.toString(value));
}
public void action(Context context, int category, String pkg) {
MetricsLogger.action(context, category, pkg);
}
public void count(Context context, String name, int value) {
MetricsLogger.count(context, name, value);
}
public void histogram(Context context, String name, int bucket) {
MetricsLogger.histogram(context, name, bucket);
}
}

View File

@@ -0,0 +1,26 @@
/*
* Copyright (C) 2016 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.core.instrumentation;
public interface Instrumentable {
/**
* Instrumented name for a view as defined in
* {@link com.android.internal.logging.MetricsProto.MetricsEvent}.
*/
int getMetricsCategory();
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright (C) 2016 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.core.instrumentation;
public class MetricsFactory {
private static MetricsFactory sInstance;
private EventLogWriter mLogger;
public static MetricsFactory get() {
if (sInstance == null) {
sInstance = new MetricsFactory();
}
return sInstance;
}
public EventLogWriter getLogger() {
if (mLogger == null) {
mLogger = new EventLogWriter();
}
return mLogger;
}
}

View File

@@ -0,0 +1,45 @@
/*
* Copyright (C) 2016 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.core.instrumentation;
import android.content.Context;
/**
* Logs visibility change of a fragment.
*/
public class VisibilityLoggerMixin {
private final Instrumentable mInstrumentable;
private final EventLogWriter mEventLogWriter;
public VisibilityLoggerMixin(Instrumentable instrumentable) {
this(instrumentable, MetricsFactory.get().getLogger());
}
public VisibilityLoggerMixin(Instrumentable instrumentable, EventLogWriter eventLogWriter) {
mInstrumentable = instrumentable;
mEventLogWriter = eventLogWriter;
}
public void onResume(Context context) {
mEventLogWriter.visible(context, mInstrumentable.getMetricsCategory());
}
public void onPause(Context context) {
mEventLogWriter.hidden(context, mInstrumentable.getMetricsCategory());
}
}

View File

@@ -29,7 +29,7 @@ import android.view.ViewGroup;
import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsProto; import com.android.internal.logging.MetricsProto;
import com.android.settings.InstrumentedFragment; import com.android.settings.core.InstrumentedFragment;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.SettingsActivity; import com.android.settings.SettingsActivity;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
@@ -55,7 +55,7 @@ public final class DashboardContainerFragment extends InstrumentedFragment {
private DashboardViewPagerAdapter mPagerAdapter; private DashboardViewPagerAdapter mPagerAdapter;
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsProto.MetricsEvent.DASHBOARD_CONTAINER; return MetricsProto.MetricsEvent.DASHBOARD_CONTAINER;
} }

View File

@@ -28,7 +28,7 @@ import android.view.ViewGroup;
import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.InstrumentedFragment; import com.android.settings.core.InstrumentedFragment;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Settings; import com.android.settings.Settings;
import com.android.settings.SettingsActivity; import com.android.settings.SettingsActivity;
@@ -36,7 +36,6 @@ import com.android.settings.dashboard.conditional.Condition;
import com.android.settings.dashboard.conditional.ConditionAdapterUtils; import com.android.settings.dashboard.conditional.ConditionAdapterUtils;
import com.android.settings.dashboard.conditional.ConditionManager; import com.android.settings.dashboard.conditional.ConditionManager;
import com.android.settings.dashboard.conditional.FocusRecyclerView; import com.android.settings.dashboard.conditional.FocusRecyclerView;
import com.android.settingslib.HelpUtils;
import com.android.settingslib.SuggestionParser; import com.android.settingslib.SuggestionParser;
import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.DashboardCategory;
import com.android.settingslib.drawer.SettingsDrawerActivity; import com.android.settingslib.drawer.SettingsDrawerActivity;
@@ -78,7 +77,7 @@ public class DashboardSummary extends InstrumentedFragment
private HashSet<String> mSuggestionsHiddenLogged; private HashSet<String> mSuggestionsHiddenLogged;
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.DASHBOARD_SUMMARY; return MetricsEvent.DASHBOARD_SUMMARY;
} }

View File

@@ -39,7 +39,7 @@ import android.widget.TextView;
import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.InstrumentedFragment; import com.android.settings.core.InstrumentedFragment;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.SettingsActivity; import com.android.settings.SettingsActivity;
import com.android.settings.Utils; import com.android.settings.Utils;
@@ -250,7 +250,7 @@ public class SearchResultsSummary extends InstrumentedFragment {
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.DASHBOARD_SEARCH_RESULTS; return MetricsEvent.DASHBOARD_SEARCH_RESULTS;
} }

View File

@@ -36,7 +36,7 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import com.android.internal.logging.MetricsProto; import com.android.internal.logging.MetricsProto;
import com.android.settings.InstrumentedFragment; import com.android.settings.core.InstrumentedFragment;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settings.overlay.SupportFeatureProvider; import com.android.settings.overlay.SupportFeatureProvider;
@@ -77,7 +77,7 @@ public final class SupportFragment extends InstrumentedFragment implements View.
private ConnectivityManager mConnectivityManager; private ConnectivityManager mConnectivityManager;
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsProto.MetricsEvent.SUPPORT_FRAGMENT; return MetricsProto.MetricsEvent.SUPPORT_FRAGMENT;
} }

View File

@@ -357,7 +357,7 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.APP_DATA_USAGE; return MetricsEvent.APP_DATA_USAGE;
} }

View File

@@ -139,7 +139,7 @@ public class BillingCycleSettings extends DataUsageBase implements
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.BILLING_CYCLE; return MetricsEvent.BILLING_CYCLE;
} }

View File

@@ -100,7 +100,7 @@ public class DataSaverSummary extends SettingsPreferenceFragment
} }
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.DATA_SAVER_SUMMARY; return MetricsEvent.DATA_SAVER_SUMMARY;
} }

View File

@@ -109,7 +109,7 @@ public class DataUsageList extends DataUsageBase {
private View mHeader; private View mHeader;
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.DATA_USAGE_LIST; return MetricsEvent.DATA_USAGE_LIST;
} }

View File

@@ -61,7 +61,7 @@ public class DataUsageMeteredSettings extends SettingsPreferenceFragment impleme
private Preference mWifiDisabled; private Preference mWifiDisabled;
@Override @Override
protected int getMetricsCategory() { public int getMetricsCategory() {
return MetricsEvent.NET_DATA_USAGE_METERED; return MetricsEvent.NET_DATA_USAGE_METERED;
} }

Some files were not shown because too many files have changed in this diff Show More