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

Commit d32e7863 authored by Jacky Wang's avatar Jacky Wang Committed by Android (Google) Code Review
Browse files

Merge "[Catalyst] Add log for not bound metadata" into main

parents d4130fbc 68bc246e
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.settingslib.preference
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.util.Log
import androidx.activity.result.ActivityResultCallback
import androidx.activity.result.contract.ActivityResultContract
import androidx.fragment.app.FragmentManager
@@ -241,6 +242,8 @@ class PreferenceScreenBindingHelper(
    }

    companion object {
        private const val TAG = "MetadataBindingHelper"

        /** Updates preference screen that has incomplete hierarchy. */
        @JvmStatic
        fun bind(preferenceScreen: PreferenceScreen) {
@@ -290,15 +293,21 @@ class PreferenceScreenBindingHelper(
                        preferenceBindingFactory.bind(preference, node)
                    }
                }
                for (node in preferences.values) {
                val iterator = preferences.iterator()
                while (iterator.hasNext()) {
                    val node = iterator.next().value
                    val metadata = node.metadata
                    val binding = preferenceBindingFactory.getPreferenceBinding(metadata)
                    if (binding !is PreferenceBindingPlaceholder) continue
                    iterator.remove()
                    val preference = binding.createWidget(preferenceGroup.context)
                    preference.setPreferenceDataStore(metadata)
                    preferenceBindingFactory.bind(preference, node, binding)
                    preferenceGroup.addPreference(preference)
                }
                if (preferences.isNotEmpty()) {
                    Log.w(TAG, "Metadata not bound: ${preferences.keys}")
                }
            }

            preferenceHierarchy.bindRecursively(preferenceScreen)