1c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn/* 2c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * Copyright (C) 2011 The Android Open Source Project 3c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * 4c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * Licensed under the Apache License, Version 2.0 (the "License"); 5c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * you may not use this file except in compliance with the License. 6c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * You may obtain a copy of the License at 7c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * 8c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * http://www.apache.org/licenses/LICENSE-2.0 9c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * 10c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * Unless required by applicable law or agreed to in writing, software 11c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * distributed under the License is distributed on an "AS IS" BASIS, 12c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * See the License for the specific language governing permissions and 14c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn * limitations under the License. 15c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn */ 16c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 17c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornpackage com.example.android.supportv4.view; 18c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 19c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.content.Context; 20c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.graphics.drawable.ColorDrawable; 21c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.util.AttributeSet; 22c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.widget.Checkable; 23c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornimport android.widget.FrameLayout; 24c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 25def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport androidx.core.view.ViewCompat; 26def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikas 27c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackbornpublic class CheckableFrameLayout extends FrameLayout implements Checkable { 28c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn private boolean mChecked; 29c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 30c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn public CheckableFrameLayout(Context context) { 31c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn super(context); 32c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 33c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 34c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn public CheckableFrameLayout(Context context, AttributeSet attrs) { 35c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn super(context, attrs); 36c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 37c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 38e2104f4b5c8e3ad63570306a25e61502dfe4c418Aurimas Liutikas @Override 39c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn public void setChecked(boolean checked) { 40c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn mChecked = checked; 4167949f5f3bc1f721fa5f63250f0fd74a44f5381fAurimas Liutikas ViewCompat.setBackground(this, checked ? new ColorDrawable(0xff0000a0) : null); 42c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 43c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 44e2104f4b5c8e3ad63570306a25e61502dfe4c418Aurimas Liutikas @Override 45c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn public boolean isChecked() { 46c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn return mChecked; 47c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 48c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 49e2104f4b5c8e3ad63570306a25e61502dfe4c418Aurimas Liutikas @Override 50c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn public void toggle() { 51c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn setChecked(!mChecked); 52c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn } 53c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn 54c644c91b91b83a6b400a57b02671f4ef7b7a810bDianne Hackborn} 55