* Decompile and recreate Soul Browser v1.4.85 with APK CI builds Co-authored-by: KaKi87 <KaKi87@pm.me> * Fix CI build: include bundled google.jks and remove PR trigger The apktool build failed in CI because app/unknown/.../google.jks was excluded by the *.jks gitignore rule. Whitelist app-bundled JKS files and commit the missing resource. Also remove the redundant pull_request workflow trigger. Co-authored-by: KaKi87 <KaKi87@pm.me> * Change package ID to com.github.kaki87.soulbrowser Rename the application ID so the rebuilt APK can be installed alongside the original Soul Browser from Google Play. - Update AndroidManifest package, permissions, providers, and actions - Update R class references in smali (com/github/kaki87/soulbrowser/R) - Update shortcuts.xml targetPackage - Rename app label to "Soul Rebuild" for easy identification Co-authored-by: KaKi87 <KaKi87@pm.me> * Fix install compatibility: remove split APK metadata and bundle native libs The rebuilt APK still declared requiredSplitTypes and Play Store split metadata, causing Android to reject standalone installs as incompatible. - Remove requiredSplitTypes and split-related manifest meta-data - Merge native libs from all ABI splits with uncompressed storage - Page-align before signing for extractNativeLibs=false - Add .so to apktool doNotCompress list Co-authored-by: KaKi87 <KaKi87@pm.me> * Fix install failure: use apksigner v2/v3 and bundle arm64 native libs Target SDK 36 requires APK Signature Scheme v2+, but jarsigner only produces v1 signatures, causing Android to reject the install. - Sign with apksigner (v1+v2+v3) instead of jarsigner - Add arm64-v8a native libraries from universal Soul Browser 1.4.79 - Set extractNativeLibs=true for reliable sideload installs - Commit stable debug keystore for consistent signatures across builds Co-authored-by: KaKi87 <KaKi87@pm.me> * Add committed debug keystore for consistent APK signatures Co-authored-by: KaKi87 <KaKi87@pm.me> * Fix startup crash: use original classes2.dex desugar libraries Apktool recompiles smali_classes2 into a broken classes2.dex, causing ClassNotFoundException for j$.com.android.tools.r8.a at ML Kit init. Inject the original classes2.dex (Java 8+ desugar libs) after apktool build instead of using the recompiled version. Co-authored-by: KaKi87 <KaKi87@pm.me> * Fix missing drawable resources from density split APKs The base APK is an app bundle module; density-specific drawables like seek_thumb_nor_b live in config.xhdpi.apk and were missing after rebuild, causing Resources$NotFoundException at runtime. - Merge non-9-patch resources from split APKs before apktool build - Sync public.xml IDs from R smali only when backing files exist - Add 713 density-specific resource IDs to public.xml Co-authored-by: KaKi87 <KaKi87@pm.me> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com>
732 lines
25 KiB
Java
732 lines
25 KiB
Java
package androidx.appcompat.widget;
|
|
|
|
import android.R;
|
|
import android.app.SearchableInfo;
|
|
import android.content.Context;
|
|
import android.content.res.Configuration;
|
|
import android.graphics.Rect;
|
|
import android.os.Build;
|
|
import android.os.Bundle;
|
|
import android.os.Parcel;
|
|
import android.os.Parcelable;
|
|
import android.text.Editable;
|
|
import android.text.TextWatcher;
|
|
import android.util.AttributeSet;
|
|
import android.util.TypedValue;
|
|
import android.view.KeyEvent;
|
|
import android.view.MotionEvent;
|
|
import android.view.TouchDelegate;
|
|
import android.view.View;
|
|
import android.view.inputmethod.EditorInfo;
|
|
import android.view.inputmethod.InputConnection;
|
|
import android.view.inputmethod.InputMethodManager;
|
|
import android.view.inspector.PropertyMapper;
|
|
import android.view.inspector.PropertyReader;
|
|
import android.widget.AdapterView;
|
|
import android.widget.AutoCompleteTextView;
|
|
import android.widget.TextView;
|
|
import androidx.annotation.DoNotInline;
|
|
import androidx.annotation.Nullable;
|
|
import androidx.annotation.RequiresApi;
|
|
import androidx.annotation.RestrictTo;
|
|
import androidx.appcompat.view.CollapsibleActionView;
|
|
import androidx.cursoradapter.widget.CursorAdapter;
|
|
import androidx.customview.view.AbsSavedState;
|
|
import java.lang.reflect.Method;
|
|
|
|
/* loaded from: classes.dex */
|
|
public class SearchView extends LinearLayoutCompat implements CollapsibleActionView {
|
|
public static final PreQAutoCompleteTextViewReflector D;
|
|
public CharSequence A;
|
|
public int B;
|
|
public SearchableInfo C;
|
|
public OnQueryTextListener t;
|
|
public OnCloseListener u;
|
|
public OnSuggestionListener v;
|
|
public View.OnClickListener w;
|
|
public boolean x;
|
|
public boolean y;
|
|
public CursorAdapter z;
|
|
|
|
/* renamed from: androidx.appcompat.widget.SearchView$1, reason: invalid class name */
|
|
/* loaded from: classes.dex */
|
|
public class AnonymousClass1 implements Runnable {
|
|
@Override // java.lang.Runnable
|
|
public final void run() {
|
|
throw null;
|
|
}
|
|
}
|
|
|
|
/* renamed from: androidx.appcompat.widget.SearchView$10, reason: invalid class name */
|
|
/* loaded from: classes.dex */
|
|
public class AnonymousClass10 implements TextWatcher {
|
|
@Override // android.text.TextWatcher
|
|
public final void afterTextChanged(Editable editable) {
|
|
}
|
|
|
|
@Override // android.text.TextWatcher
|
|
public final void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {
|
|
}
|
|
|
|
@Override // android.text.TextWatcher
|
|
public final void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
|
|
throw null;
|
|
}
|
|
}
|
|
|
|
/* renamed from: androidx.appcompat.widget.SearchView$2, reason: invalid class name */
|
|
/* loaded from: classes.dex */
|
|
public class AnonymousClass2 implements Runnable {
|
|
@Override // java.lang.Runnable
|
|
public final void run() {
|
|
throw null;
|
|
}
|
|
}
|
|
|
|
/* renamed from: androidx.appcompat.widget.SearchView$3, reason: invalid class name */
|
|
/* loaded from: classes.dex */
|
|
class AnonymousClass3 implements View.OnFocusChangeListener {
|
|
@Override // android.view.View.OnFocusChangeListener
|
|
public final void onFocusChange(View view, boolean z) {
|
|
throw null;
|
|
}
|
|
}
|
|
|
|
/* renamed from: androidx.appcompat.widget.SearchView$4, reason: invalid class name */
|
|
/* loaded from: classes.dex */
|
|
class AnonymousClass4 implements View.OnLayoutChangeListener {
|
|
@Override // android.view.View.OnLayoutChangeListener
|
|
public final void onLayoutChange(View view, int i, int i2, int i3, int i4, int i5, int i6, int i7, int i8) {
|
|
throw null;
|
|
}
|
|
}
|
|
|
|
/* renamed from: androidx.appcompat.widget.SearchView$5, reason: invalid class name */
|
|
/* loaded from: classes.dex */
|
|
public class AnonymousClass5 implements View.OnClickListener {
|
|
@Override // android.view.View.OnClickListener
|
|
public final void onClick(View view) {
|
|
throw null;
|
|
}
|
|
}
|
|
|
|
/* renamed from: androidx.appcompat.widget.SearchView$6, reason: invalid class name */
|
|
/* loaded from: classes.dex */
|
|
public class AnonymousClass6 implements View.OnKeyListener {
|
|
@Override // android.view.View.OnKeyListener
|
|
public final boolean onKey(View view, int i, KeyEvent keyEvent) {
|
|
throw null;
|
|
}
|
|
}
|
|
|
|
/* renamed from: androidx.appcompat.widget.SearchView$7, reason: invalid class name */
|
|
/* loaded from: classes.dex */
|
|
public class AnonymousClass7 implements TextView.OnEditorActionListener {
|
|
@Override // android.widget.TextView.OnEditorActionListener
|
|
public final boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
|
|
throw null;
|
|
}
|
|
}
|
|
|
|
/* renamed from: androidx.appcompat.widget.SearchView$8, reason: invalid class name */
|
|
/* loaded from: classes.dex */
|
|
public class AnonymousClass8 implements AdapterView.OnItemClickListener {
|
|
@Override // android.widget.AdapterView.OnItemClickListener
|
|
public final void onItemClick(AdapterView adapterView, View view, int i, long j) {
|
|
throw null;
|
|
}
|
|
}
|
|
|
|
/* renamed from: androidx.appcompat.widget.SearchView$9, reason: invalid class name */
|
|
/* loaded from: classes.dex */
|
|
public class AnonymousClass9 implements AdapterView.OnItemSelectedListener {
|
|
@Override // android.widget.AdapterView.OnItemSelectedListener
|
|
public final void onItemSelected(AdapterView adapterView, View view, int i, long j) {
|
|
throw null;
|
|
}
|
|
|
|
@Override // android.widget.AdapterView.OnItemSelectedListener
|
|
public final void onNothingSelected(AdapterView adapterView) {
|
|
}
|
|
}
|
|
|
|
@RequiresApi
|
|
/* loaded from: classes.dex */
|
|
public static class Api29Impl {
|
|
@DoNotInline
|
|
public static void a(AutoCompleteTextView autoCompleteTextView) {
|
|
autoCompleteTextView.refreshAutoCompleteResults();
|
|
}
|
|
|
|
@DoNotInline
|
|
public static void b(SearchAutoComplete searchAutoComplete, int i) {
|
|
searchAutoComplete.setInputMethodMode(i);
|
|
}
|
|
}
|
|
|
|
@RequiresApi
|
|
@RestrictTo
|
|
/* loaded from: classes.dex */
|
|
public final class InspectionCompanion implements android.view.inspector.InspectionCompanion {
|
|
|
|
/* renamed from: a, reason: collision with root package name */
|
|
public int f318a;
|
|
public int b;
|
|
|
|
/* renamed from: c, reason: collision with root package name */
|
|
public int f319c;
|
|
public int d;
|
|
|
|
public final void mapProperties(PropertyMapper propertyMapper) {
|
|
this.f318a = propertyMapper.mapInt("imeOptions", R.attr.imeOptions);
|
|
this.b = propertyMapper.mapInt("maxWidth", R.attr.maxWidth);
|
|
this.f319c = propertyMapper.mapBoolean("iconifiedByDefault", androidx.appcompat.R.attr.iconifiedByDefault);
|
|
this.d = propertyMapper.mapObject("queryHint", androidx.appcompat.R.attr.queryHint);
|
|
}
|
|
|
|
public final void readProperties(Object obj, PropertyReader propertyReader) {
|
|
SearchView searchView = (SearchView) obj;
|
|
propertyReader.readInt(this.f318a, searchView.getImeOptions());
|
|
propertyReader.readInt(this.b, searchView.getMaxWidth());
|
|
propertyReader.readBoolean(this.f319c, searchView.x);
|
|
propertyReader.readObject(this.d, searchView.getQueryHint());
|
|
}
|
|
}
|
|
|
|
/* loaded from: classes.dex */
|
|
public interface OnCloseListener {
|
|
}
|
|
|
|
/* loaded from: classes.dex */
|
|
public interface OnQueryTextListener {
|
|
}
|
|
|
|
/* loaded from: classes.dex */
|
|
public interface OnSuggestionListener {
|
|
}
|
|
|
|
/* loaded from: classes.dex */
|
|
public static class PreQAutoCompleteTextViewReflector {
|
|
|
|
/* renamed from: a, reason: collision with root package name */
|
|
public Method f320a;
|
|
|
|
public static void a() {
|
|
if (Build.VERSION.SDK_INT < 29) {
|
|
} else {
|
|
throw new UnsupportedClassVersionError("This function can only be used for API Level < 29.");
|
|
}
|
|
}
|
|
}
|
|
|
|
/* loaded from: classes.dex */
|
|
public static class SavedState extends AbsSavedState {
|
|
public static final Parcelable.Creator<SavedState> CREATOR = new Object();
|
|
public boolean g;
|
|
|
|
/* renamed from: androidx.appcompat.widget.SearchView$SavedState$1, reason: invalid class name */
|
|
/* loaded from: classes.dex */
|
|
public class AnonymousClass1 implements Parcelable.ClassLoaderCreator<SavedState> {
|
|
@Override // android.os.Parcelable.ClassLoaderCreator
|
|
public final SavedState createFromParcel(Parcel parcel, ClassLoader classLoader) {
|
|
return new SavedState(parcel, classLoader);
|
|
}
|
|
|
|
@Override // android.os.Parcelable.Creator
|
|
public final Object[] newArray(int i) {
|
|
return new SavedState[i];
|
|
}
|
|
|
|
@Override // android.os.Parcelable.Creator
|
|
public final Object createFromParcel(Parcel parcel) {
|
|
return new SavedState(parcel, null);
|
|
}
|
|
}
|
|
|
|
public SavedState(Parcel parcel, ClassLoader classLoader) {
|
|
super(parcel, classLoader);
|
|
this.g = ((Boolean) parcel.readValue(null)).booleanValue();
|
|
}
|
|
|
|
public final String toString() {
|
|
return "SearchView.SavedState{" + Integer.toHexString(System.identityHashCode(this)) + " isIconified=" + this.g + "}";
|
|
}
|
|
|
|
@Override // androidx.customview.view.AbsSavedState, android.os.Parcelable
|
|
public final void writeToParcel(Parcel parcel, int i) {
|
|
super.writeToParcel(parcel, i);
|
|
parcel.writeValue(Boolean.valueOf(this.g));
|
|
}
|
|
}
|
|
|
|
@RestrictTo
|
|
/* loaded from: classes.dex */
|
|
public static class SearchAutoComplete extends AppCompatAutoCompleteTextView {
|
|
public int i;
|
|
public SearchView j;
|
|
public boolean k;
|
|
public final Runnable l;
|
|
|
|
public SearchAutoComplete(Context context, AttributeSet attributeSet) {
|
|
super(context, attributeSet, androidx.appcompat.R.attr.autoCompleteTextViewStyle);
|
|
this.l = new Runnable() { // from class: androidx.appcompat.widget.SearchView.SearchAutoComplete.1
|
|
@Override // java.lang.Runnable
|
|
public final void run() {
|
|
SearchAutoComplete searchAutoComplete = SearchAutoComplete.this;
|
|
if (searchAutoComplete.k) {
|
|
((InputMethodManager) searchAutoComplete.getContext().getSystemService("input_method")).showSoftInput(searchAutoComplete, 0);
|
|
searchAutoComplete.k = false;
|
|
}
|
|
}
|
|
};
|
|
this.i = getThreshold();
|
|
}
|
|
|
|
private int getSearchViewTextMinWidthDp() {
|
|
Configuration configuration = getResources().getConfiguration();
|
|
int i = configuration.screenWidthDp;
|
|
int i2 = configuration.screenHeightDp;
|
|
if (i >= 960 && i2 >= 720 && configuration.orientation == 2) {
|
|
return 256;
|
|
}
|
|
if (i < 600) {
|
|
if (i < 640 || i2 < 480) {
|
|
return 160;
|
|
}
|
|
return 192;
|
|
}
|
|
return 192;
|
|
}
|
|
|
|
@Override // android.widget.AutoCompleteTextView
|
|
public final boolean enoughToFilter() {
|
|
if (this.i > 0 && !super.enoughToFilter()) {
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.AppCompatAutoCompleteTextView, android.widget.TextView, android.view.View
|
|
public final InputConnection onCreateInputConnection(EditorInfo editorInfo) {
|
|
InputConnection onCreateInputConnection = super.onCreateInputConnection(editorInfo);
|
|
if (this.k) {
|
|
Runnable runnable = this.l;
|
|
removeCallbacks(runnable);
|
|
post(runnable);
|
|
}
|
|
return onCreateInputConnection;
|
|
}
|
|
|
|
@Override // android.view.View
|
|
public final void onFinishInflate() {
|
|
super.onFinishInflate();
|
|
setMinWidth((int) TypedValue.applyDimension(1, getSearchViewTextMinWidthDp(), getResources().getDisplayMetrics()));
|
|
}
|
|
|
|
@Override // android.widget.AutoCompleteTextView, android.widget.TextView, android.view.View
|
|
public final void onFocusChanged(boolean z, int i, Rect rect) {
|
|
super.onFocusChanged(z, i, rect);
|
|
SearchView searchView = this.j;
|
|
searchView.y = searchView.y;
|
|
throw null;
|
|
}
|
|
|
|
@Override // android.widget.AutoCompleteTextView, android.widget.TextView, android.view.View
|
|
public final boolean onKeyPreIme(int i, KeyEvent keyEvent) {
|
|
if (i == 4) {
|
|
if (keyEvent.getAction() == 0 && keyEvent.getRepeatCount() == 0) {
|
|
KeyEvent.DispatcherState keyDispatcherState = getKeyDispatcherState();
|
|
if (keyDispatcherState != null) {
|
|
keyDispatcherState.startTracking(keyEvent, this);
|
|
}
|
|
return true;
|
|
}
|
|
if (keyEvent.getAction() == 1) {
|
|
KeyEvent.DispatcherState keyDispatcherState2 = getKeyDispatcherState();
|
|
if (keyDispatcherState2 != null) {
|
|
keyDispatcherState2.handleUpEvent(keyEvent);
|
|
}
|
|
if (keyEvent.isTracking() && !keyEvent.isCanceled()) {
|
|
this.j.clearFocus();
|
|
throw null;
|
|
}
|
|
}
|
|
}
|
|
return super.onKeyPreIme(i, keyEvent);
|
|
}
|
|
|
|
@Override // android.widget.AutoCompleteTextView, android.widget.TextView, android.view.View
|
|
public final void onWindowFocusChanged(boolean z) {
|
|
super.onWindowFocusChanged(z);
|
|
if (z && this.j.hasFocus() && getVisibility() == 0) {
|
|
this.k = true;
|
|
Context context = getContext();
|
|
PreQAutoCompleteTextViewReflector preQAutoCompleteTextViewReflector = SearchView.D;
|
|
if (context.getResources().getConfiguration().orientation == 2) {
|
|
if (Build.VERSION.SDK_INT >= 29) {
|
|
Api29Impl.b(this, 1);
|
|
if (enoughToFilter()) {
|
|
showDropDown();
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
PreQAutoCompleteTextViewReflector preQAutoCompleteTextViewReflector2 = SearchView.D;
|
|
preQAutoCompleteTextViewReflector2.getClass();
|
|
PreQAutoCompleteTextViewReflector.a();
|
|
Method method = preQAutoCompleteTextViewReflector2.f320a;
|
|
if (method != null) {
|
|
try {
|
|
method.invoke(this, Boolean.TRUE);
|
|
} catch (Exception unused) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override // android.widget.AutoCompleteTextView
|
|
public final void performCompletion() {
|
|
}
|
|
|
|
@Override // android.widget.AutoCompleteTextView
|
|
public final void replaceText(CharSequence charSequence) {
|
|
}
|
|
|
|
public void setImeVisibility(boolean z) {
|
|
InputMethodManager inputMethodManager = (InputMethodManager) getContext().getSystemService("input_method");
|
|
Runnable runnable = this.l;
|
|
if (!z) {
|
|
this.k = false;
|
|
removeCallbacks(runnable);
|
|
inputMethodManager.hideSoftInputFromWindow(getWindowToken(), 0);
|
|
} else {
|
|
if (inputMethodManager.isActive(this)) {
|
|
this.k = false;
|
|
removeCallbacks(runnable);
|
|
inputMethodManager.showSoftInput(this, 0);
|
|
return;
|
|
}
|
|
this.k = true;
|
|
}
|
|
}
|
|
|
|
public void setSearchView(SearchView searchView) {
|
|
this.j = searchView;
|
|
}
|
|
|
|
@Override // android.widget.AutoCompleteTextView
|
|
public void setThreshold(int i) {
|
|
super.setThreshold(i);
|
|
this.i = i;
|
|
}
|
|
}
|
|
|
|
/* loaded from: classes.dex */
|
|
public static class UpdatableTouchDelegate extends TouchDelegate {
|
|
|
|
/* renamed from: a, reason: collision with root package name */
|
|
public boolean f322a;
|
|
|
|
@Override // android.view.TouchDelegate
|
|
public final boolean onTouchEvent(MotionEvent motionEvent) {
|
|
boolean z;
|
|
motionEvent.getX();
|
|
motionEvent.getY();
|
|
int action = motionEvent.getAction();
|
|
if (action != 0) {
|
|
if (action != 1 && action != 2) {
|
|
if (action != 3) {
|
|
z = false;
|
|
} else {
|
|
z = this.f322a;
|
|
this.f322a = false;
|
|
}
|
|
} else {
|
|
z = this.f322a;
|
|
if (z) {
|
|
throw null;
|
|
}
|
|
}
|
|
if (!z) {
|
|
return false;
|
|
}
|
|
throw null;
|
|
}
|
|
throw null;
|
|
}
|
|
}
|
|
|
|
/* JADX WARN: Type inference failed for: r0v1, types: [androidx.appcompat.widget.SearchView$PreQAutoCompleteTextViewReflector, java.lang.Object] */
|
|
static {
|
|
PreQAutoCompleteTextViewReflector preQAutoCompleteTextViewReflector = null;
|
|
if (Build.VERSION.SDK_INT < 29) {
|
|
?? obj = new Object();
|
|
obj.f320a = null;
|
|
PreQAutoCompleteTextViewReflector.a();
|
|
try {
|
|
AutoCompleteTextView.class.getDeclaredMethod("doBeforeTextChanged", null).setAccessible(true);
|
|
} catch (NoSuchMethodException unused) {
|
|
}
|
|
try {
|
|
AutoCompleteTextView.class.getDeclaredMethod("doAfterTextChanged", null).setAccessible(true);
|
|
} catch (NoSuchMethodException unused2) {
|
|
}
|
|
try {
|
|
Method method = AutoCompleteTextView.class.getMethod("ensureImeVisible", Boolean.TYPE);
|
|
obj.f320a = method;
|
|
method.setAccessible(true);
|
|
} catch (NoSuchMethodException unused3) {
|
|
}
|
|
preQAutoCompleteTextViewReflector = obj;
|
|
}
|
|
D = preQAutoCompleteTextViewReflector;
|
|
}
|
|
|
|
private int getPreferredHeight() {
|
|
return getContext().getResources().getDimensionPixelSize(androidx.appcompat.R.dimen.abc_search_view_preferred_height);
|
|
}
|
|
|
|
private int getPreferredWidth() {
|
|
return getContext().getResources().getDimensionPixelSize(androidx.appcompat.R.dimen.abc_search_view_preferred_width);
|
|
}
|
|
|
|
private void setQuery(CharSequence charSequence) {
|
|
throw null;
|
|
}
|
|
|
|
@Override // android.view.ViewGroup, android.view.View
|
|
public final void clearFocus() {
|
|
super.clearFocus();
|
|
throw null;
|
|
}
|
|
|
|
public int getImeOptions() {
|
|
throw null;
|
|
}
|
|
|
|
public int getInputType() {
|
|
throw null;
|
|
}
|
|
|
|
public int getMaxWidth() {
|
|
return this.B;
|
|
}
|
|
|
|
public CharSequence getQuery() {
|
|
throw null;
|
|
}
|
|
|
|
@Nullable
|
|
public CharSequence getQueryHint() {
|
|
CharSequence charSequence = this.A;
|
|
if (charSequence != null) {
|
|
return charSequence;
|
|
}
|
|
SearchableInfo searchableInfo = this.C;
|
|
if (searchableInfo != null && searchableInfo.getHintId() != 0) {
|
|
return getContext().getText(this.C.getHintId());
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public int getSuggestionCommitIconResId() {
|
|
return 0;
|
|
}
|
|
|
|
public int getSuggestionRowLayout() {
|
|
return 0;
|
|
}
|
|
|
|
public CursorAdapter getSuggestionsAdapter() {
|
|
return this.z;
|
|
}
|
|
|
|
@Override // androidx.appcompat.view.CollapsibleActionView
|
|
public final void onActionViewCollapsed() {
|
|
throw null;
|
|
}
|
|
|
|
@Override // androidx.appcompat.view.CollapsibleActionView
|
|
public final void onActionViewExpanded() {
|
|
}
|
|
|
|
@Override // android.view.ViewGroup, android.view.View
|
|
public final void onDetachedFromWindow() {
|
|
removeCallbacks(null);
|
|
post(null);
|
|
super.onDetachedFromWindow();
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.LinearLayoutCompat, android.view.ViewGroup, android.view.View
|
|
public final void onLayout(boolean z, int i, int i2, int i3, int i4) {
|
|
super.onLayout(z, i, i2, i3, i4);
|
|
if (!z) {
|
|
} else {
|
|
throw null;
|
|
}
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.LinearLayoutCompat, android.view.View
|
|
public final void onMeasure(int i, int i2) {
|
|
int i3;
|
|
if (this.y) {
|
|
super.onMeasure(i, i2);
|
|
return;
|
|
}
|
|
int mode = View.MeasureSpec.getMode(i);
|
|
int size = View.MeasureSpec.getSize(i);
|
|
if (mode != Integer.MIN_VALUE) {
|
|
if (mode != 0) {
|
|
if (mode == 1073741824 && (i3 = this.B) > 0) {
|
|
size = Math.min(i3, size);
|
|
}
|
|
} else {
|
|
size = this.B;
|
|
if (size <= 0) {
|
|
size = getPreferredWidth();
|
|
}
|
|
}
|
|
} else {
|
|
int i4 = this.B;
|
|
size = i4 > 0 ? Math.min(i4, size) : Math.min(getPreferredWidth(), size);
|
|
}
|
|
int mode2 = View.MeasureSpec.getMode(i2);
|
|
int size2 = View.MeasureSpec.getSize(i2);
|
|
if (mode2 != Integer.MIN_VALUE) {
|
|
if (mode2 == 0) {
|
|
size2 = getPreferredHeight();
|
|
}
|
|
} else {
|
|
size2 = Math.min(getPreferredHeight(), size2);
|
|
}
|
|
super.onMeasure(View.MeasureSpec.makeMeasureSpec(size, 1073741824), View.MeasureSpec.makeMeasureSpec(size2, 1073741824));
|
|
}
|
|
|
|
@Override // android.view.View
|
|
public final void onRestoreInstanceState(Parcelable parcelable) {
|
|
if (!(parcelable instanceof SavedState)) {
|
|
super.onRestoreInstanceState(parcelable);
|
|
return;
|
|
}
|
|
SavedState savedState = (SavedState) parcelable;
|
|
super.onRestoreInstanceState(savedState.f936c);
|
|
this.y = savedState.g;
|
|
throw null;
|
|
}
|
|
|
|
/* JADX WARN: Type inference failed for: r1v0, types: [android.os.Parcelable, androidx.customview.view.AbsSavedState, androidx.appcompat.widget.SearchView$SavedState] */
|
|
@Override // android.view.View
|
|
public final Parcelable onSaveInstanceState() {
|
|
?? absSavedState = new AbsSavedState(super.onSaveInstanceState());
|
|
absSavedState.g = this.y;
|
|
return absSavedState;
|
|
}
|
|
|
|
@Override // android.view.View
|
|
public final void onWindowFocusChanged(boolean z) {
|
|
super.onWindowFocusChanged(z);
|
|
post(null);
|
|
}
|
|
|
|
@Override // android.view.ViewGroup, android.view.View
|
|
public final boolean requestFocus(int i, Rect rect) {
|
|
return false;
|
|
}
|
|
|
|
@RestrictTo
|
|
public void setAppSearchData(Bundle bundle) {
|
|
}
|
|
|
|
public void setIconified(boolean z) {
|
|
if (z) {
|
|
throw null;
|
|
}
|
|
this.y = false;
|
|
throw null;
|
|
}
|
|
|
|
public void setIconifiedByDefault(boolean z) {
|
|
if (this.x == z) {
|
|
return;
|
|
}
|
|
this.x = z;
|
|
this.y = z;
|
|
throw null;
|
|
}
|
|
|
|
public void setImeOptions(int i) {
|
|
throw null;
|
|
}
|
|
|
|
public void setInputType(int i) {
|
|
throw null;
|
|
}
|
|
|
|
public void setMaxWidth(int i) {
|
|
this.B = i;
|
|
requestLayout();
|
|
}
|
|
|
|
public void setOnCloseListener(OnCloseListener onCloseListener) {
|
|
this.u = onCloseListener;
|
|
}
|
|
|
|
public void setOnQueryTextFocusChangeListener(View.OnFocusChangeListener onFocusChangeListener) {
|
|
}
|
|
|
|
public void setOnQueryTextListener(OnQueryTextListener onQueryTextListener) {
|
|
this.t = onQueryTextListener;
|
|
}
|
|
|
|
public void setOnSearchClickListener(View.OnClickListener onClickListener) {
|
|
this.w = onClickListener;
|
|
}
|
|
|
|
public void setOnSuggestionListener(OnSuggestionListener onSuggestionListener) {
|
|
this.v = onSuggestionListener;
|
|
}
|
|
|
|
public void setQueryHint(@Nullable CharSequence charSequence) {
|
|
this.A = charSequence;
|
|
getQueryHint();
|
|
throw null;
|
|
}
|
|
|
|
public void setQueryRefinementEnabled(boolean z) {
|
|
int i;
|
|
CursorAdapter cursorAdapter = this.z;
|
|
if (cursorAdapter instanceof SuggestionsAdapter) {
|
|
SuggestionsAdapter suggestionsAdapter = (SuggestionsAdapter) cursorAdapter;
|
|
if (z) {
|
|
i = 2;
|
|
} else {
|
|
i = 1;
|
|
}
|
|
suggestionsAdapter.i = i;
|
|
}
|
|
}
|
|
|
|
public void setSearchableInfo(SearchableInfo searchableInfo) {
|
|
this.C = searchableInfo;
|
|
if (searchableInfo == null) {
|
|
if (searchableInfo != null && searchableInfo.getVoiceSearchEnabled() && !this.C.getVoiceSearchLaunchWebSearch()) {
|
|
this.C.getVoiceSearchLaunchRecognizer();
|
|
}
|
|
this.y = this.y;
|
|
throw null;
|
|
}
|
|
searchableInfo.getSuggestThreshold();
|
|
throw null;
|
|
}
|
|
|
|
public void setSubmitButtonEnabled(boolean z) {
|
|
this.y = this.y;
|
|
throw null;
|
|
}
|
|
|
|
public void setSuggestionsAdapter(CursorAdapter cursorAdapter) {
|
|
this.z = cursorAdapter;
|
|
throw null;
|
|
}
|
|
}
|