diff --git a/android/app/src/main/java/app/organicmaps/widget/placepage/sections/PlacePageBookmarkFragment.java b/android/app/src/main/java/app/organicmaps/widget/placepage/sections/PlacePageBookmarkFragment.java index f480e38c4..157bcebc0 100644 --- a/android/app/src/main/java/app/organicmaps/widget/placepage/sections/PlacePageBookmarkFragment.java +++ b/android/app/src/main/java/app/organicmaps/widget/placepage/sections/PlacePageBookmarkFragment.java @@ -16,18 +16,22 @@ import android.widget.LinearLayout; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentActivity; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; import app.organicmaps.R; import app.organicmaps.sdk.bookmarks.data.Bookmark; +import app.organicmaps.sdk.bookmarks.data.BookmarkManager; import app.organicmaps.sdk.bookmarks.data.MapObject; import app.organicmaps.sdk.util.StringUtils; import app.organicmaps.util.UiUtils; import app.organicmaps.util.Utils; +import app.organicmaps.widget.placepage.EditBookmarkFragment; import app.organicmaps.widget.placepage.PlacePageViewModel; import com.google.android.material.textview.MaterialTextView; -public class PlacePageBookmarkFragment extends Fragment implements View.OnLongClickListener, Observer +public class PlacePageBookmarkFragment extends Fragment implements View.OnClickListener, View.OnLongClickListener, + Observer, EditBookmarkFragment.EditBookmarkListener { private View mFrame; private MaterialTextView mTvBookmarkNote; @@ -55,6 +59,8 @@ public class PlacePageBookmarkFragment extends Fragment implements View.OnLongCl mFrame = view; mTvBookmarkNote = mFrame.findViewById(R.id.tv__bookmark_notes); mTvBookmarkNote.setOnLongClickListener(this); + final View editBookmarkBtn = mFrame.findViewById(R.id.tv__bookmark_edit); + editBookmarkBtn.setOnClickListener(this); } private void initWebView() @@ -112,6 +118,14 @@ public class PlacePageBookmarkFragment extends Fragment implements View.OnLongCl } } + @Override + public void onClick(View v) + { + final FragmentActivity activity = requireActivity(); + EditBookmarkFragment.editBookmark(currentBookmark.getCategoryId(), currentBookmark.getBookmarkId(), activity, + getChildFragmentManager(), PlacePageBookmarkFragment.this); + } + @Override public boolean onLongClick(View v) { @@ -141,4 +155,13 @@ public class PlacePageBookmarkFragment extends Fragment implements View.OnLongCl updateBookmarkDetails(); } } + + @Override + public void onBookmarkSaved(long bookmarkId, boolean movedFromCategory) + { + Bookmark updatedBookmark = BookmarkManager.INSTANCE.updateBookmarkPlacePage(bookmarkId); + if (updatedBookmark == null) + return; + mViewModel.setMapObject(updatedBookmark); + } } diff --git a/android/app/src/main/res/layout/place_page_bookmark_fragment.xml b/android/app/src/main/res/layout/place_page_bookmark_fragment.xml index bfb54f8bc..62a4fd16d 100644 --- a/android/app/src/main/res/layout/place_page_bookmark_fragment.xml +++ b/android/app/src/main/res/layout/place_page_bookmark_fragment.xml @@ -11,9 +11,23 @@ android:id="@+id/tv__bookmark_notes" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginBottom="@dimen/margin_base" + android:layout_marginBottom="@dimen/margin_half" android:layout_marginEnd="@dimen/margin_base" android:layout_marginStart="@dimen/margin_base" + android:layout_marginTop="@dimen/margin_base" android:textAppearance="?android:attr/textAppearance" tools:text="Long, long text Long, long text Long, long text Long, long text Long, long text Long, long text "/> + + + +