diff --git a/app/src/main/java/org/nuclearfog/twidda/config/GlobalSettings.java b/app/src/main/java/org/nuclearfog/twidda/config/GlobalSettings.java
index 54ffe252..47c9628c 100644
--- a/app/src/main/java/org/nuclearfog/twidda/config/GlobalSettings.java
+++ b/app/src/main/java/org/nuclearfog/twidda/config/GlobalSettings.java
@@ -93,6 +93,7 @@ public class GlobalSettings {
private static final String FILTER_RESULTS = "filter_results";
private static final String MASTODON_LOCAL_TIMELINE = "mastodon_local_timeline";
private static final String HIDE_SENSITIVE = "hide_sensitive";
+ private static final String FLOATING_BUTTON = "floating_button_enabled";
private static final String PUSH_ENABLED = "push_enabled";
private static final String LOGIN_ENABLED = "login";
@@ -162,6 +163,7 @@ public class GlobalSettings {
private boolean twitterAlt;
private boolean localOnly;
private boolean hideSensitive;
+ private boolean floatingEnabled;
private int background_color;
private int font_color;
private int highlight_color;
@@ -501,14 +503,14 @@ public class GlobalSettings {
}
/**
- * @return true if tweet indicators enabled
+ * @return true if status indicators enabled
*/
public boolean statusIndicatorsEnabled() {
return tweetIndicators;
}
/**
- * enable/disable tweet indicators
+ * enable/disable status indicators
*
* @param enable true to enable tweet indicators
*/
@@ -520,6 +522,26 @@ public class GlobalSettings {
edit.apply();
}
+ /**
+ * @return true if floating button (status posting) is enabled
+ */
+ public boolean floatingButtonEnabled() {
+ return floatingEnabled;
+ }
+
+ /**
+ * enable/disable floating button (status posting)
+ *
+ * @param enable true to enable floating button
+ */
+ public void enableFloatingButton(boolean enable) {
+ floatingEnabled = enable;
+
+ Editor edit = settings.edit();
+ edit.putBoolean(FLOATING_BUTTON, enable);
+ edit.apply();
+ }
+
/**
* @return true to hide sensitivee/spoiler content by default
*/
@@ -1054,6 +1076,7 @@ public class GlobalSettings {
twitterAlt = settings.getBoolean(ENABLE_TWITTER_ALT, false);
localOnly = settings.getBoolean(MASTODON_LOCAL_TIMELINE, false);
hideSensitive = settings.getBoolean(HIDE_SENSITIVE, true);
+ floatingEnabled = settings.getBoolean(FLOATING_BUTTON, true);
pushInstance = settings.getString(PUSH_INSTANCE, ConstantsKt.INSTANCE_DEFAULT);
proxyHost = settings.getString(PROXY_ADDR, "");
proxyPort = settings.getString(PROXY_PORT, "");
diff --git a/app/src/main/java/org/nuclearfog/twidda/ui/activities/MainActivity.java b/app/src/main/java/org/nuclearfog/twidda/ui/activities/MainActivity.java
index d8423a58..4733f7df 100644
--- a/app/src/main/java/org/nuclearfog/twidda/ui/activities/MainActivity.java
+++ b/app/src/main/java/org/nuclearfog/twidda/ui/activities/MainActivity.java
@@ -84,6 +84,7 @@ public class MainActivity extends AppCompatActivity implements ActivityResultCal
private ImageView profileImage;
private TextView username, screenname;
private TextView followingCount, followerCount;
+ private View floatingButton;
@Nullable
private User currentUser;
@@ -99,10 +100,10 @@ public class MainActivity extends AppCompatActivity implements ActivityResultCal
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.page_main);
+ Toolbar toolbar = findViewById(R.id.home_toolbar);
NavigationView navigationView = findViewById(R.id.home_navigator);
ViewGroup header = (ViewGroup) navigationView.getHeaderView(0);
- Toolbar toolbar = findViewById(R.id.home_toolbar);
- View floatingButton = findViewById(R.id.home_post);
+ floatingButton = findViewById(R.id.home_post);
drawerLayout = findViewById(R.id.main_layout);
viewPager = findViewById(R.id.home_pager);
tabSelector = findViewById(R.id.home_tab);
@@ -118,6 +119,9 @@ public class MainActivity extends AppCompatActivity implements ActivityResultCal
picasso = PicassoBuilder.get(this);
tabSelector.addViewPager(viewPager);
viewPager.setOffscreenPageLimit(4);
+ if (!settings.floatingButtonEnabled()) {
+ floatingButton.setVisibility(View.INVISIBLE);
+ }
toolbar.setTitle("");
toolbar.setNavigationIcon(R.drawable.menu);
@@ -226,8 +230,14 @@ public class MainActivity extends AppCompatActivity implements ActivityResultCal
default:
case SettingsActivity.RETURN_SETTINGS_CHANGED:
case AccountActivity.RETURN_SETTINGS_CHANGED:
- if (adapter != null)
+ if (settings.floatingButtonEnabled()) {
+ floatingButton.setVisibility(View.VISIBLE);
+ } else {
+ floatingButton.setVisibility(View.INVISIBLE);
+ }
+ if (adapter != null) {
adapter.notifySettingsChanged();
+ }
setStyle();
setCurrentUser(currentUser);
break;
@@ -268,37 +278,42 @@ public class MainActivity extends AppCompatActivity implements ActivityResultCal
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
+ boolean selected = false;
// open filter page
if (item.getItemId() == R.id.menu_navigator_filter) {
Intent intent = new Intent(this, FilterActivity.class);
startActivity(intent);
- return true;
+ selected = true;
}
// open status editor
else if (item.getItemId() == R.id.menu_navigator_status) {
Intent intent = new Intent(this, StatusEditor.class);
startActivity(intent);
- return true;
+ selected = true;
}
// open app settings
else if (item.getItemId() == R.id.menu_navigator_settings) {
Intent intent = new Intent(this, SettingsActivity.class);
activityResultLauncher.launch(intent);
- return true;
+ selected = true;
}
// open account manager
else if (item.getItemId() == R.id.menu_navigator_account) {
Intent intent = new Intent(this, AccountActivity.class);
activityResultLauncher.launch(intent);
- return true;
+ selected = true;
}
// open user lists
else if (item.getItemId() == R.id.menu_navigator_lists) {
Intent intent = new Intent(this, UserlistsActivity.class);
intent.putExtra(UserlistsActivity.KEY_ID, settings.getLogin().getId());
startActivity(intent);
+ selected = true;
}
- return false;
+ if (selected) {
+ drawerLayout.close();
+ }
+ return selected;
}
diff --git a/app/src/main/java/org/nuclearfog/twidda/ui/activities/SettingsActivity.java b/app/src/main/java/org/nuclearfog/twidda/ui/activities/SettingsActivity.java
index b2433abf..09820126 100644
--- a/app/src/main/java/org/nuclearfog/twidda/ui/activities/SettingsActivity.java
+++ b/app/src/main/java/org/nuclearfog/twidda/ui/activities/SettingsActivity.java
@@ -150,6 +150,7 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen
SwitchButton enableLocalTl = findViewById(R.id.settings_local_timeline);
SwitchButton hideSensitive = findViewById(R.id.enable_status_hide_sensitive);
SwitchButton enableStatusIcons = findViewById(R.id.enable_status_indicators);
+ SwitchButton enableFloatingButton = findViewById(R.id.settings_enable_floating_button);
SeekBar listSizeSelector = findViewById(R.id.settings_list_seek);
Spinner fontSelector = findViewById(R.id.spinner_font);
Spinner scaleSelector = findViewById(R.id.spinner_scale);
@@ -242,6 +243,7 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen
enableLocalTl.setCheckedImmediately(settings.useLocalTimeline());
hideSensitive.setCheckedImmediately(settings.hideSensitiveEnabled());
enableStatusIcons.setCheckedImmediately(settings.statusIndicatorsEnabled());
+ enableFloatingButton.setCheckedImmediately(settings.floatingButtonEnabled());
enablePush.setCheckedImmediately(settings.pushEnabled());
enable_proxy.setCheckedImmediately(settings.isProxyEnabled());
enable_auth.setCheckedImmediately(settings.isProxyAuthSet());
@@ -264,6 +266,7 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen
enableLocalTl.setOnCheckedChangeListener(this);
enableStatusIcons.setOnCheckedChangeListener(this);
hideSensitive.setOnCheckedChangeListener(this);
+ enableFloatingButton.setOnCheckedChangeListener(this);
enable_proxy.setOnCheckedChangeListener(this);
enable_auth.setOnCheckedChangeListener(this);
push_label.setOnClickListener(this);
@@ -539,6 +542,10 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen
else if (c.getId() == R.id.enable_status_indicators) {
settings.enableStatusIndicators(checked);
}
+ // enable floating button
+ else if (c.getId() == R.id.settings_enable_floating_button) {
+ settings.enableFloatingButton(checked);
+ }
// enable/disable local timeline (Mastodon)
else if (c.getId() == R.id.settings_local_timeline) {
settings.setLocalTimeline(checked);
diff --git a/app/src/main/res/drawable/menu.xml b/app/src/main/res/drawable/menu.xml
index 52f21bc5..40a42f01 100644
--- a/app/src/main/res/drawable/menu.xml
+++ b/app/src/main/res/drawable/menu.xml
@@ -1,10 +1,9 @@
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="17"
+ android:viewportHeight="17">
diff --git a/app/src/main/res/layout/navigation_header.xml b/app/src/main/res/layout/navigation_header.xml
index a5af652d..9bba28cb 100644
--- a/app/src/main/res/layout/navigation_header.xml
+++ b/app/src/main/res/layout/navigation_header.xml
@@ -6,6 +6,7 @@
android:id="@+id/navogation_header_root"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/mainpage_toolbar_height"
android:padding="@dimen/navigation_header_layout_padding"
tools:ignore="UseCompatTextViewDrawableXml">
diff --git a/app/src/main/res/layout/page_main.xml b/app/src/main/res/layout/page_main.xml
index 03f77460..956e6bec 100644
--- a/app/src/main/res/layout/page_main.xml
+++ b/app/src/main/res/layout/page_main.xml
@@ -59,7 +59,7 @@
android:layout_height="match_parent"
android:fitsSystemWindows="false"
android:layout_gravity="start"
- android:layout_marginTop="@dimen/mainpage_toolbar_height"
+ android:maxWidth="@dimen/mainpage_navigation_max_width"
app:headerLayout="@layout/navigation_header"
app:menu="@menu/main_navigation"/>
diff --git a/app/src/main/res/layout/page_settings.xml b/app/src/main/res/layout/page_settings.xml
index fd086fcd..81a860e0 100644
--- a/app/src/main/res/layout/page_settings.xml
+++ b/app/src/main/res/layout/page_settings.xml
@@ -226,13 +226,35 @@
app:layout_constraintBottom_toBottomOf="@id/settings_toolbar_ov"
app:layout_constraintEnd_toEndOf="parent" />
+
+
+
+
Ortung läuft, bitte warten.
Suchbegriff ist entweder zu lang oder enthält nicht erlaubte Zeichen!
Link teilen
+ Floating-Button aktivieren
Aussehen
Linkvorschau Bild
Accounts
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index c5798640..e9ed1f3a 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -201,6 +201,7 @@
@dimen/toolbar_height
20dp
+ 220sp
@dimen/toolbar_height
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 067222e6..567287d4 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -289,6 +289,7 @@
add banner
App source code:
Collapsed profile layout
+ enable floating button
Look
use Nitter to open Twitter links
show local timelines only