diff --git a/app/src/main/java/app/fedilab/android/BaseMainActivity.java b/app/src/main/java/app/fedilab/android/BaseMainActivity.java
index 27ac9895..49bd04ba 100644
--- a/app/src/main/java/app/fedilab/android/BaseMainActivity.java
+++ b/app/src/main/java/app/fedilab/android/BaseMainActivity.java
@@ -355,6 +355,8 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
};
private NetworkStateReceiver networkStateReceiver;
+ SharedPreferences sharedpreferences;
+
public static void fetchRecentAccounts(Activity activity, NavHeaderMainBinding headerMainBinding) {
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(activity);
//Fetch some db values to initialize data
@@ -1111,7 +1113,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(BaseMainActivity.this);
+ sharedpreferences = PreferenceManager.getDefaultSharedPreferences(BaseMainActivity.this);
if (!Helper.isLoggedIn(BaseMainActivity.this)) {
//It is not, the user is redirected to the login page
Intent myIntent = new Intent(BaseMainActivity.this, LoginActivity.class);
@@ -1593,8 +1595,14 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
fetchRecentAccounts(BaseMainActivity.this, headerMainBinding);
}
+ @Override
+ protected void onResume() {
+ super.onResume();
+ if (!sharedpreferences.getBoolean(getString(R.string.SET_AUTO_HIDE_COMPOSE), true) && !getFloatingVisibility())
+ manageFloatingButton(true);
+ }
+
private void manageTopBarScrolling(Toolbar toolbar) {
- final SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(this);
final boolean topBarScrolling = !sharedpreferences.getBoolean(getString(R.string.SET_DISABLE_TOPBAR_SCROLLING), false);
final AppBarLayout.LayoutParams toolbarLayoutParams = (AppBarLayout.LayoutParams) toolbar.getLayoutParams();
@@ -2017,10 +2025,12 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
}
public void manageFloatingButton(boolean display) {
- if (display) {
- binding.compose.show();
- } else {
- binding.compose.hide();
+ if (sharedpreferences.getBoolean(getString(R.string.SET_AUTO_HIDE_COMPOSE), true)) {
+ if (display) {
+ binding.compose.show();
+ } else {
+ binding.compose.hide();
+ }
}
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 162fc786..302fc920 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1132,6 +1132,7 @@
SET_UNFOLLOW_VALIDATION
SET_USE_SINGLE_TOPBAR
SET_DISABLE_TOPBAR_SCROLLING
+ SET_AUTO_HIDE_COMPOSE
SET_DISPLAY_COUNTERS
SET_DISPLAY_COMPACT_ACTION_BUTTON
@@ -1810,6 +1811,8 @@
Push distributor
Single action bar
Disable top bar scrolling
+ Auto hide compose button
+ Automatically hide compose button when scrolling up on a timeline
When enabled, the app will only have a single bar for timelines
Timelines in a list
When enabled, all pinned timelines will be displayed in a drop-down menu
diff --git a/app/src/main/res/xml/pref_interface.xml b/app/src/main/res/xml/pref_interface.xml
index b60c07b6..1347e720 100644
--- a/app/src/main/res/xml/pref_interface.xml
+++ b/app/src/main/res/xml/pref_interface.xml
@@ -19,6 +19,14 @@
app:singleLineTitle="false"
app:title="@string/set_disable_topbar_scrolling_title" />
+
+