Call onViewCreated in DashboardFragment

To let fragment's view lifecycle owner passed in to controllers.

For UI usage, view lifecycle owner is the best choice, controller could
use this lifecycle owner to observe events and do UI related works.

Usage DataSaverController as first example.

Bug: 287005021
Test: Manually for DataSaverController
Change-Id: Id965ea3a24d61f4d0ec6735632944f41f72ba06a
This commit is contained in:
Chaohui Wang
2023-06-13 17:08:33 +08:00
parent f2f899106d
commit eb4fea1a36
4 changed files with 13 additions and 18 deletions

View File

@@ -25,11 +25,14 @@ import android.preference.PreferenceManager.OnActivityResultListener;
import android.text.TextUtils;
import android.util.ArrayMap;
import android.util.Log;
import android.view.View;
import androidx.annotation.CallSuper;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.LifecycleOwner;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceGroup;
@@ -169,6 +172,15 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
}
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
LifecycleOwner viewLifecycleOwner = getViewLifecycleOwner();
for (AbstractPreferenceController controller : mControllers) {
controller.onViewCreated(viewLifecycleOwner);
}
}
@Override
public void onCategoriesChanged(Set<String> categories) {
final String categoryKey = getCategoryKey();