From 5b927dbaa1b834cb7ce72d6eabf4b4e8527500cd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tomasz=20P=C3=B3=C5=82grabia?= <tomasz.polgrabia@gmail.com>
Date: Sun, 20 Nov 2016 18:08:35 +0100
Subject: [PATCH] Removing panoramio.

---
 app/build.gradle                              |   2 +-
 .../urbanexplorer/MainActivity.java           |  78 +----
 .../geocoder/GeocodedLocationCallback.java    |  27 --
 ...etchAdditionalPanoramioPhotosCallback.java |  77 -----
 .../FetchPanoramioPhotosCallback.java         |  68 ----
 .../panoramio/PanoramioLocationCallback.java  |  31 --
 .../panoramio/PanoramioProviderCallback.java  |  29 --
 .../urbanexplorer/dto/MainActivityState.java  |   4 +-
 .../dto/panoramio/PanoramioCacheDto.java      |  70 ----
 .../events/PhotoInfoUpdateEvent.java          |  41 ---
 .../urbanexplorer/fragments/HomeFragment.java | 308 ------------------
 .../fragments/LoginFragment.java              |  30 --
 .../fragments/PanoramioAdapter.java           |  71 ----
 .../fragments/PanoramioShowerFragment.java    | 155 ---------
 .../PanoramioItemLongClickHandler.java        |  53 ---
 .../PanoramioLocationsScrollListener.java     |  58 ----
 .../PanoramioShowerSwitchHandler.java         |  24 --
 .../handlers/PanoramioSwitchHandler.java      |  42 ---
 .../utils/PanoramioCacheUtils.java            | 126 -------
 .../urbanexplorer/worker/PanoramioWorker.java |  69 ----
 panoramiobindings/.gitignore                  |   1 -
 panoramiobindings/build.gradle                |  42 ---
 panoramiobindings/proguard-rules.pro          |  17 -
 .../panoramiobindings/ApplicationTest.java    |  13 -
 .../src/main/AndroidManifest.xml              |  11 -
 .../panoramiobindings/PanoramioConstants.java |   8 -
 .../callback/PanoramioResponseCallback.java   |  11 -
 .../callback/PanoramioResponseStatus.java     |  10 -
 .../dto/PanoramioImageInfo.java               | 150 ---------
 .../dto/PanoramioMapLocation.java             |  51 ---
 .../dto/PanoramioResponse.java                |  63 ----
 .../PanoramioResponseNotExpected.java         |  12 -
 .../utils/PanoramioService.java               |  23 --
 .../utils/PanoramioUtils.java                 | 210 ------------
 .../src/main/res/values/strings.xml           |   3 -
 .../panoramiobindings/ExampleUnitTest.java    |  15 -
 settings.gradle                               |   2 +-
 37 files changed, 8 insertions(+), 1997 deletions(-)
 delete mode 100644 app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/geocoder/GeocodedLocationCallback.java
 delete mode 100644 app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/panoramio/FetchAdditionalPanoramioPhotosCallback.java
 delete mode 100644 app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/panoramio/FetchPanoramioPhotosCallback.java
 delete mode 100644 app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/panoramio/PanoramioLocationCallback.java
 delete mode 100644 app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/panoramio/PanoramioProviderCallback.java
 delete mode 100644 app/src/main/java/pl/tpolgrabia/urbanexplorer/dto/panoramio/PanoramioCacheDto.java
 delete mode 100644 app/src/main/java/pl/tpolgrabia/urbanexplorer/events/PhotoInfoUpdateEvent.java
 delete mode 100644 app/src/main/java/pl/tpolgrabia/urbanexplorer/fragments/HomeFragment.java
 delete mode 100644 app/src/main/java/pl/tpolgrabia/urbanexplorer/fragments/LoginFragment.java
 delete mode 100644 app/src/main/java/pl/tpolgrabia/urbanexplorer/fragments/PanoramioAdapter.java
 delete mode 100644 app/src/main/java/pl/tpolgrabia/urbanexplorer/fragments/PanoramioShowerFragment.java
 delete mode 100644 app/src/main/java/pl/tpolgrabia/urbanexplorer/handlers/PanoramioItemLongClickHandler.java
 delete mode 100644 app/src/main/java/pl/tpolgrabia/urbanexplorer/handlers/PanoramioLocationsScrollListener.java
 delete mode 100644 app/src/main/java/pl/tpolgrabia/urbanexplorer/handlers/PanoramioShowerSwitchHandler.java
 delete mode 100644 app/src/main/java/pl/tpolgrabia/urbanexplorer/handlers/PanoramioSwitchHandler.java
 delete mode 100644 app/src/main/java/pl/tpolgrabia/urbanexplorer/utils/PanoramioCacheUtils.java
 delete mode 100644 app/src/main/java/pl/tpolgrabia/urbanexplorer/worker/PanoramioWorker.java
 delete mode 100644 panoramiobindings/.gitignore
 delete mode 100644 panoramiobindings/build.gradle
 delete mode 100644 panoramiobindings/proguard-rules.pro
 delete mode 100644 panoramiobindings/src/androidTest/java/pl/tpolgrabia/panoramiobindings/ApplicationTest.java
 delete mode 100644 panoramiobindings/src/main/AndroidManifest.xml
 delete mode 100644 panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/PanoramioConstants.java
 delete mode 100644 panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/callback/PanoramioResponseCallback.java
 delete mode 100644 panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/callback/PanoramioResponseStatus.java
 delete mode 100644 panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/dto/PanoramioImageInfo.java
 delete mode 100644 panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/dto/PanoramioMapLocation.java
 delete mode 100644 panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/dto/PanoramioResponse.java
 delete mode 100644 panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/exceptions/PanoramioResponseNotExpected.java
 delete mode 100644 panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/utils/PanoramioService.java
 delete mode 100644 panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/utils/PanoramioUtils.java
 delete mode 100644 panoramiobindings/src/main/res/values/strings.xml
 delete mode 100644 panoramiobindings/src/test/java/pl/tpolgrabia/panoramiobindings/ExampleUnitTest.java

diff --git a/app/build.gradle b/app/build.gradle
index 54da986..7aff7d5 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -72,7 +72,7 @@ dependencies {
         // workaround issue #73
         exclude group: 'com.google.android', module: 'android'
     }
-    compile project(':panoramiobindings')
+
     compile project(':urbanexplorerutils')
     compile project(':wikibinding')
     compile project(':googleutils')
diff --git a/app/src/main/java/pl/tpolgrabia/urbanexplorer/MainActivity.java b/app/src/main/java/pl/tpolgrabia/urbanexplorer/MainActivity.java
index f0eb78c..06b455f 100644
--- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/MainActivity.java
+++ b/app/src/main/java/pl/tpolgrabia/urbanexplorer/MainActivity.java
@@ -16,14 +16,10 @@ 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.panoramiobindings.utils.PanoramioUtils;
 import pl.tpolgrabia.urbanexplorer.activities.SettingsActivity;
 import pl.tpolgrabia.urbanexplorer.callbacks.StandardLocationListener;
 import pl.tpolgrabia.urbanexplorer.dto.MainActivityState;
 import pl.tpolgrabia.urbanexplorer.events.RefreshSettingsEvent;
-import pl.tpolgrabia.urbanexplorer.fragments.HomeFragment;
-import pl.tpolgrabia.urbanexplorer.fragments.PanoramioShowerFragment;
 import pl.tpolgrabia.urbanexplorer.fragments.PlacesFragment;
 import pl.tpolgrabia.urbanexplorer.fragments.WikiLocationsFragment;
 import pl.tpolgrabia.urbanexplorer.handlers.*;
@@ -48,33 +44,27 @@ public class MainActivity extends ActionBarActivity {
     public static DisplayImageOptions rectOptions;
 
     private GestureDetectorCompat gestureDetector;
-    private MainActivityState currFrag = MainActivityState.PANORAMIO;
+    private MainActivityState currFrag = MainActivityState.WIKI;
     private StandardLocationListener locationCallback;
     private boolean locationServicesActivated = false;
     private GestureDetector.OnGestureListener swipeHandler;
-    private PanoramioImageInfo photoInfo;
     private ProgressDialog progressDlg;
-    private MainActivityState oldFrag = MainActivityState.PANORAMIO_SHOWER;
+    private MainActivityState oldFrag = MainActivityState.GOOGLE_PLACES;
     private boolean savedConfiguration;
     private static final Map<MainActivityState, Runnable> switchFragmentActions = new HashMap<>();
 
     private static final Map<Integer, String> fragTags = new HashMap<>();
 
     static {
-        fragTags.put(MainActivityState.PANORAMIO.getOrder(), HomeFragment.TAG);
         fragTags.put(MainActivityState.WIKI.getOrder(), WikiLocationsFragment.TAG);
         fragTags.put(MainActivityState.GOOGLE_PLACES.getOrder(), PlacesFragment.TAG);
     }
 
     public MainActivity() {
-        switchFragmentActions.put(MainActivityState.PANORAMIO_SHOWER, new PanoramioShowerSwitchHandler(this));
-        switchFragmentActions.put(MainActivityState.PANORAMIO, new PanoramioSwitchHandler(this));
         switchFragmentActions.put(MainActivityState.WIKI, new WikiSwitchHandler(this));
         switchFragmentActions.put(MainActivityState.GOOGLE_PLACES, new GooglePlacesSwitchHandler(this));
     }
 
-    private List<PanoramioImageInfo> photos;
-
     public StandardLocationListener getLocationCallback() {
         return locationCallback;
     }
@@ -105,7 +95,7 @@ public class MainActivity extends ActionBarActivity {
         HelperUtils.initErrorAndDebugHanlers(this);
         NetUtils.setGlobalProxyAuth(this);
 
-        currFrag = MainActivityState.PANORAMIO;
+        currFrag = MainActivityState.WIKI;
         progressDlg = new ProgressDialog(this);
         progressDlg.setCancelable(false);
 
@@ -119,12 +109,11 @@ public class MainActivity extends ActionBarActivity {
         // init fragments
         MainActivityState fragId = savedInstanceState != null
             ? (MainActivityState)savedInstanceState.getSerializable(AppConstants.FRAG_ID)
-            : MainActivityState.PANORAMIO;
+            : MainActivityState.WIKI;
 
         lg.trace("Restored orig frag id:  {}", fragId);
-        currFrag = fragId == null ? MainActivityState.PANORAMIO : fragId;
+        currFrag = fragId == null ? MainActivityState.WIKI : fragId;
         lg.trace("Set final frag id: {}", fragId);
-        photoInfo = savedInstanceState != null ? (PanoramioImageInfo) savedInstanceState.getSerializable(AppConstants.PHOTO_INFO) : null;
         boolean copySavedConfiguration = savedConfiguration =
             savedInstanceState != null && savedInstanceState.getBoolean(AppConstants.SAVED_CONFIG_KEY);
 
@@ -137,13 +126,6 @@ public class MainActivity extends ActionBarActivity {
     public void onBackPressed() {
         lg.debug("Back pressed");
 
-        switch(currFrag) {
-            case PANORAMIO_SHOWER:
-                photoInfo = null;
-                currFrag = MainActivityState.PANORAMIO;
-                break;
-        }
-
         super.onBackPressed();
     }
 
@@ -189,43 +171,6 @@ public class MainActivity extends ActionBarActivity {
         EventBus.getDefault().post(new RefreshEvent(this));
     }
 
-    public void resetPhotoInfo() {
-        this.photoInfo = null;
-    }
-
-    public void switchToPhoto(PanoramioImageInfo photoInfo) {
-        this.photoInfo = photoInfo;
-        this.currFrag = MainActivityState.PANORAMIO_SHOWER;
-        FragmentManager fragmentManager = getSupportFragmentManager();
-        FragmentTransaction ctx = fragmentManager.beginTransaction();
-
-        ctx.setCustomAnimations(R.anim.slide_in_down,
-            R.anim.slide_out_down,
-            R.anim.slide_in_up,
-            R.anim.slide_out_up);
-        Fragment frag = fragmentManager.findFragmentByTag(PanoramioShowerFragment.TAG);
-
-        if (frag != null) {
-            ctx.replace(R.id.fragments, frag);
-        } else {
-            Fragment panoramioShower = createShowerFragment(photoInfo);
-            ctx.replace(R.id.fragments, panoramioShower, PanoramioShowerFragment.TAG);
-        }
-        if (!savedConfiguration) {
-            ctx.addToBackStack(AppConstants.PHOTO_BACKSTACK);
-        }
-
-        ctx.commit();
-
-    }
-
-    public static PanoramioShowerFragment createShowerFragment(PanoramioImageInfo photoInfo) {
-        PanoramioShowerFragment panoramioShower = new PanoramioShowerFragment();
-        Bundle arguments = new Bundle();
-        arguments.putSerializable(PanoramioShowerFragment.PANORAMIO_PHOTO_ARG_KEY, photoInfo);
-        panoramioShower.setArguments(arguments);
-        return panoramioShower;
-    }
 
     private void switchFragment() {
 
@@ -233,10 +178,6 @@ public class MainActivity extends ActionBarActivity {
             return;
         }
 
-        if (!savedConfiguration) {
-            photoInfo = null;
-        }
-
         Runnable switchAction = switchFragmentActions.get(currFrag);
         if (switchAction != null) {
             switchAction.run();
@@ -385,7 +326,6 @@ public class MainActivity extends ActionBarActivity {
         super.onSaveInstanceState(outState);
         lg.trace("1 Saving current fragment id: {}", currFrag);
         outState.putSerializable(AppConstants.FRAG_ID, currFrag);
-        outState.putSerializable(AppConstants.PHOTO_INFO, photoInfo);
         outState.putBoolean(AppConstants.SAVED_CONFIG_KEY, true);
         lg.trace("2 Saving current fragment id: {}", currFrag);
     }
@@ -402,14 +342,6 @@ public class MainActivity extends ActionBarActivity {
         lg.trace("onStart {}", System.identityHashCode(this));
     }
 
-    public void setPhotos(List<PanoramioImageInfo> photos) {
-        this.photos = photos;
-    }
-
-    public PanoramioImageInfo getPhotoInfo() {
-        return photoInfo;
-    }
-
     @Subscribe
     public void handleLoadingStart(DataLoadingStartEvent event) {
         progressDlg.show();
diff --git a/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/geocoder/GeocodedLocationCallback.java b/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/geocoder/GeocodedLocationCallback.java
deleted file mode 100644
index f4377b8..0000000
--- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/geocoder/GeocodedLocationCallback.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package pl.tpolgrabia.urbanexplorer.callbacks.geocoder;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import pl.tpolgrabia.googleutils.callback.LocationGeoCoderCallback;
-import pl.tpolgrabia.urbanexplorer.fragments.HomeFragment;
-
-/**
- * Created by tpolgrabia on 21.09.16.
- */
-public class GeocodedLocationCallback implements LocationGeoCoderCallback {
-    private static final Logger lg = LoggerFactory.getLogger(GeocodedLocationCallback.class);
-    private HomeFragment homeFragment;
-
-    public GeocodedLocationCallback(HomeFragment homeFragment) {
-        this.homeFragment = homeFragment;
-    }
-
-    @Override
-    public void callback(int code, String message, String googleStatus, String geocodedLocation) {
-        lg.debug("Geocoded result code {}, message {}, status: {}, value {}",
-            code, message, googleStatus, geocodedLocation);
-
-        homeFragment.setCurrentGeocodedLocation(geocodedLocation);
-        homeFragment.updateLocationInfo();
-    }
-}
diff --git a/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/panoramio/FetchAdditionalPanoramioPhotosCallback.java b/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/panoramio/FetchAdditionalPanoramioPhotosCallback.java
deleted file mode 100644
index dcdbfef..0000000
--- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/panoramio/FetchAdditionalPanoramioPhotosCallback.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package pl.tpolgrabia.urbanexplorer.callbacks.panoramio;
-
-import android.support.v4.app.FragmentActivity;
-import android.view.View;
-import android.widget.ArrayAdapter;
-import android.widget.ListView;
-import android.widget.Toast;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import pl.tpolgrabia.panoramiobindings.callback.PanoramioResponseCallback;
-import pl.tpolgrabia.panoramiobindings.callback.PanoramioResponseStatus;
-import pl.tpolgrabia.urbanexplorer.R;
-import pl.tpolgrabia.panoramiobindings.dto.PanoramioImageInfo;
-import pl.tpolgrabia.urbanexplorer.fragments.HomeFragment;
-import pl.tpolgrabia.urbanexplorer.fragments.PanoramioAdapter;
-
-import java.util.List;
-
-/**
- * Created by tpolgrabia on 21.09.16.
- */
-public class FetchAdditionalPanoramioPhotosCallback implements PanoramioResponseCallback {
-    private static final Logger lg = LoggerFactory.getLogger(FetchAdditionalPanoramioPhotosCallback.class);
-    private HomeFragment homeFragment;
-    private final FragmentActivity activity;
-
-    public FetchAdditionalPanoramioPhotosCallback(HomeFragment homeFragment, FragmentActivity activity) {
-        this.homeFragment = homeFragment;
-        this.activity = activity;
-    }
-
-    @Override
-    public void callback(PanoramioResponseStatus status, List<PanoramioImageInfo> images, Long imagesCount) {
-        try {
-            lg.debug("Fetched with status: {}, images: {}, count: {}", status, images, imagesCount);
-            if (status != PanoramioResponseStatus.SUCCESS) {
-                return;
-            }
-
-            final View view = homeFragment.getView();
-            if (view == null) {
-                lg.debug("View still not initialized");
-                return;
-            }
-
-            ListView locations = (ListView) view.findViewById(R.id.locations);
-            if (locations == null) {
-                lg.trace("Empty locations");
-                return;
-            }
-            ArrayAdapter<PanoramioImageInfo> adapter = (ArrayAdapter<PanoramioImageInfo>) locations.getAdapter();
-            homeFragment.addPhotos(images);
-            lg.debug("Additional Photos size {} loaded. There are {} photos", images.size(), homeFragment.getPhotosCount());
-
-            if (homeFragment.getPhotosCount() <= 0) {
-                Toast.makeText(homeFragment.getActivity(), "No results", Toast.LENGTH_SHORT).show();
-            }
-
-            homeFragment.setNoMorePhotos(images.isEmpty());
-            if (adapter == null) {
-                locations.setAdapter(new PanoramioAdapter(activity, R.id.list_item, images));
-            } else {
-                adapter.addAll(images);
-            }
-
-            // TODO we can think about removing first items also and last if the number
-            // TODO of items exceeds the limit (to save the memory)
-
-            lg.debug("Finished Fetching additional photos count: {}", homeFragment.getPhotosCount());
-
-        } finally {
-            lg.trace("Releasing fetching lock");
-            homeFragment.getLoading().release();
-        }
-
-    }
-}
diff --git a/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/panoramio/FetchPanoramioPhotosCallback.java b/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/panoramio/FetchPanoramioPhotosCallback.java
deleted file mode 100644
index 6dbbb27..0000000
--- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/panoramio/FetchPanoramioPhotosCallback.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package pl.tpolgrabia.urbanexplorer.callbacks.panoramio;
-
-import android.support.v4.app.FragmentActivity;
-import android.view.View;
-import android.widget.ArrayAdapter;
-import android.widget.ListView;
-import android.widget.Toast;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import pl.tpolgrabia.panoramiobindings.callback.PanoramioResponseCallback;
-import pl.tpolgrabia.panoramiobindings.callback.PanoramioResponseStatus;
-import pl.tpolgrabia.urbanexplorer.MainActivity;
-import pl.tpolgrabia.urbanexplorer.R;
-import pl.tpolgrabia.panoramiobindings.dto.PanoramioImageInfo;
-import pl.tpolgrabia.urbanexplorer.fragments.HomeFragment;
-import pl.tpolgrabia.urbanexplorer.fragments.PanoramioAdapter;
-
-import java.util.List;
-
-/**
- * Created by tpolgrabia on 21.09.16.
- */
-public class FetchPanoramioPhotosCallback implements PanoramioResponseCallback {
-    private static final Logger lg = LoggerFactory.getLogger(FetchPanoramioPhotosCallback.class);
-
-    private HomeFragment homeFragment;
-    private final FragmentActivity activity;
-
-
-    public FetchPanoramioPhotosCallback(HomeFragment homeFragment, FragmentActivity activity) {
-        this.homeFragment = homeFragment;
-        this.activity = activity;
-    }
-
-    @Override
-    public void callback(PanoramioResponseStatus status, List<PanoramioImageInfo> images, Long imagesCount) {
-
-        lg.trace("Panoramio response status {}, images: {}, imagesCount: {}",
-            status,
-            images,
-            imagesCount);
-
-        ArrayAdapter<PanoramioImageInfo> adapter = new PanoramioAdapter(activity,
-            R.layout.location_item,
-            images);
-
-        if (images.isEmpty()) {
-            Toast.makeText(homeFragment.getActivity(), "No results", Toast.LENGTH_SHORT).show();
-        }
-        final View view = homeFragment.getView();
-        if (view == null) {
-            lg.trace("Fragment's view is not initialized");
-            return;
-        }
-
-        ListView locations = (ListView) view.findViewById(R.id.locations);
-        locations.setAdapter(adapter);
-        MainActivity mainActivity = (MainActivity) homeFragment.getActivity();
-        if (mainActivity == null) {
-            return;
-        }
-
-        mainActivity.setPhotos(images);
-
-        lg.trace("Photos size: {}", homeFragment.getPhotosCount());
-        mainActivity.hideProgress();
-    }
-}
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
deleted file mode 100644
index c7db1ae..0000000
--- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/panoramio/PanoramioLocationCallback.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package pl.tpolgrabia.urbanexplorer.callbacks.panoramio;
-
-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.urbanexplorer.fragments.HomeFragment;
-import pl.tpolgrabia.urbanexplorerutils.events.RefreshEvent;
-
-import java.util.ArrayList;
-
-/**
- * Created by tpolgrabia on 21.09.16.
- */
-public class PanoramioLocationCallback {
-    private static final Logger lg = LoggerFactory.getLogger(PanoramioLocationCallback.class);
-    private HomeFragment homeFragment;
-
-    public PanoramioLocationCallback(HomeFragment homeFragment) {
-        this.homeFragment = homeFragment;
-    }
-
-    @Subscribe
-    public void handleLocationChanged(LocationChangedEvent event) {
-        homeFragment.setNoMorePhotos(false);
-        homeFragment.setPhotos(new ArrayList<PanoramioImageInfo>());
-        EventBus.getDefault().post(new RefreshEvent(this));
-    }
-}
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
deleted file mode 100644
index 0b58bd7..0000000
--- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/callbacks/panoramio/PanoramioProviderCallback.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package pl.tpolgrabia.urbanexplorer.callbacks.panoramio;
-
-import org.greenrobot.eventbus.EventBus;
-import org.greenrobot.eventbus.Subscribe;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import pl.tpolgrabia.urbanexplorer.events.ProviderStatusChangedEvent;
-import pl.tpolgrabia.urbanexplorerutils.events.RefreshEvent;
-import pl.tpolgrabia.urbanexplorer.fragments.HomeFragment;
-
-/**
- * Created by tpolgrabia on 21.09.16.
- */
-public class PanoramioProviderCallback {
-    private static final Logger lg = LoggerFactory.getLogger(PanoramioProviderCallback.class);
-    private HomeFragment homeFragment;
-
-    public PanoramioProviderCallback(HomeFragment homeFragment) {
-        this.homeFragment = homeFragment;
-    }
-
-    @Subscribe
-    public void handleProviderStatusChanged(ProviderStatusChangedEvent event) {
-        if (event.isEnabled()) {
-            lg.trace("Handling provider enabling - refreshing panoramio listing");
-            EventBus.getDefault().post(new RefreshEvent(this));
-        }
-    }
-}
diff --git a/app/src/main/java/pl/tpolgrabia/urbanexplorer/dto/MainActivityState.java b/app/src/main/java/pl/tpolgrabia/urbanexplorer/dto/MainActivityState.java
index 36a0835..02c7da0 100644
--- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/dto/MainActivityState.java
+++ b/app/src/main/java/pl/tpolgrabia/urbanexplorer/dto/MainActivityState.java
@@ -4,10 +4,8 @@ package pl.tpolgrabia.urbanexplorer.dto;
  * Created by tpolgrabia on 19.09.16.
  */
 public enum MainActivityState {
-    PANORAMIO(0),
     WIKI(1),
-    GOOGLE_PLACES(2),
-    PANORAMIO_SHOWER(-1);
+    GOOGLE_PLACES(2);
 
     private final Integer order;
 
diff --git a/app/src/main/java/pl/tpolgrabia/urbanexplorer/dto/panoramio/PanoramioCacheDto.java b/app/src/main/java/pl/tpolgrabia/urbanexplorer/dto/panoramio/PanoramioCacheDto.java
deleted file mode 100644
index 01dc7ab..0000000
--- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/dto/panoramio/PanoramioCacheDto.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package pl.tpolgrabia.urbanexplorer.dto.panoramio;
-
-import pl.tpolgrabia.panoramiobindings.dto.PanoramioImageInfo;
-
-import java.io.Serializable;
-import java.util.Date;
-import java.util.List;
-
-/**
- * Created by tpolgrabia on 18.09.16.
- */
-public class PanoramioCacheDto implements Serializable{
-    private static final long serialVersionUID = -8856222832500878380L;
-    private List<PanoramioImageInfo> panoramioImages;
-    private Double latitude;
-    private Double longitude;
-    private Double altitude;
-    private Date fetchedAt;
-
-    public Date getFetchedAt() {
-        return fetchedAt;
-    }
-
-    public void setFetchedAt(Date fetchedAt) {
-        this.fetchedAt = fetchedAt;
-    }
-
-    public List<PanoramioImageInfo> getPanoramioImages() {
-        return panoramioImages;
-    }
-
-    public void setPanoramioImages(List<PanoramioImageInfo> panoramioImages) {
-        this.panoramioImages = panoramioImages;
-    }
-
-    public Double getLatitude() {
-        return latitude;
-    }
-
-    public void setLatitude(Double latitude) {
-        this.latitude = latitude;
-    }
-
-    public Double getLongitude() {
-        return longitude;
-    }
-
-    public void setLongitude(Double longitude) {
-        this.longitude = longitude;
-    }
-
-    public Double getAltitude() {
-        return altitude;
-    }
-
-    public void setAltitude(Double altitude) {
-        this.altitude = altitude;
-    }
-
-    @Override
-    public String toString() {
-        return "PanoramioCacheDto{" +
-            "panoramioImages=" + panoramioImages +
-            ", latitude=" + latitude +
-            ", longitude=" + longitude +
-            ", altitude=" + altitude +
-            ", fetchedAt=" + fetchedAt +
-            '}';
-    }
-}
diff --git a/app/src/main/java/pl/tpolgrabia/urbanexplorer/events/PhotoInfoUpdateEvent.java b/app/src/main/java/pl/tpolgrabia/urbanexplorer/events/PhotoInfoUpdateEvent.java
deleted file mode 100644
index 47cd7bc..0000000
--- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/events/PhotoInfoUpdateEvent.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package pl.tpolgrabia.urbanexplorer.events;
-
-import pl.tpolgrabia.panoramiobindings.dto.PanoramioImageInfo;
-import pl.tpolgrabia.urbanexplorer.handlers.PanoramioItemLongClickHandler;
-
-/**
- * Created by tpolgrabia on 26.10.16.
- */
-public class PhotoInfoUpdateEvent {
-    private Object source;
-    private PanoramioImageInfo photoInfo;
-
-    public PhotoInfoUpdateEvent(Object source, PanoramioImageInfo photoInfo) {
-        this.source = source;
-        this.photoInfo = photoInfo;
-    }
-
-    public Object getSource() {
-        return source;
-    }
-
-    public void setSource(Object source) {
-        this.source = source;
-    }
-
-    public PanoramioImageInfo getPhotoInfo() {
-        return photoInfo;
-    }
-
-    public void setPhotoInfo(PanoramioImageInfo photoInfo) {
-        this.photoInfo = photoInfo;
-    }
-
-    @Override
-    public String toString() {
-        return "PhotoInfoUpdateEvent{" +
-            "source=" + source +
-            ", photoInfo=" + photoInfo +
-            '}';
-    }
-}
diff --git a/app/src/main/java/pl/tpolgrabia/urbanexplorer/fragments/HomeFragment.java b/app/src/main/java/pl/tpolgrabia/urbanexplorer/fragments/HomeFragment.java
deleted file mode 100644
index bff6aa8..0000000
--- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/fragments/HomeFragment.java
+++ /dev/null
@@ -1,308 +0,0 @@
-package pl.tpolgrabia.urbanexplorer.fragments;
-
-import android.location.Location;
-import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentActivity;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ListView;
-import android.widget.TextView;
-import android.widget.Toast;
-import org.greenrobot.eventbus.EventBus;
-import org.greenrobot.eventbus.Subscribe;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import pl.tpolgrabia.googleutils.utils.GeocoderUtils;
-import pl.tpolgrabia.panoramiobindings.utils.PanoramioUtils;
-import pl.tpolgrabia.urbanexplorer.AppConstants;
-import pl.tpolgrabia.urbanexplorer.MainActivity;
-import pl.tpolgrabia.urbanexplorer.R;
-import pl.tpolgrabia.panoramiobindings.dto.PanoramioImageInfo;
-import pl.tpolgrabia.urbanexplorer.callbacks.geocoder.GeocodedLocationCallback;
-import pl.tpolgrabia.urbanexplorer.callbacks.panoramio.FetchAdditionalPanoramioPhotosCallback;
-import pl.tpolgrabia.urbanexplorer.callbacks.panoramio.PanoramioLocationCallback;
-import pl.tpolgrabia.urbanexplorer.callbacks.panoramio.PanoramioProviderCallback;
-import pl.tpolgrabia.urbanexplorer.dto.PanoramioRequest;
-import pl.tpolgrabia.urbanexplorer.worker.PanoramioWorker;
-import pl.tpolgrabia.urbanexplorerutils.events.DataLoadingFinishEvent;
-import pl.tpolgrabia.urbanexplorerutils.events.RefreshEvent;
-import pl.tpolgrabia.urbanexplorer.handlers.PanoramioItemLongClickHandler;
-import pl.tpolgrabia.urbanexplorer.handlers.PanoramioLocationsScrollListener;
-import pl.tpolgrabia.urbanexplorer.utils.*;
-import pl.tpolgrabia.urbanexplorerutils.utils.DebugUtils;
-import pl.tpolgrabia.urbanexplorerutils.utils.LocationUtils;
-import pl.tpolgrabia.urbanexplorerutils.utils.SettingsUtils;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.Semaphore;
-
-/**
- * A simple {@link Fragment} subclass.
- */
-public class HomeFragment extends Fragment  {
-
-    private static final Logger lg = LoggerFactory.getLogger(HomeFragment.class);
-
-    public static final String TAG = HomeFragment.class.getSimpleName();
-    public static final String PHOTO_LIST = "PHOTO_LIST_KEY";
-    private boolean initialized = false;
-    private View inflatedView;
-    private Semaphore loading;
-    private ArrayList<PanoramioImageInfo> photos;
-    private boolean noMorePhotos;
-    private String currentGeocodedLocation;
-    private GeocoderUtils geocoderUtils;
-    private PanoramioLocationCallback locationChangedHandler;
-    private PanoramioProviderCallback providerChangedHandler;
-
-    public HomeFragment() {
-        // Required empty public constructor
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        lg.trace("onCreate {}", System.identityHashCode(this));
-        EventBus.getDefault().register(this);
-        loading = new Semaphore(1, true);
-        noMorePhotos = false;
-        updateLocationInfo();
-    }
-
-    @Override
-    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
-        super.onActivityCreated(savedInstanceState);
-
-        locationChangedHandler = new PanoramioLocationCallback(this);
-        providerChangedHandler = new PanoramioProviderCallback(this);
-
-        EventBus.getDefault().register(locationChangedHandler);
-        EventBus.getDefault().register(providerChangedHandler);
-
-        geocoderUtils = new GeocoderUtils(getActivity(), AppConstants.GOOGLE_API_KEY);
-    }
-
-    public void updateGeocodedLocation() {
-        if (getActivity() == null) {
-            lg.debug("Activity still not attached");
-            return;
-        }
-
-        Location currLocation = LocationUtils.getLastKnownLocation(getActivity());
-        lg.debug("Current location is {}", currLocation);
-        if (currLocation == null) {
-            lg.debug("Current location is not available");
-            return;
-        }
-
-        geocoderUtils.getGeoCodedLocation(
-            currLocation.getLatitude(),
-            currLocation.getLongitude(),
-            new GeocodedLocationCallback(this));
-
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                             Bundle savedInstanceState) {
-        // Inflate the layout for this fragment
-        lg.trace("TAG: {}", getTag());
-        DebugUtils.dumpFragments(getFragmentManager().getFragments());
-
-        inflatedView = inflater.inflate(R.layout.fragment_home, container, false);
-        ListView locations = (ListView)inflatedView.findViewById(R.id.locations);
-        final ListView finalLocations = locations;
-        locations.setOnItemLongClickListener(new PanoramioItemLongClickHandler(this, finalLocations));
-
-        initialized = true;
-
-        lg.trace("Saved instance state {}", savedInstanceState);
-        if (photos == null) {
-            photos = PanoramioCacheUtils.loadPhotosFromCache(this, savedInstanceState);
-        }
-
-        locations.setAdapter(new PanoramioAdapter(getActivity(), R.layout.location_item, photos));
-        lg.trace("Photos initialized {}", photos);
-
-        lg.trace("Photos size: {}", photos.size());
-        locations.setOnScrollListener(new PanoramioLocationsScrollListener(this));
-        return inflatedView;
-    }
-
-    public void fetchAdditionalPhotos() throws InterruptedException {
-        final FragmentActivity activity = getActivity();
-        if (activity == null) {
-            lg.trace("Activity shouldn't be null. No headless fragment");
-            return;
-        }
-        MainActivity mainActivity = (MainActivity)getActivity();
-        if (noMorePhotos) {
-            lg.trace("No more photos - last query was zero result");
-            EventBus.getDefault().post(new DataLoadingFinishEvent(this));
-            return;
-        }
-        if (!initialized) {
-            lg.trace("Fetching additional photos blocked till system is initialized");
-            EventBus.getDefault().post(new DataLoadingFinishEvent(this));
-            return;
-        }
-        if (getView() == null) {
-            lg.trace("Application still not initialized");
-            EventBus.getDefault().post(new DataLoadingFinishEvent(this));
-            return;
-        }
-        final Location location = LocationUtils.getLastKnownLocation(activity);
-        if (location == null) {
-            lg.info("Location still not available");
-            Toast.makeText(activity, "Location still not available", Toast.LENGTH_SHORT).show();
-            EventBus.getDefault().post(new DataLoadingFinishEvent(this));
-            return;
-        }
-        lg.trace("Fetching additional photos. Trying loading acquirng lock");
-        if (!loading.tryAcquire()) {
-            lg.info("Fetching additional photos. Loading in progress");
-            return;
-        }
-        int offset = photos.size();
-        lg.debug("Fetching additional photos offset: {}, count: {}", offset, SettingsUtils.getPanoramioBulkDataSize(getActivity()));
-        PanoramioUtils.fetchPanoramioImages(
-            activity,
-            location.getLatitude(),
-            location.getLongitude(),
-            SettingsUtils.fetchRadiusX(getActivity()),
-            SettingsUtils.fetchRadiusY(getActivity()),
-            (long)(offset),
-            fetchLocationPageSize(),
-            new FetchAdditionalPanoramioPhotosCallback(this, activity)
-        );
-    }
-
-    private Long fetchLocationPageSize() {
-        return Long.valueOf(SettingsUtils.getPanoramioBulkDataSize(getActivity()));
-    }
-
-    @Override
-    public void onResume() {
-        super.onResume();
-        getActivity().setTitle("Panoramio search");
-        lg.trace("onResume");
-        if (currentGeocodedLocation != null) {
-            updateLocationInfo();
-        }
-        else {
-            updateGeocodedLocation();
-        }
-    }
-
-    public void updateLocationInfo() {
-        lg.trace("Update locations info");
-        final View view = getView();
-        if (view == null) {
-            lg.warn("Fragment has no view");
-            return;
-        }
-        final TextView locationInfo = (TextView) view.findViewById(R.id.locationInfo);
-        final FragmentActivity activity = getActivity();
-        if (activity == null) {
-            lg.warn("Activity should'nt be null. No headless fragment");
-            return;
-        }
-        final Location currLocation = LocationUtils.getLastKnownLocation(activity);
-        lg.trace("Current location: {}, locationInfo: {}", currLocation, locationInfo);
-        locationInfo.setText(currentGeocodedLocation);
-    }
-
-    @Override
-    public void onDestroy() {
-        super.onDestroy();
-        lg.trace("onDestroy");
-        EventBus.getDefault().unregister(this);
-        PanoramioCacheUtils.savePhotosToCache(getActivity(), photos);
-
-        // FIXME true reason is that hot swapping doesn't fire the activityCreated event while it was recreated
-        if (locationChangedHandler != null) {
-            // FIXME only avoiding crash
-            EventBus.getDefault().unregister(locationChangedHandler);
-        }
-        if (providerChangedHandler != null) {
-            // FIXME only avoiding crash
-            EventBus.getDefault().unregister(providerChangedHandler);
-        }
-    }
-
-    @Override
-    public void onSaveInstanceState(Bundle outState) {
-        lg.trace("Saving state");
-        super.onSaveInstanceState(outState);
-        outState.putSerializable(PHOTO_LIST, photos);
-        lg.trace("Saved photos: {}", photos);
-    }
-
-    @Subscribe
-    public void refresh(RefreshEvent refreshEvent) {
-        lg.debug("Refreshing event...");
-        lg.trace("Fetch panoramio photos");
-        final FragmentActivity activity = getActivity();
-        if (activity == null) {
-            lg.warn("Activity shouldn't be null. It isn't headless fragment");
-            return;
-        }
-
-        final Location location = LocationUtils.getLastKnownLocation(activity);
-        if (location == null) {
-            lg.info("Location is still not available");
-            EventBus.getDefault().post(new DataLoadingFinishEvent(this));
-            Toast.makeText(getActivity(), "Location is still not available", Toast.LENGTH_SHORT).show();
-            return;
-        }
-
-        PanoramioRequest req = new PanoramioRequest();
-        req.setLatitude(location.getLatitude());
-        req.setLongitude(location.getLongitude());
-        req.setOffset(0L);
-        req.setCount(fetchLocationPageSize());
-        req.setRadiusX(SettingsUtils.fetchRadiusX(getActivity()));
-        req.setRadiusY(SettingsUtils.fetchRadiusY(getActivity()));
-        new PanoramioWorker(this).execute(req);
-
-//        PanoramioUtils.fetchPanoramioImages(
-//            activity,
-//            location.getLatitude(),
-//            location.getLongitude(),
-//            SettingsUtils.fetchRadiusX(getActivity()),
-//            SettingsUtils.fetchRadiusY(getActivity()),
-//            0L,
-//            fetchLocationPageSize(),
-//            new FetchPanoramioPhotosCallback(this, activity)
-//        );
-    }
-
-    public Semaphore getLoading() {
-        return loading;
-    }
-
-    public void setNoMorePhotos(boolean noMorePhotos) {
-        this.noMorePhotos = noMorePhotos;
-    }
-
-    public int getPhotosCount() {
-        return photos.size();
-    }
-
-    public void addPhotos(List<PanoramioImageInfo> images) {
-        photos.addAll(images);
-    }
-
-    public void setCurrentGeocodedLocation(String currentGeocodedLocation) {
-        this.currentGeocodedLocation = currentGeocodedLocation;
-    }
-
-    public void setPhotos(ArrayList<PanoramioImageInfo> photos) {
-        this.photos = photos;
-    }
-
-}
diff --git a/app/src/main/java/pl/tpolgrabia/urbanexplorer/fragments/LoginFragment.java b/app/src/main/java/pl/tpolgrabia/urbanexplorer/fragments/LoginFragment.java
deleted file mode 100644
index 910f173..0000000
--- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/fragments/LoginFragment.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package pl.tpolgrabia.urbanexplorer.fragments;
-
-
-import android.os.Bundle;
-import android.support.v4.app.Fragment;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import pl.tpolgrabia.urbanexplorer.R;
-
-/**
- * A simple {@link Fragment} subclass.
- */
-public class LoginFragment extends Fragment {
-
-
-    public LoginFragment() {
-        // Required empty public constructor
-    }
-
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                             Bundle savedInstanceState) {
-        // Inflate the layout for this fragment
-        return inflater.inflate(R.layout.fragment_login, container, false);
-    }
-
-}
diff --git a/app/src/main/java/pl/tpolgrabia/urbanexplorer/fragments/PanoramioAdapter.java b/app/src/main/java/pl/tpolgrabia/urbanexplorer/fragments/PanoramioAdapter.java
deleted file mode 100644
index 67cbb32..0000000
--- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/fragments/PanoramioAdapter.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package pl.tpolgrabia.urbanexplorer.fragments;
-
-import android.content.Context;
-import android.graphics.BitmapFactory;
-import android.support.v4.app.FragmentActivity;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ArrayAdapter;
-import android.widget.ImageView;
-import android.widget.TextView;
-import com.androidquery.AQuery;
-import com.nostra13.universalimageloader.core.ImageLoader;
-import pl.tpolgrabia.urbanexplorer.MainActivity;
-import pl.tpolgrabia.urbanexplorer.R;
-import pl.tpolgrabia.panoramiobindings.dto.PanoramioImageInfo;
-import pl.tpolgrabia.urbanexplorerutils.utils.NetUtils;
-
-import java.util.List;
-
-/**
- * Created by tpolgrabia on 27.08.16.
- */
-public class PanoramioAdapter extends ArrayAdapter<PanoramioImageInfo> {
-    public static final int MAX_OWNERNAME_LENGTH = 10;
-    public static final int MAX_PANORAMIO_DESCRIPTION_LENGTH = 96;
-
-    public PanoramioAdapter(FragmentActivity ctx, int location_item, List<PanoramioImageInfo> photosDescriptions) {
-        super(ctx, location_item, photosDescriptions);
-    }
-
-    @Override
-    public View getView(int position, View convertView, ViewGroup parent) {
-        LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-        View itemView = convertView != null ? convertView : inflater.inflate(R.layout.location_item, parent, false);
-        final PanoramioImageInfo item = getItem(position);
-
-        if (item.getPhotoId() != null && item.getPhotoId().equals(itemView.getTag())) {
-            // if it is the the same object f.e. add new objects to the collection (without the slide)
-            // the refresh makes blinking without this
-            return itemView;
-        }
-
-        TextView locDesc = (TextView) itemView.findViewById(R.id.location_description);
-        itemView.setTag(item.getPhotoId());
-        final String description = item.getPhotoTitle();
-        final String trimmedDescription =
-            description != null && description.length() > MAX_PANORAMIO_DESCRIPTION_LENGTH
-                ? description.substring(0, MAX_PANORAMIO_DESCRIPTION_LENGTH) + "..."
-                : description;
-        locDesc.setText(trimmedDescription);
-        final String photoUrl = item.getPhotoFileUrl();
-        ImageView photoImg = (ImageView) itemView.findViewById(R.id.photo_img);
-        photoImg.setImageBitmap(BitmapFactory.decodeResource(getContext().getResources(), R.drawable.noimage));
-        ImageLoader.getInstance().displayImage(photoUrl, photoImg, MainActivity.options);
-
-
-        TextView authorWidget = (TextView) itemView.findViewById(R.id.location_author);
-        final String ownerName = item.getOwnerName();
-        final String trimmedOwnerName =
-            ownerName != null && ownerName.length() > MAX_OWNERNAME_LENGTH
-                ? ownerName.substring(0, MAX_OWNERNAME_LENGTH) + "..."
-                : ownerName;
-        authorWidget.setText(trimmedOwnerName);
-
-        TextView uploadDateWidget = (TextView) itemView.findViewById(R.id.location_upload_date);
-        uploadDateWidget.setText(item.getUploadDate());
-
-        return itemView;
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/pl/tpolgrabia/urbanexplorer/fragments/PanoramioShowerFragment.java b/app/src/main/java/pl/tpolgrabia/urbanexplorer/fragments/PanoramioShowerFragment.java
deleted file mode 100644
index c9e6264..0000000
--- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/fragments/PanoramioShowerFragment.java
+++ /dev/null
@@ -1,155 +0,0 @@
-package pl.tpolgrabia.urbanexplorer.fragments;
-
-
-import android.content.Intent;
-import android.net.Uri;
-import android.os.Bundle;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentActivity;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-import com.nostra13.universalimageloader.core.ImageLoader;
-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.MainActivity;
-import pl.tpolgrabia.urbanexplorer.R;
-import pl.tpolgrabia.urbanexplorer.events.PhotoInfoUpdateEvent;
-
-/**
- * A simple {@link Fragment} subclass.
- */
-public class PanoramioShowerFragment extends Fragment {
-
-    private static final Logger lg = LoggerFactory.getLogger(PanoramioShowerFragment.class);
-
-
-    public static final String PANORAMIO_PHOTO_ARG_KEY = "PANORAMIO_PHOTO_ARG_KEY";
-    public static final String TAG = "PANORAMIO_TAG";
-    private TextView photoTitle;
-    private TextView photoUploadDate;
-    private TextView photoAuthor;
-    private TextView photoUrl;
-    private TextView photoLocation;
-
-    public PanoramioShowerFragment() {
-        // Required empty public constructor
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        EventBus.getDefault().register(this);
-        lg.debug("Registering...");
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                             Bundle savedInstanceState) {
-        // Inflate the layout for this fragment
-        Bundle arguments = getArguments();
-        final View inflatedView = inflater.inflate(R.layout.fragment_panoramio_shower, container, false);
-
-        if (arguments == null) {
-            return inflatedView;
-        }
-
-        final PanoramioImageInfo imageInfo = (PanoramioImageInfo) arguments.getSerializable(PANORAMIO_PHOTO_ARG_KEY);
-
-        if (imageInfo == null) {
-            return inflatedView;
-        }
-
-        setContent(inflatedView, imageInfo);
-
-        return inflatedView;
-    }
-
-    private void setContent(View view, final PanoramioImageInfo imageInfo) {
-        if (imageInfo != null) {
-            ImageLoader.getInstance().displayImage(
-                imageInfo.getPhotoFileUrl(),
-                (ImageView) view.findViewById(R.id.photo_container),
-                MainActivity.rectOptions);
-
-            photoTitle = (TextView)view.findViewById(R.id.photo_title);
-            photoTitle.setText(imageInfo.getPhotoTitle());
-
-            photoUploadDate = (TextView)view.findViewById(R.id.photo_upload);
-            photoUploadDate.setText(imageInfo.getUploadDate());
-
-            photoAuthor = (TextView)view.findViewById(R.id.photo_author);
-            photoAuthor.setText(imageInfo.getOwnerName());
-
-            photoUrl = (TextView)view.findViewById(R.id.photo_url);
-            photoUrl.setText(imageInfo.getPhotoUrl());
-            photoUrl.setOnLongClickListener(new View.OnLongClickListener() {
-                @Override
-                public boolean onLongClick(View v) {
-                    Intent intent = new Intent(Intent.ACTION_VIEW,
-                        Uri.parse(imageInfo.getPhotoUrl()));
-                    startActivity(intent);
-                    return true;
-                }
-            });
-
-            photoLocation = (TextView)view.findViewById(R.id.photo_location);
-            photoLocation.setText(imageInfo.getLatitude() + "," + imageInfo.getLongitude());
-            photoLocation.setOnLongClickListener(new View.OnLongClickListener() {
-                @Override
-                public boolean onLongClick(View v) {
-                    Intent intent = new Intent(Intent.ACTION_VIEW,
-                            Uri.parse("http://maps.google.com/maps?daddr=" + imageInfo.getLatitude() + "," +
-                                    imageInfo.getLongitude()));
-                    startActivity(intent);
-                    return true;
-                }
-            });
-
-        }
-    }
-
-    @Subscribe
-    public void handlePhotoInfoUpdate(PhotoInfoUpdateEvent event) {
-        lg.debug("Photo event: {}", event);
-        if (getView() == null) {
-            lg.debug("View is not available");
-            return;
-        }
-
-        final PanoramioImageInfo photoInfo = event.getPhotoInfo();
-        if (photoInfo == null) {
-            lg.debug("Photo info is not available");
-            return;
-        }
-
-        setContent(getView(), photoInfo);
-
-        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
-            0,
-            LinearLayout.LayoutParams.MATCH_PARENT,
-            1);
-        getView().setLayoutParams(params);
-    }
-
-    @Override
-    public void onDestroy() {
-        super.onDestroy();
-
-        EventBus.getDefault().unregister(this);
-        lg.debug("Unregistering...");
-
-        FragmentActivity acc = getActivity();
-        if (acc != null) {
-            MainActivity mainActivity = (MainActivity)acc;
-            mainActivity.resetPhotoInfo();
-        }
-    }
-    
-}
diff --git a/app/src/main/java/pl/tpolgrabia/urbanexplorer/handlers/PanoramioItemLongClickHandler.java b/app/src/main/java/pl/tpolgrabia/urbanexplorer/handlers/PanoramioItemLongClickHandler.java
deleted file mode 100644
index 64bdf1e..0000000
--- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/handlers/PanoramioItemLongClickHandler.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package pl.tpolgrabia.urbanexplorer.handlers;
-
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.AdapterView;
-import android.widget.LinearLayout;
-import android.widget.ListView;
-import org.greenrobot.eventbus.EventBus;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import pl.tpolgrabia.panoramiobindings.utils.PanoramioUtils;
-import pl.tpolgrabia.urbanexplorer.AppConstants;
-import pl.tpolgrabia.urbanexplorer.MainActivity;
-import pl.tpolgrabia.panoramiobindings.dto.PanoramioImageInfo;
-import pl.tpolgrabia.urbanexplorer.events.PhotoInfoUpdateEvent;
-import pl.tpolgrabia.urbanexplorer.fragments.HomeFragment;
-import pl.tpolgrabia.urbanexplorer.fragments.PanoramioAdapter;
-
-/**
- * Created by tpolgrabia on 21.09.16.
- */
-public class PanoramioItemLongClickHandler implements AdapterView.OnItemLongClickListener {
-
-    private static final Logger lg = LoggerFactory.getLogger(PanoramioItemLongClickHandler.class);
-
-    private HomeFragment homeFragment;
-    private final ListView finalLocations;
-
-    public PanoramioItemLongClickHandler(HomeFragment homeFragment, ListView finalLocations) {
-        this.homeFragment = homeFragment;
-        this.finalLocations = finalLocations;
-    }
-
-    @Override
-    public boolean onItemLongClick(AdapterView<?> adapterView, View view, int pos, long rowId) {
-        PanoramioAdapter panAdapter = (PanoramioAdapter) finalLocations.getAdapter();
-        PanoramioImageInfo photoInfo = panAdapter.getItem(pos);
-        MainActivity activity = (MainActivity) homeFragment.getActivity();
-        if (PanoramioSwitchHandler.enoughLargeAndHorizontal(activity)) {
-            lg.debug("Sending panoramio image event");
-            EventBus.getDefault().post(new PhotoInfoUpdateEvent(this, photoInfo));
-            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
-                0,
-                LinearLayout.LayoutParams.MATCH_PARENT,
-                1);
-            View layout = homeFragment.getView();
-            layout.setLayoutParams(params);
-        } else {
-            activity.switchToPhoto(photoInfo);
-        }
-        return false;
-    }
-}
diff --git a/app/src/main/java/pl/tpolgrabia/urbanexplorer/handlers/PanoramioLocationsScrollListener.java b/app/src/main/java/pl/tpolgrabia/urbanexplorer/handlers/PanoramioLocationsScrollListener.java
deleted file mode 100644
index a94542d..0000000
--- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/handlers/PanoramioLocationsScrollListener.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package pl.tpolgrabia.urbanexplorer.handlers;
-
-import android.view.View;
-import android.widget.AbsListView;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import pl.tpolgrabia.urbanexplorer.fragments.HomeFragment;
-
-/**
- * Created by tpolgrabia on 21.09.16.
- */
-public class PanoramioLocationsScrollListener implements AbsListView.OnScrollListener {
-
-    private static final Logger lg = LoggerFactory.getLogger(PanoramioLocationsScrollListener.class);
-    private HomeFragment homeFragment;
-
-    public PanoramioLocationsScrollListener(HomeFragment homeFragment) {
-        this.homeFragment = homeFragment;
-    }
-
-    @Override
-    public void onScrollStateChanged(AbsListView view, int scrollState) {
-
-    }
-
-
-    @Override
-    public void onScroll(AbsListView view,
-                         int firstVisibleItem,
-                         int visibleItemCount,
-                         int totalItemCount) {
-
-        try {
-
-            if (firstVisibleItem <= 0) {
-                // scrolled to the top
-                lg.trace("Scrolled to the top");
-            }
-
-            if (firstVisibleItem + visibleItemCount >= totalItemCount) {
-                lg.trace("Scrolled to the bottom");
-                // scrolled to the bottom
-                final View fragView = homeFragment.getView();
-                if (fragView == null) {
-                    lg.trace("Frag still not initialized");
-                    return;
-                }
-
-                homeFragment.fetchAdditionalPhotos();
-
-            }
-
-        } catch (InterruptedException e) {
-            lg.error("Aquiring lock interrupted exception", e);
-        }
-
-    }
-}
diff --git a/app/src/main/java/pl/tpolgrabia/urbanexplorer/handlers/PanoramioShowerSwitchHandler.java b/app/src/main/java/pl/tpolgrabia/urbanexplorer/handlers/PanoramioShowerSwitchHandler.java
deleted file mode 100644
index d710a2c..0000000
--- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/handlers/PanoramioShowerSwitchHandler.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package pl.tpolgrabia.urbanexplorer.handlers;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import pl.tpolgrabia.urbanexplorer.MainActivity;
-
-/**
- * Created by tpolgrabia on 21.09.16.
- */
-public class PanoramioShowerSwitchHandler implements Runnable {
-
-    private static final Logger lg = LoggerFactory.getLogger(PanoramioShowerSwitchHandler.class);
-    private final MainActivity mainActivity;
-
-    public PanoramioShowerSwitchHandler(MainActivity mainActivity) {
-        this.mainActivity = mainActivity;
-    }
-
-    @Override
-    public void run() {
-        lg.debug("Switching to panoramio shower");
-        mainActivity.switchToPhoto(mainActivity.getPhotoInfo());
-    }
-}
diff --git a/app/src/main/java/pl/tpolgrabia/urbanexplorer/handlers/PanoramioSwitchHandler.java b/app/src/main/java/pl/tpolgrabia/urbanexplorer/handlers/PanoramioSwitchHandler.java
deleted file mode 100644
index 9477b9c..0000000
--- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/handlers/PanoramioSwitchHandler.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package pl.tpolgrabia.urbanexplorer.handlers;
-
-import android.app.Activity;
-import android.content.Context;
-import android.util.DisplayMetrics;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import pl.tpolgrabia.panoramiobindings.utils.PanoramioUtils;
-import pl.tpolgrabia.urbanexplorer.AppConstants;
-import pl.tpolgrabia.urbanexplorer.MainActivity;
-import pl.tpolgrabia.urbanexplorer.fragments.HomeFragment;
-import pl.tpolgrabia.urbanexplorer.fragments.PanoramioShowerFragment;
-import pl.tpolgrabia.urbanexplorer.fragments.WikiLocationsFragment;
-
-/**
- * Created by tpolgrabia on 21.09.16.
- */
-public class PanoramioSwitchHandler implements Runnable {
-
-    private static final Logger lg = LoggerFactory.getLogger(PanoramioSwitchHandler.class);
-    private final MainActivity mainActivity;
-
-    public PanoramioSwitchHandler(MainActivity mainActivity) {
-        this.mainActivity = mainActivity;
-    }
-
-    @Override
-    public void run() {
-        lg.debug("Switching to home fragment");
-        mainActivity.switchFragment(new HomeFragment(), HomeFragment.TAG);
-        if (enoughLargeAndHorizontal(mainActivity)) {
-            mainActivity.addFragment(MainActivity.createShowerFragment(null), PanoramioShowerFragment.TAG);
-            // mainActivity.addFragment(new WikiLocationsFragment(), WikiLocationsFragment.TAG);
-        }
-    }
-
-    public static boolean enoughLargeAndHorizontal(Activity ctx) {
-        DisplayMetrics metrics = PanoramioUtils.calcMetrics(ctx);
-        return metrics.widthPixels >= metrics.heightPixels // horizontal
-            && PanoramioUtils.calcDiag(ctx) >= AppConstants.PANORAMIO_SHOWER_SIDEBAR_THRESHOLD;
-    }
-}
diff --git a/app/src/main/java/pl/tpolgrabia/urbanexplorer/utils/PanoramioCacheUtils.java b/app/src/main/java/pl/tpolgrabia/urbanexplorer/utils/PanoramioCacheUtils.java
deleted file mode 100644
index 098bd8d..0000000
--- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/utils/PanoramioCacheUtils.java
+++ /dev/null
@@ -1,126 +0,0 @@
-package pl.tpolgrabia.urbanexplorer.utils;
-
-import android.content.Context;
-import android.location.Location;
-import android.os.Bundle;
-import com.google.gson.Gson;
-import com.google.gson.stream.JsonReader;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import pl.tpolgrabia.panoramiobindings.dto.PanoramioImageInfo;
-import pl.tpolgrabia.urbanexplorer.AppConstants;
-import pl.tpolgrabia.urbanexplorer.dto.panoramio.PanoramioCacheDto;
-import pl.tpolgrabia.urbanexplorer.fragments.HomeFragment;
-import pl.tpolgrabia.urbanexplorerutils.utils.LocationUtils;
-
-import java.io.*;
-import java.util.ArrayList;
-import java.util.GregorianCalendar;
-
-/**
- * Created by tpolgrabia on 25.09.16.
- */
-public class PanoramioCacheUtils {
-    private static final Logger lg = LoggerFactory.getLogger(PanoramioCacheUtils.class);
-
-    private PanoramioCacheUtils() {
-        /**
-         * EMPTY
-         */
-    }
-    
-    public static ArrayList<PanoramioImageInfo> loadPhotosFromCache(HomeFragment homeFragment, Bundle savedBundleSettings) {
-        ArrayList<PanoramioImageInfo> photos;
-
-        if (savedBundleSettings == null) {
-            return new ArrayList<>();
-        }
-
-        final Serializable serPhotos = savedBundleSettings.getSerializable(HomeFragment.PHOTO_LIST);
-        lg.trace("Photo list serPhotos {}", serPhotos);
-        photos = (ArrayList<PanoramioImageInfo>) serPhotos;
-
-        if (photos != null && !photos.isEmpty()) {
-            // we are using from serializable bundle photos
-            return photos;
-        } else {
-            // maybe we find something in our cache file
-            Reader reader = null;
-            try {
-                reader =
-                    new InputStreamReader(
-                        new FileInputStream(
-                            new File(homeFragment.getActivity().getCacheDir(),
-                                AppConstants.PANORAMIO_CACHE_FILENAME)));
-
-                PanoramioCacheDto dto = new Gson().fromJson(new JsonReader(reader), PanoramioCacheDto.class);
-                if (dto == null) {
-                    lg.trace("Sorry, photos I/O cache is null");
-                    return new ArrayList<>();
-                }
-
-                photos = new ArrayList<>(dto.getPanoramioImages());
-                lg.trace("Photos size from I/O cache is {}", photos.size());
-                lg.trace("I've read photos from I/O cache");
-                return photos;
-
-            } catch (FileNotFoundException e) {
-                lg.error("File not found", e);
-                return new ArrayList<>();
-            } catch (IOException e) {
-                lg.error("I/O error", e);
-                return new ArrayList<>();
-            } catch (Throwable t) {
-                lg.error("Throwable", t);
-                return new ArrayList<>();
-            } finally {
-                if (reader != null) {
-                    try {
-                        reader.close();
-                    } catch (IOException e) {
-                        lg.error("Error closing reader - I/O error", e);
-                    }
-                }
-            }
-        }
-    }
-
-    public static void savePhotosToCache(Context ctx, ArrayList<PanoramioImageInfo> photos) {
-        File cacheDir = ctx.getCacheDir();
-        BufferedWriter br = null;
-        try {
-            br = new BufferedWriter(
-                new OutputStreamWriter(
-                    new FileOutputStream(
-                        new File(cacheDir, AppConstants.PANORAMIO_CACHE_FILENAME))));
-
-            PanoramioCacheDto dto = new PanoramioCacheDto();
-            dto.setPanoramioImages(photos);
-
-            Location location = LocationUtils.getLastKnownLocation(ctx);
-            if (location != null) {
-                dto.setLongitude(location.getLongitude());
-                dto.setLatitude(location.getLatitude());
-                dto.setAltitude(location.getAltitude());
-            }
-
-            dto.setFetchedAt(new GregorianCalendar().getTime());
-            // FIXME this should be a fetch time, not persist time
-
-            new Gson().toJson(dto, br);
-
-        } catch (FileNotFoundException e) {
-            lg.error("File not found", e);
-        } catch (IOException e) {
-            lg.error("I/O Exception", e);
-        } finally {
-            if (br != null) {
-                try {
-                    br.close();
-                } catch (IOException e) {
-                    lg.error("I/O error during photos cache saving", e);
-                }
-            }
-        }
-    }
-}
diff --git a/app/src/main/java/pl/tpolgrabia/urbanexplorer/worker/PanoramioWorker.java b/app/src/main/java/pl/tpolgrabia/urbanexplorer/worker/PanoramioWorker.java
deleted file mode 100644
index a812fc5..0000000
--- a/app/src/main/java/pl/tpolgrabia/urbanexplorer/worker/PanoramioWorker.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package pl.tpolgrabia.urbanexplorer.worker;
-
-import android.os.AsyncTask;
-import okhttp3.ResponseBody;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import pl.tpolgrabia.panoramiobindings.dto.PanoramioResponse;
-import pl.tpolgrabia.panoramiobindings.utils.PanoramioUtils;
-import pl.tpolgrabia.urbanexplorer.dto.PanoramioRequest;
-import pl.tpolgrabia.urbanexplorer.fragments.HomeFragment;
-import retrofit2.Response;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Created by tpolgrabia on 19.11.16.
- */
-public class PanoramioWorker extends AsyncTask<PanoramioRequest, Integer, List<PanoramioResponse>> {
-
-    private static final Logger lg = LoggerFactory.getLogger(PanoramioWorker.class);
-    private final HomeFragment homeFragment;
-
-    public PanoramioWorker(HomeFragment homeFragment) {
-        this.homeFragment = homeFragment;
-    }
-
-    @Override
-    protected List<PanoramioResponse> doInBackground(PanoramioRequest... params) {
-        List<PanoramioResponse> res = new ArrayList<>();
-
-        for (PanoramioRequest param : params) {
-            try {
-                Response<PanoramioResponse> single = PanoramioUtils.fetchPanoramioImagesSync(
-                    param.getLatitude(),
-                    param.getLongitude(),
-                    param.getRadiusX(),
-                    param.getRadiusY(),
-                    param.getOffset(),
-                    param.getCount());
-
-                if (single.code() != 200) {
-                    final ResponseBody errorBody = single.errorBody();
-                    lg.error("Fetching paranomio images failed with code: {}, message: {}, error: {}",
-                        single.code(),
-                        single.message(),
-                        errorBody != null ? errorBody.toString() : "(null)");
-                    continue;
-                }
-
-                res.add(single.body());
-            } catch (IOException e) {
-                lg.error("I/O error", e);
-            }
-        }
-
-        return res;
-    }
-
-    @Override
-    protected void onPostExecute(List<PanoramioResponse> panoramioResponses) {
-        super.onPostExecute(panoramioResponses);
-        lg.warn("NOT IMPLEMENTED");
-        // TODO implement this
-
-
-    }
-}
diff --git a/panoramiobindings/.gitignore b/panoramiobindings/.gitignore
deleted file mode 100644
index 796b96d..0000000
--- a/panoramiobindings/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/build
diff --git a/panoramiobindings/build.gradle b/panoramiobindings/build.gradle
deleted file mode 100644
index 7a6f799..0000000
--- a/panoramiobindings/build.gradle
+++ /dev/null
@@ -1,42 +0,0 @@
-apply plugin: 'com.android.library'
-
-android {
-    compileSdkVersion 21
-    buildToolsVersion "24.0.2"
-
-    defaultConfig {
-        minSdkVersion 16
-        targetSdkVersion 21
-        versionCode 2
-        versionName "1.0.1"
-    }
-    buildTypes {
-        release {
-            minifyEnabled false
-            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
-        }
-    }
-
-    lintOptions {
-        disable 'InvalidPackage'
-        abortOnError false
-    }
-}
-
-dependencies {
-    compile fileTree(dir: 'libs', include: ['*.jar'])
-    testCompile 'junit:junit:4.12'
-    compile 'com.android.support:appcompat-v7:21.0.3'
-    compile 'org.greenrobot:eventbus:3.0.0'
-
-    compile 'org.slf4j:slf4j-api:1.7.21'
-    compile 'com.github.tony19:logback-android-core:1.1.1-6'
-    compile('com.github.tony19:logback-android-classic:1.1.1-6') {
-        // workaround issue #73
-        exclude group: 'com.google.android', module: 'android'
-    }
-    compile project(':urbanexplorerutils')
-    compile 'com.squareup.retrofit2:retrofit:2.1.0'
-    compile 'com.squareup.retrofit2:converter-gson:2.1.0'
-    compile 'com.squareup.okhttp3:logging-interceptor:3.2.0'
-}
diff --git a/panoramiobindings/proguard-rules.pro b/panoramiobindings/proguard-rules.pro
deleted file mode 100644
index f253a1f..0000000
--- a/panoramiobindings/proguard-rules.pro
+++ /dev/null
@@ -1,17 +0,0 @@
-# Add project specific ProGuard rules here.
-# By default, the flags in this file are appended to flags specified
-# in /home/tpolgrabia/bin/android-sdk-linux/tools/proguard/proguard-android.txt
-# You can edit the include path and order by changing the proguardFiles
-# directive in build.gradle.
-#
-# For more details, see
-#   http://developer.android.com/guide/developing/tools/proguard.html
-
-# Add any project specific keep options here:
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-#   public *;
-#}
diff --git a/panoramiobindings/src/androidTest/java/pl/tpolgrabia/panoramiobindings/ApplicationTest.java b/panoramiobindings/src/androidTest/java/pl/tpolgrabia/panoramiobindings/ApplicationTest.java
deleted file mode 100644
index 26b2f08..0000000
--- a/panoramiobindings/src/androidTest/java/pl/tpolgrabia/panoramiobindings/ApplicationTest.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package pl.tpolgrabia.panoramiobindings;
-
-import android.app.Application;
-import android.test.ApplicationTestCase;
-
-/**
- * <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a>
- */
-public class ApplicationTest extends ApplicationTestCase<Application> {
-    public ApplicationTest() {
-        super(Application.class);
-    }
-}
\ No newline at end of file
diff --git a/panoramiobindings/src/main/AndroidManifest.xml b/panoramiobindings/src/main/AndroidManifest.xml
deleted file mode 100644
index e6b68f3..0000000
--- a/panoramiobindings/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-          package="pl.tpolgrabia.panoramiobindings">
-
-    <application android:allowBackup="true"
-                 android:label="@string/app_name"
-                 android:supportsRtl="true"
-    >
-
-    </application>
-
-</manifest>
diff --git a/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/PanoramioConstants.java b/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/PanoramioConstants.java
deleted file mode 100644
index f375c6d..0000000
--- a/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/PanoramioConstants.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package pl.tpolgrabia.panoramiobindings;
-
-/**
- * Created by tpolgrabia on 19.11.16.
- */
-public class PanoramioConstants {
-    public static final String PANORAMIO_WS_URL = "http://www.panoramio.com/map/get_panoramas.php";
-}
diff --git a/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/callback/PanoramioResponseCallback.java b/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/callback/PanoramioResponseCallback.java
deleted file mode 100644
index 3d1f18a..0000000
--- a/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/callback/PanoramioResponseCallback.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package pl.tpolgrabia.panoramiobindings.callback;
-
-import pl.tpolgrabia.panoramiobindings.dto.PanoramioImageInfo;
-import java.util.List;
-
-/**
- * Created by tpolgrabia on 28.08.16.
- */
-public interface PanoramioResponseCallback {
-    void callback(PanoramioResponseStatus status, List<PanoramioImageInfo> images, Long imagesCount);
-}
diff --git a/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/callback/PanoramioResponseStatus.java b/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/callback/PanoramioResponseStatus.java
deleted file mode 100644
index 57169df..0000000
--- a/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/callback/PanoramioResponseStatus.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package pl.tpolgrabia.panoramiobindings.callback;
-
-/**
- * Created by tpolgrabia on 28.08.16.
- */
-public enum PanoramioResponseStatus {
-    GENERAL_ERROR,
-    NETWORK_ERROR,
-    SUCCESS
-}
diff --git a/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/dto/PanoramioImageInfo.java b/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/dto/PanoramioImageInfo.java
deleted file mode 100644
index 87a1c56..0000000
--- a/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/dto/PanoramioImageInfo.java
+++ /dev/null
@@ -1,150 +0,0 @@
-package pl.tpolgrabia.panoramiobindings.dto;
-
-import com.google.gson.annotations.SerializedName;
-
-import java.io.Serializable;
-
-/**
- * Created by tpolgrabia on 27.08.16.
- */
-public class PanoramioImageInfo implements Serializable{
-    private static final long serialVersionUID = -3749926831546160047L;
-    @SerializedName("height")
-    private Double height;
-    @SerializedName("owner_name")
-    private String ownerName;
-    @SerializedName("owner_id")
-    private Long ownerId;
-    @SerializedName("photo_file_url")
-    private String photoFileUrl;
-    @SerializedName("photo_title")
-    private String photoTitle;
-    @SerializedName("upload_date")
-    private String uploadDate;
-    @SerializedName("width")
-    private Double width;
-    @SerializedName("latitude")
-    private Double latitude;
-    @SerializedName("longitude")
-    private Double longitude;
-    @SerializedName("owner_url")
-    private String ownerUrl;
-    @SerializedName("photo_id")
-    private Long photoId;
-    @SerializedName("photo_url")
-    private String photoUrl;
-
-    public Double getHeight() {
-        return height;
-    }
-
-    public void setHeight(Double height) {
-        this.height = height;
-    }
-
-    public String getOwnerName() {
-        return ownerName;
-    }
-
-    public void setOwnerName(String ownerName) {
-        this.ownerName = ownerName;
-    }
-
-    public Long getOwnerId() {
-        return ownerId;
-    }
-
-    public void setOwnerId(Long ownerId) {
-        this.ownerId = ownerId;
-    }
-
-    public String getPhotoFileUrl() {
-        return photoFileUrl;
-    }
-
-    public void setPhotoFileUrl(String photoFileUrl) {
-        this.photoFileUrl = photoFileUrl;
-    }
-
-    public String getPhotoTitle() {
-        return photoTitle;
-    }
-
-    public void setPhotoTitle(String photoTitle) {
-        this.photoTitle = photoTitle;
-    }
-
-    public String getUploadDate() {
-        return uploadDate;
-    }
-
-    public void setUploadDate(String uploadDate) {
-        this.uploadDate = uploadDate;
-    }
-
-    public Double getWidth() {
-        return width;
-    }
-
-    public void setWidth(Double width) {
-        this.width = width;
-    }
-
-    public void setLatitude(Double latitude) {
-        this.latitude = latitude;
-    }
-
-    public Double getLatitude() {
-        return latitude;
-    }
-
-    public void setLongitude(Double longitude) {
-        this.longitude = longitude;
-    }
-
-    public Double getLongitude() {
-        return longitude;
-    }
-
-    public void setOwnerUrl(String ownerUrl) {
-        this.ownerUrl = ownerUrl;
-    }
-
-    public String getOwnerUrl() {
-        return ownerUrl;
-    }
-
-    public void setPhotoId(Long photoId) {
-        this.photoId = photoId;
-    }
-
-    public Long getPhotoId() {
-        return photoId;
-    }
-
-    public void setPhotoUrl(String photoUrl) {
-        this.photoUrl = photoUrl;
-    }
-
-    public String getPhotoUrl() {
-        return photoUrl;
-    }
-
-    @Override
-    public String toString() {
-        return "PanoramioImageInfo{" +
-            "height=" + height +
-            ", ownerName='" + ownerName + '\'' +
-            ", ownerId=" + ownerId +
-            ", photoFileUrl='" + photoFileUrl + '\'' +
-            ", photoTitle='" + photoTitle + '\'' +
-            ", uploadDate='" + uploadDate + '\'' +
-            ", width=" + width +
-            ", latitude=" + latitude +
-            ", longitude=" + longitude +
-            ", ownerUrl='" + ownerUrl + '\'' +
-            ", photoId=" + photoId +
-            ", photoUrl='" + photoUrl + '\'' +
-            '}';
-    }
-}
diff --git a/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/dto/PanoramioMapLocation.java b/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/dto/PanoramioMapLocation.java
deleted file mode 100644
index a9f1d12..0000000
--- a/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/dto/PanoramioMapLocation.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package pl.tpolgrabia.panoramiobindings.dto;
-
-import com.google.gson.annotations.SerializedName;
-
-import java.io.Serializable;
-
-/**
- * Created by tpolgrabia on 28.08.16.
- */
-public class PanoramioMapLocation implements Serializable{
-    private static final long serialVersionUID = -3048527017887972550L;
-    @SerializedName("lat")
-    private Double latitude;
-    @SerializedName("lng")
-    private Double longitude;
-    @SerializedName("panoramio_zoom")
-    private Long zoom;
-
-    public Double getLatitude() {
-        return latitude;
-    }
-
-    public void setLatitude(Double latitude) {
-        this.latitude = latitude;
-    }
-
-    public Double getLongitude() {
-        return longitude;
-    }
-
-    public void setLongitude(Double longitude) {
-        this.longitude = longitude;
-    }
-
-    public Long getZoom() {
-        return zoom;
-    }
-
-    public void setZoom(Long zoom) {
-        this.zoom = zoom;
-    }
-
-    @Override
-    public String toString() {
-        return "PanoramioMapLocation{" +
-            "latitude=" + latitude +
-            ", longitude=" + longitude +
-            ", zoom=" + zoom +
-            '}';
-    }
-}
diff --git a/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/dto/PanoramioResponse.java b/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/dto/PanoramioResponse.java
deleted file mode 100644
index 196d3e0..0000000
--- a/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/dto/PanoramioResponse.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package pl.tpolgrabia.panoramiobindings.dto;
-
-import com.google.gson.annotations.SerializedName;
-
-import java.io.Serializable;
-import java.util.List;
-
-/**
- * Created by tpolgrabia on 28.08.16.
- */
-public class PanoramioResponse implements Serializable{
-    private static final long serialVersionUID = 8840731825651350777L;
-    @SerializedName("photos")
-    private List<PanoramioImageInfo> photos;
-    @SerializedName("count")
-    private Long count;
-    @SerializedName("moreAvailable")
-    private Boolean moreAvailable;
-    @SerializedName("map_location")
-    private PanoramioMapLocation mapLocation;
-
-    public List<PanoramioImageInfo> getPhotos() {
-        return photos;
-    }
-
-    public void setPhotos(List<PanoramioImageInfo> photos) {
-        this.photos = photos;
-    }
-
-    public Long getCount() {
-        return count;
-    }
-
-    public void setCount(Long count) {
-        this.count = count;
-    }
-
-    public Boolean getMoreAvailable() {
-        return moreAvailable;
-    }
-
-    public void setMoreAvailable(Boolean moreAvailable) {
-        this.moreAvailable = moreAvailable;
-    }
-
-    public PanoramioMapLocation getMapLocation() {
-        return mapLocation;
-    }
-
-    public void setMapLocation(PanoramioMapLocation mapLocation) {
-        this.mapLocation = mapLocation;
-    }
-
-    @Override
-    public String toString() {
-        return "PanoramioResponse{" +
-            "photos=" + photos +
-            ", count=" + count +
-            ", moreAvailable=" + moreAvailable +
-            ", mapLocation=" + mapLocation +
-            '}';
-    }
-}
diff --git a/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/exceptions/PanoramioResponseNotExpected.java b/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/exceptions/PanoramioResponseNotExpected.java
deleted file mode 100644
index 92bacbd..0000000
--- a/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/exceptions/PanoramioResponseNotExpected.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package pl.tpolgrabia.panoramiobindings.exceptions;
-
-/**
- * Created by tpolgrabia on 27.08.16.
- */
-public class PanoramioResponseNotExpected extends RuntimeException {
-    private static final long serialVersionUID = 4518500758010368539L;
-
-    public PanoramioResponseNotExpected(String errorCause) {
-        super(errorCause);
-    }
-}
diff --git a/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/utils/PanoramioService.java b/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/utils/PanoramioService.java
deleted file mode 100644
index 3543914..0000000
--- a/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/utils/PanoramioService.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package pl.tpolgrabia.panoramiobindings.utils;
-
-import pl.tpolgrabia.panoramiobindings.dto.PanoramioResponse;
-import retrofit2.Call;
-import retrofit2.http.Query;
-
-/**
- * Created by tpolgrabia on 19.11.16.
- */
-public interface PanoramioService {
-    Call<PanoramioResponse> fetch(
-        @Query("set")       String set,
-        @Query("from")      Long from,
-        @Query("to")        Long to,
-        @Query("minx")      Double minx,
-        @Query("miny")      Double miny,
-        @Query("maxx")      Double maxx,
-        @Query("maxy")      Double maxy,
-        @Query("size")      String size,
-        @Query("order")     String order,
-        @Query("mapfilter") Boolean mapFilter
-    );
-}
diff --git a/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/utils/PanoramioUtils.java b/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/utils/PanoramioUtils.java
deleted file mode 100644
index 1006c8f..0000000
--- a/panoramiobindings/src/main/java/pl/tpolgrabia/panoramiobindings/utils/PanoramioUtils.java
+++ /dev/null
@@ -1,210 +0,0 @@
-package pl.tpolgrabia.panoramiobindings.utils;
-
-import android.app.Activity;
-import android.content.Context;
-import android.graphics.PointF;
-import android.util.DisplayMetrics;
-import android.view.Display;
-import com.androidquery.AQuery;
-import com.androidquery.callback.AjaxCallback;
-import com.androidquery.callback.AjaxStatus;
-import okhttp3.OkHttpClient;
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import pl.tpolgrabia.panoramiobindings.PanoramioConstants;
-import pl.tpolgrabia.panoramiobindings.callback.PanoramioResponseCallback;
-import pl.tpolgrabia.panoramiobindings.callback.PanoramioResponseStatus;
-import pl.tpolgrabia.panoramiobindings.dto.PanoramioImageInfo;
-import pl.tpolgrabia.panoramiobindings.dto.PanoramioMapLocation;
-import pl.tpolgrabia.panoramiobindings.dto.PanoramioResponse;
-import pl.tpolgrabia.panoramiobindings.exceptions.PanoramioResponseNotExpected;
-import pl.tpolgrabia.urbanexplorerutils.utils.NetUtils;
-import retrofit2.Call;
-import retrofit2.Response;
-import retrofit2.Retrofit;
-import retrofit2.converter.gson.GsonConverterFactory;
-
-import java.io.IOException;
-import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Created by tpolgrabia on 27.08.16.
- */
-public class PanoramioUtils {
-
-    private static final Logger lg = LoggerFactory.getLogger(PanoramioUtils.class);
-
-    private static final String LOCATIONS_LIST_IMAGE_SIZE = "medium";
-    private static final String LOCATIONS_ORDER = "popularity";
-
-    public static Response<PanoramioResponse> fetchPanoramioImagesSync(
-        Double lat,
-        Double lon,
-        Double radiusX,
-        Double radiusY,
-        Long offset,
-        Long count
-    ) throws IOException {
-        OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
-        // TODO httpClient.addInterceptor(new RetrofitDebugInterceptor());
-
-        Retrofit retrofit = new Retrofit.Builder()
-            .baseUrl(PanoramioConstants.PANORAMIO_WS_URL)
-            .addConverterFactory(GsonConverterFactory.create())
-            .client(httpClient.build())
-            .build();
-
-        PanoramioService panoramioService = retrofit.create(PanoramioService.class);
-        return panoramioService.fetch(
-            "public",
-            offset,
-            offset + count,
-            lon - radiusX,
-            lat - radiusY,
-            lon + radiusX,
-            lat + radiusY,
-            LOCATIONS_LIST_IMAGE_SIZE,
-            LOCATIONS_ORDER,
-            true).execute();
-    }
-
-    public static void fetchPanoramioImages(
-        Context ctx,
-        Double lat,
-        Double lon,
-        Double radiusX,
-        Double radiusY,
-        Long offset,
-        Long count,
-        final PanoramioResponseCallback callback) {
-        AQuery aq = NetUtils.createProxyAQueryInstance(ctx);
-        final String aqQuery = "http://www.panoramio.com/map/get_panoramas.php?" +
-            "set=public" +
-            "&from=" + offset +
-            "&to="   + (offset + count) +
-            "&minx=" + (lon - radiusX) +
-            "&miny=" + (lat - radiusY) +
-            "&maxx=" + (lon + radiusX) +
-            "&maxy=" + (lat + radiusX) +
-            "&size=" + LOCATIONS_LIST_IMAGE_SIZE +
-            "&order=" + LOCATIONS_ORDER +
-            "&mapfilter=true";
-        lg.debug("Query URL: {}", aqQuery);
-        aq.ajax(aqQuery,
-            JSONObject.class,
-            new AjaxCallback<JSONObject>() {
-                @Override
-                public void callback(String url, JSONObject object, AjaxStatus status) {
-                    try {
-                        lg.debug("Query code: {}, error: {}, message: {}, object: {}",
-                            status.getCode(), status.getError(), status.getMessage(), object);
-                        if (object == null) {
-                            return;
-                        }
-
-                        List<PanoramioImageInfo> photosInfos;
-                        try {
-                            photosInfos = PanoramioUtils.fetchPanoramioImagesFromResponse(object.getJSONArray("photos"));
-                        } catch (ParseException e) {
-                            lg.warn("Parse exception", e);
-                            photosInfos = new ArrayList<>();
-                        }
-
-                        Long photosCount = PanoramioUtils.fetchPanoramioImagesCountFromResponse(object);
-                        callback.callback(PanoramioResponseStatus.SUCCESS,
-                            photosInfos,
-                            photosCount);
-
-                    } catch (JSONException e) {
-                        lg.warn("Json not supported format", e);
-                    }
-                }
-            });
-    }
-
-    public static PanoramioImageInfo fetchPanoramioDto(JSONObject photo) throws JSONException, ParseException {
-        PanoramioImageInfo info = new PanoramioImageInfo();
-        info.setPhotoTitle(photo.getString("photo_title"));
-        info.setPhotoFileUrl(photo.getString("photo_file_url"));
-        info.setWidth(photo.getDouble("width"));
-        info.setHeight(photo.getDouble("height"));
-        info.setLatitude(photo.getDouble("latitude"));
-        info.setLongitude(photo.getDouble("longitude"));
-        info.setOwnerId(photo.getLong("owner_id"));
-        info.setOwnerName(photo.getString("owner_name"));
-        info.setOwnerUrl(photo.getString("owner_url"));
-        info.setPhotoId(photo.getLong("photo_id"));
-        info.setPhotoUrl(photo.getString("photo_url"));
-        info.setUploadDate(photo.getString("upload_date"));
-        return info;
-    }
-
-    public static Long fetchPanoramioImagesCountFromResponse(JSONObject object) {
-        try {
-            return object.getLong("count");
-        } catch (JSONException e) {
-            return null;
-        }
-    }
-
-    public static List<PanoramioImageInfo> fetchPanoramioImagesFromResponse(JSONArray photos) throws JSONException, ParseException {
-
-        if (photos == null) {
-            throw new PanoramioResponseNotExpected("photos arg cannot be null");
-        }
-
-        List<PanoramioImageInfo> photosInfos = new ArrayList<>();
-        int n = photos.length();
-        for (int i = 0; i < n; i++) {
-            photosInfos.add(
-                fetchPanoramioDto(
-                    photos.getJSONObject(i)));
-        }
-
-        return photosInfos;
-    }
-
-    public static PanoramioResponse fetchPanoramioResponse(JSONObject panoramioResponse) throws JSONException, ParseException {
-        PanoramioResponse response = new PanoramioResponse();
-        response.setCount(panoramioResponse.getLong("count"));
-        response.setMoreAvailable(panoramioResponse.getBoolean("has_more"));
-        response.setPhotos(fetchPanoramioImagesFromResponse(panoramioResponse.getJSONArray("photos")));
-        response.setMapLocation(fetchPanoramioLocation(panoramioResponse.getJSONObject("map_location")));
-        return response;
-    }
-
-    private static PanoramioMapLocation fetchPanoramioLocation(JSONObject mapLocation) throws JSONException {
-        PanoramioMapLocation location = new PanoramioMapLocation();
-        location.setLatitude(mapLocation.getDouble("lat"));
-        location.setLongitude(mapLocation.getDouble("lon"));
-        location.setZoom(mapLocation.getLong("panoramio_zoom"));
-        return location;
-    }
-
-
-    public static PointF calcDims(Activity ctx) {
-        DisplayMetrics metrics = calcMetrics(ctx);
-        int w = metrics.widthPixels;
-        int h = metrics.heightPixels;
-        float wi = w / metrics.xdpi;
-        float hi = h / metrics.ydpi;
-        return new PointF(wi, hi);
-    }
-
-    public static DisplayMetrics calcMetrics(Activity ctx) {
-        DisplayMetrics metrics = new DisplayMetrics();
-        final Display display = ctx.getWindowManager().getDefaultDisplay();
-        display.getMetrics(metrics);
-        return metrics;
-    }
-
-    public static double calcDiag(Activity ctx) {
-        PointF dims = calcDims(ctx);
-        return Math.sqrt(dims.x*dims.x + dims.y*dims.y);
-    }
-}
diff --git a/panoramiobindings/src/main/res/values/strings.xml b/panoramiobindings/src/main/res/values/strings.xml
deleted file mode 100644
index e16350b..0000000
--- a/panoramiobindings/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<resources>
-    <string name="app_name">Panoramio Bindings</string>
-</resources>
diff --git a/panoramiobindings/src/test/java/pl/tpolgrabia/panoramiobindings/ExampleUnitTest.java b/panoramiobindings/src/test/java/pl/tpolgrabia/panoramiobindings/ExampleUnitTest.java
deleted file mode 100644
index ad25c01..0000000
--- a/panoramiobindings/src/test/java/pl/tpolgrabia/panoramiobindings/ExampleUnitTest.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package pl.tpolgrabia.panoramiobindings;
-
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-/**
- * To work on unit tests, switch the Test Artifact in the Build Variants view.
- */
-public class ExampleUnitTest {
-    @Test
-    public void addition_isCorrect() throws Exception {
-        assertEquals(4, 2 + 2);
-    }
-}
\ No newline at end of file
diff --git a/settings.gradle b/settings.gradle
index 059a823..1026d14 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1 +1 @@
-include ':app', ':panoramiobindings', ':urbanexplorerutils', ':wikibinding', ':googleutils'
+include ':app', ':urbanexplorerutils', ':wikibinding', ':googleutils'