From 42946eca44e72d124ccff51ff8cdaab90eb5fcba Mon Sep 17 00:00:00 2001 From: FineFindus Date: Sat, 23 Dec 2023 10:23:16 +0100 Subject: [PATCH 1/5] Revert "feat: make profile note box be visible at all times" This reverts commit d6c05f0850a876401105f3531cf216203c8aa3ac. --- .../android/fragments/ProfileFragment.java | 41 +++++++++++++++---- .../ui/viewholders/AccountViewHolder.java | 1 + .../src/main/res/layout/fragment_profile.xml | 3 +- mastodon/src/main/res/menu/profile.xml | 5 ++- 4 files changed, 39 insertions(+), 11 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 e45f7e7a5..cc54a86c3 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java @@ -293,8 +293,8 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList noteEdit.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_MULTI_LINE | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES); }else{ showFab(); + savePrivateNote(noteEdit.getText().toString()); } - savePrivateNote(noteEdit.getText().toString()); }); FrameLayout sizeWrapper=new FrameLayout(getActivity()){ @@ -648,13 +648,13 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList if(pinnedPostsFragment.isAdded()) getChildFragmentManager().putFragment(outState, "pinnedPosts", pinnedPostsFragment); } - - @Override - public void onHidden(){ - if (relationship != null && !noteEdit.getText().toString().equals(relationship.note)){ - savePrivateNote(noteEdit.getText().toString()); - } - } +// +// @Override +// public void onHidden(){ +// if (relationship != null && !noteEdit.getText().toString().equals(relationship.note)){ +// savePrivateNote(noteEdit.getText().toString()); +// } +// } @Override public void onConfigurationChanged(Configuration newConfig){ @@ -865,6 +865,8 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList }else{ blockDomain.setVisible(false); } + menu.findItem(R.id.edit_note).setTitle(noteWrap.getVisibility()==View.GONE && (relationship.note==null || relationship.note.isEmpty()) + ? R.string.sk_add_note : R.string.sk_delete_note); } @Override @@ -946,6 +948,26 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList }else if(id==R.id.save){ if(isInEditMode) saveAndExitEditMode(); + }else if(id==R.id.edit_note){ + if(noteWrap.getVisibility()==View.GONE){ + showPrivateNote(); + UiUtils.beginLayoutTransition(scrollableContent); + noteEdit.requestFocus(); + noteEdit.postDelayed(()->{ + InputMethodManager imm=getActivity().getSystemService(InputMethodManager.class); + imm.showSoftInput(noteEdit, 0); + }, 100); + }else if(relationship.note.isEmpty()){ + hidePrivateNote(); + UiUtils.beginLayoutTransition(scrollableContent); + }else{ + new M3AlertDialogBuilder(getActivity()) + .setMessage(getContext().getString(R.string.sk_private_note_confirm_delete, account.getDisplayUsername())) + .setPositiveButton(R.string.delete, (dlg, btn)->savePrivateNote(null)) + .setNegativeButton(R.string.cancel, null) + .show(); + } + invalidateOptionsMenu(); } return true; } @@ -971,7 +993,8 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList private void updateRelationship(){ if(getActivity()==null) return; - showPrivateNote(); + if(relationship.note!=null && !relationship.note.isEmpty()) showPrivateNote(); + else hidePrivateNote(); invalidateOptionsMenu(); actionButton.setVisibility(View.VISIBLE); notifyButton.setVisibility(relationship.following ? View.VISIBLE : View.GONE); diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/viewholders/AccountViewHolder.java b/mastodon/src/main/java/org/joinmastodon/android/ui/viewholders/AccountViewHolder.java index efd238071..caa89f797 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/viewholders/AccountViewHolder.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/viewholders/AccountViewHolder.java @@ -217,6 +217,7 @@ public class AccountViewHolder extends BindableViewHolder impl Menu menu=contextMenu.getMenu(); Account account=item.account; + menu.findItem(R.id.edit_note).setVisible(false); menu.findItem(R.id.manage_user_lists).setTitle(fragment.getString(R.string.sk_lists_with_user, account.getShortUsername())); MenuItem mute=menu.findItem(R.id.mute); mute.setTitle(fragment.getString(relationship.muting ? R.string.unmute_user : R.string.mute_user, account.getShortUsername())); diff --git a/mastodon/src/main/res/layout/fragment_profile.xml b/mastodon/src/main/res/layout/fragment_profile.xml index faf5c2070..cb73986bf 100644 --- a/mastodon/src/main/res/layout/fragment_profile.xml +++ b/mastodon/src/main/res/layout/fragment_profile.xml @@ -231,12 +231,13 @@ diff --git a/mastodon/src/main/res/menu/profile.xml b/mastodon/src/main/res/menu/profile.xml index aaaf7cae8..6d93f8a60 100644 --- a/mastodon/src/main/res/menu/profile.xml +++ b/mastodon/src/main/res/menu/profile.xml @@ -1,6 +1,9 @@ + + + @@ -9,7 +12,7 @@ - + From 3bd67f9ab136a765f02b10654c6a2789d15acf61 Mon Sep 17 00:00:00 2001 From: FineFindus Date: Sat, 23 Dec 2023 11:25:36 +0100 Subject: [PATCH 2/5] feat(profile): move favorites to overflow menu --- mastodon/src/main/res/menu/profile_own.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mastodon/src/main/res/menu/profile_own.xml b/mastodon/src/main/res/menu/profile_own.xml index cf0630109..47b8219fc 100644 --- a/mastodon/src/main/res/menu/profile_own.xml +++ b/mastodon/src/main/res/menu/profile_own.xml @@ -4,7 +4,7 @@ - + From 3c9efdbbf2e8526f888a06540d4cc1b20341675a Mon Sep 17 00:00:00 2001 From: FineFindus Date: Sat, 23 Dec 2023 11:27:07 +0100 Subject: [PATCH 3/5] feat(profile): save note onHidden --- .../android/fragments/ProfileFragment.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 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 cc54a86c3..24afe68cd 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java @@ -648,13 +648,13 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList if(pinnedPostsFragment.isAdded()) getChildFragmentManager().putFragment(outState, "pinnedPosts", pinnedPostsFragment); } -// -// @Override -// public void onHidden(){ -// if (relationship != null && !noteEdit.getText().toString().equals(relationship.note)){ -// savePrivateNote(noteEdit.getText().toString()); -// } -// } + + @Override + public void onHidden(){ + if (relationship != null && !noteEdit.getText().toString().equals(relationship.note)){ + savePrivateNote(noteEdit.getText().toString()); + } + } @Override public void onConfigurationChanged(Configuration newConfig){ From f70ea97d9ed15db416545a11bbe710b85ce7a638 Mon Sep 17 00:00:00 2001 From: FineFindus Date: Sat, 23 Dec 2023 11:28:54 +0100 Subject: [PATCH 4/5] feat(profile): always show add note and share --- .../org/joinmastodon/android/fragments/ProfileFragment.java | 2 +- mastodon/src/main/res/menu/profile.xml | 4 ++-- 2 files changed, 3 insertions(+), 3 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 24afe68cd..7fc7d2c7f 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java @@ -822,7 +822,7 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList if(isOwnProfile){ UiUtils.enableOptionsMenuIcons(getActivity(), menu, R.id.scheduled, R.id.bookmarks, R.id.favorites); }else{ - UiUtils.enableOptionsMenuIcons(getActivity(), menu, R.id.bookmarks, R.id.followed_hashtags, R.id.favorites, R.id.scheduled); + UiUtils.enableOptionsMenuIcons(getActivity(), menu, R.id.edit_note, R.id.share); } boolean hasMultipleAccounts = AccountSessionManager.getInstance().getLoggedInAccounts().size() > 1; MenuItem openWithAccounts = menu.findItem(R.id.open_with_account); diff --git a/mastodon/src/main/res/menu/profile.xml b/mastodon/src/main/res/menu/profile.xml index 6d93f8a60..48b8d66e8 100644 --- a/mastodon/src/main/res/menu/profile.xml +++ b/mastodon/src/main/res/menu/profile.xml @@ -1,7 +1,7 @@ - + @@ -14,7 +14,7 @@ - + From ccd313533b150e1db39ed416cac738dc112e4680 Mon Sep 17 00:00:00 2001 From: FineFindus Date: Sat, 23 Dec 2023 11:54:06 +0100 Subject: [PATCH 5/5] feat(profile): add note delete icon --- .../android/fragments/ProfileFragment.java | 5 +++-- .../ic_fluent_person_delete_note_24_regular.xml | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 mastodon/src/main/res/drawable/ic_fluent_person_delete_note_24_regular.xml 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 7fc7d2c7f..b1d92af2e 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java @@ -865,8 +865,9 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList }else{ blockDomain.setVisible(false); } - menu.findItem(R.id.edit_note).setTitle(noteWrap.getVisibility()==View.GONE && (relationship.note==null || relationship.note.isEmpty()) - ? R.string.sk_add_note : R.string.sk_delete_note); + boolean canAddNote = noteWrap.getVisibility()==View.GONE && (relationship.note==null || relationship.note.isEmpty()); + menu.findItem(R.id.edit_note).setTitle(canAddNote ? R.string.sk_add_note : R.string.sk_delete_note); + menu.findItem(R.id.edit_note).setIcon(canAddNote ? R.drawable.ic_fluent_person_note_24_regular : R.drawable.ic_fluent_person_delete_note_24_regular); } @Override diff --git a/mastodon/src/main/res/drawable/ic_fluent_person_delete_note_24_regular.xml b/mastodon/src/main/res/drawable/ic_fluent_person_delete_note_24_regular.xml new file mode 100644 index 000000000..70827606b --- /dev/null +++ b/mastodon/src/main/res/drawable/ic_fluent_person_delete_note_24_regular.xml @@ -0,0 +1,17 @@ + + + + + + +