diff --git a/src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java b/src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java
index 09bf86a..1b270d6 100644
--- a/src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java
@@ -226,7 +226,8 @@
                 uninstallDaIntent.putExtra(DeviceAdminAdd.EXTRA_DEVICE_ADMIN_PACKAGE_NAME,
                         packageName);
                 mMetricsFeatureProvider.action(mActivity,
-                        SettingsEnums.ACTION_SETTINGS_UNINSTALL_DEVICE_ADMIN);
+                        SettingsEnums.ACTION_SETTINGS_UNINSTALL_DEVICE_ADMIN,
+                        getPackageNameForMetric());
                 mFragment.startActivityForResult(uninstallDaIntent, mRequestRemoveDeviceAdmin);
                 return;
             }
@@ -253,7 +254,8 @@
                             mActivity,
                             mAppEntry.info.enabled
                                     ? SettingsEnums.ACTION_SETTINGS_DISABLE_APP
-                                    : SettingsEnums.ACTION_SETTINGS_ENABLE_APP);
+                                    : SettingsEnums.ACTION_SETTINGS_ENABLE_APP,
+                                    getPackageNameForMetric());
                     AsyncTask.execute(new DisableChangerRunnable(mPm, mAppEntry.info.packageName,
                             PackageManager.COMPONENT_ENABLED_STATE_DEFAULT));
                 }
@@ -270,7 +272,9 @@
         @Override
         public void onClick(View v) {
              mMetricsFeatureProvider.action(
-                     mActivity, SettingsEnums.ACTION_APP_INFO_FORCE_STOP);
+                     mActivity,
+                     SettingsEnums.ACTION_APP_INFO_FORCE_STOP,
+                     getPackageNameForMetric());
             // force stop
             if (mPm.isPackageStateProtected(mAppEntry.info.packageName, mUserId)) {
                 RestrictedLockUtils.sendShowAdminSupportDetailsIntent(mActivity,
@@ -757,6 +761,14 @@
                 || AppUtils.isMainlineModule(mPm, mAppEntry.info.packageName));
     }
 
+    private String getPackageNameForMetric() {
+        final String packageName =
+                mAppEntry != null && mAppEntry.info != null
+                        ? mAppEntry.info.packageName
+                        : null;
+        return packageName != null ? packageName : "";
+    }
+
     /**
      * Changes the status of disable/enable for a package
      */
