diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index aacf208..560fb26 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -914,13 +914,6 @@
         mActionBarController.onSearchUiExited();
     }
 
-    /** Returns an Intent to launch Call Settings screen */
-    public static Intent getCallSettingsIntent() {
-        final Intent intent = new Intent(TelecomManager.ACTION_SHOW_CALL_SETTINGS);
-        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
-        return intent;
-    }
-
     @Override
     public void onBackPressed() {
         if (mIsDialpadShown) {
diff --git a/src/com/android/dialer/settings/DialerSettingsActivity.java b/src/com/android/dialer/settings/DialerSettingsActivity.java
index 4318666..53c23c4 100644
--- a/src/com/android/dialer/settings/DialerSettingsActivity.java
+++ b/src/com/android/dialer/settings/DialerSettingsActivity.java
@@ -52,17 +52,20 @@
         // Only show call setting menus if the current user is the primary/owner user.
         if (isPrimaryUser()) {
             final TelephonyManager telephonyManager =
-                    (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
+                    (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
             // Show "Call Settings" if there is one SIM and "Phone Accounts" if there are more.
             if (telephonyManager.getPhoneCount() <= 1) {
                 final Header callSettingsHeader = new Header();
+                Intent callSettingsIntent = new Intent(TelecomManager.ACTION_SHOW_CALL_SETTINGS);
+                callSettingsIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+
                 callSettingsHeader.titleRes = R.string.call_settings_label;
                 callSettingsHeader.summaryRes = R.string.call_settings_description;
-                callSettingsHeader.intent = DialtactsActivity.getCallSettingsIntent();
+                callSettingsHeader.intent = callSettingsIntent;
                 target.add(callSettingsHeader);
             } else {
                 final Header phoneAccountSettingsHeader = new Header();
-                final Intent phoneAccountSettingsIntent =
+                Intent phoneAccountSettingsIntent =
                         new Intent(TelecomManager.ACTION_CHANGE_PHONE_ACCOUNTS);
                 phoneAccountSettingsIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
 
