Use MetricsFeatureProvider for logging in Settings.

Bug: 31664539
Test: make RunSettingsRoboTests for regression
Test: adb logcat -b events | egrep "(sysui_|notification_)" for
      verifying log

Change-Id: Id944be7c4ff9911aebee481c2df485542f1318f0
This commit is contained in:
Fan Zhang
2016-09-22 10:43:12 -07:00
parent f91cf3cfa7
commit aa71afe597
28 changed files with 204 additions and 125 deletions

View File

@@ -27,21 +27,21 @@ import android.provider.Settings;
import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.internal.telephony.PhoneStateIntentReceiver;
import com.android.internal.telephony.TelephonyProperties;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.WirelessUtils;
public class AirplaneModeEnabler implements Preference.OnPreferenceChangeListener {
private static final int EVENT_SERVICE_STATE_CHANGED = 3;
private final Context mContext;
private final SwitchPreference mSwitchPref;
private final MetricsFeatureProvider mMetricsFeatureProvider;
private PhoneStateIntentReceiver mPhoneStateReceiver;
private final SwitchPreference mSwitchPref;
private static final int EVENT_SERVICE_STATE_CHANGED = 3;
private Handler mHandler = new Handler() {
@Override
@@ -61,19 +61,21 @@ public class AirplaneModeEnabler implements Preference.OnPreferenceChangeListene
}
};
public AirplaneModeEnabler(Context context, SwitchPreference airplaneModeSwitchPreference) {
public AirplaneModeEnabler(Context context, SwitchPreference airplaneModeSwitchPreference,
MetricsFeatureProvider metricsFeatureProvider) {
mContext = context;
mSwitchPref = airplaneModeSwitchPreference;
mMetricsFeatureProvider = metricsFeatureProvider;
airplaneModeSwitchPreference.setPersistent(false);
mPhoneStateReceiver = new PhoneStateIntentReceiver(mContext, mHandler);
mPhoneStateReceiver.notifyServiceState(EVENT_SERVICE_STATE_CHANGED);
}
public void resume() {
mSwitchPref.setChecked(WirelessUtils.isAirplaneModeOn(mContext));
mPhoneStateReceiver.registerIntent();
@@ -82,7 +84,7 @@ public class AirplaneModeEnabler implements Preference.OnPreferenceChangeListene
Settings.Global.getUriFor(Settings.Global.AIRPLANE_MODE_ON), true,
mAirplaneModeObserver);
}
public void pause() {
mPhoneStateReceiver.unregisterIntent();
mSwitchPref.setOnPreferenceChangeListener(null);
@@ -91,11 +93,11 @@ public class AirplaneModeEnabler implements Preference.OnPreferenceChangeListene
private void setAirplaneModeOn(boolean enabling) {
// Change the system setting
Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON,
enabling ? 1 : 0);
Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON,
enabling ? 1 : 0);
// Update the UI to reflect system setting
mSwitchPref.setChecked(enabling);
// Post the intent
Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
intent.putExtra("state", enabling);
@@ -113,17 +115,17 @@ public class AirplaneModeEnabler implements Preference.OnPreferenceChangeListene
private void onAirplaneModeChanged() {
mSwitchPref.setChecked(WirelessUtils.isAirplaneModeOn(mContext));
}
/**
* Called when someone clicks on the checkbox preference.
*/
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (Boolean.parseBoolean(
SystemProperties.get(TelephonyProperties.PROPERTY_INECM_MODE))) {
SystemProperties.get(TelephonyProperties.PROPERTY_INECM_MODE))) {
// In ECM mode, do not update database at this point
} else {
Boolean value = (Boolean) newValue;
MetricsLogger.action(mContext, MetricsEvent.ACTION_AIRPLANE_TOGGLE, value);
mMetricsFeatureProvider.action(mContext, MetricsEvent.ACTION_AIRPLANE_TOGGLE, value);
setAirplaneModeOn(value);
}
return true;

View File

@@ -21,19 +21,15 @@ import android.app.ActivityManagerNative;
import android.app.AlertDialog.Builder;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Handler;
import android.os.RemoteException;
import android.text.format.DateUtils;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.widget.CheckedTextView;
import android.widget.RadioButton;
import android.widget.TextView;
import android.widget.Toast;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.overlay.FeatureFactory;
public class BugreportPreference extends CustomDialogPreference {
@@ -87,11 +83,12 @@ public class BugreportPreference extends CustomDialogPreference {
final Context context = getContext();
if (mFullTitle.isChecked()) {
Log.v(TAG, "Taking full bugreport right away");
MetricsLogger.action(context, MetricsEvent.ACTION_BUGREPORT_FROM_SETTINGS_FULL);
FeatureFactory.getFactory(context).getMetricsFeatureProvider().action(context,
MetricsEvent.ACTION_BUGREPORT_FROM_SETTINGS_FULL);
takeBugreport(ActivityManager.BUGREPORT_OPTION_FULL);
} else {
Log.v(TAG, "Taking interactive bugreport right away");
MetricsLogger.action(context,
FeatureFactory.getFactory(context).getMetricsFeatureProvider().action(context,
MetricsEvent.ACTION_BUGREPORT_FROM_SETTINGS_INTERACTIVE);
takeBugreport(ActivityManager.BUGREPORT_OPTION_INTERACTIVE);
}

View File

@@ -19,11 +19,9 @@ package com.android.settings;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.UiModeManager;
import android.app.WallpaperManager;
import android.app.admin.DevicePolicyManager;
import android.content.ContentResolver;
import android.content.Context;
import android.content.ComponentName;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.content.res.Resources;
@@ -46,7 +44,6 @@ import android.text.TextUtils;
import android.util.Log;
import com.android.internal.app.NightDisplayController;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.internal.view.RotationPolicy;
import com.android.settings.accessibility.ToggleFontSizePreferenceFragment;
@@ -61,13 +58,11 @@ import java.util.List;
import static android.provider.Settings.Secure.CAMERA_GESTURE_DISABLED;
import static android.provider.Settings.Secure.DOUBLE_TAP_TO_WAKE;
import static android.provider.Settings.Secure.DOZE_ENABLED;
import static android.provider.Settings.Secure.WAKE_GESTURE_ENABLED;
import static android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE;
import static android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;
import static android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL;
import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
public class DisplaySettings extends SettingsPreferenceFragment implements
@@ -194,7 +189,7 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
final boolean locked = Integer.parseInt((String) newValue) != 0;
MetricsLogger.action(getActivity(), MetricsEvent.ACTION_ROTATION_LOCK,
mMetricsFeatureProvider.action(getActivity(), MetricsEvent.ACTION_ROTATION_LOCK,
locked);
RotationPolicy.setRotationLock(activity, locked);
return true;
@@ -437,7 +432,7 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
@Override
public boolean onPreferenceTreeClick(Preference preference) {
if (preference == mDozePreference) {
MetricsLogger.action(getActivity(), MetricsEvent.ACTION_AMBIENT_DISPLAY);
mMetricsFeatureProvider.action(getActivity(), MetricsEvent.ACTION_AMBIENT_DISPLAY);
}
return super.onPreferenceTreeClick(preference);
}

View File

@@ -50,7 +50,6 @@ import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settingslib.HelpUtils;
import java.util.UUID;
import java.util.concurrent.atomic.AtomicInteger;
/**
* Base class for Settings fragments, with some helper functions and dialog management.

View File

@@ -39,7 +39,6 @@ import android.widget.TextView;
import com.android.ims.ImsConfig;
import com.android.ims.ImsManager;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.internal.telephony.Phone;
import com.android.settings.widget.SwitchBar;
@@ -335,9 +334,9 @@ public class WifiCallingSettings extends SettingsPreferenceFragment
int wfcMode = ImsManager.getWfcMode(context);
updateButtonWfcMode(context, wfcEnabled, wfcMode);
if (wfcEnabled) {
MetricsLogger.action(getActivity(), getMetricsCategory(), wfcMode);
mMetricsFeatureProvider.action(getActivity(), getMetricsCategory(), wfcMode);
} else {
MetricsLogger.action(getActivity(), getMetricsCategory(), -1);
mMetricsFeatureProvider.action(getActivity(), getMetricsCategory(), -1);
}
}
@@ -390,7 +389,7 @@ public class WifiCallingSettings extends SettingsPreferenceFragment
if (buttonMode != currentMode) {
ImsManager.setWfcMode(context, buttonMode);
mButtonWfcMode.setSummary(getWfcModeSummary(context, buttonMode));
MetricsLogger.action(getActivity(), getMetricsCategory(), buttonMode);
mMetricsFeatureProvider.action(getActivity(), getMetricsCategory(), buttonMode);
}
}
return true;

View File

@@ -234,7 +234,8 @@ public class WirelessSettings extends SettingsPreferenceFragment implements Inde
RestrictedPreference androidBeam = (RestrictedPreference) findPreference(
KEY_ANDROID_BEAM_SETTINGS);
mAirplaneModeEnabler = new AirplaneModeEnabler(activity, mAirplaneModePreference);
mAirplaneModeEnabler = new AirplaneModeEnabler(activity, mAirplaneModePreference,
mMetricsFeatureProvider);
mNfcEnabler = new NfcEnabler(activity, nfc, androidBeam);
mButtonWfc = (PreferenceScreen) findPreference(KEY_WFC_SETTINGS);

View File

@@ -16,7 +16,6 @@
package com.android.settings.accessibility;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsProto.MetricsEvent;
public class FontSizePreferenceFragmentForSetupWizard
@@ -31,7 +30,7 @@ public class FontSizePreferenceFragmentForSetupWizard
public void onStop() {
// Log the final choice in value if it's different from the previous value.
if (mCurrentIndex != mInitialIndex) {
MetricsLogger.action(getContext(), MetricsEvent.SUW_ACCESSIBILITY_FONT_SIZE,
mMetricsFeatureProvider.action(getContext(), MetricsEvent.SUW_ACCESSIBILITY_FONT_SIZE,
mCurrentIndex);
}

View File

@@ -41,7 +41,7 @@ public class ToggleScreenMagnificationPreferenceFragmentForSetupWizard
public void onStop() {
// Log the final choice in value if it's different from the previous value.
if (mToggleSwitch.isChecked() != mToggleSwitchWasInitiallyChecked) {
MetricsLogger.action(getContext(),
mMetricsFeatureProvider.action(getContext(),
MetricsEvent.SUW_ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFICATION,
mToggleSwitch.isChecked());
}

View File

@@ -18,7 +18,6 @@ package com.android.settings.accessibility;
import android.os.Bundle;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsProto.MetricsEvent;
public class ToggleScreenReaderPreferenceFragmentForSetupWizard
@@ -41,7 +40,7 @@ public class ToggleScreenReaderPreferenceFragmentForSetupWizard
public void onStop() {
// Log the final choice in value if it's different from the previous value.
if (mToggleSwitch.isChecked() != mToggleSwitchWasInitiallyChecked) {
MetricsLogger.action(getContext(),
mMetricsFeatureProvider.action(getContext(),
MetricsEvent.SUW_ACCESSIBILITY_TOGGLE_SCREEN_READER, mToggleSwitch.isChecked());
}

View File

@@ -24,13 +24,12 @@ import android.content.IntentFilter;
import android.os.Handler;
import android.os.Message;
import android.provider.Settings;
import android.util.Log;
import android.widget.Switch;
import android.widget.Toast;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.search.Index;
import com.android.settings.widget.SwitchBar;
import com.android.settingslib.WirelessUtils;
@@ -43,9 +42,10 @@ import com.android.settingslib.bluetooth.LocalBluetoothManager;
* preference reflects the current state.
*/
public final class BluetoothEnabler implements SwitchBar.OnSwitchChangeListener {
private final Switch mSwitch;
private final SwitchBar mSwitchBar;
private final MetricsFeatureProvider mMetricsFeatureProvider;
private Context mContext;
private Switch mSwitch;
private SwitchBar mSwitchBar;
private boolean mValidListener;
private final LocalBluetoothAdapter mLocalAdapter;
private final IntentFilter mIntentFilter;
@@ -76,8 +76,10 @@ public final class BluetoothEnabler implements SwitchBar.OnSwitchChangeListener
}
};
public BluetoothEnabler(Context context, SwitchBar switchBar) {
public BluetoothEnabler(Context context, SwitchBar switchBar,
MetricsFeatureProvider metricsFeatureProvider) {
mContext = context;
mMetricsFeatureProvider = metricsFeatureProvider;
mSwitchBar = switchBar;
mSwitch = switchBar.getSwitch();
mValidListener = false;
@@ -187,7 +189,7 @@ public final class BluetoothEnabler implements SwitchBar.OnSwitchChangeListener
switchView.setChecked(false);
}
MetricsLogger.action(mContext, MetricsEvent.ACTION_BLUETOOTH_TOGGLE, isChecked);
mMetricsFeatureProvider.action(mContext, MetricsEvent.ACTION_BLUETOOTH_TOGGLE, isChecked);
if (mLocalAdapter != null) {
boolean status = mLocalAdapter.setBluetoothEnabled(isChecked);

View File

@@ -40,7 +40,7 @@ import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.LinkifyUtils;
import com.android.settings.R;
@@ -146,7 +146,7 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment implem
final SettingsActivity activity = (SettingsActivity) getActivity();
mSwitchBar = activity.getSwitchBar();
mBluetoothEnabler = new BluetoothEnabler(activity, mSwitchBar);
mBluetoothEnabler = new BluetoothEnabler(activity, mSwitchBar, mMetricsFeatureProvider);
mBluetoothEnabler.setupSwitchBar();
}
@@ -248,19 +248,22 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment implem
switch (item.getItemId()) {
case MENU_ID_SCAN:
if (mLocalAdapter.getBluetoothState() == BluetoothAdapter.STATE_ON) {
MetricsLogger.action(getActivity(), MetricsEvent.ACTION_BLUETOOTH_SCAN);
mMetricsFeatureProvider.action(getActivity(),
MetricsEvent.ACTION_BLUETOOTH_SCAN);
startScanning();
}
return true;
case MENU_ID_RENAME_DEVICE:
MetricsLogger.action(getActivity(), MetricsEvent.ACTION_BLUETOOTH_RENAME);
mMetricsFeatureProvider.action(getActivity(),
MetricsEvent.ACTION_BLUETOOTH_RENAME);
new BluetoothNameDialogFragment().show(
getFragmentManager(), "rename device");
return true;
case MENU_ID_SHOW_RECEIVED:
MetricsLogger.action(getActivity(), MetricsEvent.ACTION_BLUETOOTH_FILES);
mMetricsFeatureProvider.action(getActivity(),
MetricsEvent.ACTION_BLUETOOTH_FILES);
Intent intent = new Intent(BTOPP_ACTION_OPEN_RECEIVED_FILES);
getActivity().sendBroadcast(intent);
return true;

View File

@@ -15,14 +15,18 @@
*/
package com.android.settings.core.instrumentation;
import android.content.Context;
import com.android.settings.DialogCreatable;
import com.android.settings.core.lifecycle.ObservableDialogFragment;
import com.android.settings.overlay.FeatureFactory;
public abstract class InstrumentedDialogFragment extends ObservableDialogFragment
implements Instrumentable {
protected final DialogCreatable mDialogCreatable;
protected int mDialogId;
protected MetricsFeatureProvider mMetricsFeatureProvider;
public InstrumentedDialogFragment() {
this(null /* parentFragment */, 0 /* dialogId */);
@@ -37,4 +41,10 @@ public abstract class InstrumentedDialogFragment extends ObservableDialogFragmen
mLifecycle.addObserver(new VisibilityLoggerMixin(getMetricsCategory()));
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
}
}

View File

@@ -27,11 +27,11 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsProto;
import com.android.settings.core.InstrumentedFragment;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.overlay.SupportFeatureProvider;
import com.android.settings.widget.RtlCompatibleViewPager;
@@ -73,7 +73,7 @@ public final class DashboardContainerFragment extends InstrumentedFragment {
getChildFragmentManager(), mViewPager);
mViewPager.setAdapter(mPagerAdapter);
mViewPager.addOnPageChangeListener(
new TabChangeListener((SettingsActivity) getActivity()));
new TabChangeListener((SettingsActivity) getActivity(), mMetricsFeatureProvider));
// check if support tab needs to be selected
final String selectedTab = getArguments().
@@ -157,9 +157,12 @@ public final class DashboardContainerFragment extends InstrumentedFragment {
implements RtlCompatibleViewPager.OnPageChangeListener {
private final SettingsActivity mActivity;
private final MetricsFeatureProvider mMetricsFeatureProvider;
public TabChangeListener(SettingsActivity activity) {
public TabChangeListener(SettingsActivity activity,
MetricsFeatureProvider metricsFeatureProvider) {
mActivity = activity;
mMetricsFeatureProvider = metricsFeatureProvider;
}
@Override
@@ -176,12 +179,12 @@ public final class DashboardContainerFragment extends InstrumentedFragment {
public void onPageSelected(int position) {
switch (position) {
case INDEX_SUMMARY_FRAGMENT:
MetricsLogger.action(
mMetricsFeatureProvider.action(
mActivity, MetricsProto.MetricsEvent.ACTION_SELECT_SUMMARY);
mActivity.setDisplaySearchMenu(true);
break;
case INDEX_SUPPORT_FRAGMENT:
MetricsLogger.action(
mMetricsFeatureProvider.action(
mActivity, MetricsProto.MetricsEvent.ACTION_SELECT_SUPPORT_FRAGMENT);
mActivity.setDisplaySearchMenu(false);
break;

View File

@@ -31,12 +31,10 @@ import com.android.settings.R;
import com.android.settings.Settings;
import com.android.settings.SettingsActivity;
import com.android.settings.core.InstrumentedFragment;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.dashboard.conditional.Condition;
import com.android.settings.dashboard.conditional.ConditionAdapterUtils;
import com.android.settings.dashboard.conditional.ConditionManager;
import com.android.settings.dashboard.conditional.FocusRecyclerView;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.SuggestionParser;
import com.android.settingslib.drawer.DashboardCategory;
import com.android.settingslib.drawer.SettingsDrawerActivity;

View File

@@ -33,11 +33,12 @@ import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.widget.Checkable;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.CustomDialogPreference;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.overlay.FeatureFactory;
import java.util.List;
@@ -110,7 +111,9 @@ public class CellDataPreference extends CustomDialogPreference implements Templa
@Override
protected void performClick(View view) {
MetricsLogger.action(getContext(), MetricsEvent.ACTION_CELL_DATA_TOGGLE, !mChecked);
final Context context = getContext();
FeatureFactory.getFactory(context).getMetricsFeatureProvider()
.action(context, MetricsEvent.ACTION_CELL_DATA_TOGGLE, !mChecked);
if (mChecked) {
final SubscriptionInfo currentSir = mSubscriptionManager.getActiveSubscriptionInfo(
mSubId);

View File

@@ -19,12 +19,11 @@ import android.net.INetworkPolicyListener;
import android.net.NetworkPolicyManager;
import android.os.Handler;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.util.Log;
import android.util.SparseIntArray;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.overlay.FeatureFactory;
import java.util.ArrayList;
@@ -37,6 +36,7 @@ public class DataSaverBackend {
private static final String TAG = "DataSaverBackend";
private final Context mContext;
private final MetricsFeatureProvider mMetricsFeatureProvider;
private final Handler mHandler = new Handler();
private final NetworkPolicyManager mPolicyManager;
@@ -48,6 +48,7 @@ public class DataSaverBackend {
// TODO: Staticize into only one.
public DataSaverBackend(Context context) {
mContext = context;
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
mPolicyManager = NetworkPolicyManager.from(context);
}
@@ -72,7 +73,8 @@ public class DataSaverBackend {
public void setDataSaverEnabled(boolean enabled) {
mPolicyManager.setRestrictBackground(enabled);
MetricsLogger.action(mContext, MetricsEvent.ACTION_DATA_SAVER_MODE, enabled ? 1 : 0);
mMetricsFeatureProvider.action(
mContext, MetricsEvent.ACTION_DATA_SAVER_MODE, enabled ? 1 : 0);
}
public void refreshWhitelist() {
@@ -84,7 +86,8 @@ public class DataSaverBackend {
mPolicyManager.setUidPolicy(uid, policy);
mUidPolicies.put(uid, policy);
if (whitelisted) {
MetricsLogger.action(mContext, MetricsEvent.ACTION_DATA_SAVER_WHITELIST, packageName);
mMetricsFeatureProvider.action(
mContext, MetricsEvent.ACTION_DATA_SAVER_WHITELIST, packageName);
}
}
@@ -122,7 +125,8 @@ public class DataSaverBackend {
mPolicyManager.setUidPolicy(uid, policy);
mUidPolicies.put(uid, policy);
if (blacklisted) {
MetricsLogger.action(mContext, MetricsEvent.ACTION_DATA_SAVER_BLACKLIST, packageName);
mMetricsFeatureProvider.action(
mContext, MetricsEvent.ACTION_DATA_SAVER_BLACKLIST, packageName);
}
}

View File

@@ -16,7 +16,6 @@
package com.android.settings.display;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsProto.MetricsEvent;
public class ScreenZoomPreferenceFragmentForSetupWizard
@@ -31,8 +30,8 @@ public class ScreenZoomPreferenceFragmentForSetupWizard
public void onStop() {
// Log the final choice in value if it's different from the previous value.
if (mCurrentIndex != mInitialIndex) {
MetricsLogger.action(getContext(), MetricsEvent.SUW_ACCESSIBILITY_DISPLAY_SIZE,
mCurrentIndex);
mMetricsFeatureProvider.action(
getContext(), MetricsEvent.SUW_ACCESSIBILITY_DISPLAY_SIZE, mCurrentIndex);
}
super.onStop();

View File

@@ -21,7 +21,6 @@ import android.annotation.Nullable;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.app.admin.DevicePolicyManager;
import android.content.ActivityNotFoundException;
import android.content.Context;
@@ -40,8 +39,8 @@ import android.os.Handler;
import android.os.UserHandle;
import android.os.UserManager;
import android.support.v7.preference.Preference;
import android.support.v7.preference.Preference.OnPreferenceClickListener;
import android.support.v7.preference.Preference.OnPreferenceChangeListener;
import android.support.v7.preference.Preference.OnPreferenceClickListener;
import android.support.v7.preference.PreferenceGroup;
import android.support.v7.preference.PreferenceScreen;
import android.support.v7.preference.PreferenceViewHolder;
@@ -60,16 +59,15 @@ import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.ChooseLockGeneric;
import com.android.settings.ChooseLockSettingsHelper;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settingslib.HelpUtils;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.SubSettings;
import com.android.settings.Utils;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settingslib.HelpUtils;
import com.android.settingslib.RestrictedLockUtils;
import java.util.List;
@@ -594,7 +592,7 @@ public class FingerprintSettings extends SubSettings {
if (DEBUG) {
Log.v(TAG, "rename " + name + " to " + newName);
}
MetricsLogger.action(getContext(),
mMetricsFeatureProvider.action(getContext(),
MetricsEvent.ACTION_FINGERPRINT_RENAME,
mFp.getFingerId());
FingerprintSettingsFragment parent
@@ -639,7 +637,7 @@ public class FingerprintSettings extends SubSettings {
private void onDeleteClick(DialogInterface dialog) {
if (DEBUG) Log.v(TAG, "Removing fpId=" + mFp.getFingerId());
MetricsLogger.action(getContext(), MetricsEvent.ACTION_FINGERPRINT_DELETE,
mMetricsFeatureProvider.action(getContext(), MetricsEvent.ACTION_FINGERPRINT_DELETE,
mFp.getFingerId());
FingerprintSettingsFragment parent
= (FingerprintSettingsFragment) getTargetFragment();

View File

@@ -39,7 +39,6 @@ import android.support.v7.preference.PreferenceScreen;
import android.support.v7.preference.PreferenceViewHolder;
import android.view.View;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.utils.ManagedServiceSettings.Config;
@@ -109,7 +108,7 @@ public class ZenModeAutomationSettings extends ZenModeSettingsBase {
new ZenRuleNameDialog(mContext, null) {
@Override
public void onOk(String ruleName) {
MetricsLogger.action(mContext, MetricsEvent.ACTION_ZEN_ADD_RULE_OK);
mMetricsFeatureProvider.action(mContext, MetricsEvent.ACTION_ZEN_ADD_RULE_OK);
AutomaticZenRule rule = new AutomaticZenRule(ruleName, ri.serviceComponent,
ri.defaultConditionId, NotificationManager.INTERRUPTION_FILTER_PRIORITY,
true);
@@ -129,7 +128,8 @@ public class ZenModeAutomationSettings extends ZenModeSettingsBase {
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
MetricsLogger.action(mContext, MetricsEvent.ACTION_ZEN_DELETE_RULE_OK);
mMetricsFeatureProvider.action(mContext,
MetricsEvent.ACTION_ZEN_DELETE_RULE_OK);
removeZenRule(ruleId);
}
})
@@ -173,7 +173,7 @@ public class ZenModeAutomationSettings extends ZenModeSettingsBase {
p.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
MetricsLogger.action(mContext, MetricsEvent.ACTION_ZEN_ADD_RULE);
mMetricsFeatureProvider.action(mContext, MetricsEvent.ACTION_ZEN_ADD_RULE);
showAddRuleDialog();
return true;
}

View File

@@ -27,7 +27,6 @@ import android.support.v7.preference.Preference.OnPreferenceChangeListener;
import android.support.v7.preference.PreferenceScreen;
import android.util.Log;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.search.Indexable;
@@ -64,7 +63,8 @@ public class ZenModePrioritySettings extends ZenModeSettingsBase implements Inde
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (mDisableListeners) return true;
final boolean val = (Boolean) newValue;
MetricsLogger.action(mContext, MetricsEvent.ACTION_ZEN_ALLOW_REMINDERS, val);
mMetricsFeatureProvider.action(mContext, MetricsEvent.ACTION_ZEN_ALLOW_REMINDERS,
val);
if (DEBUG) Log.d(TAG, "onPrefChange allowReminders=" + val);
savePolicy(getNewPriorityCategories(val, Policy.PRIORITY_CATEGORY_REMINDERS),
mPolicy.priorityCallSenders, mPolicy.priorityMessageSenders,
@@ -79,7 +79,7 @@ public class ZenModePrioritySettings extends ZenModeSettingsBase implements Inde
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (mDisableListeners) return true;
final boolean val = (Boolean) newValue;
MetricsLogger.action(mContext, MetricsEvent.ACTION_ZEN_ALLOW_EVENTS, val);
mMetricsFeatureProvider.action(mContext, MetricsEvent.ACTION_ZEN_ALLOW_EVENTS, val);
if (DEBUG) Log.d(TAG, "onPrefChange allowEvents=" + val);
savePolicy(getNewPriorityCategories(val, Policy.PRIORITY_CATEGORY_EVENTS),
mPolicy.priorityCallSenders, mPolicy.priorityMessageSenders,
@@ -98,7 +98,7 @@ public class ZenModePrioritySettings extends ZenModeSettingsBase implements Inde
final boolean allowMessages = val != SOURCE_NONE;
final int allowMessagesFrom =
val == SOURCE_NONE ? mPolicy.priorityMessageSenders : val;
MetricsLogger.action(mContext, MetricsEvent.ACTION_ZEN_ALLOW_MESSAGES, val);
mMetricsFeatureProvider.action(mContext, MetricsEvent.ACTION_ZEN_ALLOW_MESSAGES, val);
if (DEBUG) Log.d(TAG, "onPrefChange allowMessages=" + allowMessages
+ " allowMessagesFrom=" + ZenModeConfig.sourceToString(allowMessagesFrom));
savePolicy(
@@ -118,7 +118,7 @@ public class ZenModePrioritySettings extends ZenModeSettingsBase implements Inde
final int val = Integer.parseInt((String) newValue);
final boolean allowCalls = val != SOURCE_NONE;
final int allowCallsFrom = val == SOURCE_NONE ? mPolicy.priorityCallSenders : val;
MetricsLogger.action(mContext, MetricsEvent.ACTION_ZEN_ALLOW_CALLS, val);
mMetricsFeatureProvider.action(mContext, MetricsEvent.ACTION_ZEN_ALLOW_CALLS, val);
if (DEBUG) Log.d(TAG, "onPrefChange allowCalls=" + allowCalls
+ " allowCallsFrom=" + ZenModeConfig.sourceToString(allowCallsFrom));
savePolicy(getNewPriorityCategories(allowCalls, Policy.PRIORITY_CATEGORY_CALLS),
@@ -137,7 +137,8 @@ public class ZenModePrioritySettings extends ZenModeSettingsBase implements Inde
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (mDisableListeners) return true;
final boolean val = (Boolean) newValue;
MetricsLogger.action(mContext, MetricsEvent.ACTION_ZEN_ALLOW_REPEAT_CALLS, val);
mMetricsFeatureProvider.action(mContext, MetricsEvent.ACTION_ZEN_ALLOW_REPEAT_CALLS,
val);
if (DEBUG) Log.d(TAG, "onPrefChange allowRepeatCallers=" + val);
int priorityCategories = getNewPriorityCategories(val,
NotificationManager.Policy.PRIORITY_CATEGORY_REPEAT_CALLERS);

View File

@@ -39,7 +39,6 @@ import android.view.View;
import android.widget.Switch;
import android.widget.Toast;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
@@ -163,7 +162,7 @@ public abstract class ZenModeRuleSettingsBase extends ZenModeSettingsBase
if (mDisableListeners) return;
final boolean enabled = isChecked;
if (enabled == mRule.isEnabled()) return;
MetricsLogger.action(mContext, MetricsEvent.ACTION_ZEN_ENABLE_RULE, enabled);
mMetricsFeatureProvider.action(mContext, MetricsEvent.ACTION_ZEN_ENABLE_RULE, enabled);
if (DEBUG) Log.d(TAG, "onSwitchChanged enabled=" + enabled);
mRule.setEnabled(enabled);
setZenRule(mId, mRule);
@@ -207,7 +206,7 @@ public abstract class ZenModeRuleSettingsBase extends ZenModeSettingsBase
public boolean onOptionsItemSelected(MenuItem item) {
if (DEBUG) Log.d(TAG, "onOptionsItemSelected " + item.getItemId());
if (item.getItemId() == R.id.delete) {
MetricsLogger.action(mContext, MetricsEvent.ACTION_ZEN_DELETE_RULE);
mMetricsFeatureProvider.action(mContext, MetricsEvent.ACTION_ZEN_DELETE_RULE);
showDeleteRuleDialog();
return true;
}
@@ -241,7 +240,8 @@ public abstract class ZenModeRuleSettingsBase extends ZenModeSettingsBase
.setPositiveButton(R.string.zen_mode_delete_rule_button, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
MetricsLogger.action(mContext, MetricsEvent.ACTION_ZEN_DELETE_RULE_OK);
mMetricsFeatureProvider.action(mContext,
MetricsEvent.ACTION_ZEN_DELETE_RULE_OK);
mDeleting = true;
removeZenRule(mId);
}

View File

@@ -18,23 +18,15 @@ package com.android.settings.notification;
import android.app.NotificationManager;
import android.app.NotificationManager.Policy;
import android.content.Context;
import android.os.Bundle;
import android.provider.SearchIndexableResource;
import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
import android.util.Log;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable;
import com.android.settings.R;
import java.util.Arrays;
import java.util.List;
public class ZenModeVisualInterruptionSettings extends ZenModeSettingsBase {
private static final String KEY_SCREEN_OFF = "screenOff";
@@ -64,7 +56,8 @@ public class ZenModeVisualInterruptionSettings extends ZenModeSettingsBase {
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (mDisableListeners) return true;
final boolean val = (Boolean) newValue;
MetricsLogger.action(mContext, MetricsEvent.ACTION_ZEN_ALLOW_WHEN_SCREEN_OFF, val);
mMetricsFeatureProvider.action(mContext,
MetricsEvent.ACTION_ZEN_ALLOW_WHEN_SCREEN_OFF, val);
if (DEBUG) Log.d(TAG, "onPrefChange suppressWhenScreenOff=" + val);
savePolicy(getNewSuppressedEffects(val, Policy.SUPPRESSED_EFFECT_SCREEN_OFF));
return true;
@@ -77,7 +70,8 @@ public class ZenModeVisualInterruptionSettings extends ZenModeSettingsBase {
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (mDisableListeners) return true;
final boolean val = (Boolean) newValue;
MetricsLogger.action(mContext, MetricsEvent.ACTION_ZEN_ALLOW_WHEN_SCREEN_ON, val);
mMetricsFeatureProvider.action(mContext,
MetricsEvent.ACTION_ZEN_ALLOW_WHEN_SCREEN_ON, val);
if (DEBUG) Log.d(TAG, "onPrefChange suppressWhenScreenOn=" + val);
savePolicy(getNewSuppressedEffects(val, Policy.SUPPRESSED_EFFECT_SCREEN_ON));
return true;

View File

@@ -32,7 +32,6 @@ import android.view.View;
import android.widget.CheckBox;
import android.widget.TextView;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsProto;
import com.android.settings.R;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
@@ -78,7 +77,7 @@ public final class SupportDisclaimerDialogFragment extends InstrumentedDialogFra
@Override
public void onClick(DialogInterface dialog, int which) {
if (which == Dialog.BUTTON_NEGATIVE) {
MetricsLogger.action(getContext(),
mMetricsFeatureProvider.action(getContext(),
MetricsProto.MetricsEvent.ACTION_SUPPORT_DISCLAIMER_CANCEL);
return;
}
@@ -89,7 +88,8 @@ public final class SupportDisclaimerDialogFragment extends InstrumentedDialogFra
FeatureFactory.getFactory(activity).getSupportFeatureProvider(activity);
supportFeatureProvider.setShouldShowDisclaimerDialog(getContext(), !doNotShow.isChecked());
final Bundle bundle = getArguments();
MetricsLogger.action(activity, MetricsProto.MetricsEvent.ACTION_SUPPORT_DISCLAIMER_OK);
mMetricsFeatureProvider.action(activity,
MetricsProto.MetricsEvent.ACTION_SUPPORT_DISCLAIMER_OK);
supportFeatureProvider.startSupport(getActivity(),
bundle.getParcelable(EXTRA_ACCOUNT), bundle.getInt(EXTRA_TYPE));
}
@@ -97,7 +97,7 @@ public final class SupportDisclaimerDialogFragment extends InstrumentedDialogFra
@Override
public void onCancel(DialogInterface dialog) {
super.onCancel(dialog);
MetricsLogger.action(getContext(),
mMetricsFeatureProvider.action(getContext(),
MetricsProto.MetricsEvent.ACTION_SUPPORT_DISCLAIMER_CANCEL);
}

View File

@@ -24,7 +24,6 @@ import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsProto;
import com.android.settings.R;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
@@ -76,7 +75,7 @@ public final class SupportPhoneDialogFragment extends InstrumentedDialogFragment
.queryIntentActivities(intent, 0)
.isEmpty();
if (canDial) {
MetricsLogger.action(getActivity(),
mMetricsFeatureProvider.action(getActivity(),
MetricsProto.MetricsEvent.ACTION_SUPPORT_DIAL_TOLLED);
getActivity().startActivity(intent);
}

View File

@@ -34,14 +34,15 @@ import android.widget.LinearLayout;
import android.widget.Switch;
import android.widget.TextView;
import com.android.internal.logging.MetricsLogger;
import com.android.settings.R;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.RestrictedLockUtils;
import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
import java.util.ArrayList;
import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
public class SwitchBar extends LinearLayout implements CompoundButton.OnCheckedChangeListener,
View.OnClickListener {
@@ -55,6 +56,7 @@ public class SwitchBar extends LinearLayout implements CompoundButton.OnCheckedC
void onSwitchChanged(Switch switchView, boolean isChecked);
}
private MetricsFeatureProvider mMetricsFeatureProvider;
private final TextAppearanceSpan mSummarySpan;
private ToggleSwitch mSwitch;
@@ -130,6 +132,8 @@ public class SwitchBar extends LinearLayout implements CompoundButton.OnCheckedC
// Default is hide
setVisibility(View.GONE);
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
}
public void setMetricsTag(String tag) {
@@ -230,7 +234,7 @@ public class SwitchBar extends LinearLayout implements CompoundButton.OnCheckedC
@Override
public void onClick(View v) {
if (mDisabledByAdmin) {
MetricsLogger.count(mContext, mMetricsTag + "/switch_bar|restricted", 1);
mMetricsFeatureProvider.count(mContext, mMetricsTag + "/switch_bar|restricted", 1);
RestrictedLockUtils.sendShowAdminSupportDetailsIntent(mContext, mEnforcedAdmin);
} else {
final boolean isChecked = !mSwitch.isChecked();
@@ -248,7 +252,7 @@ public class SwitchBar extends LinearLayout implements CompoundButton.OnCheckedC
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (mLoggingIntialized) {
MetricsLogger.count(mContext, mMetricsTag + "/switch_bar|" + isChecked, 1);
mMetricsFeatureProvider.count(mContext, mMetricsTag + "/switch_bar|" + isChecked, 1);
}
mLoggingIntialized = true;
propagateChecked(isChecked);

View File

@@ -32,9 +32,9 @@ import android.provider.Settings;
import android.widget.Switch;
import android.widget.Toast;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.search.Index;
import com.android.settings.widget.SwitchBar;
import com.android.settingslib.RestrictedLockUtils;
@@ -44,12 +44,16 @@ import com.android.settingslib.WirelessUtils;
import java.util.concurrent.atomic.AtomicBoolean;
public class WifiEnabler implements SwitchBar.OnSwitchChangeListener {
private final SwitchBar mSwitchBar;
private final WifiManager mWifiManager;
private final MetricsFeatureProvider mMetricsFeatureProvider;
private Context mContext;
private SwitchBar mSwitchBar;
private boolean mListeningToOnSwitchChange = false;
private AtomicBoolean mConnected = new AtomicBoolean(false);
private final WifiManager mWifiManager;
private boolean mStateMachineEvent;
private final IntentFilter mIntentFilter;
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@@ -89,10 +93,11 @@ public class WifiEnabler implements SwitchBar.OnSwitchChangeListener {
}
};
public WifiEnabler(Context context, SwitchBar switchBar) {
public WifiEnabler(Context context, SwitchBar switchBar,
MetricsFeatureProvider metricsFeatureProvider) {
mContext = context;
mSwitchBar = switchBar;
mMetricsFeatureProvider = metricsFeatureProvider;
mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
mIntentFilter = new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION);
@@ -226,7 +231,7 @@ public class WifiEnabler implements SwitchBar.OnSwitchChangeListener {
if (mayDisableTethering(isChecked)) {
mWifiManager.setWifiApEnabled(null, false);
}
MetricsLogger.action(mContext,
mMetricsFeatureProvider.action(mContext,
isChecked ? MetricsEvent.ACTION_WIFI_ON : MetricsEvent.ACTION_WIFI_OFF);
if (!mWifiManager.setWifiEnabled(isChecked)) {
// Error

View File

@@ -57,7 +57,6 @@ import android.widget.TextView;
import android.widget.TextView.BufferType;
import android.widget.Toast;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.LinkifyUtils;
import com.android.settings.R;
@@ -308,7 +307,7 @@ public class WifiSettings extends RestrictedSettingsFragment
*/
/* package */ WifiEnabler createWifiEnabler() {
final SettingsActivity activity = (SettingsActivity) getActivity();
return new WifiEnabler(activity, activity.getSwitchBar());
return new WifiEnabler(activity, activity.getSwitchBar(), mMetricsFeatureProvider);
}
@Override
@@ -411,7 +410,7 @@ public class WifiSettings extends RestrictedSettingsFragment
showDialog(WPS_PIN_DIALOG_ID);
return true;
case MENU_ID_SCAN:
MetricsLogger.action(getActivity(), MetricsEvent.ACTION_WIFI_FORCE_SCAN);
mMetricsFeatureProvider.action(getActivity(), MetricsEvent.ACTION_WIFI_FORCE_SCAN);
mWifiTracker.forceScan();
return true;
case MENU_ID_ADVANCED:
@@ -847,7 +846,7 @@ public class WifiSettings extends RestrictedSettingsFragment
}
/* package */ void forget() {
MetricsLogger.action(getActivity(), MetricsEvent.ACTION_WIFI_FORGET);
mMetricsFeatureProvider.action(getActivity(), MetricsEvent.ACTION_WIFI_FORGET);
if (!mSelectedAccessPoint.isSaved()) {
if (mSelectedAccessPoint.getNetworkInfo() != null &&
mSelectedAccessPoint.getNetworkInfo().getState() != State.DISCONNECTED) {
@@ -870,12 +869,12 @@ public class WifiSettings extends RestrictedSettingsFragment
}
protected void connect(final WifiConfiguration config) {
MetricsLogger.action(getActivity(), MetricsEvent.ACTION_WIFI_CONNECT);
mMetricsFeatureProvider.action(getActivity(), MetricsEvent.ACTION_WIFI_CONNECT);
mWifiManager.connect(config, mConnectListener);
}
protected void connect(final int networkId) {
MetricsLogger.action(getActivity(), MetricsEvent.ACTION_WIFI_CONNECT);
mMetricsFeatureProvider.action(getActivity(), MetricsEvent.ACTION_WIFI_CONNECT);
mWifiManager.connect(networkId, mConnectListener);
}
@@ -883,7 +882,7 @@ public class WifiSettings extends RestrictedSettingsFragment
* Called when "add network" button is pressed.
*/
/* package */ void onAddNetworkPressed() {
MetricsLogger.action(getActivity(), MetricsEvent.ACTION_WIFI_ADD_NETWORK);
mMetricsFeatureProvider.action(getActivity(), MetricsEvent.ACTION_WIFI_ADD_NETWORK);
// No exact access point is selected.
mSelectedAccessPoint = null;
showDialog(null, WifiConfigUiBase.MODE_CONNECT);

View File

@@ -0,0 +1,66 @@
/*
* 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.os.Bundle;
import com.android.settings.TestConfig;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.util.FragmentTestUtil;
import static com.google.common.truth.Truth.assertThat;
@RunWith(RobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class InstrumentedDialogFragmentTest {
public static class TestDialogFragment extends InstrumentedDialogFragment {
static final int TEST_METRIC = 1234;
public MetricsFeatureProvider getMetricsFeatureProvider() {
return mMetricsFeatureProvider;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
assertThat(mMetricsFeatureProvider).isNotNull();
}
@Override
public int getMetricsCategory() {
return TEST_METRIC;
}
}
@Test
public void runThroughFragmentLifecycles_shouldHaveMetricsFeatureProviderOnAttach() {
final TestDialogFragment fragment = new TestDialogFragment();
// Precondition: no metrics feature
assertThat(fragment.getMetricsFeatureProvider()).isNull();
FragmentTestUtil.startFragment(fragment);
// Verify: has metrics feature
assertThat(fragment.getMetricsFeatureProvider()).isNotNull();
}
}