Merge "Fix 'Advanced' collapse point on Network & internet page" into qt-dev

am: 5c28e42538

Change-Id: I886e9b11d7b0ec8c7a9742388cc0867f24f50850
This commit is contained in:
Antony Sargent
2019-04-08 11:43:38 -07:00
committed by android-build-merger
5 changed files with 55 additions and 4 deletions

View File

@@ -38,6 +38,8 @@ public class MultiNetworkHeaderController extends BasePreferenceController imple
private WifiConnectionPreferenceController mWifiController;
private SubscriptionsPreferenceController mSubscriptionsController;
private PreferenceCategory mPreferenceCategory;
private PreferenceScreen mPreferenceScreen;
private int mOriginalExpandedChildrenCount;
public MultiNetworkHeaderController(Context context, String key) {
super(context, key);
@@ -65,6 +67,8 @@ public class MultiNetworkHeaderController extends BasePreferenceController imple
@Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
mPreferenceScreen = screen;
mOriginalExpandedChildrenCount = mPreferenceScreen.getInitialExpandedChildrenCount();
mPreferenceCategory = screen.findPreference(mPreferenceKey);
mPreferenceCategory.setVisible(isAvailable());
mWifiController.displayPreference(screen);
@@ -82,6 +86,18 @@ public class MultiNetworkHeaderController extends BasePreferenceController imple
@Override
public void onChildrenUpdated() {
mPreferenceCategory.setVisible(isAvailable());
final boolean available = isAvailable();
// TODO(b/129893781) we need a better way to express where the advanced collapsing starts
// for preference groups that have items dynamically added/removed in the top expanded
// section.
if (mOriginalExpandedChildrenCount != Integer.MAX_VALUE) {
if (available) {
mPreferenceScreen.setInitialExpandedChildrenCount(
mOriginalExpandedChildrenCount + mPreferenceCategory.getPreferenceCount());
} else {
mPreferenceScreen.setInitialExpandedChildrenCount(mOriginalExpandedChildrenCount);
}
}
mPreferenceCategory.setVisible(available);
}
}

View File

@@ -116,7 +116,7 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl
return;
}
if (mSubscriptionsListener.isAirplaneModeOn()) {
if (!isAvailable()) {
for (Preference pref : mSubscriptionPreferences.values()) {
mPreferenceGroup.removePreference(pref);
}