From 8ba6f1b17794600a8103b3e4e819544f4749a7cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20P=C3=B3=C5=82grabia?= <tomasz.polgrabia@gmail.com> Date: Sat, 8 Oct 2016 18:01:03 +0200 Subject: [PATCH] Replaced old callbacks with EventBus and removed old callback interfaces. --- .../callbacks/StandardLocationListener.java | 37 ------------------- .../panoramio/PanoramioLocationCallback.java | 13 ++----- .../panoramio/PanoramioProviderCallback.java | 14 ++----- .../callbacks/wiki/WikiLocationCallback.java | 10 ++--- .../WikiLocationProviderStatusCallback.java | 11 +++--- .../fragments/WikiLocationsFragment.java | 12 ++++-- .../callback/ProviderStatusCallback.java | 8 ---- .../StandardLocationListenerCallback.java | 11 ------ 8 files changed, 27 insertions(+), 89 deletions(-) delete mode 100644 panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/callback/ProviderStatusCallback.java delete mode 100644 urbanexplorerutils/src/main/java/pl/tpolgrabia/urbanexplorerutils/callbacks/StandardLocationListenerCallback.java diff --git a/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/StandardLocationListener.java b/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/StandardLocationListener.java index ddf062a..ddb2214 100644 --- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/StandardLocationListener.java +++ b/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/StandardLocationListener.java @@ -8,24 +8,16 @@ import android.widget.Toast; import org.greenrobot.eventbus.EventBus; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import pl.tpolgrabia.panoramiobindings.callback.ProviderStatusCallback; import pl.tpolgrabia.urbanexplorer.events.LocationChangedEventBuilder; import pl.tpolgrabia.urbanexplorer.events.ProviderStatusChangedEventBuilder; -import pl.tpolgrabia.urbanexplorerutils.callbacks.StandardLocationListenerCallback; import pl.tpolgrabia.urbanexplorerutils.utils.LocationUtils; -import java.util.ArrayList; -import java.util.List; - /** * Created by tpolgrabia on 28.08.16. */ public class StandardLocationListener implements LocationListener { private static final Logger lg = LoggerFactory.getLogger(StandardLocationListener.class); private final Context ctx; - private List<StandardLocationListenerCallback> locationChangedCallbacks = new ArrayList<>(); - private List<ProviderStatusCallback> - providerStatusCallbacks = new ArrayList<>(); public StandardLocationListener(Context ctx) { this.ctx = ctx; @@ -34,9 +26,6 @@ public class StandardLocationListener implements LocationListener { @Override public void onLocationChanged(Location location) { lg.info("Location provider changed: {}", location); - for (StandardLocationListenerCallback callback : locationChangedCallbacks) { - callback.callback(location); - } Toast.makeText(ctx, "Location changed " + location, Toast.LENGTH_LONG).show(); LocationUtils.updateLastLocationUPdate(ctx); EventBus.getDefault().post( @@ -55,9 +44,6 @@ public class StandardLocationListener implements LocationListener { public void onProviderEnabled(String provider) { lg.info("Provider {} enabled", provider); - for (ProviderStatusCallback callback : providerStatusCallbacks){ - callback.callback(provider, true); - } EventBus.getDefault().post( new ProviderStatusChangedEventBuilder() .setProvider(provider) @@ -70,10 +56,6 @@ public class StandardLocationListener implements LocationListener { public void onProviderDisabled(String provider) { lg.info("Provider {} disabled", provider); - for (ProviderStatusCallback callback : providerStatusCallbacks){ - callback.callback(provider, false); - } - EventBus.getDefault().post( new ProviderStatusChangedEventBuilder() .setProvider(provider) @@ -82,23 +64,4 @@ public class StandardLocationListener implements LocationListener { ); } - public void addCallback(StandardLocationListenerCallback callback) { - lg.trace("Location added callback"); - locationChangedCallbacks.add(callback); - } - - public boolean removeCallback(StandardLocationListenerCallback callback) { - lg.trace("Location removed callback"); - return locationChangedCallbacks.remove(callback); - } - - public void addProviderCallback(ProviderStatusCallback callback) { - lg.trace("Provider added callback"); - providerStatusCallbacks.add(callback); - } - - public void removeProviderCallback(ProviderStatusCallback callback) { - lg.trace("Provider removed calback"); - providerStatusCallbacks.remove(callback); - } } diff --git a/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/panoramio/PanoramioLocationCallback.java b/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/panoramio/PanoramioLocationCallback.java index 3fd00d3..c7db1ae 100644 --- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/panoramio/PanoramioLocationCallback.java +++ b/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/panoramio/PanoramioLocationCallback.java @@ -1,13 +1,11 @@ package pl.tpolgrabia.urbanexplorer.callbacks.panoramio; -import android.location.Location; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import pl.tpolgrabia.panoramiobindings.dto.PanoramioImageInfo; import pl.tpolgrabia.urbanexplorer.events.LocationChangedEvent; -import pl.tpolgrabia.urbanexplorerutils.callbacks.StandardLocationListenerCallback; import pl.tpolgrabia.urbanexplorer.fragments.HomeFragment; import pl.tpolgrabia.urbanexplorerutils.events.RefreshEvent; @@ -16,7 +14,7 @@ import java.util.ArrayList; /** * Created by tpolgrabia on 21.09.16. */ -public class PanoramioLocationCallback implements StandardLocationListenerCallback { +public class PanoramioLocationCallback { private static final Logger lg = LoggerFactory.getLogger(PanoramioLocationCallback.class); private HomeFragment homeFragment; @@ -24,15 +22,10 @@ public class PanoramioLocationCallback implements StandardLocationListenerCallba this.homeFragment = homeFragment; } - @Override - public void callback(Location location) { + @Subscribe + public void handleLocationChanged(LocationChangedEvent event) { homeFragment.setNoMorePhotos(false); homeFragment.setPhotos(new ArrayList<PanoramioImageInfo>()); EventBus.getDefault().post(new RefreshEvent(this)); } - - @Subscribe - public void handleLocationChanged(LocationChangedEvent event) { - callback(event.getLocation()); - } } diff --git a/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/panoramio/PanoramioProviderCallback.java b/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/panoramio/PanoramioProviderCallback.java index e314131..0b58bd7 100644 --- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/panoramio/PanoramioProviderCallback.java +++ b/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/panoramio/PanoramioProviderCallback.java @@ -4,7 +4,6 @@ import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import pl.tpolgrabia.panoramiobindings.callback.ProviderStatusCallback; import pl.tpolgrabia.urbanexplorer.events.ProviderStatusChangedEvent; import pl.tpolgrabia.urbanexplorerutils.events.RefreshEvent; import pl.tpolgrabia.urbanexplorer.fragments.HomeFragment; @@ -12,7 +11,7 @@ import pl.tpolgrabia.urbanexplorer.fragments.HomeFragment; /** * Created by tpolgrabia on 21.09.16. */ -public class PanoramioProviderCallback implements ProviderStatusCallback { +public class PanoramioProviderCallback { private static final Logger lg = LoggerFactory.getLogger(PanoramioProviderCallback.class); private HomeFragment homeFragment; @@ -20,16 +19,11 @@ public class PanoramioProviderCallback implements ProviderStatusCallback { this.homeFragment = homeFragment; } - @Override - public void callback(String provider, boolean enabled) { - if (enabled) { + @Subscribe + public void handleProviderStatusChanged(ProviderStatusChangedEvent event) { + if (event.isEnabled()) { lg.trace("Handling provider enabling - refreshing panoramio listing"); EventBus.getDefault().post(new RefreshEvent(this)); } } - - @Subscribe - public void handleProviderStatusChanged(ProviderStatusChangedEvent event) { - callback(event.getProvider(), event.isEnabled()); - } } diff --git a/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/wiki/WikiLocationCallback.java b/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/wiki/WikiLocationCallback.java index a9d93ff..68b526d 100644 --- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/wiki/WikiLocationCallback.java +++ b/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/wiki/WikiLocationCallback.java @@ -1,7 +1,7 @@ package pl.tpolgrabia.urbanexplorer.callbacks.wiki; -import android.location.Location; -import pl.tpolgrabia.urbanexplorerutils.callbacks.StandardLocationListenerCallback; +import org.greenrobot.eventbus.Subscribe; +import pl.tpolgrabia.urbanexplorer.events.LocationChangedEvent; import pl.tpolgrabia.wikibinding.dto.app.WikiAppObject; import pl.tpolgrabia.urbanexplorer.fragments.WikiLocationsFragment; @@ -10,15 +10,15 @@ import java.util.ArrayList; /** * Created by tpolgrabia on 24.09.16. */ -public class WikiLocationCallback implements StandardLocationListenerCallback { +public class WikiLocationCallback { private WikiLocationsFragment wikiLocationsFragment; public WikiLocationCallback(WikiLocationsFragment wikiLocationsFragment) { this.wikiLocationsFragment = wikiLocationsFragment; } - @Override - public void callback(Location location) { + @Subscribe + public void handleLocationChanged(LocationChangedEvent event) { wikiLocationsFragment.setLastFetchSize(-1); wikiLocationsFragment.setAppObjects(new ArrayList<WikiAppObject>()); wikiLocationsFragment.updateLocationInfo(); diff --git a/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/wiki/WikiLocationProviderStatusCallback.java b/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/wiki/WikiLocationProviderStatusCallback.java index 8f50fcd..e192be7 100644 --- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/wiki/WikiLocationProviderStatusCallback.java +++ b/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/wiki/WikiLocationProviderStatusCallback.java @@ -1,14 +1,15 @@ package pl.tpolgrabia.urbanexplorer.callbacks.wiki; +import org.greenrobot.eventbus.Subscribe; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import pl.tpolgrabia.panoramiobindings.callback.ProviderStatusCallback; +import pl.tpolgrabia.urbanexplorer.events.ProviderStatusChangedEvent; import pl.tpolgrabia.urbanexplorer.fragments.WikiLocationsFragment; /** * Created by tpolgrabia on 24.09.16. */ -public class WikiLocationProviderStatusCallback implements ProviderStatusCallback { +public class WikiLocationProviderStatusCallback { private static final Logger lg = LoggerFactory.getLogger(WikiLocationProviderStatusCallback.class); private WikiLocationsFragment wikiLocationsFragment; @@ -16,9 +17,9 @@ public class WikiLocationProviderStatusCallback implements ProviderStatusCallbac this.wikiLocationsFragment = wikiLocationsFragment; } - @Override - public void callback(String provider, boolean enabled) { - if (enabled) { + @Subscribe + public void handleProviderStatusChanged(ProviderStatusChangedEvent event) { + if (event.isEnabled()) { lg.trace("Handling provider enabling - refreshing wiki listing"); wikiLocationsFragment.fetchWikiLocations(); } diff --git a/app/src/main/java/pl/tpolgrabia/urbanexplorer/fragments/WikiLocationsFragment.java b/app/src/main/java/pl/tpolgrabia/urbanexplorer/fragments/WikiLocationsFragment.java index 12e627e..cbe6820 100644 --- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/fragments/WikiLocationsFragment.java +++ b/app/src/main/java/pl/tpolgrabia/urbanexplorer/fragments/WikiLocationsFragment.java @@ -47,6 +47,8 @@ public class WikiLocationsFragment extends Fragment { private String currentGeocodedLocation; private GeocoderUtils geocoderUtils; private WikiUtils wikiUtils; + private WikiLocationCallback locationHandler; + private WikiLocationProviderStatusCallback providerHandler; public WikiLocationsFragment() { // Required empty public constructor @@ -78,10 +80,11 @@ public class WikiLocationsFragment extends Fragment { locationService = (LocationManager) getActivity().getSystemService(LOCATION_SERVICE); currentLocation = (TextView) inflatedView.findViewById(R.id.wiki_current_location); - MainActivity mainActivity = (MainActivity) getActivity(); - mainActivity.getLocationCallback().addCallback(new WikiLocationCallback(this)); + locationHandler = new WikiLocationCallback(this); + providerHandler = new WikiLocationProviderStatusCallback(this); - mainActivity.getLocationCallback().addProviderCallback(new WikiLocationProviderStatusCallback(this)); + EventBus.getDefault().register(locationHandler); + EventBus.getDefault().register(providerHandler); ListView locations = (ListView) inflatedView.findViewById(R.id.wiki_places); locations.setOnItemLongClickListener(new FetchWikiLocationsCallback(WikiLocationsFragment.this, appObjects)); @@ -156,6 +159,9 @@ public class WikiLocationsFragment extends Fragment { EventBus.getDefault().unregister(this); lg.trace("onDestroy {}", System.identityHashCode(this)); + EventBus.getDefault().unregister(locationHandler); + EventBus.getDefault().unregister(providerHandler); + WikiCacheUtils.saveWikiObjectsToCache(getActivity(), appObjects); } diff --git a/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/callback/ProviderStatusCallback.java b/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/callback/ProviderStatusCallback.java deleted file mode 100644 index 8af864b..0000000 --- a/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/callback/ProviderStatusCallback.java +++ /dev/null @@ -1,8 +0,0 @@ -package pl.tpolgrabia.panoramiobindings.callback; - -/** - * Created by Tomasz Półgrabia <tomasz.polgrabia@unicredit.eu> (c310702) on 19.09.2016. - */ -public interface ProviderStatusCallback { - void callback(String provider, boolean enabled); -} diff --git a/urbanexplorerutils/src/main/java/pl/tpolgrabia/urbanexplorerutils/callbacks/StandardLocationListenerCallback.java b/urbanexplorerutils/src/main/java/pl/tpolgrabia/urbanexplorerutils/callbacks/StandardLocationListenerCallback.java deleted file mode 100644 index 23d7564..0000000 --- a/urbanexplorerutils/src/main/java/pl/tpolgrabia/urbanexplorerutils/callbacks/StandardLocationListenerCallback.java +++ /dev/null @@ -1,11 +0,0 @@ -package pl.tpolgrabia.urbanexplorerutils.callbacks; - -import android.location.Location; - -/** - * Created by tpolgrabia on 28.08.16. - */ -public interface StandardLocationListenerCallback { - - void callback(Location location); -}