/** * Copyright (C) 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.healthconnect.controller.shared import androidx.preference.Preference import androidx.preference.PreferenceGroup /** Returns a [MutableIterator] over the preferences in this preference group. */ operator fun PreferenceGroup.iterator(): Iterator = object : MutableIterator { private var index = 0 override fun hasNext() = index < preferenceCount override fun next() = getPreference(index++) override fun remove() { removePreference(getPreference(--index)) } } /** Returns a [Sequence] over the preferences in this preference group. */ val PreferenceGroup.children: Sequence get() = object : Sequence { override fun iterator() = this@children.iterator() }