165 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			165 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package com.google.android.material.internal;
 | |
| 
 | |
| import android.R;
 | |
| import android.content.Context;
 | |
| import android.os.Parcel;
 | |
| import android.os.Parcelable;
 | |
| import android.util.AttributeSet;
 | |
| import android.view.View;
 | |
| import android.view.accessibility.AccessibilityEvent;
 | |
| import android.widget.Checkable;
 | |
| import androidx.appcompat.widget.AppCompatImageButton;
 | |
| import androidx.core.view.AccessibilityDelegateCompat;
 | |
| import androidx.core.view.ViewCompat;
 | |
| import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
 | |
| import androidx.customview.view.AbsSavedState;
 | |
| 
 | |
| /* loaded from: classes.dex */
 | |
| public class CheckableImageButton extends AppCompatImageButton implements Checkable {
 | |
|     private static final int[] DRAWABLE_STATE_CHECKED = {R.attr.state_checked};
 | |
|     private boolean checkable;
 | |
|     private boolean checked;
 | |
|     private boolean pressable;
 | |
| 
 | |
|     public boolean isCheckable() {
 | |
|         return this.checkable;
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.Checkable
 | |
|     public boolean isChecked() {
 | |
|         return this.checked;
 | |
|     }
 | |
| 
 | |
|     public boolean isPressable() {
 | |
|         return this.pressable;
 | |
|     }
 | |
| 
 | |
|     public void setPressable(boolean z) {
 | |
|         this.pressable = z;
 | |
|     }
 | |
| 
 | |
|     public CheckableImageButton(Context context) {
 | |
|         this(context, null);
 | |
|     }
 | |
| 
 | |
|     public CheckableImageButton(Context context, AttributeSet attributeSet) {
 | |
|         this(context, attributeSet, androidx.appcompat.R.attr.imageButtonStyle);
 | |
|     }
 | |
| 
 | |
|     public CheckableImageButton(Context context, AttributeSet attributeSet, int i) {
 | |
|         super(context, attributeSet, i);
 | |
|         this.checkable = true;
 | |
|         this.pressable = true;
 | |
|         ViewCompat.setAccessibilityDelegate(this, new AccessibilityDelegateCompat() { // from class: com.google.android.material.internal.CheckableImageButton.1
 | |
|             @Override // androidx.core.view.AccessibilityDelegateCompat
 | |
|             public void onInitializeAccessibilityEvent(View view, AccessibilityEvent accessibilityEvent) {
 | |
|                 super.onInitializeAccessibilityEvent(view, accessibilityEvent);
 | |
|                 accessibilityEvent.setChecked(CheckableImageButton.this.isChecked());
 | |
|             }
 | |
| 
 | |
|             @Override // androidx.core.view.AccessibilityDelegateCompat
 | |
|             public void onInitializeAccessibilityNodeInfo(View view, AccessibilityNodeInfoCompat accessibilityNodeInfoCompat) {
 | |
|                 super.onInitializeAccessibilityNodeInfo(view, accessibilityNodeInfoCompat);
 | |
|                 accessibilityNodeInfoCompat.setCheckable(CheckableImageButton.this.isCheckable());
 | |
|                 accessibilityNodeInfoCompat.setChecked(CheckableImageButton.this.isChecked());
 | |
|             }
 | |
|         });
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.Checkable
 | |
|     public void setChecked(boolean z) {
 | |
|         if (!this.checkable || this.checked == z) {
 | |
|             return;
 | |
|         }
 | |
|         this.checked = z;
 | |
|         refreshDrawableState();
 | |
|         sendAccessibilityEvent(2048);
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.Checkable
 | |
|     public void toggle() {
 | |
|         setChecked(!this.checked);
 | |
|     }
 | |
| 
 | |
|     @Override // android.view.View
 | |
|     public void setPressed(boolean z) {
 | |
|         if (this.pressable) {
 | |
|             super.setPressed(z);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.ImageView, android.view.View
 | |
|     public int[] onCreateDrawableState(int i) {
 | |
|         if (this.checked) {
 | |
|             int[] iArr = DRAWABLE_STATE_CHECKED;
 | |
|             return mergeDrawableStates(super.onCreateDrawableState(i + iArr.length), iArr);
 | |
|         }
 | |
|         return super.onCreateDrawableState(i);
 | |
|     }
 | |
| 
 | |
|     @Override // android.view.View
 | |
|     protected Parcelable onSaveInstanceState() {
 | |
|         SavedState savedState = new SavedState(super.onSaveInstanceState());
 | |
|         savedState.checked = this.checked;
 | |
|         return savedState;
 | |
|     }
 | |
| 
 | |
|     @Override // android.view.View
 | |
|     protected void onRestoreInstanceState(Parcelable parcelable) {
 | |
|         if (!(parcelable instanceof SavedState)) {
 | |
|             super.onRestoreInstanceState(parcelable);
 | |
|             return;
 | |
|         }
 | |
|         SavedState savedState = (SavedState) parcelable;
 | |
|         super.onRestoreInstanceState(savedState.getSuperState());
 | |
|         setChecked(savedState.checked);
 | |
|     }
 | |
| 
 | |
|     public void setCheckable(boolean z) {
 | |
|         if (this.checkable != z) {
 | |
|             this.checkable = z;
 | |
|             sendAccessibilityEvent(0);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     static class SavedState extends AbsSavedState {
 | |
|         public static final Parcelable.Creator<SavedState> CREATOR = new Parcelable.ClassLoaderCreator<SavedState>() { // from class: com.google.android.material.internal.CheckableImageButton.SavedState.1
 | |
|             /* JADX WARN: Can't rename method to resolve collision */
 | |
|             @Override // android.os.Parcelable.ClassLoaderCreator
 | |
|             public SavedState createFromParcel(Parcel parcel, ClassLoader classLoader) {
 | |
|                 return new SavedState(parcel, classLoader);
 | |
|             }
 | |
| 
 | |
|             @Override // android.os.Parcelable.Creator
 | |
|             public SavedState createFromParcel(Parcel parcel) {
 | |
|                 return new SavedState(parcel, null);
 | |
|             }
 | |
| 
 | |
|             @Override // android.os.Parcelable.Creator
 | |
|             public SavedState[] newArray(int i) {
 | |
|                 return new SavedState[i];
 | |
|             }
 | |
|         };
 | |
|         boolean checked;
 | |
| 
 | |
|         public SavedState(Parcelable parcelable) {
 | |
|             super(parcelable);
 | |
|         }
 | |
| 
 | |
|         public SavedState(Parcel parcel, ClassLoader classLoader) {
 | |
|             super(parcel, classLoader);
 | |
|             readFromParcel(parcel);
 | |
|         }
 | |
| 
 | |
|         @Override // androidx.customview.view.AbsSavedState, android.os.Parcelable
 | |
|         public void writeToParcel(Parcel parcel, int i) {
 | |
|             super.writeToParcel(parcel, i);
 | |
|             parcel.writeInt(this.checked ? 1 : 0);
 | |
|         }
 | |
| 
 | |
|         private void readFromParcel(Parcel parcel) {
 | |
|             this.checked = parcel.readInt() == 1;
 | |
|         }
 | |
|     }
 | |
| }
 |