Fix sim pin settings

Change-Id: I8fba2a367958da5831efd04f599ba7a363d11a1f
Fixes: 27419276
Fixes: 27529989
diff --git a/src/com/android/settings/EditPinPreference.java b/src/com/android/settings/EditPinPreference.java
index e53a2bf..fdad0a1 100644
--- a/src/com/android/settings/EditPinPreference.java
+++ b/src/com/android/settings/EditPinPreference.java
@@ -50,7 +50,7 @@
     protected void onBindDialogView(View view) {
         super.onBindDialogView(view);
 
-        final EditText editText = getEditText();
+        final EditText editText = (EditText) view.findViewById(android.R.id.edit);
 
         if (editText != null) {
             editText.setInputType(InputType.TYPE_CLASS_NUMBER |
diff --git a/src/com/android/settings/IccLockSettings.java b/src/com/android/settings/IccLockSettings.java
index 1a9784b..25d4fb1 100644
--- a/src/com/android/settings/IccLockSettings.java
+++ b/src/com/android/settings/IccLockSettings.java
@@ -27,7 +27,6 @@
 import android.os.Message;
 import android.support.v14.preference.SwitchPreference;
 import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceScreen;
 import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
@@ -40,7 +39,6 @@
 import android.widget.TabHost.TabSpec;
 import android.widget.TabWidget;
 import android.widget.Toast;
-
 import com.android.internal.logging.MetricsProto.MetricsEvent;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneFactory;
@@ -340,6 +338,7 @@
         mPinDialog.setDialogMessage(message);
     }
 
+    @Override
     public void onPinEntered(EditPinPreference preference, boolean positiveResult) {
         if (!positiveResult) {
             resetDialogState();
@@ -384,7 +383,8 @@
         }
     }
 
-    public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
+    @Override
+    public boolean onPreferenceTreeClick(Preference preference) {
         if (preference == mPinToggle) {
             // Get the new, preferred state
             mToState = mPinToggle.isChecked();
diff --git a/src/com/android/settings/InstrumentedFragment.java b/src/com/android/settings/InstrumentedFragment.java
index b4fb818..0e3528a 100644
--- a/src/com/android/settings/InstrumentedFragment.java
+++ b/src/com/android/settings/InstrumentedFragment.java
@@ -28,6 +28,9 @@
     // 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.
+    public static final int PREFERENCE_ACTIVITY_FRAGMENT = UNDECLARED + 1;
+
     /**
      * Declare the view of this category.
      *
diff --git a/src/com/android/settings/PreferenceActivity.java b/src/com/android/settings/PreferenceActivity.java
index dc3689c..31b5f1f 100644
--- a/src/com/android/settings/PreferenceActivity.java
+++ b/src/com/android/settings/PreferenceActivity.java
@@ -17,7 +17,6 @@
 
 import android.annotation.Nullable;
 import android.os.Bundle;
-import android.support.v14.preference.PreferenceFragment;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceScreen;
 
@@ -57,7 +56,7 @@
                 || PreferenceActivityFragment.class.getName().equals(fragmentName);
     }
 
-    public static class PreferenceActivityFragment extends PreferenceFragment {
+    public static class PreferenceActivityFragment extends SettingsPreferenceFragment {
         @Override
         public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
             ((PreferenceActivity) getActivity()).mFragment = this;
@@ -70,6 +69,14 @@
             }
             return super.onPreferenceTreeClick(preference);
         }
+
+        @Override
+        protected int getMetricsCategory() {
+            if (getActivity() instanceof InstrumentedPreferenceActivity) {
+                return ((InstrumentedPreferenceActivity) getActivity()).getMetricsCategory();
+            }
+            return InstrumentedFragment.PREFERENCE_ACTIVITY_FRAGMENT;
+        }
     }
 
 }