Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eb4fea1a authored by Chaohui Wang's avatar Chaohui Wang
Browse files

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
parent f2f89910
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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)
+0 −10
Original line number Diff line number Diff line
@@ -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;
+12 −0
Original line number Diff line number Diff line
@@ -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();
+0 −7
Original line number Diff line number Diff line
@@ -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)