mirror of
https://github.com/MatomoCamp/matomocamp-companion-android.git
synced 2024-09-19 16:13:46 +02:00
Improved bookmark status refresh in EventDetailsFragment
This commit is contained in:
parent
e2584ccf52
commit
975c870883
1 changed files with 32 additions and 5 deletions
|
@ -5,8 +5,10 @@ import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.IntentFilter;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.provider.CalendarContract;
|
import android.provider.CalendarContract;
|
||||||
|
@ -14,6 +16,7 @@ import android.support.v4.app.Fragment;
|
||||||
import android.support.v4.app.LoaderManager.LoaderCallbacks;
|
import android.support.v4.app.LoaderManager.LoaderCallbacks;
|
||||||
import android.support.v4.app.ShareCompat;
|
import android.support.v4.app.ShareCompat;
|
||||||
import android.support.v4.content.Loader;
|
import android.support.v4.content.Loader;
|
||||||
|
import android.support.v4.content.LocalBroadcastManager;
|
||||||
import android.text.Html;
|
import android.text.Html;
|
||||||
import android.text.Spannable;
|
import android.text.Spannable;
|
||||||
import android.text.SpannableString;
|
import android.text.SpannableString;
|
||||||
|
@ -64,6 +67,15 @@ public class EventDetailsFragment extends Fragment {
|
||||||
private int personsCount = 1;
|
private int personsCount = 1;
|
||||||
private boolean isBookmarked = false;
|
private boolean isBookmarked = false;
|
||||||
private ViewHolder holder;
|
private ViewHolder holder;
|
||||||
|
private boolean bookmarksChanged = false;
|
||||||
|
|
||||||
|
private final BroadcastReceiver bookmarksReceiver = new BroadcastReceiver() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
bookmarksChanged = true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
public static EventDetailsFragment newInstance(Event event) {
|
public static EventDetailsFragment newInstance(Event event) {
|
||||||
EventDetailsFragment f = new EventDetailsFragment();
|
EventDetailsFragment f = new EventDetailsFragment();
|
||||||
|
@ -77,8 +89,18 @@ public class EventDetailsFragment extends Fragment {
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
event = getArguments().getParcelable(ARG_EVENT);
|
event = getArguments().getParcelable(ARG_EVENT);
|
||||||
|
isBookmarked = DatabaseManager.getInstance().isBookmarked(event);
|
||||||
setHasOptionsMenu(true);
|
setHasOptionsMenu(true);
|
||||||
|
|
||||||
|
LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(getActivity());
|
||||||
|
lbm.registerReceiver(bookmarksReceiver, new IntentFilter(DatabaseManager.ACTION_ADD_BOOKMARK));
|
||||||
|
lbm.registerReceiver(bookmarksReceiver, new IntentFilter(DatabaseManager.ACTION_REMOVE_BOOKMARKS));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDestroy() {
|
||||||
|
LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(bookmarksReceiver);
|
||||||
|
super.onDestroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Event getEvent() {
|
public Event getEvent() {
|
||||||
|
@ -238,10 +260,15 @@ public class EventDetailsFragment extends Fragment {
|
||||||
@Override
|
@Override
|
||||||
public void onStart() {
|
public void onStart() {
|
||||||
super.onStart();
|
super.onStart();
|
||||||
boolean result = DatabaseManager.getInstance().isBookmarked(event);
|
|
||||||
if (result != isBookmarked) {
|
// If bookmarks have changed while this fragment was stopped, check again if this event is bookmarked
|
||||||
isBookmarked = result;
|
if (bookmarksChanged) {
|
||||||
invalidateOptionsMenu();
|
boolean result = DatabaseManager.getInstance().isBookmarked(event);
|
||||||
|
if (result != isBookmarked) {
|
||||||
|
isBookmarked = result;
|
||||||
|
invalidateOptionsMenu();
|
||||||
|
}
|
||||||
|
bookmarksChanged = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue