diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java
index b67375b..271c993 100644
--- a/src/com/android/settings/DisplaySettings.java
+++ b/src/com/android/settings/DisplaySettings.java
@@ -177,7 +177,7 @@
                 @Override
                 public boolean onItemSelected(int pos, Object value) {
                     final boolean locked = (Boolean) value;
-                    MetricsLogger.action(getActivity(), InstrumentedFragment.ACTION_ROTATION_LOCK,
+                    MetricsLogger.action(getActivity(), MetricsLogger.ACTION_ROTATION_LOCK,
                             locked);
                     RotationPolicy.setRotationLock(activity, locked);
                     return true;
diff --git a/src/com/android/settings/InstrumentedFragment.java b/src/com/android/settings/InstrumentedFragment.java
index b6f0e44..da2a340 100644
--- a/src/com/android/settings/InstrumentedFragment.java
+++ b/src/com/android/settings/InstrumentedFragment.java
@@ -26,10 +26,6 @@
     // Declare new temporary categories here, starting after this value.
     public static final int UNDECLARED = 100000;
 
-    public static final int APPLICATIONS_MANAGE_ASSIST = UNDECLARED + 1;
-    public static final int PROCESS_STATS_SUMMARY = UNDECLARED + 2;
-    public static final int ACTION_ROTATION_LOCK = UNDECLARED + 3;
-
     /**
      * Declare the view of this category.
      *
diff --git a/src/com/android/settings/applications/ManageAssist.java b/src/com/android/settings/applications/ManageAssist.java
index f06b95e..d3bc0c8 100644
--- a/src/com/android/settings/applications/ManageAssist.java
+++ b/src/com/android/settings/applications/ManageAssist.java
@@ -21,6 +21,7 @@
 import android.preference.SwitchPreference;
 import android.provider.Settings;
 
+import com.android.internal.logging.MetricsLogger;
 import com.android.settings.InstrumentedFragment;
 import com.android.settings.R;
 import com.android.settings.SettingsPreferenceFragment;
@@ -47,7 +48,7 @@
 
     @Override
     protected int getMetricsCategory() {
-        return InstrumentedFragment.APPLICATIONS_MANAGE_ASSIST;
+        return MetricsLogger.APPLICATIONS_MANAGE_ASSIST;
     }
 
     @Override
diff --git a/src/com/android/settings/applications/ProcessStatsSummary.java b/src/com/android/settings/applications/ProcessStatsSummary.java
index 87dc419..29d864c 100644
--- a/src/com/android/settings/applications/ProcessStatsSummary.java
+++ b/src/com/android/settings/applications/ProcessStatsSummary.java
@@ -22,6 +22,7 @@
 import android.text.format.Formatter;
 import android.widget.TextView;
 
+import com.android.internal.logging.MetricsLogger;
 import com.android.settings.InstrumentedFragment;
 import com.android.settings.R;
 import com.android.settings.Utils;
@@ -102,7 +103,7 @@
 
     @Override
     protected int getMetricsCategory() {
-        return InstrumentedFragment.PROCESS_STATS_SUMMARY;
+        return MetricsLogger.PROCESS_STATS_SUMMARY;
     }
 
     @Override
