Adds Text to the common module.
UserSwitcherActivity refactor: CL 2/7 Following the precedent set by Icon and ContentDescription, Text is a sealed class that can represent a string that is either already loaded into memory or is referenced to using a resource ID. This CL also includes the TextViewBinder. Bug: 243844359 Test: Manually tested as part of CL 7/7 in the chain Change-Id: I85bc6866fff9d37e573d4cdeaa74da8efbb35246
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
* 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.systemui.common.shared.model
|
||||
|
||||
import android.annotation.StringRes
|
||||
|
||||
/**
|
||||
* Models a text, that can either be already [loaded][Text.Loaded] or be a [reference]
|
||||
* [Text.Resource] to a resource.
|
||||
*/
|
||||
sealed class Text {
|
||||
data class Loaded(
|
||||
val text: String?,
|
||||
) : Text()
|
||||
|
||||
data class Resource(
|
||||
@StringRes val res: Int,
|
||||
) : Text()
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* 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.systemui.common.ui.binder
|
||||
|
||||
import android.widget.TextView
|
||||
import com.android.systemui.common.shared.model.Text
|
||||
|
||||
object TextViewBinder {
|
||||
fun bind(view: TextView, viewModel: Text) {
|
||||
view.text =
|
||||
when (viewModel) {
|
||||
is Text.Resource -> view.context.getString(viewModel.res)
|
||||
is Text.Loaded -> viewModel.text
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user