From 4a1339880188fa66af8fec60220849f82ba964a6 Mon Sep 17 00:00:00 2001 From: LucasGGamerM Date: Sun, 17 Mar 2024 10:37:02 -0300 Subject: [PATCH] feat(profile): make the new decentralization sheet appear only when holding the instance button --- .../android/fragments/ProfileFragment.java | 33 ++++++------------- .../android/ui/utils/UiUtils.java | 25 ++++++++++++++ 2 files changed, 35 insertions(+), 23 deletions(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java index c5bb750c4..c5fad076a 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java @@ -398,28 +398,7 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList followingBtn.setOnClickListener(this::onFollowersOrFollowingClick); content.findViewById(R.id.username_wrap).setOnClickListener(v->{ - try { - new GetInstance() - .setCallback(new Callback<>(){ - @Override - public void onSuccess(Instance result){ - Bundle args = new Bundle(); - args.putParcelable("instance", Parcels.wrap(result)); - args.putString("account", accountID); - Nav.go(getActivity(), SettingsServerFragment.class, args); - } - - @Override - public void onError(ErrorResponse error){ - error.showToast(getContext()); - } - }) - .wrapProgress((Activity) getContext(), R.string.loading, true) - .execRemote(Uri.parse(account.url).getHost()); - } catch (NullPointerException ignored) { - // maybe the url was malformed? - Toast.makeText(getContext(), R.string.error, Toast.LENGTH_SHORT).show(); - } + UiUtils.goToInstanceAboutFragment(Uri.parse(account.url).getHost(), accountID, getContext()); }); content.findViewById(R.id.username_wrap).setOnLongClickListener(v->{ @@ -456,7 +435,15 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList nameEdit.addTextChangedListener(new SimpleTextWatcher(e->editDirty=true)); bioEdit.addTextChangedListener(new SimpleTextWatcher(e->editDirty=true)); - usernameDomain.setOnClickListener(v->new DecentralizationExplainerSheet(getActivity(), accountID, account).show()); + usernameDomain.setOnClickListener(v->{ + UiUtils.goToInstanceAboutFragment(Uri.parse(account.url).getHost(), accountID, getContext()); + }); + + usernameDomain.setOnLongClickListener(v->{ + new DecentralizationExplainerSheet(getActivity(), accountID, account).show(); + return true; + }); + // qrCodeButton.setOnClickListener(v->{ // Bundle args=new Bundle(); // args.putString("account", accountID); diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java b/mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java index 284371bb9..2720b997c 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java @@ -1798,6 +1798,31 @@ public class UiUtils { return text; } + public static void goToInstanceAboutFragment(String instanceUrl, String accountID ,Context context){ + try { + new GetInstance() + .setCallback(new Callback<>(){ + @Override + public void onSuccess(Instance result){ + Bundle args = new Bundle(); + args.putParcelable("instance", Parcels.wrap(result)); + args.putString("account", accountID); + Nav.go((Activity) context, SettingsServerFragment.class, args); + } + + @Override + public void onError(ErrorResponse error){ + error.showToast(context); + } + }) + .wrapProgress((Activity) context, R.string.loading, true) + .execRemote(instanceUrl); + } catch (NullPointerException ignored) { + // maybe the url was malformed? + Toast.makeText(context, R.string.error, Toast.LENGTH_SHORT).show(); + } + } + private static final String[] pronounsUrls= new String[] { "pronouns.within.lgbt/", "pronouns.cc/pronouns/",