Recursively find preference in progressive disclosure.

Add handling to check for nested preference when finding preference
in the collapsed list.

Change-Id: I830bdd5fd99f09c505f41fd3bb2fa968eb9b13cf
Fix: 35363405
Test: make RunSettingsRoboTests
This commit is contained in:
Doris Ling
2017-02-16 17:40:40 -08:00
parent db59347c29
commit 493fd4e6d6
2 changed files with 26 additions and 0 deletions

View File

@@ -21,6 +21,7 @@ import android.os.Bundle;
import android.support.annotation.VisibleForTesting;
import android.support.v14.preference.PreferenceFragment;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceGroup;
import android.support.v7.preference.PreferenceScreen;
import android.text.TextUtils;
import android.util.Log;
@@ -219,6 +220,12 @@ public class ProgressiveDisclosureMixin implements Preference.OnPreferenceClickL
if (TextUtils.equals(key, pref.getKey())) {
return pref;
}
if (pref instanceof PreferenceGroup) {
final Preference returnedPreference = ((PreferenceGroup)pref).findPreference(key);
if (returnedPreference != null) {
return returnedPreference;
}
}
}
Log.d(TAG, "Cannot find preference with key " + key);
return null;