mirror of
https://github.com/M66B/FairEmail.git
synced 2026-04-07 17:43:18 +02:00
Use view inflator to inject fixed views
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user