1 /* <lambda>null2 * Copyright 2022 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package androidx.baselineprofile.gradle.utils 18 19 import java.util.Locale 20 21 fun camelCase(vararg strings: String): String { 22 if (strings.isEmpty()) return "" 23 return StringBuilder() 24 .apply { 25 var shouldCapitalize = false 26 for (str in strings.filter { it.isNotBlank() }) { 27 append(if (shouldCapitalize) str.capitalized() else str) 28 shouldCapitalize = true 29 } 30 } 31 .toString() 32 } 33 capitalizednull34internal fun CharSequence.capitalized(): String = 35 when { 36 isEmpty() -> "" 37 else -> 38 get(0).let { initial -> 39 when { 40 initial.isLowerCase() -> initial.titlecase(Locale.getDefault()) + substring(1) 41 else -> toString() 42 } 43 } 44 } 45