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