1 /* 2 * Copyright (C) 2023 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 package com.android.customization.picker.clock.ui.view 17 18 import android.content.Context 19 import android.util.AttributeSet 20 import android.view.LayoutInflater 21 import android.view.View 22 import android.widget.FrameLayout 23 import android.widget.RadioButton 24 import com.android.customization.picker.clock.shared.ClockSize 25 import com.android.wallpaper.R 26 27 /** The radio button group to pick the clock size. */ 28 class ClockSizeRadioButtonGroup( 29 context: Context, 30 attrs: AttributeSet?, 31 ) : FrameLayout(context, attrs) { 32 33 interface OnRadioButtonClickListener { onClicknull34 fun onClick(size: ClockSize) 35 } 36 37 val radioButtonDynamic: RadioButton 38 val radioButtonSmall: RadioButton 39 var onRadioButtonClickListener: OnRadioButtonClickListener? = null 40 41 init { 42 LayoutInflater.from(context).inflate(R.layout.clock_size_radio_button_group, this, true) 43 radioButtonDynamic = requireViewById(R.id.radio_button_dynamic) 44 val buttonDynamic = requireViewById<View>(R.id.button_container_dynamic) 45 buttonDynamic.setOnClickListener { onRadioButtonClickListener?.onClick(ClockSize.DYNAMIC) } 46 radioButtonSmall = requireViewById(R.id.radio_button_large) 47 val buttonLarge = requireViewById<View>(R.id.button_container_small) 48 buttonLarge.setOnClickListener { onRadioButtonClickListener?.onClick(ClockSize.SMALL) } 49 } 50 } 51