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:
@@ -51,7 +51,7 @@ class DataSaverController(context: Context, key: String) : BasePreferenceControl
|
||||
preference = screen.findPreference(preferenceKey)!!
|
||||
}
|
||||
|
||||
fun init(viewLifecycleOwner: LifecycleOwner) {
|
||||
override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) {
|
||||
viewLifecycleOwner.lifecycleScope.launch {
|
||||
viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
|
||||
preference.summary = getUnrestrictedSummary(mContext)
|
||||
|
@@ -21,10 +21,6 @@ import static android.app.admin.DevicePolicyResources.Strings.Settings.MANAGE_DE
|
||||
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.dashboard.DashboardFragment;
|
||||
@@ -50,12 +46,6 @@ public class SpecialAccessSettings extends DashboardFragment {
|
||||
MANAGE_DEVICE_ADMIN_APPS, R.string.manage_device_admin);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
use(DataSaverController.class).init(getViewLifecycleOwner());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getPreferenceScreenResId() {
|
||||
return R.xml.special_access;
|
||||
|
@@ -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();
|
||||
|
@@ -19,11 +19,9 @@ import android.app.settings.SettingsEnums
|
||||
import android.content.Context
|
||||
import android.os.Bundle
|
||||
import android.telephony.SubscriptionManager
|
||||
import android.view.View
|
||||
import android.widget.Switch
|
||||
import com.android.settings.R
|
||||
import com.android.settings.SettingsActivity
|
||||
import com.android.settings.applications.specialaccess.DataSaverController
|
||||
import com.android.settings.dashboard.DashboardFragment
|
||||
import com.android.settings.search.BaseSearchIndexProvider
|
||||
import com.android.settings.widget.SettingsMainSwitchBar
|
||||
@@ -59,11 +57,6 @@ class DataSaverSummary : DashboardFragment() {
|
||||
}
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
use(DataSaverController::class.java).init(viewLifecycleOwner)
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
dataSaverBackend.addListener(dataSaverBackendListener)
|
||||
|
Reference in New Issue
Block a user