Use view inflator to inject fixed views

This commit is contained in:
M66B
2022-06-10 09:29:07 +02:00
parent 04ddbc4500
commit 7cae4e67c4
172 changed files with 2062 additions and 2015 deletions

View File

@@ -26,8 +26,12 @@ import android.view.View;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatViewInflater;
import androidx.appcompat.widget.AppCompatImageButton;
import androidx.appcompat.widget.AppCompatImageView;
import androidx.appcompat.widget.AppCompatTextView;
public class AppCompatViewInflaterEx extends AppCompatViewInflater {
// <item name="viewInflaterClass">eu.faircode.email.AppCompatViewInflaterEx</item>
@@ -106,6 +110,49 @@ public class AppCompatViewInflaterEx extends AppCompatViewInflater {
}
};
if ("FrameLayout".equals(name))
return new FixedFrameLayout(context, attrs);
if ("View".equals(name))
return new View(context, attrs) {
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
try {
return super.dispatchTouchEvent(ev);
} catch (Throwable ex) {
Log.e(ex);
return false;
}
}
};
if ("androidx.coordinatorlayout.widget.CoordinatorLayout".equals(name))
return new FixedCoordinatorLayout(context, attrs);
if ("androidx.constraintlayout.widget.ConstraintLayout".equals(name))
return new FixedConstraintLayout(context, attrs);
if ("androidx.core.widget.NestedScrollView".equals(name))
return new FixedNestedScrollView(context, attrs);
return super.createView(context, name, attrs);
}
@NonNull
@Override
protected AppCompatTextView createTextView(Context context, AttributeSet attrs) {
return new FixedTextView(context, attrs);
}
@NonNull
@Override
protected AppCompatImageView createImageView(Context context, AttributeSet attrs) {
return new FixedImageView(context, attrs);
}
@NonNull
@Override
protected AppCompatImageButton createImageButton(Context context, AttributeSet attrs) {
return new FixedImageButton(context, attrs);
}
}

View File

@@ -27,20 +27,20 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.ConstraintLayout;
public class ConstraintLayoutEx extends ConstraintLayout {
public ConstraintLayoutEx(@NonNull Context context) {
public class FixedConstraintLayout extends ConstraintLayout {
public FixedConstraintLayout(@NonNull Context context) {
super(context);
}
public ConstraintLayoutEx(@NonNull Context context, @Nullable AttributeSet attrs) {
public FixedConstraintLayout(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public ConstraintLayoutEx(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
public FixedConstraintLayout(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public ConstraintLayoutEx(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
public FixedConstraintLayout(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}

View File

@@ -27,16 +27,16 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
public class CoordinatorLayoutEx extends CoordinatorLayout {
public CoordinatorLayoutEx(@NonNull Context context) {
public class FixedCoordinatorLayout extends CoordinatorLayout {
public FixedCoordinatorLayout(@NonNull Context context) {
super(context);
}
public CoordinatorLayoutEx(@NonNull Context context, @Nullable AttributeSet attrs) {
public FixedCoordinatorLayout(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public CoordinatorLayoutEx(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
public FixedCoordinatorLayout(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}

View File

@@ -27,20 +27,20 @@ import android.widget.FrameLayout;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
public class FrameLayoutEx extends FrameLayout {
public FrameLayoutEx(@NonNull Context context) {
public class FixedFrameLayout extends FrameLayout {
public FixedFrameLayout(@NonNull Context context) {
super(context);
}
public FrameLayoutEx(@NonNull Context context, @Nullable AttributeSet attrs) {
public FixedFrameLayout(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public FrameLayoutEx(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
public FixedFrameLayout(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public FrameLayoutEx(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
public FixedFrameLayout(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}

View File

@@ -7,16 +7,16 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.widget.NestedScrollView;
public class NestedScrollViewEx extends NestedScrollView {
public NestedScrollViewEx(@NonNull Context context) {
public class FixedNestedScrollView extends NestedScrollView {
public FixedNestedScrollView(@NonNull Context context) {
super(context);
}
public NestedScrollViewEx(@NonNull Context context, @Nullable AttributeSet attrs) {
public FixedNestedScrollView(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public NestedScrollViewEx(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
public FixedNestedScrollView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}