From 5bea4662cb97d21a6c3bb9b859e611fdd86140b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Jel=C3=ADnek?= Date: Wed, 2 Apr 2025 01:16:21 +0200 Subject: [PATCH 1/5] Translated using Weblate (Czech) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 100.0% (1200 of 1200 strings) Co-authored-by: Lukáš Jelínek Translate-URL: https://hosted.weblate.org/projects/fedilab/strings/cs/ Translation: Fedilab/Strings --- app/src/main/res/values-cs/strings.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 589ad9df..5ba700a2 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -1089,4 +1089,11 @@ Podpora zájmen Generátor QR kódů Není k dispozici internetové připojení! + Aplikaci se nepovedlo ověřit účet! + Token nemůže být prázdný! + Použít token + Váš token + Média přes celý displej + Média se budou zobrazovat přes celou šířku displeje a u výšky se bude respektovat poměr stran. + Tagy Twitteru (přes Nitter) From 8f53e6f5034165630fcffc85a8fba74a95764154 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=93=D0=BE=D1=80?= =?UTF-8?q?=D0=BF=D0=B8=D0=BD=D1=96=D1=87?= Date: Wed, 2 Apr 2025 01:16:22 +0200 Subject: [PATCH 2/5] Translated using Weblate (Ukrainian) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 100.0% (31 of 31 strings) Co-authored-by: Максим Горпиніч Translate-URL: https://hosted.weblate.org/projects/fedilab/description/uk/ Translation: Fedilab/description --- .../fastlane/metadata/android/uk/changelogs/528.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/fdroid/fastlane/metadata/android/uk/changelogs/528.txt diff --git a/src/fdroid/fastlane/metadata/android/uk/changelogs/528.txt b/src/fdroid/fastlane/metadata/android/uk/changelogs/528.txt new file mode 100644 index 00000000..41b8835f --- /dev/null +++ b/src/fdroid/fastlane/metadata/android/uk/changelogs/528.txt @@ -0,0 +1,11 @@ +Додано: +- Додано нові іконки запуску (Налаштування > Інтерфейс) + +Змінено: +- Зроблено кнопку виходу/проксі більш помітною в головному меню +- Видалено дозвіл FOREGROUND_SERVICE +- Трохи покращено макет медіа з перекладами + +Виправлено: +- Виправлено іконки рядка стану, які не видно у світлій темі зі спеціальним кольором акценту +- Кнопки реакції не натискалися в деяких випадках From c542f97df02e05ea7d468ba57af4d671ad458688 Mon Sep 17 00:00:00 2001 From: 0xd9a <0xd9a@noreply.codeberg.org> Date: Thu, 3 Apr 2025 16:33:52 +0530 Subject: [PATCH 3/5] Add some content descriptions --- .../mastodon/ui/drawer/ComposeAdapter.java | 2 ++ .../layouts/mastodon/layout/drawer_status.xml | 6 +++--- .../mastodon/layout/drawer_status_compose.xml | 11 +++++++++++ .../mastodon/layout/fragment_login_main.xml | 1 + .../fragment_notification_container.xml | 1 + app/src/main/res/values/strings.xml | 19 +++++++++++++++++++ 6 files changed, 37 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java index 93f301ec..a3161817 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java +++ b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java @@ -1697,9 +1697,11 @@ public class ComposeAdapter extends RecyclerView.Adapter diff --git a/app/src/main/res/layouts/mastodon/layout/fragment_notification_container.xml b/app/src/main/res/layouts/mastodon/layout/fragment_notification_container.xml index 742303a1..067d23bf 100644 --- a/app/src/main/res/layouts/mastodon/layout/fragment_notification_container.xml +++ b/app/src/main/res/layouts/mastodon/layout/fragment_notification_container.xml @@ -40,6 +40,7 @@ android:layout_width="48dp" android:layout_height="48dp" android:layout_gravity="center" + android:contentDescription="@string/more_options" android:minWidth="48dp" app:icon="@drawable/ic_more" /> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 36f21d29..658c9841 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -57,6 +57,7 @@ Show direct messages Open in browser Translate + More options Home Local timeline @@ -77,6 +78,9 @@ Add this message to your favourites? Remove this message from your favourites? Boost this message? + Favorite + Boost + Quote Warn if message has no media description before boosting This message has missing media description. Are you sure to boost it? Unboost this message? @@ -110,6 +114,21 @@ Remove bookmark Status has been added to bookmarks! Status was removed from bookmarks! + + + Add content warning + Remove content warning + Change visibility + Set language + Publish + Open new attachment panel + Close new attachment panel + Attach images + Attach audio + Attach videos + Attach files + Add a poll + %d s %d m From dc486381ff7bc7aca04402b80e5cbb57059bf6a4 Mon Sep 17 00:00:00 2001 From: 0xd9a <0xd9a@noreply.codeberg.org> Date: Thu, 3 Apr 2025 17:24:29 +0530 Subject: [PATCH 4/5] Update some buttons --- .../android/mastodon/helper/Helper.java | 20 ++++++++++ .../mastodon/ui/drawer/StatusAdapter.java | 6 +-- .../layouts/mastodon/layout/drawer_status.xml | 38 +++++++++---------- .../fragment_notification_container.xml | 3 +- 4 files changed, 40 insertions(+), 27 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/mastodon/helper/Helper.java b/app/src/main/java/app/fedilab/android/mastodon/helper/Helper.java index 257820ba..abf2e0c7 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/helper/Helper.java +++ b/app/src/main/java/app/fedilab/android/mastodon/helper/Helper.java @@ -34,6 +34,7 @@ import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; +import android.content.res.ColorStateList; import android.content.res.Configuration; import android.content.res.Resources; import android.database.Cursor; @@ -99,6 +100,7 @@ import com.bumptech.glide.load.resource.bitmap.CenterCrop; import com.bumptech.glide.load.resource.bitmap.RoundedCorners; import com.bumptech.glide.load.resource.gif.GifDrawable; import com.bumptech.glide.request.RequestOptions; +import com.google.android.material.button.MaterialButton; import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -1461,6 +1463,24 @@ public class Helper { imageView.setColorFilter(color); } + /** + * change color of a drawable + * + * @param materialButton {@link MaterialButton} + * @param hexaColor example 0xffff00 + */ + public static void changeDrawableColor(Context context, MaterialButton materialButton, int hexaColor) { + if (materialButton == null) + return; + int color; + try { + color = context.getResources().getColor(hexaColor); + } catch (Resources.NotFoundException e) { + color = hexaColor; + } + materialButton.setIconTint(ColorStateList.valueOf(color)); + } + /** * change color of a drawable * diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java index 694e600e..612416ff 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java +++ b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java @@ -1279,8 +1279,7 @@ public class StatusAdapter extends RecyclerView.Adapter holder.binding.actionButtonReply.getLayoutParams().height = (int) (normalSize * scaleIcon); holder.binding.actionButtonReply.requestLayout(); - holder.binding.actionButtonTranslate.getLayoutParams().width = (int) (normalSize * scaleIcon); - holder.binding.actionButtonTranslate.getLayoutParams().height = (int) (normalSize * scaleIcon); + holder.binding.actionButtonTranslate.setIconSize((int) (normalSize * scaleIcon)); holder.binding.actionButtonTranslate.requestLayout(); holder.binding.actionButtonBoost.setImageSize((int) (normalSize * scaleIcon)); @@ -1292,8 +1291,7 @@ public class StatusAdapter extends RecyclerView.Adapter holder.binding.statusAddCustomEmoji.getLayoutParams().height = (int) (normalSize * scaleIcon); holder.binding.statusAddCustomEmoji.requestLayout(); - holder.binding.actionButtonQuote.getLayoutParams().width = (int) (normalSize * scaleIcon); - holder.binding.actionButtonQuote.getLayoutParams().height = (int) (normalSize * scaleIcon); + holder.binding.actionButtonQuote.setIconSize((int) (normalSize * scaleIcon)); holder.binding.actionButtonQuote.requestLayout(); holder.binding.statusEmoji.getLayoutParams().width = (int) (normalSize * scaleIcon); diff --git a/app/src/main/res/layouts/mastodon/layout/drawer_status.xml b/app/src/main/res/layouts/mastodon/layout/drawer_status.xml index bab84261..1f76b85f 100644 --- a/app/src/main/res/layouts/mastodon/layout/drawer_status.xml +++ b/app/src/main/res/layouts/mastodon/layout/drawer_status.xml @@ -726,23 +726,20 @@ - + app:layout_constraintTop_toTopOf="parent" /> - From eb276ba87471ed444b78e0269ebb610a83cd29d2 Mon Sep 17 00:00:00 2001 From: 0xd9a <0xd9a@noreply.codeberg.org> Date: Sat, 5 Apr 2025 03:27:18 +0530 Subject: [PATCH 5/5] Update navigation drawer header - proxy setting moved to Network preferences page - 'Instance information' is now a nav drawer item - A 'Manage accounts' button to open accounts list --- .../app/fedilab/android/BaseMainActivity.java | 70 +++--- .../settings/FragmentNetworkSettings.java | 60 ++++++ .../settings/FragmentSettingsCategories.java | 9 + .../activities/PeertubeMainActivity.java | 16 +- .../layouts/mastodon/drawable/ic_accounts.xml | 10 + .../layouts/mastodon/drawable/ic_logout.xml | 14 ++ .../mastodon/drawable/ic_network_prefs.xml | 10 + .../layouts/mastodon/drawable/ic_proxy.xml | 10 + .../mastodon/layout/nav_header_main.xml | 203 +++++++----------- .../mastodon/menu/activity_main_drawer.xml | 5 + .../res/navigation/nav_graph_settings.xml | 13 ++ app/src/main/res/values/strings.xml | 5 + app/src/main/res/xml/pref_categories.xml | 7 + app/src/main/res/xml/pref_network.xml | 12 ++ 14 files changed, 272 insertions(+), 172 deletions(-) create mode 100644 app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentNetworkSettings.java create mode 100644 app/src/main/res/layouts/mastodon/drawable/ic_accounts.xml create mode 100644 app/src/main/res/layouts/mastodon/drawable/ic_logout.xml create mode 100644 app/src/main/res/layouts/mastodon/drawable/ic_network_prefs.xml create mode 100644 app/src/main/res/layouts/mastodon/drawable/ic_proxy.xml create mode 100644 app/src/main/res/xml/pref_network.xml diff --git a/app/src/main/java/app/fedilab/android/BaseMainActivity.java b/app/src/main/java/app/fedilab/android/BaseMainActivity.java index 41ff2a0a..27ac9895 100644 --- a/app/src/main/java/app/fedilab/android/BaseMainActivity.java +++ b/app/src/main/java/app/fedilab/android/BaseMainActivity.java @@ -72,6 +72,7 @@ import androidx.appcompat.app.AlertDialog; import androidx.appcompat.widget.PopupMenu; import androidx.appcompat.widget.SearchView; import androidx.appcompat.widget.Toolbar; +import androidx.appcompat.widget.TooltipCompat; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; import androidx.core.view.GravityCompat; @@ -461,7 +462,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt public static void manageDrawerMenu(Activity activity, NavigationView navigationView, NavHeaderMainBinding headerMainBinding) { SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(activity); if (headerMenuOpen) { - headerMainBinding.ownerAccounts.setImageResource(R.drawable.ic_baseline_arrow_drop_up_24); + headerMainBinding.ownerAccounts.setIconResource(R.drawable.ic_baseline_arrow_drop_up_24); new Thread(() -> { try { List accounts = new Account(activity).getOtherAccounts(); @@ -592,7 +593,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt Intent mainActivity = new Intent(activity, MainActivity.class); activity.startActivity(mainActivity); activity.finish(); - headerMainBinding.ownerAccounts.setImageResource(R.drawable.ic_baseline_arrow_drop_down_24); + headerMainBinding.ownerAccounts.setIconResource(R.drawable.ic_accounts); return true; } return false; @@ -624,47 +625,32 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt } else if (Helper.getCurrentAccount(activity).peertube_account != null) { navigationView.inflateMenu(R.menu.activity_main_drawer_peertube); } - headerMainBinding.ownerAccounts.setImageResource(R.drawable.ic_baseline_arrow_drop_down_24); + headerMainBinding.ownerAccounts.setIconResource(R.drawable.ic_accounts); headerMenuOpen = false; } } - public static void headerOptionInfoClick(Activity activity, NavHeaderMainBinding headerMainBinding, FragmentManager fragmentManager) { - PopupMenu popup = new PopupMenu(activity, headerMainBinding.headerOptionInfo); - popup.getMenuInflater() - .inflate(R.menu.main, popup.getMenu()); - - popup.setOnMenuItemClickListener(item -> { - int itemId = item.getItemId(); - if (itemId == R.id.action_logout_account) { - AlertDialog.Builder alt_bld = new MaterialAlertDialogBuilder(activity); - alt_bld.setTitle(R.string.action_logout); - if (Helper.getCurrentAccount(activity).mastodon_account != null && Helper.getCurrentAccount(activity).instance != null) { - alt_bld.setMessage(activity.getString(R.string.logout_account_confirmation, Helper.getCurrentAccount(activity).mastodon_account.username, Helper.getCurrentAccount(activity).instance)); - } else if (Helper.getCurrentAccount(activity).peertube_account != null && Helper.getCurrentAccount(activity).instance != null) { - alt_bld.setMessage(activity.getString(R.string.logout_account_confirmation, Helper.getCurrentAccount(activity).peertube_account.getUsername(), Helper.getCurrentAccount(activity).instance)); - } else { - alt_bld.setMessage(activity.getString(R.string.logout_account_confirmation, "", "")); - } - alt_bld.setPositiveButton(R.string.action_logout, (dialog, id) -> { - dialog.dismiss(); - try { - Helper.removeAccount(activity); - } catch (DBException e) { - e.printStackTrace(); - } - }); - alt_bld.setNegativeButton(R.string.cancel, (dialog, id) -> dialog.dismiss()); - AlertDialog alert = alt_bld.create(); - alert.show(); - return true; - } else if (itemId == R.id.action_proxy) { - (new ProxyActivity()).show(fragmentManager, null); - return true; + public static void headerLogoutClick(Activity activity, NavHeaderMainBinding headerMainBinding, FragmentManager fragmentManager) { + AlertDialog.Builder alt_bld = new MaterialAlertDialogBuilder(activity); + alt_bld.setTitle(R.string.action_logout); + if (Helper.getCurrentAccount(activity).mastodon_account != null && Helper.getCurrentAccount(activity).instance != null) { + alt_bld.setMessage(activity.getString(R.string.logout_account_confirmation, Helper.getCurrentAccount(activity).mastodon_account.username, Helper.getCurrentAccount(activity).instance)); + } else if (Helper.getCurrentAccount(activity).peertube_account != null && Helper.getCurrentAccount(activity).instance != null) { + alt_bld.setMessage(activity.getString(R.string.logout_account_confirmation, Helper.getCurrentAccount(activity).peertube_account.getUsername(), Helper.getCurrentAccount(activity).instance)); + } else { + alt_bld.setMessage(activity.getString(R.string.logout_account_confirmation, "", "")); + } + alt_bld.setPositiveButton(R.string.action_logout, (dialog, id) -> { + dialog.dismiss(); + try { + Helper.removeAccount(activity); + } catch (DBException e) { + e.printStackTrace(); } - return true; }); - popup.show(); + alt_bld.setNegativeButton(R.string.cancel, (dialog, id) -> dialog.dismiss()); + AlertDialog alert = alt_bld.create(); + alert.show(); } /** @@ -1464,12 +1450,13 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt startActivity(intent); } else if (id == R.id.nav_about_instance) { (new InstanceActivity()).show(getSupportFragmentManager(), null); + } else if (id == R.id.nav_instance_info) { + (new InstanceHealthActivity()).show(getSupportFragmentManager(), null); } binding.drawerLayout.close(); return false; }); - headerMainBinding.instanceInfo.setOnClickListener(v -> (new InstanceHealthActivity()).show(getSupportFragmentManager(), null)); headerMainBinding.accountProfilePicture.setOnClickListener(v -> { Intent intent = new Intent(BaseMainActivity.this, ProfileActivity.class); Bundle args = new Bundle(); @@ -1483,13 +1470,14 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt }); - headerMainBinding.accountAcc.setOnClickListener(v -> headerMainBinding.changeAccount.callOnClick()); - headerMainBinding.changeAccount.setOnClickListener(v -> { + TooltipCompat.setTooltipText(headerMainBinding.ownerAccounts, getString(R.string.manage_accounts)); + headerMainBinding.ownerAccounts.setOnClickListener(v -> { headerMenuOpen = !headerMenuOpen; manageDrawerMenu(BaseMainActivity.this, binding.navView, headerMainBinding); }); - headerMainBinding.headerOptionInfo.setOnClickListener(v -> headerOptionInfoClick(BaseMainActivity.this, headerMainBinding, getSupportFragmentManager())); + TooltipCompat.setTooltipText(headerMainBinding.headerLogout,getString(R.string.action_logout)); + headerMainBinding.headerLogout.setOnClickListener(v -> headerLogoutClick(BaseMainActivity.this, headerMainBinding, getSupportFragmentManager())); //Toolbar search binding.toolbarSearch.setOnQueryTextListener(new SearchView.OnQueryTextListener() { diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentNetworkSettings.java b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentNetworkSettings.java new file mode 100644 index 00000000..0c3bcb84 --- /dev/null +++ b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentNetworkSettings.java @@ -0,0 +1,60 @@ +package app.fedilab.android.mastodon.ui.fragment.settings; +/* Copyright 2022 Thomas Schneider + * + * This file is a part of Fedilab + * + * This program is free software; you can redistribute it and/or modify it under the terms of the + * GNU General Public License as published by the Free Software Foundation; either version 3 of the + * License, or (at your option) any later version. + * + * Fedilab is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even + * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General + * Public License for more details. + * + * You should have received a copy of the GNU General Public License along with Fedilab; if not, + * see . */ + +import android.Manifest; +import android.app.Activity; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.os.Build; +import android.os.Bundle; +import android.widget.Toast; + +import androidx.activity.result.ActivityResultLauncher; +import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.app.ActivityCompat; +import androidx.navigation.NavController; +import androidx.navigation.Navigation; +import androidx.preference.Preference; +import androidx.preference.PreferenceFragmentCompat; + +import java.io.IOException; + +import app.fedilab.android.R; +import app.fedilab.android.mastodon.activities.ProxyActivity; +import app.fedilab.android.mastodon.helper.Helper; +import app.fedilab.android.mastodon.helper.ZipHelper; +import es.dmoral.toasty.Toasty; + +public class FragmentNetworkSettings extends PreferenceFragmentCompat { + + @Override + public void onCreatePreferences(@Nullable Bundle savedInstanceState, @Nullable String rootKey) { + addPreferencesFromResource(R.xml.pref_network); + + + Preference pref_proxy = findPreference(getString(R.string.pref_key_proxy)); + if (pref_proxy != null) { + pref_proxy.setOnPreferenceClickListener(preference -> { + (new ProxyActivity()).show(getParentFragmentManager(), null); + return false; + }); + } + + } + +} diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentSettingsCategories.java b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentSettingsCategories.java index b628431b..b1d1d656 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentSettingsCategories.java +++ b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentSettingsCategories.java @@ -138,6 +138,15 @@ public class FragmentSettingsCategories extends PreferenceFragmentCompat { }); } + Preference pref_category_key_network = findPreference(getString(R.string.pref_category_key_network)); + if (pref_category_key_network != null) { + pref_category_key_network.setOnPreferenceClickListener(preference -> { + NavController navController = Navigation.findNavController(requireActivity(), R.id.fragment_container); + navController.navigate(FragmentSettingsCategoriesDirections.Companion.categoriesToNetwork()); + return false; + }); + } + Preference pref_category_key_extra_features = findPreference(getString(R.string.pref_category_key_extra_features)); if (pref_category_key_extra_features != null) { pref_category_key_extra_features.setOnPreferenceClickListener(preference -> { diff --git a/app/src/main/java/app/fedilab/android/peertube/activities/PeertubeMainActivity.java b/app/src/main/java/app/fedilab/android/peertube/activities/PeertubeMainActivity.java index 3e0fdf63..66c45235 100644 --- a/app/src/main/java/app/fedilab/android/peertube/activities/PeertubeMainActivity.java +++ b/app/src/main/java/app/fedilab/android/peertube/activities/PeertubeMainActivity.java @@ -20,7 +20,7 @@ import static app.fedilab.android.BaseMainActivity.currentToken; import static app.fedilab.android.BaseMainActivity.currentUserID; import static app.fedilab.android.BaseMainActivity.fetchRecentAccounts; import static app.fedilab.android.BaseMainActivity.headerMenuOpen; -import static app.fedilab.android.BaseMainActivity.headerOptionInfoClick; +import static app.fedilab.android.BaseMainActivity.headerLogoutClick; import static app.fedilab.android.BaseMainActivity.mamageNewIntent; import static app.fedilab.android.BaseMainActivity.manageDrawerMenu; import static app.fedilab.android.mastodon.helper.Helper.PREF_USER_ID; @@ -328,8 +328,8 @@ public class PeertubeMainActivity extends PeertubeBaseMainActivity { headerMainBinding.accountAcc.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18 * 1.1f / scale); app.fedilab.android.mastodon.helper.Helper.loadPP(PeertubeMainActivity.this, headerMainBinding.accountProfilePicture, app.fedilab.android.mastodon.helper.Helper.getCurrentAccount(PeertubeMainActivity.this), false); headerMainBinding.backgroundImage.setAlpha(0.5f); - headerMainBinding.accountAcc.setOnClickListener(v -> headerMainBinding.changeAccount.callOnClick()); - headerMainBinding.changeAccount.setOnClickListener(v -> { + TooltipCompat.setTooltipText(headerMainBinding.ownerAccounts, getString(R.string.manage_accounts)); + headerMainBinding.ownerAccounts.setOnClickListener(v -> { headerMenuOpen = !headerMenuOpen; manageDrawerMenu(PeertubeMainActivity.this, binding.drawerNavView, headerMainBinding); @@ -345,9 +345,7 @@ public class PeertubeMainActivity extends PeertubeBaseMainActivity { headerMainBinding.accountAcc.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18 * 1.1f / scale); app.fedilab.android.mastodon.helper.Helper.loadPP(PeertubeMainActivity.this, headerMainBinding.accountProfilePicture, app.fedilab.android.mastodon.helper.Helper.getCurrentAccount(PeertubeMainActivity.this), false); headerMainBinding.backgroundImage.setAlpha(0.5f); - headerMainBinding.accountAcc.setOnClickListener(v -> headerMainBinding.changeAccount.callOnClick()); - headerMainBinding.changeAccount.setOnClickListener(v -> { - + headerMainBinding.ownerAccounts.setOnClickListener(v -> { headerMenuOpen = !headerMenuOpen; manageDrawerMenu(PeertubeMainActivity.this, binding.drawerNavView, headerMainBinding); }); @@ -358,7 +356,8 @@ public class PeertubeMainActivity extends PeertubeBaseMainActivity { }; mainHandler.post(myRunnable); }).start(); - headerMainBinding.instanceInfo.setVisibility(View.GONE); + View navInstanceInfo = binding.drawerNavView.findViewById(R.id.nav_instance_info); + binding.drawerNavView.removeView(navInstanceInfo); binding.drawerNavView.addHeaderView(headerMainBinding.getRoot()); binding.drawerNavView.setNavigationItemSelectedListener(item -> { if (item.getItemId() == R.id.action_settings) { @@ -414,7 +413,8 @@ public class PeertubeMainActivity extends PeertubeBaseMainActivity { binding.drawerLayout.close(); return false; }); - headerMainBinding.headerOptionInfo.setOnClickListener(v -> headerOptionInfoClick(PeertubeMainActivity.this, headerMainBinding, getSupportFragmentManager())); + TooltipCompat.setTooltipText(headerMainBinding.headerLogout, getString(R.string.action_logout)); + headerMainBinding.headerLogout.setOnClickListener(v -> headerLogoutClick(PeertubeMainActivity.this, headerMainBinding, getSupportFragmentManager())); fetchRecentAccounts(PeertubeMainActivity.this, headerMainBinding); } else { new Thread(() -> { diff --git a/app/src/main/res/layouts/mastodon/drawable/ic_accounts.xml b/app/src/main/res/layouts/mastodon/drawable/ic_accounts.xml new file mode 100644 index 00000000..c2d0f8f6 --- /dev/null +++ b/app/src/main/res/layouts/mastodon/drawable/ic_accounts.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layouts/mastodon/drawable/ic_logout.xml b/app/src/main/res/layouts/mastodon/drawable/ic_logout.xml new file mode 100644 index 00000000..5dc221b4 --- /dev/null +++ b/app/src/main/res/layouts/mastodon/drawable/ic_logout.xml @@ -0,0 +1,14 @@ + + + + diff --git a/app/src/main/res/layouts/mastodon/drawable/ic_network_prefs.xml b/app/src/main/res/layouts/mastodon/drawable/ic_network_prefs.xml new file mode 100644 index 00000000..c167dfb6 --- /dev/null +++ b/app/src/main/res/layouts/mastodon/drawable/ic_network_prefs.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layouts/mastodon/drawable/ic_proxy.xml b/app/src/main/res/layouts/mastodon/drawable/ic_proxy.xml new file mode 100644 index 00000000..dc93ade8 --- /dev/null +++ b/app/src/main/res/layouts/mastodon/drawable/ic_proxy.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layouts/mastodon/layout/nav_header_main.xml b/app/src/main/res/layouts/mastodon/layout/nav_header_main.xml index 61b6daae..70f6ae93 100644 --- a/app/src/main/res/layouts/mastodon/layout/nav_header_main.xml +++ b/app/src/main/res/layouts/mastodon/layout/nav_header_main.xml @@ -1,11 +1,10 @@ - - + + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + diff --git a/app/src/main/res/menus/mastodon/menu/activity_main_drawer.xml b/app/src/main/res/menus/mastodon/menu/activity_main_drawer.xml index 12cbc541..eeb6be63 100644 --- a/app/src/main/res/menus/mastodon/menu/activity_main_drawer.xml +++ b/app/src/main/res/menus/mastodon/menu/activity_main_drawer.xml @@ -73,6 +73,11 @@ android:icon="@drawable/ic_info_outline_white_24dp" android:title="@string/action_about_instance" android:visible="true" /> + diff --git a/app/src/main/res/navigation/nav_graph_settings.xml b/app/src/main/res/navigation/nav_graph_settings.xml index bc89c544..4e364c76 100644 --- a/app/src/main/res/navigation/nav_graph_settings.xml +++ b/app/src/main/res/navigation/nav_graph_settings.xml @@ -76,6 +76,14 @@ app:popEnterAnim="@anim/pop_enter" app:popExitAnim="@anim/pop_exit" /> + + + + Peertube instance Use Emoji One Information + Instance information Display previews in all messages The account id has been copied in the clipboard! Change the language @@ -627,6 +628,7 @@ Export the theme Tap here to export the current theme An error occurred when selecting the theme file + Network User count Status count Instance count @@ -1792,10 +1794,13 @@ pref_category_key_pixelfed pref_category_key_home_cache pref_category_theming + pref_category_network pref_category_administration pref_category_languages pref_category_key_extra_features + pref_key_proxy + pref_export_settings pref_import_settings Export settings diff --git a/app/src/main/res/xml/pref_categories.xml b/app/src/main/res/xml/pref_categories.xml index cd88e770..70dc5780 100644 --- a/app/src/main/res/xml/pref_categories.xml +++ b/app/src/main/res/xml/pref_categories.xml @@ -67,6 +67,13 @@ app:icon="@drawable/ic_theming" app:key="@string/pref_category_key_theming" /> + +