mirror of
https://github.com/M66B/FairEmail.git
synced 2026-04-11 03:24:52 +02:00
Experiment: bottom edge
This commit is contained in:
@@ -105,9 +105,12 @@ abstract class ActivityBase extends AppCompatActivity implements SharedPreferenc
|
||||
public void setContentView(View view) {
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
boolean hide_toolbar = prefs.getBoolean("hide_toolbar", !BuildConfig.PLAY_STORE_RELEASE);
|
||||
boolean edge_to_edge = prefs.getBoolean("edge_to_edge", false);
|
||||
|
||||
LayoutInflater inflater = LayoutInflater.from(this);
|
||||
ViewGroup holder = (ViewGroup) inflater.inflate(R.layout.toolbar_holder, null);
|
||||
if (BuildConfig.DEBUG)
|
||||
holder.setBackgroundColor(Color.RED);
|
||||
|
||||
AppBarLayout appbar = holder.findViewById(R.id.appbar);
|
||||
Toolbar toolbar = holder.findViewById(R.id.toolbar);
|
||||
@@ -161,8 +164,17 @@ abstract class ActivityBase extends AppCompatActivity implements SharedPreferenc
|
||||
mlp.leftMargin = insets.left;
|
||||
mlp.topMargin = insets.top;
|
||||
mlp.rightMargin = insets.right;
|
||||
mlp.bottomMargin = insets.bottom;
|
||||
if (!edge_to_edge)
|
||||
mlp.bottomMargin = insets.bottom;
|
||||
v.setLayoutParams(mlp);
|
||||
|
||||
if (edge_to_edge)
|
||||
for (View child : getInsetViews(v)) {
|
||||
mlp = (ViewGroup.MarginLayoutParams) child.getLayoutParams();
|
||||
mlp.bottomMargin = insets.bottom;
|
||||
child.setLayoutParams(mlp);
|
||||
}
|
||||
|
||||
} catch (Throwable ex) {
|
||||
Log.e(ex);
|
||||
}
|
||||
@@ -214,6 +226,18 @@ abstract class ActivityBase extends AppCompatActivity implements SharedPreferenc
|
||||
setContentView(view);
|
||||
}
|
||||
|
||||
private static List<View> getInsetViews(View view) {
|
||||
List<View> result = new ArrayList<>();
|
||||
if (view != null && "inset".equals(view.getTag()))
|
||||
result.add(view);
|
||||
if (view instanceof ViewGroup) {
|
||||
ViewGroup group = (ViewGroup) view;
|
||||
for (int i = 0; i <= group.getChildCount(); i++)
|
||||
result.addAll(getInsetViews(group.getChildAt(i)));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
EntityLog.log(this, "Activity create " + this.getClass().getName() +
|
||||
|
||||
@@ -143,7 +143,7 @@ public class FragmentOptions extends FragmentBase {
|
||||
"cards", "beige", "tabular_card_bg", "shadow_unread", "shadow_border", "shadow_highlight", "dividers", "tabular_unread_bg",
|
||||
"portrait2", "portrait2c", "portrait_min_size", "landscape", "landscape_min_size",
|
||||
"column_width",
|
||||
"hide_toolbar", "nav_categories", "nav_last_sync", "nav_count", "nav_unseen_drafts", "nav_count_pinned", "show_unexposed",
|
||||
"hide_toolbar", "edge_to_edge", "nav_categories", "nav_last_sync", "nav_count", "nav_unseen_drafts", "nav_count_pinned", "show_unexposed",
|
||||
"indentation", "date", "date_week", "date_fixed", "date_bold", "date_time", "threading", "threading_unread",
|
||||
"show_filtered",
|
||||
"highlight_unread", "highlight_color", "color_stripe", "color_stripe_wide",
|
||||
|
||||
@@ -93,6 +93,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
|
||||
private TextView tvColumnWidth;
|
||||
private SeekBar sbColumnWidth;
|
||||
private SwitchCompat swHideToolbar;
|
||||
private SwitchCompat swEdgeToEdge;
|
||||
private SwitchCompat swNavOptions;
|
||||
private SwitchCompat swNavCategories;
|
||||
private SwitchCompat swNavLastSync;
|
||||
@@ -213,7 +214,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
|
||||
"date", "date_week", "date_fixed", "date_bold", "date_time", "group_category",
|
||||
"cards", "beige", "tabular_card_bg", "shadow_unread", "shadow_border", "shadow_highlight", "dividers", "tabular_unread_bg",
|
||||
"portrait2", "portrait2c", "landscape", "close_pane", "open_pane", "column_width",
|
||||
"hide_toolbar", "nav_options", "nav_categories", "nav_last_sync", "nav_count", "nav_unseen_drafts", "nav_count_pinned", "show_unexposed",
|
||||
"hide_toolbar", "edge_to_edge", "nav_options", "nav_categories", "nav_last_sync", "nav_count", "nav_unseen_drafts", "nav_count_pinned", "show_unexposed",
|
||||
"threading", "threading_unread", "indentation", "seekbar", "actionbar", "actionbar_swap", "actionbar_color",
|
||||
"highlight_unread", "highlight_color", "color_stripe", "color_stripe_wide",
|
||||
"avatars", "bimi", "gravatars", "libravatars", "favicons", "favicons_partial", "favicons_manifest", "generated_icons", "identicons",
|
||||
@@ -271,6 +272,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
|
||||
tvColumnWidth = view.findViewById(R.id.tvColumnWidth);
|
||||
sbColumnWidth = view.findViewById(R.id.sbColumnWidth);
|
||||
swHideToolbar = view.findViewById(R.id.swHideToolbar);
|
||||
swEdgeToEdge = view.findViewById(R.id.swEdgeToEdge);
|
||||
swNavOptions = view.findViewById(R.id.swNavOptions);
|
||||
swNavCategories = view.findViewById(R.id.swNavCategories);
|
||||
swNavLastSync = view.findViewById(R.id.swNavLastSync);
|
||||
@@ -644,6 +646,14 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
|
||||
}
|
||||
});
|
||||
|
||||
swEdgeToEdge.setVisibility(BuildConfig.DEBUG ? View.VISIBLE : View.GONE);
|
||||
swEdgeToEdge.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
|
||||
prefs.edit().putBoolean("edge_to_edge", checked).apply();
|
||||
}
|
||||
});
|
||||
|
||||
swNavOptions.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
|
||||
@@ -1565,6 +1575,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
|
||||
sbColumnWidth.setProgress(column_width);
|
||||
|
||||
swHideToolbar.setChecked(prefs.getBoolean("hide_toolbar", !BuildConfig.PLAY_STORE_RELEASE));
|
||||
swEdgeToEdge.setChecked(prefs.getBoolean("edge_to_edge", false));
|
||||
swNavOptions.setChecked(prefs.getBoolean("nav_options", true));
|
||||
swNavCategories.setChecked(prefs.getBoolean("nav_categories", false));
|
||||
swNavLastSync.setChecked(prefs.getBoolean("nav_last_sync", true));
|
||||
|
||||
Reference in New Issue
Block a user