Plumb in onAttached

This used to get called in PreferenceScreen when it would
bind to its ListView. We now call it from the fragment
when we connect the RV with the adapter.

b/22460908

Change-Id: I9eb561e98bec73a1ea44f055e780e7dd0d5f4301
diff --git a/v14/preference/src/android/support/v14/preference/PreferenceFragment.java b/v14/preference/src/android/support/v14/preference/PreferenceFragment.java
index e8cb6b6..838d32d 100644
--- a/v14/preference/src/android/support/v14/preference/PreferenceFragment.java
+++ b/v14/preference/src/android/support/v14/preference/PreferenceFragment.java
@@ -471,6 +471,7 @@
         final PreferenceScreen preferenceScreen = getPreferenceScreen();
         if (preferenceScreen != null) {
             getListView().setAdapter(onCreateAdapter(preferenceScreen));
+            preferenceScreen.onAttached();
         }
         onBindPreferences();
     }
diff --git a/v7/preference/src/android/support/v7/preference/Preference.java b/v7/preference/src/android/support/v7/preference/Preference.java
index 7d01005..15033ff 100644
--- a/v7/preference/src/android/support/v7/preference/Preference.java
+++ b/v7/preference/src/android/support/v7/preference/Preference.java
@@ -1070,7 +1070,7 @@
      * Preference has been attached to a group that was already attached
      * to the list of preferences.
      */
-    protected void onAttached() {
+    public void onAttached() {
         // At this point, the hierarchy that this preference is in is connected
         // with all other preferences.
         registerDependency();
diff --git a/v7/preference/src/android/support/v7/preference/PreferenceFragmentCompat.java b/v7/preference/src/android/support/v7/preference/PreferenceFragmentCompat.java
index f9c0338..8231d89 100644
--- a/v7/preference/src/android/support/v7/preference/PreferenceFragmentCompat.java
+++ b/v7/preference/src/android/support/v7/preference/PreferenceFragmentCompat.java
@@ -464,6 +464,7 @@
         final PreferenceScreen preferenceScreen = getPreferenceScreen();
         if (preferenceScreen != null) {
             getListView().setAdapter(onCreateAdapter(preferenceScreen));
+            preferenceScreen.onAttached();
         }
         onBindPreferences();
     }
diff --git a/v7/preference/src/android/support/v7/preference/PreferenceGroup.java b/v7/preference/src/android/support/v7/preference/PreferenceGroup.java
index f1c79dd..968b777 100644
--- a/v7/preference/src/android/support/v7/preference/PreferenceGroup.java
+++ b/v7/preference/src/android/support/v7/preference/PreferenceGroup.java
@@ -53,7 +53,7 @@
 
     private int mCurrentPreferenceOrder = 0;
 
-    private boolean mAttachedToActivity = false;
+    private boolean mAttachedToHierarchy = false;
 
     public PreferenceGroup(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
         super(context, attrs, defStyleAttr, defStyleRes);
@@ -168,7 +168,7 @@
 
         preference.onAttachedToHierarchy(getPreferenceManager());
 
-        if (mAttachedToActivity) {
+        if (mAttachedToHierarchy) {
             preference.onAttached();
         }
 
@@ -270,12 +270,12 @@
     }
 
     @Override
-    protected void onAttached() {
+    public void onAttached() {
         super.onAttached();
 
         // Mark as attached so if a preference is later added to this group, we
         // can tell it we are already attached
-        mAttachedToActivity = true;
+        mAttachedToHierarchy = true;
 
         // Dispatch to all contained preferences
         final int preferenceCount = getPreferenceCount();
@@ -289,7 +289,7 @@
         super.onPrepareForRemoval();
 
         // We won't be attached to the activity anymore
-        mAttachedToActivity = false;
+        mAttachedToHierarchy = false;
     }
 
     @Override