discord-jadx/app/src/main/java/androidx/core/view/LayoutInflaterCompat.java

85 lines
3.3 KiB
Java

package androidx.core.view;
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import androidx.annotation.NonNull;
import c.d.b.a.a;
import java.lang.reflect.Field;
public final class LayoutInflaterCompat {
private static final String TAG = "LayoutInflaterCompatHC";
private static boolean sCheckedField;
private static Field sLayoutInflaterFactory2Field;
public static class Factory2Wrapper implements LayoutInflater.Factory2 {
public final LayoutInflaterFactory mDelegateFactory;
public Factory2Wrapper(LayoutInflaterFactory layoutInflaterFactory) {
this.mDelegateFactory = layoutInflaterFactory;
}
@Override // android.view.LayoutInflater.Factory2
public View onCreateView(View view, String str, Context context, AttributeSet attributeSet) {
return this.mDelegateFactory.onCreateView(view, str, context, attributeSet);
}
@Override // android.view.LayoutInflater.Factory
public View onCreateView(String str, Context context, AttributeSet attributeSet) {
return this.mDelegateFactory.onCreateView(null, str, context, attributeSet);
}
@Override // java.lang.Object
@NonNull
public String toString() {
return getClass().getName() + "{" + this.mDelegateFactory + "}";
}
}
private LayoutInflaterCompat() {
}
private static void forceSetFactory2(LayoutInflater layoutInflater, LayoutInflater.Factory2 factory2) {
if (!sCheckedField) {
try {
Field declaredField = LayoutInflater.class.getDeclaredField("mFactory2");
sLayoutInflaterFactory2Field = declaredField;
declaredField.setAccessible(true);
} catch (NoSuchFieldException e) {
StringBuilder L = a.L("forceSetFactory2 Could not find field 'mFactory2' on class ");
L.append(LayoutInflater.class.getName());
L.append("; inflation may have unexpected results.");
Log.e(TAG, L.toString(), e);
}
sCheckedField = true;
}
Field field = sLayoutInflaterFactory2Field;
if (field != null) {
try {
field.set(layoutInflater, factory2);
} catch (IllegalAccessException e2) {
Log.e(TAG, "forceSetFactory2 could not set the Factory2 on LayoutInflater " + layoutInflater + "; inflation may have unexpected results.", e2);
}
}
}
@Deprecated
public static LayoutInflaterFactory getFactory(LayoutInflater layoutInflater) {
LayoutInflater.Factory factory = layoutInflater.getFactory();
if (factory instanceof Factory2Wrapper) {
return ((Factory2Wrapper) factory).mDelegateFactory;
}
return null;
}
@Deprecated
public static void setFactory(@NonNull LayoutInflater layoutInflater, @NonNull LayoutInflaterFactory layoutInflaterFactory) {
layoutInflater.setFactory2(layoutInflaterFactory != null ? new Factory2Wrapper(layoutInflaterFactory) : null);
}
public static void setFactory2(@NonNull LayoutInflater layoutInflater, @NonNull LayoutInflater.Factory2 factory2) {
layoutInflater.setFactory2(factory2);
}
}