mirror of
https://github.com/Docile-Alligator/Infinity-For-Reddit.git
synced 2026-02-05 21:15:44 +00:00
New method: BaseActivity.setMargins.
This commit is contained in:
@ -62,6 +62,8 @@ import ml.docilealligator.infinityforreddit.utils.SharedPreferencesUtils;
|
||||
import ml.docilealligator.infinityforreddit.utils.Utils;
|
||||
|
||||
public abstract class BaseActivity extends AppCompatActivity implements CustomFontReceiver {
|
||||
public static final int IGNORE_MARGIN = -1;
|
||||
|
||||
private boolean immersiveInterface;
|
||||
private boolean changeStatusBarIconColor;
|
||||
private boolean transparentStatusBarAfterToolbarCollapsed;
|
||||
@ -337,6 +339,28 @@ public abstract class BaseActivity extends AppCompatActivity implements CustomFo
|
||||
return result;
|
||||
}
|
||||
|
||||
public static <T extends View> void setMargins(T view, int left, int top, int right, int bottom) {
|
||||
ViewGroup.LayoutParams lp = view.getLayoutParams();
|
||||
if (lp instanceof ViewGroup.MarginLayoutParams) {
|
||||
ViewGroup.MarginLayoutParams marginParams = (ViewGroup.MarginLayoutParams) lp;
|
||||
|
||||
if (top >= 0) {
|
||||
marginParams.topMargin = top;
|
||||
}
|
||||
if (bottom >= 0) {
|
||||
marginParams.bottomMargin = bottom;
|
||||
}
|
||||
if (left >= 0) {
|
||||
marginParams.setMarginStart(left);
|
||||
}
|
||||
if (right >= 0) {
|
||||
marginParams.setMarginEnd(right);
|
||||
}
|
||||
|
||||
view.setLayoutParams(marginParams);
|
||||
}
|
||||
}
|
||||
|
||||
protected void setTransparentStatusBarAfterToolbarCollapsed() {
|
||||
this.transparentStatusBarAfterToolbarCollapsed = true;
|
||||
}
|
||||
|
||||
@ -272,35 +272,37 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
|
||||
if (navigationWrapper.navigationRailView == null) {
|
||||
if (navigationWrapper.bottomAppBar.getVisibility() != View.VISIBLE) {
|
||||
ViewGroup.MarginLayoutParams fabParams = (ViewGroup.MarginLayoutParams)
|
||||
navigationWrapper.floatingActionButton.getLayoutParams();
|
||||
fabParams.bottomMargin = (int) Utils.convertDpToPixel(16, MainActivity.this) + allInsets.bottom;
|
||||
fabParams.rightMargin = (int) Utils.convertDpToPixel(16, MainActivity.this) + allInsets.right;
|
||||
navigationWrapper.floatingActionButton.setLayoutParams(fabParams);
|
||||
setMargins(navigationWrapper.floatingActionButton,
|
||||
BaseActivity.IGNORE_MARGIN,
|
||||
BaseActivity.IGNORE_MARGIN,
|
||||
(int) Utils.convertDpToPixel(16, MainActivity.this) + allInsets.right,
|
||||
(int) Utils.convertDpToPixel(16, MainActivity.this) + allInsets.bottom);
|
||||
} else {
|
||||
ViewGroup.MarginLayoutParams fabParams = (ViewGroup.MarginLayoutParams)
|
||||
navigationWrapper.floatingActionButton.getLayoutParams();
|
||||
fabParams.bottomMargin = allInsets.bottom;
|
||||
navigationWrapper.floatingActionButton.setLayoutParams(fabParams);
|
||||
setMargins(navigationWrapper.floatingActionButton,
|
||||
BaseActivity.IGNORE_MARGIN,
|
||||
BaseActivity.IGNORE_MARGIN,
|
||||
BaseActivity.IGNORE_MARGIN,
|
||||
allInsets.bottom);
|
||||
}
|
||||
} else {
|
||||
if (navigationWrapper.navigationRailView.getVisibility() != View.VISIBLE) {
|
||||
ViewGroup.MarginLayoutParams fabParams = (ViewGroup.MarginLayoutParams)
|
||||
navigationWrapper.floatingActionButton.getLayoutParams();
|
||||
fabParams.bottomMargin = (int) Utils.convertDpToPixel(16, MainActivity.this) + allInsets.bottom;
|
||||
fabParams.rightMargin = (int) Utils.convertDpToPixel(16, MainActivity.this) + allInsets.right;
|
||||
navigationWrapper.floatingActionButton.setLayoutParams(fabParams);
|
||||
setMargins(navigationWrapper.floatingActionButton,
|
||||
BaseActivity.IGNORE_MARGIN,
|
||||
BaseActivity.IGNORE_MARGIN,
|
||||
(int) Utils.convertDpToPixel(16, MainActivity.this) + allInsets.right,
|
||||
(int) Utils.convertDpToPixel(16, MainActivity.this) + allInsets.bottom);
|
||||
|
||||
binding.includedAppBar.viewPagerMainActivity.setPadding(allInsets.left, 0, allInsets.right, 0);
|
||||
} else {
|
||||
ViewGroup.MarginLayoutParams navRailParams = (ViewGroup.MarginLayoutParams)
|
||||
navigationWrapper.navigationRailView.getLayoutParams();
|
||||
navRailParams.bottomMargin = allInsets.bottom;
|
||||
navRailParams.setMarginStart(allInsets.left);
|
||||
navigationWrapper.navigationRailView.setLayoutParams(navRailParams);
|
||||
navigationWrapper.navigationRailView.setFitsSystemWindows(false);
|
||||
navigationWrapper.navigationRailView.setPadding(0, 0, 0, 0);
|
||||
|
||||
setMargins(navigationWrapper.navigationRailView,
|
||||
allInsets.left,
|
||||
BaseActivity.IGNORE_MARGIN,
|
||||
BaseActivity.IGNORE_MARGIN,
|
||||
allInsets.bottom);
|
||||
|
||||
binding.includedAppBar.viewPagerMainActivity.setPadding(0, 0, allInsets.right, 0);
|
||||
}
|
||||
}
|
||||
@ -314,18 +316,17 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
);
|
||||
}
|
||||
|
||||
View toolbar = binding.includedAppBar.toolbar;
|
||||
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) toolbar.getLayoutParams();
|
||||
params.topMargin = allInsets.top;
|
||||
params.setMarginStart(allInsets.left);
|
||||
params.setMarginEnd(allInsets.right);
|
||||
toolbar.setLayoutParams(params);
|
||||
setMargins(binding.includedAppBar.toolbar,
|
||||
allInsets.left,
|
||||
allInsets.top,
|
||||
allInsets.right,
|
||||
BaseActivity.IGNORE_MARGIN);
|
||||
|
||||
ViewGroup.MarginLayoutParams navRailParams = (ViewGroup.MarginLayoutParams)
|
||||
binding.includedAppBar.tabLayoutMainActivity.getLayoutParams();
|
||||
navRailParams.setMarginStart(allInsets.left);
|
||||
navRailParams.setMarginEnd(allInsets.right);
|
||||
binding.includedAppBar.tabLayoutMainActivity.setLayoutParams(navRailParams);
|
||||
setMargins(binding.includedAppBar.tabLayoutMainActivity,
|
||||
allInsets.left,
|
||||
BaseActivity.IGNORE_MARGIN,
|
||||
allInsets.right,
|
||||
BaseActivity.IGNORE_MARGIN);
|
||||
|
||||
return WindowInsetsCompat.CONSUMED;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user