ADD week 5
This commit is contained in:
64
02-Easy5/E5/sources/androidx/appcompat/widget/ViewUtils.java
Normal file
64
02-Easy5/E5/sources/androidx/appcompat/widget/ViewUtils.java
Normal file
@ -0,0 +1,64 @@
|
||||
package androidx.appcompat.widget;
|
||||
|
||||
import android.graphics.Rect;
|
||||
import android.os.Build;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
public class ViewUtils {
|
||||
static final boolean SDK_LEVEL_SUPPORTS_AUTOSIZE;
|
||||
private static final String TAG = "ViewUtils";
|
||||
private static Method sComputeFitSystemWindowsMethod;
|
||||
|
||||
static {
|
||||
SDK_LEVEL_SUPPORTS_AUTOSIZE = Build.VERSION.SDK_INT >= 27;
|
||||
try {
|
||||
Method declaredMethod = View.class.getDeclaredMethod("computeFitSystemWindows", Rect.class, Rect.class);
|
||||
sComputeFitSystemWindowsMethod = declaredMethod;
|
||||
if (declaredMethod.isAccessible()) {
|
||||
return;
|
||||
}
|
||||
sComputeFitSystemWindowsMethod.setAccessible(true);
|
||||
} catch (NoSuchMethodException unused) {
|
||||
Log.d(TAG, "Could not find method computeFitSystemWindows. Oh well.");
|
||||
}
|
||||
}
|
||||
|
||||
private ViewUtils() {
|
||||
}
|
||||
|
||||
public static boolean isLayoutRtl(View view) {
|
||||
return ViewCompat.getLayoutDirection(view) == 1;
|
||||
}
|
||||
|
||||
public static void computeFitSystemWindows(View view, Rect rect, Rect rect2) {
|
||||
Method method = sComputeFitSystemWindowsMethod;
|
||||
if (method != null) {
|
||||
try {
|
||||
method.invoke(view, rect, rect2);
|
||||
} catch (Exception e) {
|
||||
Log.d(TAG, "Could not invoke computeFitSystemWindows", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void makeOptionalFitsSystemWindows(View view) {
|
||||
try {
|
||||
Method method = view.getClass().getMethod("makeOptionalFitsSystemWindows", new Class[0]);
|
||||
if (!method.isAccessible()) {
|
||||
method.setAccessible(true);
|
||||
}
|
||||
method.invoke(view, new Object[0]);
|
||||
} catch (IllegalAccessException e) {
|
||||
Log.d(TAG, "Could not invoke makeOptionalFitsSystemWindows", e);
|
||||
} catch (NoSuchMethodException unused) {
|
||||
Log.d(TAG, "Could not find method makeOptionalFitsSystemWindows. Oh well...");
|
||||
} catch (InvocationTargetException e2) {
|
||||
Log.d(TAG, "Could not invoke makeOptionalFitsSystemWindows", e2);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user