Browse Source

Open Street Map in the schedule dialog.
Removed all Google Maps references.
No longer using compat.
Fixed a bug whn creating the table activity_itinerary.

Iñigo Valentin 9 năm trước cách đây
mục cha
commit
ffa8a6d3db
28 tập tin đã thay đổi với 171 bổ sung945 xóa
  1. 1 0
      .idea/gradle.xml
  2. 2 2
      app/build.gradle
  3. 1 9
      app/src/main/AndroidManifest.xml
  4. 22 32
      app/src/main/java/com/ivalentin/margolariak/ActivityFutureLayout.java
  5. 5 4
      app/src/main/java/com/ivalentin/margolariak/AlarmReceiver.java
  6. 1 1
      app/src/main/java/com/ivalentin/margolariak/GM.java
  7. 14 7
      app/src/main/java/com/ivalentin/margolariak/HomeLayout.java
  8. 3 17
      app/src/main/java/com/ivalentin/margolariak/HomeSectionLocation.java
  9. 37 42
      app/src/main/java/com/ivalentin/margolariak/LocationLayout.java
  10. 0 51
      app/src/main/java/com/ivalentin/margolariak/MainActivity.java
  11. 49 127
      app/src/main/java/com/ivalentin/margolariak/ScheduleLayout.java
  12. 1 6
      app/src/main/java/com/ivalentin/margolariak/Sync.java
  13. BIN
      app/src/main/res/drawable/menu.png
  14. 5 4
      app/src/main/res/layout/activity_main.xml
  15. 1 2
      app/src/main/res/layout/activity_settings.xml
  16. 0 1
      app/src/main/res/layout/activity_sponsor.xml
  17. 0 1
      app/src/main/res/layout/activity_us.xml
  18. 2 3
      app/src/main/res/layout/dialog_schedule.xml
  19. 2 2
      app/src/main/res/layout/dialog_sponsor.xml
  20. 2 2
      app/src/main/res/layout/dialog_us.xml
  21. 9 17
      app/src/main/res/layout/fragment_layout_lablanca_nofestivals.xml
  22. 0 16
      app/src/main/res/values-v11/styles.xml
  23. 0 13
      app/src/main/res/values-v14/styles.xml
  24. 4 20
      app/src/main/res/values/styles.xml
  25. 7 565
      build/intermediates/dex-cache/cache.xml
  26. 2 0
      osmdroid-android-5.6.5-release/build.gradle
  27. BIN
      osmdroid-android-5.6.5-release/osmdroid-android-5.6.5-release.aar
  28. 1 1
      settings.gradle

+ 1 - 0
.idea/gradle.xml

@@ -10,6 +10,7 @@
           <set>
             <option value="$PROJECT_DIR$" />
             <option value="$PROJECT_DIR$/app" />
+            <option value="$PROJECT_DIR$/osmdroid-android-5.6.5-release" />
           </set>
         </option>
         <option name="resolveModulePerSourceSet" value="false" />

+ 2 - 2
app/build.gradle

@@ -6,7 +6,7 @@ android {
 
     defaultConfig {
         applicationId "com.ivalentin.margolariak"
-        minSdkVersion 14
+        minSdkVersion 23
         targetSdkVersion 23
         multiDexEnabled true
     }
@@ -27,6 +27,6 @@ android {
 
 dependencies {
     //noinspection GradleDynamicVersion
-    compile 'com.google.android.gms:play-services:+'
     compile 'com.android.support:multidex:1.0.1'
+    compile 'org.osmdroid:osmdroid-android:5.6.5@aar'
 }

+ 1 - 9
app/src/main/AndroidManifest.xml

@@ -32,15 +32,7 @@
         android:allowClearUserData="true"
         tools:ignore="UnusedAttribute"
         android:name="android.support.multidex.MultiDexApplication">
-        
-        <meta-data
-    		android:name="com.google.android.gms.version"
-    		android:value="@integer/google_play_services_version" />
-        
-        <meta-data
-    		android:name="com.google.android.geo.API_KEY"
-    		android:value="AIzaSyC6DgCJRiBkYiNUivE0VH9fsTZDbfVDpS0"/>
-        
+
         <activity
             android:name="com.ivalentin.margolariak.MainActivity"
             android:windowSoftInputMode="stateHidden|adjustResize"

+ 22 - 32
app/src/main/java/com/ivalentin/margolariak/ActivityFutureLayout.java

@@ -11,7 +11,6 @@ import android.graphics.BitmapFactory;
 import android.os.Build;
 import android.os.Bundle;
 import android.app.Fragment;
-import android.support.v4.app.ActivityCompat;
 import android.util.Log;
 import android.view.Gravity;
 import android.view.LayoutInflater;
@@ -25,15 +24,6 @@ import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
-import com.google.android.gms.maps.CameraUpdate;
-import com.google.android.gms.maps.CameraUpdateFactory;
-import com.google.android.gms.maps.GoogleMap;
-import com.google.android.gms.maps.MapView;
-import com.google.android.gms.maps.MapsInitializer;
-import com.google.android.gms.maps.OnMapReadyCallback;
-import com.google.android.gms.maps.model.LatLng;
-import com.google.android.gms.maps.model.MarkerOptions;
-
 import java.io.File;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
@@ -51,12 +41,12 @@ import java.util.Locale;
  * @see Fragment
  *
  */
-public class ActivityFutureLayout extends Fragment implements OnMapReadyCallback {
+public class ActivityFutureLayout extends Fragment {
 
 	//Map stuff for the dialog
-	private MapView mapView;
-	private GoogleMap map;
-	private LatLng location;
+	//private MapView mapView;
+	//private GoogleMap map;
+	//private LatLng location;
 	private String markerName = "";
 	private final Bundle bund = null;
 	private View v;
@@ -309,9 +299,9 @@ public class ActivityFutureLayout extends Fragment implements OnMapReadyCallback
             tvAddress.setText(cursor.getString(7));
 
             //Set up map
-            location = new LatLng(Double.parseDouble(cursor.getString(8)), Double.parseDouble(cursor.getString(9)));
-            mapView = (MapView) dialog.findViewById(R.id.mv_dialog_schedule_map);
-            mapView.onCreate(bund);
+            //location = new LatLng(Double.parseDouble(cursor.getString(8)), Double.parseDouble(cursor.getString(9)));
+            //mapView = (MapView) dialog.findViewById(R.id.mv_dialog_schedule_map);
+            //mapView.onCreate(bund);
 
             //Close the db connection
             cursor.close();
@@ -329,7 +319,7 @@ public class ActivityFutureLayout extends Fragment implements OnMapReadyCallback
             dialog.setOnCancelListener(new DialogInterface.OnCancelListener(){
                 @Override
                 public void onCancel(DialogInterface dialog) {
-                    if (map != null) {
+                    /*if (map != null) {
 						if (!(ActivityCompat.checkSelfPermission(v.getContext(), android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(v.getContext(), android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)) {
 							map.setMyLocationEnabled(false);
 						}
@@ -337,7 +327,7 @@ public class ActivityFutureLayout extends Fragment implements OnMapReadyCallback
                     if (mapView != null){
                         mapView.onResume();
                         mapView.onDestroy();
-                    }
+                    }*/
                 }
             });
 
@@ -355,7 +345,7 @@ public class ActivityFutureLayout extends Fragment implements OnMapReadyCallback
 
             //Start the map
             startMap();
-            mapView.onResume();
+            //mapView.onResume();
             dialog.setOnShowListener(new DialogInterface.OnShowListener(){
 
                 @Override
@@ -373,7 +363,7 @@ public class ActivityFutureLayout extends Fragment implements OnMapReadyCallback
 	 * Starts the map in the dialog.
 	 */
 	private void startMap(){
-		mapView.getMapAsync(this);
+		//mapView.getMapAsync(this);
 	}
 
 	/**
@@ -382,7 +372,7 @@ public class ActivityFutureLayout extends Fragment implements OnMapReadyCallback
 	 *
 	 * @see android.app.Fragment#onResume()
 	 */
-	@Override
+	/*@Override
 	public void onResume() {
 		if (mapView != null)
 			mapView.onResume();
@@ -392,7 +382,7 @@ public class ActivityFutureLayout extends Fragment implements OnMapReadyCallback
 			}
 		}
 		super.onResume();
-	}
+	}*/
 
 	/**
 	 * Called when the fragment is destroyed.
@@ -400,7 +390,7 @@ public class ActivityFutureLayout extends Fragment implements OnMapReadyCallback
 	 *
 	 * @see android.app.Fragment#onDestroy()
 	 */
-	@Override
+	/*@Override
 	public void onDestroy() {
 		super.onDestroy();
 		if (map != null) {
@@ -412,7 +402,7 @@ public class ActivityFutureLayout extends Fragment implements OnMapReadyCallback
 			mapView.onResume();
 			mapView.onDestroy();
 		}
-	}
+	}*/
 
 	/**
 	 * Called when the fragment is paused.
@@ -420,7 +410,7 @@ public class ActivityFutureLayout extends Fragment implements OnMapReadyCallback
 	 *
 	 * @see android.app.Fragment#onPause()
 	 */
-	@Override
+	/*@Override
 	public void onPause() {
 		super.onDestroy();
 		if (map != null) {
@@ -431,7 +421,7 @@ public class ActivityFutureLayout extends Fragment implements OnMapReadyCallback
 		if (mapView != null){
 			mapView.onPause();
 		}
-	}
+	}*/
 
 	/**
 	 * Called in a situation of low memory.
@@ -439,7 +429,7 @@ public class ActivityFutureLayout extends Fragment implements OnMapReadyCallback
 	 *
 	 * @see android.app.Fragment#onLowMemory()
 	 */
-	@Override
+	/*@Override
 	public void onLowMemory() {
 		super.onLowMemory();
 		if (mapView != null){
@@ -448,7 +438,7 @@ public class ActivityFutureLayout extends Fragment implements OnMapReadyCallback
 			}
 			mapView.onLowMemory();
 		}
-	}
+	}*/
 
 	/**
 	 * Called when the map is ready to be displayed.
@@ -458,7 +448,7 @@ public class ActivityFutureLayout extends Fragment implements OnMapReadyCallback
 	 *
 	 * @see com.google.android.gms.maps.OnMapReadyCallback#onMapReady(com.google.android.gms.maps.GoogleMap)
 	 */
-	@Override
+	/*@Override
 	public void onMapReady(GoogleMap googleMap) {
 		this.map = googleMap;
 
@@ -480,5 +470,5 @@ public class ActivityFutureLayout extends Fragment implements OnMapReadyCallback
 		mo.position(location);
 		map.addMarker(mo);
 
-	}
-}
+	}*/
+}

+ 5 - 4
app/src/main/java/com/ivalentin/margolariak/AlarmReceiver.java

@@ -2,8 +2,10 @@ package com.ivalentin.margolariak;
 
 import android.app.Activity;
 import android.app.AlarmManager;
+import android.app.Notification;
 import android.app.NotificationManager;
 import android.app.PendingIntent;
+import android.app.TaskStackBuilder;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
@@ -14,8 +16,6 @@ import android.database.sqlite.SQLiteDatabase;
 import android.database.sqlite.SQLiteDatabaseLockedException;
 import android.graphics.BitmapFactory;
 import android.media.RingtoneManager;
-import android.support.v4.app.NotificationCompat;
-import android.support.v4.app.TaskStackBuilder;
 import android.content.BroadcastReceiver;
 import android.util.Log;
 
@@ -138,7 +138,7 @@ public class AlarmReceiver extends BroadcastReceiver {
 						TaskStackBuilder stackBuilder;
 
 						//Send the notification.
-						NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
+						Notification.Builder mBuilder = new Notification.Builder(context)
 								.setSmallIcon(R.drawable.ic_notification)
 								.setContentTitle(title)
 								.setAutoCancel(true)
@@ -218,7 +218,8 @@ public class AlarmReceiver extends BroadcastReceiver {
 		}
 
     /**
-     * Sets a repeating alarm. 
+     * Sets a repeating alarm. o
+
      * When the alarm fires, the app broadcasts an Intent to this WakefulBroadcastReceiver.
      * @param context The context of the app
      */

+ 1 - 1
app/src/main/java/com/ivalentin/margolariak/GM.java

@@ -228,7 +228,7 @@ final class GM {
 				/**
 				 * Creates the table "activity_itinerary" on the database.
 				 */
-				static final String ACTIVITY_ITINERARY = "CREATE TABLE IF NOT EXISTS activity_itinerary (id INT, activity INT, name_es VARCHAR, name_en VARCHAR, name_eu VARCHAR, description_es VARCHAR, description_en VARCHAR, description_eu VARCHAR, start DATETIME, end DATETIME, place INT);";
+				static final String ACTIVITY_ITINERARY = "CREATE TABLE IF NOT EXISTS activity_itinerary (id INT, activity INT, name_es VARCHAR, name_en VARCHAR, name_eu VARCHAR, description_es VARCHAR, description_en VARCHAR, description_eu VARCHAR, start DATETIME, end DATETIME, place INT, route INT);";
 
 				/**
 				 * Creates the table "activity_tag" on the database.

+ 14 - 7
app/src/main/java/com/ivalentin/margolariak/HomeLayout.java

@@ -26,7 +26,6 @@ import android.net.Uri;
 import android.os.Bundle;
 import android.app.FragmentManager;
 import android.app.FragmentTransaction;
-import android.support.v4.app.ActivityCompat;
 import android.text.Html;
 import android.util.Log;
 import android.view.LayoutInflater;
@@ -82,13 +81,13 @@ public class HomeLayout extends Fragment implements LocationListener {
 		view = inflater.inflate(R.layout.fragment_layout_home, null);
 
 		//Request location permissions if not set
-		if (ActivityCompat.checkSelfPermission(view.getContext(), android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(view.getContext(), android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
-			ActivityCompat.requestPermissions(this.getActivity(), new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, GM.PERMISSION.LOCATION);
+		if (!checkLocationPermission()) {
+			requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, GM.PERMISSION.LOCATION);
 		}
 
 		//Set Location manager
 		locationManager = (LocationManager) view.getContext().getSystemService(Context.LOCATION_SERVICE);
-		if (!(ActivityCompat.checkSelfPermission(view.getContext(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(view.getContext(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)) {
+		if (checkLocationPermission()) {
 			locationManager.requestLocationUpdates(locationManager.getBestProvider(new Criteria(), true), GM.LOCATION.ACCURACY.TIME, GM.LOCATION.ACCURACY.SPACE, this);
 			onLocationChanged(locationManager.getLastKnownLocation(LocationManager.PASSIVE_PROVIDER));
 		}
@@ -1061,7 +1060,7 @@ public class HomeLayout extends Fragment implements LocationListener {
 	 */
 	@Override
 	public void onPause() {
-		if (!(ActivityCompat.checkSelfPermission(view.getContext(), android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(view.getContext(), android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)) {
+		if (checkLocationPermission()) {
 			locationManager.removeUpdates(this);
 		}
 		super.onPause();
@@ -1075,7 +1074,7 @@ public class HomeLayout extends Fragment implements LocationListener {
 	@Override
 	public void onDestroy() {
 		try {
-			if (!(ActivityCompat.checkSelfPermission(view.getContext(), android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(view.getContext(), android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)) {
+			if (checkLocationPermission()) {
 				locationManager.removeUpdates(this);
 			}
 		}
@@ -1093,9 +1092,17 @@ public class HomeLayout extends Fragment implements LocationListener {
 	 */
 	@Override
 	public void onResume(){
-		if (!(ActivityCompat.checkSelfPermission(view.getContext(), android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(view.getContext(), android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)) {
+		if (checkLocationPermission()) {
 			locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, this);
 		}
 		super.onResume();
 	}
+
+	/**
+	 * Checks app permission to access the user location.
+	 * @return true if the permission has been granted, false otherwise.
+	 */
+	private boolean checkLocationPermission(){
+		return getContext().checkSelfPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED && getContext().checkSelfPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED;
+	}
 }

+ 3 - 17
app/src/main/java/com/ivalentin/margolariak/HomeSectionLocation.java

@@ -8,8 +8,6 @@ import android.util.Log;
 import android.view.View;
 import android.widget.LinearLayout;
 
-import com.google.android.gms.maps.model.LatLng;
-
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.Locale;
@@ -24,7 +22,7 @@ import java.util.Locale;
 class HomeSectionLocation extends AsyncTask<Void, Void, Void> {
 
 	private boolean isLocationReported;
-	private LatLng coord;
+	//private LatLng coord;
 	private final View view;
 
 	/**
@@ -62,7 +60,7 @@ class HomeSectionLocation extends AsyncTask<Void, Void, Void> {
 			isLocationReported = true;
 			String latString = o.substring(o.indexOf("<lat>") + 5, o.indexOf("</lat>"));
 			String lonString = o.substring(o.indexOf("<lon>") + 5, o.indexOf("</lon>"));
-			coord = new LatLng(Double.parseDouble(latString), Double.parseDouble(lonString));
+			//coord = new LatLng(Double.parseDouble(latString), Double.parseDouble(lonString));
 		}
 
 		return null;
@@ -77,18 +75,6 @@ class HomeSectionLocation extends AsyncTask<Void, Void, Void> {
 	protected void onPostExecute(Void v) {
 		if (isLocationReported){
 
-			//TODO: Do this on a db table
-			/*SharedPreferences preferences = view.getContext().getSharedPreferences(GM.PREFERENCES.PREFERNCES, Context.MODE_PRIVATE);
-			SharedPreferences.Editor editor = preferences.edit();
-			editor.putLong(GM.PREF_GM_LATITUDE, Double.doubleToLongBits(coord.latitude));
-			editor.putLong(GM.PREF_GM_LONGITUDE, Double.doubleToLongBits(coord.longitude));
-			editor.putString(GM.PREF_GM_LOCATION, new SimpleDateFormat("yyyyMMddHHmmss", Locale.US).format(Calendar.getInstance().getTime()));
-			editor.apply();*/
-
-			//Show menu entry
-			//LinearLayout menuEntry = (LinearLayout) activity.findViewById(R.id.rl_menu_location);
-			//menuEntry.setVisibility(View.VISIBLE);
-
 			//Set up home view section
 			LinearLayout section = (LinearLayout) view.findViewById(R.id.ll_home_section_location);
 			section.setVisibility(View.VISIBLE);
@@ -102,4 +88,4 @@ class HomeSectionLocation extends AsyncTask<Void, Void, Void> {
 		}
 	}
 
-}
+}

+ 37 - 42
app/src/main/java/com/ivalentin/margolariak/LocationLayout.java

@@ -2,16 +2,6 @@ package com.ivalentin.margolariak;
 
 import java.util.Locale;
 
-import com.google.android.gms.maps.CameraUpdateFactory;
-import com.google.android.gms.maps.GoogleMap;
-import com.google.android.gms.maps.MapView;
-import com.google.android.gms.maps.MapsInitializer;
-import com.google.android.gms.maps.OnMapReadyCallback;
-import com.google.android.gms.maps.model.BitmapDescriptorFactory;
-import com.google.android.gms.maps.model.LatLng;
-import com.google.android.gms.maps.model.Marker;
-import com.google.android.gms.maps.model.MarkerOptions;
-
 import android.app.Activity;
 import android.content.Context;
 import android.content.pm.PackageManager;
@@ -24,7 +14,6 @@ import android.location.LocationManager;
 import android.os.Bundle;
 import android.app.Fragment;
 import android.os.Handler;
-import android.support.v4.app.ActivityCompat;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -32,26 +21,25 @@ import android.view.ViewGroup;
 import android.widget.TextView;
 
 /**
- * Section that shows a map with the location of Gasteizko Margolariak. 
- * If no recent report location, it will explain that and will show the 
- * next scheduled activity. 
+ * Section that shows a map with the location of Gasteizko Margolariak.
+ * If no recent report location, it will explain that and will show the
+ * next scheduled activity.
  *
  * @author Iñigo Valentin
  *
  * @see Fragment
- * @see OnMapReadyCallback
  *
  */
-public class LocationLayout extends Fragment implements OnMapReadyCallback, LocationListener {
+public class LocationLayout extends Fragment implements LocationListener {
 
 	//The map view
-	private MapView mapView;
-	GoogleMap gMap;
+	//private MapView mapView;
+	//GoogleMap gMap;
 
 	private LocationManager locationManager;
 
 	//Locations for the user and Gasteizko Margolariak
-	private LatLng gmLocation;
+	//private LatLng gmLocation;
 
 	//The main View
 	private View v;
@@ -59,8 +47,8 @@ public class LocationLayout extends Fragment implements OnMapReadyCallback, Loca
 	private double lat, lon;
 
 	//Map marker
-	Marker gmMarker;
-	MarkerOptions moGm = new MarkerOptions();
+	//Marker gmMarker;
+	//MarkerOptions moGm = new MarkerOptions();
 
 	private final Handler markerHandler = new Handler();
 
@@ -68,7 +56,7 @@ public class LocationLayout extends Fragment implements OnMapReadyCallback, Loca
 		@Override
 		public void run() {
 
-			if (gmMarker != null) {
+			/*if (gmMarker != null) {
 				gmMarker.remove();
 				if (refreshLocation()) {
 					gmMarker.setPosition(new LatLng(lat, lon));
@@ -79,7 +67,7 @@ public class LocationLayout extends Fragment implements OnMapReadyCallback, Loca
 					moGm.icon(BitmapDescriptorFactory.fromResource(R.drawable.pinpoint_gm));
 					gmMarker = gMap.addMarker(moGm);
 				}
-			}
+			}*/
 			markerHandler.postDelayed(resetMarker, GM.LOCATION.INTERVAL);
 		}
 	};
@@ -92,7 +80,7 @@ public class LocationLayout extends Fragment implements OnMapReadyCallback, Loca
 	 * @param container The container View
 	 * @param savedInstanceState Bundle containing the state
 	 *
-	 * @see android.support.v4.app.Fragment#onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)
+	 * @see Fragment#onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)
 	 */
 	@Override
 	public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
@@ -102,7 +90,7 @@ public class LocationLayout extends Fragment implements OnMapReadyCallback, Loca
 
 		//Set up
 		locationManager = (LocationManager) v.getContext().getSystemService(Context.LOCATION_SERVICE);
-		if (!(ActivityCompat.checkSelfPermission(v.getContext(), android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(v.getContext(), android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)){
+		if (checkLocationPermission()){
 			locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, GM.LOCATION.ACCURACY.TIME, GM.LOCATION.ACCURACY.SPACE, this);
 		}
 
@@ -113,13 +101,13 @@ public class LocationLayout extends Fragment implements OnMapReadyCallback, Loca
 		refreshLocation();
 
 		//Periodically check map
-		markerHandler.post(resetMarker);
+		//markerHandler.post(resetMarker);
 
-		mapView = (MapView) v.findViewById(R.id.mapview);
-		mapView.onCreate(savedInstanceState);
+		//mapView = (MapView) v.findViewById(R.id.mapview);
+		//mapView.onCreate(savedInstanceState);
 
 		// Gets to GoogleMap from the MapView and does initialization stuff
-		mapView.getMapAsync(this);
+		//mapView.getMapAsync(this);
 
 		//Return the view
 		return v;
@@ -131,7 +119,7 @@ public class LocationLayout extends Fragment implements OnMapReadyCallback, Loca
 	 *
 	 * @see android.app.Fragment#onResume()
 	 */
-	@Override
+	/*@Override
 	public void onResume() {
 		if (mapView != null) {
 			mapView.onResume();
@@ -142,14 +130,14 @@ public class LocationLayout extends Fragment implements OnMapReadyCallback, Loca
 		super.onResume();
 
 		markerHandler.post(resetMarker);
-	}
+	}*/
 
 	/**
 	 * Called when the fragment is paused.
 	 * Stops the location manager
 	 * @see android.app.Fragment#onPause()
 	 */
-	@Override
+	/*@Override
 	public void onPause(){
 		if (!(ActivityCompat.checkSelfPermission(v.getContext(), android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(v.getContext(), android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)) {
 			locationManager.removeUpdates(this);
@@ -157,7 +145,7 @@ public class LocationLayout extends Fragment implements OnMapReadyCallback, Loca
 		super.onPause();
 
 		markerHandler.removeCallbacks(resetMarker);
-	}
+	}*/
 
 	/**
 	 * Called when the fragment is destroyed. 
@@ -165,7 +153,7 @@ public class LocationLayout extends Fragment implements OnMapReadyCallback, Loca
 	 * 
 	 * @see android.support.v4.app.Fragment#onDestroy()
 	 */
-	@Override
+	/*@Override
 	public void onDestroy() {
 		super.onDestroy();
 		if (!(ActivityCompat.checkSelfPermission(v.getContext(), android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(v.getContext(), android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)) {
@@ -178,7 +166,7 @@ public class LocationLayout extends Fragment implements OnMapReadyCallback, Loca
 		}
 
 		markerHandler.removeCallbacks(resetMarker);
-	}
+	}*/
 
 	/**
 	 * Called in a situation of low memory. 
@@ -186,14 +174,14 @@ public class LocationLayout extends Fragment implements OnMapReadyCallback, Loca
 	 * 
 	 * @see android.support.v4.app.Fragment#onLowMemory()
 	 */
-	@Override
+	/*@Override
 	public void onLowMemory() {
 		super.onLowMemory();
 		if (mapView != null){
 			mapView.onResume();
 			mapView.onLowMemory();
 		}
-	}
+	}*/
 
 	/**
 	 * Refresh the global variables "lat" and "lon".
@@ -227,11 +215,9 @@ public class LocationLayout extends Fragment implements OnMapReadyCallback, Loca
 	 * Called when the map is ready to be used. 
 	 * Initializes it and sets the Gasteizko Margolariak marker.
 	 * 
-	 * @param googleMap the map
-	 * 
-	 * @see com.google.android.gms.maps.OnMapReadyCallback#onMapReady(com.google.android.gms.maps.GoogleMap)
+	 *
 	 */
-	@Override
+	/*@Override
 	public void onMapReady(GoogleMap googleMap) {
 
 		gMap = googleMap;
@@ -265,7 +251,7 @@ public class LocationLayout extends Fragment implements OnMapReadyCallback, Loca
 			locationManager.requestLocationUpdates(locationManager.getBestProvider(new Criteria(), true), GM.LOCATION.ACCURACY.TIME, GM.LOCATION.ACCURACY.SPACE, this);
 			onLocationChanged(locationManager.getLastKnownLocation(LocationManager.PASSIVE_PROVIDER));
 		}
-	}
+	}*/
 
 
 	private void calCulateDistance(Location userLocation){
@@ -339,4 +325,13 @@ public class LocationLayout extends Fragment implements OnMapReadyCallback, Loca
 	public void onProviderDisabled(String provider) {
 		//populateAround();
 	}
+
+	/**
+	 * Checks app permission to access the user location.
+	 * @return true if the permission has been granted, false otherwise.
+	 *
+	 * @see android.app.Fragment#onResume()
+	 */
+	private boolean checkLocationPermission(){
+		return getContext().checkSelfPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED && getContext().checkSelfPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED;	}
 }

+ 0 - 51
app/src/main/java/com/ivalentin/margolariak/MainActivity.java

@@ -18,7 +18,6 @@ import android.graphics.drawable.ColorDrawable;
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
 import android.util.DisplayMetrics;
 import android.util.Log;
 import android.view.Gravity;
@@ -38,11 +37,6 @@ import android.widget.RelativeLayout;
 import android.widget.TextView;
 import android.os.Handler;
 
-import com.google.android.gms.appindexing.Action;
-import com.google.android.gms.appindexing.AppIndex;
-import com.google.android.gms.appindexing.Thing;
-import com.google.android.gms.common.api.GoogleApiClient;
-
 /**
  * The main Activity of the app. It's actually the only content activity, and it loads other fragments.
  *
@@ -71,12 +65,6 @@ public class MainActivity extends Activity {
 		}
 	};
 
-	/**
-	 * ATTENTION: This was auto-generated to implement the App Indexing API.
-	 * See https://g.co/AppIndexing/AndroidStudio for more information.
-	 */
-	private GoogleApiClient client;
-
 	// Shareable URL
 	private String shareURL = GM.SHARE.HOME;
 	private String shareTitle = "";
@@ -632,10 +620,6 @@ public class MainActivity extends Activity {
 				}
 			}
 		}
-
-		// ATTENTION: This was auto-generated to implement the App Indexing API.
-		// See https://g.co/AppIndexing/AndroidStudio for more information.
-		client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
 	}
 
 	/**
@@ -815,39 +799,4 @@ public class MainActivity extends Activity {
 		super.onDestroy();
 	}
 
-	/**
-	 * ATTENTION: This was auto-generated to implement the App Indexing API.
-	 * See https://g.co/AppIndexing/AndroidStudio for more information.
-	 */
-	public Action getIndexApiAction() {
-		Thing object = new Thing.Builder()
-				.setName("Main Page") // TODO: Define a title for the content shown.
-				// TODO: Make sure this auto-generated URL is correct.
-				.setUrl(Uri.parse("http://[ENTER-YOUR-URL-HERE]"))
-				.build();
-		return new Action.Builder(Action.TYPE_VIEW)
-				.setObject(object)
-				.setActionStatus(Action.STATUS_TYPE_COMPLETED)
-				.build();
-	}
-
-	@Override
-	public void onStart() {
-		super.onStart();
-
-		// ATTENTION: This was auto-generated to implement the App Indexing API.
-		// See https://g.co/AppIndexing/AndroidStudio for more information.
-		client.connect();
-		AppIndex.AppIndexApi.start(client, getIndexApiAction());
-	}
-
-	@Override
-	public void onStop() {
-		super.onStop();
-
-		// ATTENTION: This was auto-generated to implement the App Indexing API.
-		// See https://g.co/AppIndexing/AndroidStudio for more information.
-		AppIndex.AppIndexApi.end(client, getIndexApiAction());
-		client.disconnect();
-	}
 }

+ 49 - 127
app/src/main/java/com/ivalentin/margolariak/ScheduleLayout.java

@@ -7,15 +7,6 @@ import java.util.Calendar;
 import java.util.Date;
 import java.util.Locale;
 
-import com.google.android.gms.maps.CameraUpdate;
-import com.google.android.gms.maps.CameraUpdateFactory;
-import com.google.android.gms.maps.GoogleMap;
-import com.google.android.gms.maps.MapView;
-import com.google.android.gms.maps.MapsInitializer;
-import com.google.android.gms.maps.OnMapReadyCallback;
-import com.google.android.gms.maps.model.LatLng;
-import com.google.android.gms.maps.model.MarkerOptions;
-
 import android.annotation.SuppressLint;
 import android.app.Dialog;
 import android.content.DialogInterface;
@@ -26,7 +17,7 @@ import android.database.Cursor;
 import android.database.sqlite.SQLiteDatabase;
 import android.os.Bundle;
 import android.app.Fragment;
-import android.support.v4.app.ActivityCompat;
+import android.preference.PreferenceManager;
 import android.text.Editable;
 import android.text.TextWatcher;
 import android.util.Log;
@@ -44,6 +35,12 @@ import android.widget.LinearLayout;
 import android.widget.ScrollView;
 import android.widget.TextView;
 
+import org.osmdroid.api.IMapController;
+import org.osmdroid.config.Configuration;
+import org.osmdroid.tileprovider.tilesource.TileSourceFactory;
+import org.osmdroid.util.GeoPoint;
+import org.osmdroid.views.MapView;
+
 /**
  * Fragment to be inflated showing the festivals schedule.
  * Contains a date selector and a ScrollView with all the activities for the day.
@@ -51,7 +48,7 @@ import android.widget.TextView;
  * @author Inigo Valentin
  *
  */
-public class ScheduleLayout extends Fragment implements OnMapReadyCallback{
+public class ScheduleLayout extends Fragment{
 
 	private Bundle bund;
 
@@ -61,9 +58,7 @@ public class ScheduleLayout extends Fragment implements OnMapReadyCallback{
 
 	//Map stuff for the dialog
 	private MapView mapView;
-	private GoogleMap map;
-	private LatLng location;
-        private int route;
+	private int route;
 	private View view;
 	private String markerName = "";
 
@@ -75,7 +70,7 @@ public class ScheduleLayout extends Fragment implements OnMapReadyCallback{
 	 * @param container The container View
 	 * @param savedInstanceState Bundle containing the state
 	 *
-	 * @see android.support.v4.app.Fragment#onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)
+	 * @see Fragment#onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)
 	 */
 	@SuppressLint("InflateParams") //Throws unknown error when done properly.
 	@Override
@@ -410,7 +405,7 @@ public class ScheduleLayout extends Fragment implements OnMapReadyCallback{
 			cursor = db.rawQuery("SELECT festival_event_gm.id, title_" + lang + ", description_" + lang + ", place, route, start, end, name_" + lang + ", address_" + lang + ", lat, lon, host, sponsor FROM festival_event_gm, place WHERE place = place.id AND festival_event_gm.id = " + id + ";", null);
 		}
 		else{
-			cursor = db.rawQuery("SELECT festival_event_city.id, title_" + lang + ", description_" + lang + ", place, route, start, end, name_" + lang + ", address_" + lang + ", lat, lon, host FROM, sponsor festival_event_city, place WHERE place = place.id AND festival_event_city.id = " + id + ";", null);
+			cursor = db.rawQuery("SELECT festival_event_city.id, title_" + lang + ", description_" + lang + ", place, route, start, end, name_" + lang + ", address_" + lang + ", lat, lon, host, sponsor FROM, sponsor festival_event_city, place WHERE place = place.id AND festival_event_city.id = " + id + ";", null);
 		}
 		if (cursor.getCount() > 0){
 			cursor.moveToNext();
@@ -487,11 +482,11 @@ public class ScheduleLayout extends Fragment implements OnMapReadyCallback{
 
 			//Set time
 			try{
-				if (cursor.getString(5) == null || cursor.getString(5).length() == 0) {
-					tvTime.setText(timeFormat.format(dateFormat.parse(cursor.getString(4))));
+				if (cursor.getString(6) == null || cursor.getString(6).length() == 0) {
+					tvTime.setText(timeFormat.format(dateFormat.parse(cursor.getString(5))));
 				}
 				else {
-					String time = timeFormat.format(dateFormat.parse(cursor.getString(4))) + " - " + timeFormat.format(dateFormat.parse(cursor.getString(5)));
+					String time = timeFormat.format(dateFormat.parse(cursor.getString(5))) + " - " + timeFormat.format(dateFormat.parse(cursor.getString(6)));
 					tvTime.setText(time);
 				}
 			}
@@ -500,14 +495,22 @@ public class ScheduleLayout extends Fragment implements OnMapReadyCallback{
 			}
 
 			//Set the place
-			tvPlace.setText(cursor.getString(6));
-			tvAddress.setText(cursor.getString(7));
+			tvPlace.setText(cursor.getString(7));
+			tvAddress.setText(cursor.getString(8));
 
 			//Set up map
 			// TODO if route...
-			location = new LatLng(Double.parseDouble(cursor.getString(8)), Double.parseDouble(cursor.getString(9)));
+			//location = new LatLng(Double.parseDouble(cursor.getString(8)), Double.parseDouble(cursor.getString(9)));
+			//mapView = (MapView) dialog.findViewById(R.id.mv_dialog_schedule_map);
+			//mapView.onCreate(bund);
+
 			mapView = (MapView) dialog.findViewById(R.id.mv_dialog_schedule_map);
-			mapView.onCreate(bund);
+
+			mapView.setMultiTouchControls(true);
+			IMapController mapController = mapView.getController();
+			mapController.setZoom(15);
+			GeoPoint center = new GeoPoint(cursor.getDouble(9), cursor.getDouble(10));
+			mapController.setCenter(center);
 
 			//Close the db connection
 			cursor.close();
@@ -525,7 +528,7 @@ public class ScheduleLayout extends Fragment implements OnMapReadyCallback{
 			dialog.setOnCancelListener(new OnCancelListener(){
 				@Override
 				public void onCancel(DialogInterface dialog) {
-					if (map != null) {
+				/*	if (map != null) {
 						if (!(ActivityCompat.checkSelfPermission(view.getContext(), android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(view.getContext(), android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)) {
 							map.setMyLocationEnabled(false);
 						}
@@ -533,7 +536,7 @@ public class ScheduleLayout extends Fragment implements OnMapReadyCallback{
 					if (mapView != null){
     						mapView.onResume();
     						mapView.onDestroy();
-    					}
+    					}*/
 				}
 			});
 
@@ -550,14 +553,13 @@ public class ScheduleLayout extends Fragment implements OnMapReadyCallback{
 			dialog.show();
 
 			//Start the map
-			startMap();
-			mapView.onResume();
+			//startMap();
+			//mapView.onResume();
 			dialog.setOnShowListener(new OnShowListener(){
 
 				@Override
 				public void onShow(DialogInterface dialog) {
-					// Gets to GoogleMap from the MapView and does initialization stuff
-					startMap();
+					//startMap();
 
 				}
 			});
@@ -569,80 +571,12 @@ public class ScheduleLayout extends Fragment implements OnMapReadyCallback{
 	 * Starts the map in the dialog.
 	 */
 	private void startMap(){
-		mapView.getMapAsync(this);
+		//mapView.getMapAsync(this);
 	}
 
-	/**
-	 * Called when the fragment is brought back into the foreground.
-	 * Resumes the map and the location manager.
-	 *
-	 * @see android.app.Fragment#onResume()
-	 */
-	@Override
-	public void onResume() {
-		if (mapView != null)
-			mapView.onResume();
-		if (map != null) {
-			if (!(ActivityCompat.checkSelfPermission(view.getContext(), android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(view.getContext(), android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)) {
-				map.setMyLocationEnabled(true);
-			}
-		}
-		super.onResume();
-	}
 
-	/**
-	 * Called when the fragment is destroyed.
-	 * Finishes the map.
-	 *
-	 * @see android.app.Fragment#onDestroy()
-	 */
-	@Override
-	public void onDestroy() {
-		super.onDestroy();
-		if (map != null) {
-			if (!(ActivityCompat.checkSelfPermission(view.getContext(), android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(view.getContext(), android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)) {
-				map.setMyLocationEnabled(false);
-			}
-		}
-		if (mapView != null){
-			try{
-				mapView.onResume();
-				mapView.onDestroy();
-			}
-			catch(Exception e){
-				Log.e("Error destroying mapview: ", e.toString());
-			}
-		}
-	}
 
-	/**
-	 * Called when the fragment is paused.
-	 * Finishes the map.
-	 *
-	 * @see android.app.Fragment#onPause()
-	 */
-	@Override
-	public void onPause() {
-		super.onDestroy();
-		if (map != null) {
-			if (!(ActivityCompat.checkSelfPermission(view.getContext(), android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(view.getContext(), android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)) {
-				try{
-					map.setMyLocationEnabled(false);
-				}
-				catch(Exception e){
-					Log.e("Error pausing map: ", e.toString());
-				}
-			}
-		}
-		if (mapView != null){
-			try{
-				mapView.onPause();
-			}
-			catch(Exception e){
-				Log.e("Error pausing mapview: ", e.toString());
-			}
-		}
-	}
+
 
 	/**
 	 * Called in a situation of low memory.
@@ -650,46 +584,34 @@ public class ScheduleLayout extends Fragment implements OnMapReadyCallback{
 	 *
 	 * @see android.app.Fragment#onLowMemory()
 	 */
-	@Override
+	/*@Override
 	public void onLowMemory() {
 		super.onLowMemory();
 		if (mapView != null){
 			mapView.onResume();
 			mapView.onLowMemory();
 		}
-	}
+	}*/
 
 	/**
-	 * Called when the map is ready to be displayed.
-	 * Sets the map options and a marker for the map.
-	 *
-	 * @param googleMap The map to be shown
+	 * Called when the activity is resumed.
+	 * Lets the map handle this situation.
 	 *
-	 * @see com.google.android.gms.maps.OnMapReadyCallback#onMapReady(com.google.android.gms.maps.GoogleMap)
+	 * @see android.app.Fragment#onResume()
 	 */
 	@Override
-	public void onMapReady(GoogleMap googleMap) {
-		this.map = googleMap;
+	public void onResume() {
+		Configuration.getInstance().load(getContext(), PreferenceManager.getDefaultSharedPreferences(getContext()));
+		super.onResume();
+	}
 
-		map.getUiSettings().setMyLocationButtonEnabled(false);
-		if (!(ActivityCompat.checkSelfPermission(view.getContext(), android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(view.getContext(), android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED)) {
-			map.setMyLocationEnabled(true);
-		}
-		// Needs to call MapsInitializer before doing any CameraUpdateFactory calls
-		try {
-			MapsInitializer.initialize(this.getActivity());
-			CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(location, 14);
-			map.animateCamera(cameraUpdate);
-		}
-		catch (Exception e) {
-			Log.e("Error initializing maps", e.toString());
-		}
-		//Set GM marker
-		MarkerOptions mo = new MarkerOptions();
-		mo.title(markerName);
-		mo.position(location);
-		map.addMarker(mo);
 
-	}
 
+	/**
+	 * Checks app permission to access the user location.
+	 * @return true if the permission has been granted, false otherwise.
+	 */
+	private boolean checkLocationPermission(){
+		return getContext().checkSelfPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED && getContext().checkSelfPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED;
+	}
 }

+ 1 - 6
app/src/main/java/com/ivalentin/margolariak/Sync.java

@@ -452,7 +452,6 @@ class Sync extends AsyncTask<Void, Void, Void> {
 				}
 				catch (Exception ex){
 					//End of string
-					Log.d("SYNC", "End of data string:" + ex.toString());
 					str = "";
 				}
 				publishProgress();
@@ -482,7 +481,6 @@ class Sync extends AsyncTask<Void, Void, Void> {
 			if (settings.contains("\"name\":\"comments\",\"value\":\"")){
 				value = settings.substring(settings.indexOf("\"name\":\"comments\",\"value\":\"") + 27, settings.indexOf("\"name\":\"comments\",\"value\":\"") + 28);
 				if ("0".equals(value) || "1".equals(value)){
-					Log.d("SYNC", "Setting found: comments = " + value);
 					if ("0".equals(value)) {
 						editor.putBoolean(GM.DATA.KEY.COMMENTS, false);
 					}
@@ -494,7 +492,6 @@ class Sync extends AsyncTask<Void, Void, Void> {
 			if (settings.contains("\"name\":\"festivals\",\"value\":\"")){
 				value = settings.substring(settings.indexOf("\"name\":\"festivals\",\"value\":\"") + 28, settings.indexOf("\"name\":\"festivals\",\"value\":\"") + 29);
 				if ("0".equals(value) || "1".equals(value)){
-					Log.d("SYNC", "Setting found: lablanca = " + value);
 					if ("0".equals(value)) {
 						editor.putBoolean(GM.DATA.KEY.LABLANCA, false);
 					}
@@ -506,7 +503,6 @@ class Sync extends AsyncTask<Void, Void, Void> {
 			if (settings.contains("\"name\":\"photos\",\"value\":\"")){
 				value = settings.substring(settings.indexOf("\"name\":\"photos\",\"value\":\"") + 25, settings.indexOf("\"name\":\"photos\",\"value\":\"") + 26);
 				if ("0".equals(value) || "1".equals(value)){
-					Log.d("SYNC" ,"Setting found: photos = " + value);
 					if ("0".equals(value)) {
 						editor.putBoolean(GM.DATA.KEY.PHOTOS, false);
 					}
@@ -539,7 +535,6 @@ class Sync extends AsyncTask<Void, Void, Void> {
 	 */
 	private boolean saveTableVersion(SQLiteDatabase db, String data) {
 
-		JSONObject jsonObj;
 		String section, row, version;
 		String str = data;
 		Cursor cursor;
@@ -606,7 +601,7 @@ class Sync extends AsyncTask<Void, Void, Void> {
 		}
 
 		if (GM.DB.TABLE.VERSION.equals(table)){
-			Log.d("SYNC", "Got the settings table. Special treatment...");
+			Log.d("SYNC", "Got the version table. Special treatment...");
 			return saveTableVersion(db, data);
 		}
 

BIN
app/src/main/res/drawable/menu.png


+ 5 - 4
app/src/main/res/layout/activity_main.xml

@@ -66,15 +66,16 @@
 		<ImageButton
 			android:id="@+id/bt_menu"
 			android:layout_width="wrap_content"
-			android:layout_height="match_parent"
+			android:layout_height="wrap_content"
 			android:layout_weight=".2"
-			android:adjustViewBounds="false"
+			android:adjustViewBounds="true"
 			android:background="#00000000"
 			android:contentDescription="@string/tutorial_menu"
 			android:cropToPadding="false"
+			android:maxHeight="45dp"
+			android:maxWidth="45dp"
 			android:onClick="showMenu"
-			android:src="@drawable/ic_group_expand_00"
-			app:srcCompat="@drawable/ic_group_expand_00"/>
+			android:src="@android:drawable/ic_menu_more"/>
 
 		<ProgressBar
 			android:id="@+id/pb_sync"

+ 1 - 2
app/src/main/res/layout/activity_settings.xml

@@ -63,8 +63,7 @@
             android:background="#00000000"
             android:contentDescription="@android:string/yes"
             android:onClick="finish"
-            android:src="@android:drawable/ic_menu_revert"
-            app:srcCompat="@android:drawable/ic_menu_revert"/>
+            android:src="@android:drawable/ic_menu_revert"/>
 
     </LinearLayout>
 

+ 0 - 1
app/src/main/res/layout/activity_sponsor.xml

@@ -64,7 +64,6 @@
             android:contentDescription="@android:string/yes"
             android:layout_weight=".2"
             android:id="@+id/bt_back"
-            app:srcCompat="@android:drawable/ic_menu_revert"
             android:background="#00000000"/>
 
     </LinearLayout>

+ 0 - 1
app/src/main/res/layout/activity_us.xml

@@ -63,7 +63,6 @@
             android:contentDescription="@android:string/yes"
             android:layout_weight=".2"
             android:id="@+id/bt_back"
-            app:srcCompat="@android:drawable/ic_menu_revert"
             android:background="#00000000"/>
 
     </LinearLayout>

+ 2 - 3
app/src/main/res/layout/dialog_schedule.xml

@@ -160,13 +160,12 @@
                 android:layout_margin="20dp"
                 android:padding="3dp">
 
-                <com.google.android.gms.maps.MapView
+                <org.osmdroid.views.MapView
                     android:id="@+id/mv_dialog_schedule_map"
                     android:layout_width="fill_parent"
                     android:layout_height="fill_parent"
                     android:background="@android:color/black"
-                    android:padding="1dp">
-                </com.google.android.gms.maps.MapView>
+                    android:padding="1dp"/>
             </LinearLayout>
         </LinearLayout>
 

+ 2 - 2
app/src/main/res/layout/dialog_sponsor.xml

@@ -35,7 +35,7 @@
         <ImageView
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            app:srcCompat="@drawable/photo_placeholder_thumb"
+            android:src="@drawable/photo_placeholder_thumb"
             android:id="@+id/iv_dialog_sponsor_image"
             android:maxHeight="140dp"
             android:adjustViewBounds="true"/>
@@ -125,4 +125,4 @@
         android:layout_alignParentBottom="true"
         android:layout_height="50dp"/>
 
-</LinearLayout>
+</LinearLayout>

+ 2 - 2
app/src/main/res/layout/dialog_us.xml

@@ -39,7 +39,7 @@
             android:adjustViewBounds="true"
             android:maxHeight="140dp"
             android:minHeight="100dp"
-            app:srcCompat="@drawable/photo_placeholder_thumb"/>
+            android:src="@drawable/photo_placeholder_thumb"/>
 
         <TextView
             android:id="@+id/tv_dialog_us_text"
@@ -61,4 +61,4 @@
         android:layout_alignParentBottom="true"
         android:layout_height="50dp"/>
 
-</LinearLayout>
+</LinearLayout>

+ 9 - 17
app/src/main/res/layout/fragment_layout_lablanca_nofestivals.xml

@@ -73,8 +73,7 @@
                         android:baselineAlignBottom="true"
                         android:minHeight="15dp"
                         android:minWidth="15dp"
-                        android:src="@drawable/ul"
-                        app:srcCompat="@drawable/ul"/>
+                        android:src="@drawable/ul"/>
 
                     <LinearLayout
                         android:layout_width="wrap_content"
@@ -120,8 +119,7 @@
                         android:baselineAlignBottom="false"
                         android:minHeight="15dp"
                         android:minWidth="15dp"
-                        android:src="@drawable/ul"
-                        app:srcCompat="@drawable/ul"/>
+                        android:src="@drawable/ul"/>
 
                     <LinearLayout
                         android:layout_width="wrap_content"
@@ -168,8 +166,7 @@
                         android:baselineAlignBottom="false"
                         android:minHeight="15dp"
                         android:minWidth="15dp"
-                        android:src="@drawable/ul"
-                        app:srcCompat="@drawable/ul"/>
+                        android:src="@drawable/ul"/>
 
                     <LinearLayout
                         android:layout_width="wrap_content"
@@ -215,8 +212,7 @@
                         android:baselineAlignBottom="false"
                         android:minHeight="15dp"
                         android:minWidth="15dp"
-                        android:src="@drawable/ul"
-                        app:srcCompat="@drawable/ul"/>
+                        android:src="@drawable/ul"/>
 
                     <LinearLayout
                         android:layout_width="wrap_content"
@@ -262,8 +258,7 @@
                         android:baselineAlignBottom="false"
                         android:minHeight="15dp"
                         android:minWidth="15dp"
-                        android:src="@drawable/ul"
-                        app:srcCompat="@drawable/ul"/>
+                        android:src="@drawable/ul"/>
 
                     <LinearLayout
                         android:layout_width="wrap_content"
@@ -309,8 +304,7 @@
                         android:baselineAlignBottom="false"
                         android:minHeight="15dp"
                         android:minWidth="15dp"
-                        android:src="@drawable/ul"
-                        app:srcCompat="@drawable/ul"/>
+                        android:src="@drawable/ul"/>
 
                     <LinearLayout
                         android:layout_width="wrap_content"
@@ -356,8 +350,7 @@
                         android:baselineAlignBottom="false"
                         android:minHeight="15dp"
                         android:minWidth="15dp"
-                        android:src="@drawable/ul"
-                        app:srcCompat="@drawable/ul"/>
+                        android:src="@drawable/ul"/>
 
                     <LinearLayout
                         android:layout_width="wrap_content"
@@ -403,8 +396,7 @@
                         android:baselineAlignBottom="false"
                         android:minHeight="15dp"
                         android:minWidth="15dp"
-                        android:src="@drawable/ul"
-                        app:srcCompat="@drawable/ul"/>
+                        android:src="@drawable/ul"/>
 
                     <LinearLayout
                         android:layout_width="wrap_content"
@@ -440,4 +432,4 @@
 
 
 
-</com.ivalentin.margolariak.CustomScrollView>
+</com.ivalentin.margolariak.CustomScrollView>

+ 0 - 16
app/src/main/res/values-v11/styles.xml

@@ -1,16 +0,0 @@
-<resources>
-
-    <!--
-        Base application theme for API 11+. This theme completely replaces
-        AppBaseTheme from res/values/styles.xml on API 11+ devices.
-    -->
-    <style name="AppBaseTheme" parent="Theme.AppCompat.Light">
-        <!-- API 11 theme customizations can go here. -->
-    </style>
-    
-    <style name="Theme.Default" parent="Theme.AppCompat.Light"></style>
-    <style name="Theme.NoTitle" parent="Theme.AppCompat.Light.NoActionBar"></style>
-    <style name="Theme.FullScreen" parent="Theme.AppCompat.Light.NoActionBar"></style>
-    
-
-</resources>

+ 0 - 13
app/src/main/res/values-v14/styles.xml

@@ -1,17 +1,4 @@
 <resources>
 
-    <!--
-        Base application theme for API 14+. This theme completely replaces
-        AppBaseTheme from BOTH res/values/styles.xml and
-        res/values-v11/styles.xml on API 14+ devices.
-    -->
-    <style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
-        <!-- API 14 theme customizations can go here. -->
-    </style>
-    
-    <style name="Theme.Default" parent="Theme.AppCompat.Light"></style>
-    <style name="Theme.NoTitle" parent="Theme.AppCompat.Light.NoActionBar"></style>
-    <style name="Theme.FullScreen" parent="Theme.AppCompat.Light.NoActionBar"></style>
-    
 
 </resources>

+ 4 - 20
app/src/main/res/values/styles.xml

@@ -1,32 +1,16 @@
 <resources>
 
-    <!--
-        Base application theme, dependent on API level. This theme is replaced
-        by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-    -->
-    <style name="AppBaseTheme" parent="Theme.AppCompat.Light">
-        <!--
-            Theme customizations available in newer API levels can go in
-            res/values-vXX/styles.xml, while customizations related to
-            backward-compatibility can go here.
-        -->
-    </style>
-
     <!-- Application theme. -->
-    <style name="AppTheme" parent="AppBaseTheme">
+    <style name="AppTheme" parent="android:Theme.Material">
         <!-- All customizations that are NOT specific to a particular API-level can go here. -->
         <item name="android:textColorPrimary">#333333</item>
         <item name="android:windowBackground">@color/background_menu</item>
         <item name="android:colorBackground">@color/background_app</item>
 
-        <item name="colorPrimary">@color/background_menu</item>
-        <item name="colorPrimaryDark">@color/background_menu</item>
-        <item name="colorAccent">@color/background_menu</item>
+        <item name="android:colorPrimary">@color/background_menu</item>
+        <item name="android:colorPrimaryDark">@color/background_menu</item>
+        <item name="android:colorAccent">@color/background_menu</item>
 
     </style>
-    
-    <style name="Theme.Default" parent="Theme.AppCompat.Light"></style>
-    <style name="Theme.NoTitle" parent="Theme.AppCompat.Light.NoActionBar"></style>
-    <style name="Theme.FullScreen" parent="Theme.AppCompat.Light.NoActionBar"></style>
 
 </resources>

+ 7 - 565
build/intermediates/dex-cache/cache.xml

@@ -3,84 +3,12 @@
 
     <item
         is-multidex="true"
-        jar="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/incremental-runtime-classes/debug/instant-run.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="3be78ebc2706b2e1fe2f12d5726887a92d6c183b">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10000/instant-run_9d27da560db036388481cceb66c0d7b74d861748/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/1df6ec05763ae7c0b03d95fad5b62abb594b03f5/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="fc3036436defd3070337b7191c50a136ebca7f8f">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_91c83d0bd6f9bb44be47370dd9323b0fe6db0c0c/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/411521bcac4d3a36d6701e57fa9d0881b05e44df/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="d7c42c80f6509b9ea4db28ca7859ffae08ec5741">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_e8c8c160ac172c44e62d7c98e38f6ab80acecc4a/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/2bcb57fb15b84c7caeaed12e877607d9c176418e/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="c72b1515efbd8ad652e2d63582c8234a979b1e53">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_250cbf1c7f9cbf2ad80ebbd2e26621c5858ed045/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/5ee45363de1679cd8ee6bd76f3f418dfc9b7dcfa/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="56d68d1174b9c1e368017a850b62b12429f39757">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_d39a5fe786d68861f75cea8242374123e8fe30f7/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/3a7fb18cc0b6a6ad8472f29d06b7b21f29a705c3/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="c8bf878c09bf0df6ae76eb6c2df38c6a186b38b7">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_6900433e2f973d9911e72efa50832a06f36419e2/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/f8e7a170b17862354d01005caff629677cde16a9/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="2c2f1b3f82c027e98f56bb0154de0acbcce42e6d">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_41d151995c4019f037e99e0f16390cc2fbaa016c/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/c1bc6be153e69b285588af8e9df1b161521852ef/output/jars/classes.jar"
+        jar="/home/seavenois/.android/build-cache/150ee970fec509a8bb80e04a4f3eafc7c12de75a/output/jars/classes.jar"
         jumboMode="true"
         optimize="true"
         revision="25.0.0"
-        sha1="416fb9ee2fd6e7af0bba04b01d90cb475b1e2074">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_de18ab6696dd7f1651bd12189ab80dcfae0b743b/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/f376616b0c288525dbfe0e6db2b0bb4ce33e444e/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="8fe8a8f77d651982ce5e18f6187dc4daf914ac57">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_4564d94bbdffbdd67bcfc7e6861174bfb4c50db5/classes.dex" />
+        sha1="4b325ed66dffa4ffd6e733cb452986bb3159d756">
+        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_e9b2ffcbca64c37b946d07a168f54c3cefb75169/classes.dex" />
     </item>
     <item
         is-multidex="true"
@@ -93,255 +21,12 @@
     </item>
     <item
         is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/af25d2a42446f6d7c782d7261ca6054429781d60/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="eea424e61a0c85b93a0e477565314a58136abaea">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_c774fec1650a0804d27637a6b213a7b8703b697e/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/ae62e63ba93119d65ddc2230b62f648ee9a12c79/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="8544f739799dd15db63927073a21312864ab0bfd">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_eb055095b756cd0d16dc77f09afa5b481a756056/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/651c090dad16433d86fd3bc8ff9a15700c4dd73d/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="e820b7be8c035dd522da4bc822e8a76c8e27921a">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_ad1250f13b78780131216dec918deea0cf72dbcc/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/20a88bd34ff367b907f51030a6f99c00e8e3866c/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="34c23b5894b4f24d566bfc33e0e25462c6436b78">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_f8cb854f623b042acf794958e5d3943c5e43e07c/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/c0c831bbe53f7a9b13b417e1af51f5fc45029e22/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="364364bf77b4a71afc5930fc3ae57b3f0eea637c">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_c60e3e0f27f06a293e8c73ec8593fc29a46cb8ee/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/6f01e1b13d85dc1e154d6a3c1a0097238941f145/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="d8942ee348aaa9341f08f7e2437063893fe27542">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_b96fa1f26bb7e3da4cc33caae41eba202167a404/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/8e145904c1e38da5cda499721c37f3bf91603263/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="02b91f8efa91dcdf5c555ee24b7f006f02cd0f8b">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_643f097a2b0788f6d50e81018d31dd7cb0035edb/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android-sdk/extras/android/m2repository/com/android/support/support-annotations/25.2.0/support-annotations-25.2.0.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="4a5a82a027706397fff621b22fd6fa796e91d7c5">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/support-annotations-25.2.0_03336f5abe3f66a7388fb0b52cc342951c118805/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/9072dc1f3f9e2e7618f168c048e06f9bfcfd58a7/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="e1625e48a836779b5fa141d22e5d05563aaccc9a">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_be2a994dfbd38d34fb1383a0960c131985661cd4/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/00a0e852403adf3d73bca9ee8601918f1993e612/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="2430e711762a749feb00b3d64858ca4768251b9d">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_890c7c95033af2523d9d9e4a823b4c7f59eb85e3/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/2274a74b5b07b3d7d910b870faf58ea08a93acd6/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="810f41e5b7fd99f196ebeabe865ba2c54e7e76dc">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_39c0f4c475d57ec5f5f6b93191c545708d557b62/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/26682159b6a761202b7f2a0dfda95f76a355c7c1/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="7c24e2e9773fb498e390ce973db382c3ddcf748e">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_fe995246cecd57381f3da15b4cde7cd6c0247429/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/7132067b5c4af87c8a4d05973fc721f120f9378a/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="f15e20dd7bcde7c688cfda44d0c8320a5c1c24b8">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_77e335e917bd9925bfa3fb9216a2d062815eb341/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/c03e37a2556b20b8cf212a930a98976a76a4bab1/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="ed87ccdcb70c17d71ba4e6e4ac16afa62d3c49fb">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_d747b9adeab73a5f87e4af054113f91a0171b31a/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/309a102be80c2e1d29647742d8f8a602ecddb36d/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="f47f4d5bdfd7d7bf330945b8a7ccce4ab437a710">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_29c0ee245fa18ff80b1da772bc52cccb91c323d8/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/1ae1c2e22222dcdccdb980587eb0e12189264060/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="c6aa915c08cfd82780c10d4b957018bf819a48e2">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_f0cbbd61103e487dc3b8014fb6a8f2f185032d71/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/472751ae80f8615cf95ed05aaacd84aada9fbfb1/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="43e9789bd3240271265ab30ce1be9f224843f5a8">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_4ea27be90ece200f5c5125b7daf8f92fecb9d69f/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/29f5ac14fd2f360a32b763d0ff212912da6c398c/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="576570f46ff6ccc69a984af9e55ddd58d9549270">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_eaf616922af4f1f01d069917fa3528d84d72d31f/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/55284b82d0978a9b10595d4dfb7f503a96cb1923/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="c6706cc7c8c3093560edd55d322218afe7798aa9">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_4c42d7ed3ad030e937028bae73f7a03d9f5958d0/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/58c19b7a7571b6fa1d96ba57f928ffa7b57c9d43/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="cb454b52545859ed2f24a6c01366805b0fa04b22">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_c88a317d4d9910a1a8bf455e3479524967dd9405/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/abc875da3bc8c66afd95ace04fcbde4a411a9c8c/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="a25b0b5aec89681b95d32780ad7904c1e1e4c679">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_87067d2cdf58512a2435a6df2f934dacf41c10d8/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/a96cd15c5fd3dda4843e75792c5787f2ddea4451/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="2c379c235d7983201bb83edfc3c60bb0dafb5805">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_e9c0aa826d705e4a48fdf979687befd6256b0a2b/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/81e972f50d23733c58dbb266efd802210f177cce/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="63b03eaa1aa9b9431c7638841175f9842dcbf274">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_9660734ec8d90b06957293761af8533473afed84/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/3924cbe4344bc619e86c4945361b1e4bda5eab83/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="c175c3009577fad8b433703f5d7ac2dc21d3871f">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_9074e05eef31ff9fafa31ab74e79d46c2928e703/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/b64e264a4ab0a4d48d395b92a1a36ef98575bfaf/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="b5b6af36bacf1d812cd3dc45f9dcab9ea471ed91">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_5e92d423cb90ba80509360b42fd44c4124121dfb/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/63ff0eb019d790c905eccb1be3548fe23f01f60e/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="5594a368622908d89c47d9a391aa2724fe046c35">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_b99beea2e0e2edf1ded9de3831d0ccbd05378f1d/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/22e7978142e0b4e780be4de8d20ba334c7fe1211/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="76ea35b41786082af23db898ca9e0fc07cc71fb9">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_af62a0a1226e9dd39145270ce9e062af8ead3be0/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/a8bca842fd175831cb510d2ed3b64c30253204e5/output/jars/classes.jar"
+        jar="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/incremental-runtime-classes/debug/instant-run.jar"
         jumboMode="true"
         optimize="true"
         revision="25.0.0"
-        sha1="70ffe00aaf049893f59d1dad57bd82992faa38ef">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_509e97431acda36b2a1e627103fa57700d1bf0d2/classes.dex" />
+        sha1="3be78ebc2706b2e1fe2f12d5726887a92d6c183b">
+        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10000/instant-run_9d27da560db036388481cceb66c0d7b74d861748/classes.dex" />
     </item>
     <item
         is-multidex="true"
@@ -349,251 +34,8 @@
         jumboMode="true"
         optimize="true"
         revision="25.0.0"
-        sha1="52d638364f68074fa22d2451713fef6d3ba1bbac">
+        sha1="3d1e8de1d8c690a371b334e965399f466f180738">
         <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10000/instant-run-bootstrap_a321d4fbe81ae9628438e81e6dd58311e68d4265/classes.dex" />
     </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/3f29ab422be4d7898423caf930abc6c5f4a914b3/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="e5b429c146094a612134910688d169ec08deeefb">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_72e0357db66dab1f21229473e36cd4329b3f6229/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/1f897b2d4b07961318a3940fdeaeda72350fd3ef/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="ee394a892dd21c03a528139c1e8d4e0e1264ac84">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_4026a32156236cd293707866533ca623637c8940/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/00fe0447877426df775e7796fc7c46a98a0035d3/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="fcae52a60bc07924d370b4d376116cd8f8581f54">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_884caf26505a07249b5bbf69f4331ce335534a74/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/d0ec4a20685cbdf16c6c774d97211fa6996bb9cb/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="3ac08c35419ab7cf9146969de471768dbe502f0f">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_422ac4929c2f777091cf2c73056adcb84ab67d61/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/fde88066a25afdcd70afa355e3fb2ee709a92040/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="2b12b18c5518021cc71577c83d1290f8ddaa3c98">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_77bb51f8517229f3efe19e1a8fc61c80a967736e/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/c7c938269e31a70334edc6d2c0ec566d8f70a402/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="e7f890dd2539b7f2582f450f0721e2dea6ae510c">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_ef3d21a5e9fa7eaf5d6ceafb6f24052989de51d7/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/5e8da9cef69574fd748b5dc9a29bd5a35cfed676/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="dd282bdeaa904c59d77e57dedd7e0a241c9b679d">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_d7838e62ad2f4505c8b9e34304865c2974e8734b/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/3062248920a06b83efe137b15fa576bc8c8365e5/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="ffd0ddf5e57b4d60c4a3fbcd38fa20349a0cebd1">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_7b613374d697e3ad83e7718d7c82b80151ad8fd5/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/bbbfb535575d498647b5950bd9b4e7dd16a4f928/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="702d339bc0a81d21354cd7e2cf2b67225fa4a16c">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_c3275dab14a1f6528fb14c2a8f7884970751c7e2/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/72baa95c2c4074831760b11c64b0ab74c8f0cd7b/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="2c73e2a93e00abd240e495c1e62217e53904a3f3">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_8d624c4bc70599690e89b577d67e800eba74fb02/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/2f5656241ed7c2a54e8fef720198a5cbb1d5bf0d/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="bfba7cf662f7e3e2cfeb92226c6b84c08e590225">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_c3a05e1a9a828c0a017943c37a9093804efdbc58/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/ab30377aa2ad0b53039331c8f229be3fd1892fbf/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="0bffdc0bd4f7ca0e27c5bfeef39569f8da00aa26">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_77786a1eb8e54f28b223c08ac1f926cf1874ad29/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/94b9bb09f78e3ec4232c076804306adc39f15c2e/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="f5ff5e3811e8c9485fd27f9052ae4d4d23a22d9d">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_f91be0d220c274dd7b8d6c3e24d77f48af108f45/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/1693bb7b71249bf6820ebc1d3d76b6bf06318f5b/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="67eb33110dbacb46a48175b08ae0c96761d2c17d">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_ba28a24242a2159ce81519bc5ffeac5730231305/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/035c4d777a696a7c048bbc09f827d59467795685/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="057fb316bed8467398333f30926c2d5506e275b2">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_f79525e67754fea6b879f7fabe2075804eb3468a/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/56f4b0a383caeed3810e8cb4ffda5237c2611d96/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="fa0446a14ed5dd3725047d6399ffea771a564b30">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_4de603ddaaab6cd3c83a6b02658e013207beccbf/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/5d63e4e9bfa880765a046732393d3380e131a780/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="9be5e957849eb82ad9addf9bdb2896de8bf5654b">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_52c083892abd49aae1c4f0cd2466f0b2d376c43f/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/ece3dfe69856e477ad52936c01f9f1e29120349e/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="377c5f26ebf67f3fa6ef2f663a58cac7ce647dde">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_95fcff86b9feda7d8a5fb77393d999324d43a20e/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/4c1b42f78835ea8f95eeb1abf2ea30bb4cb51cfa/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="4b685077cdb08cf7ae8b61afd1fe910e47d91b9a">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_011d0210945bf40d293c8ffec3a9091fd3950fa3/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/192d1839b08860c37cbcb91899ed77b4244bfbc7/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="a5d52089bf4d31537232bb6bcb70cee817d8a374">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_fa163c63d8dc3c03b95c62d88cb79227f19858c3/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/08bc72feddd2c69f5112d970f877c504dd131c96/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="1b12397bc9f342b29d9e9108978828f99a6da579">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_970f8e79f330b4180d6d6c03b125745a880a9e0b/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/2bb9c10cda067ee3b8306784e8c8e4bf225477dc/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="dae0d68af4c87df40eca67069861e53b7cefaaa0">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_d0414e1fa88498ae44f25195464bc82956bbe88e/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/df55d97f7d23cf136afc13db9bba1e81ed30d522/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="f2cb88e7e28736d44e7e643deb80c9af1c3662c8">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_c6dc0820b048e803e5dd5431ebf7d1a03a6b9ca7/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/5635d358565a0643975398ef964ae9ffd82ad3b9/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="6b3430725095bd46b785e97bd34240826c27b4db">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_20e392d40fedf45e5518601749eecac4ff716cf7/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/eb9166379ccca15ddc346406533546f1a4bd89dd/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="41f47bbcd281fdb1e42e220220ab3bfa1da591e0">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_330d928778dfa8c549a784499f6a537122aee18d/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/05b52b6c2a56ff23506d5d343c92c64791137156/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="c1b91bc7e480ab100d0397b16c93732e26fd10eb">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_6803660ddd2b0daaebddf67ce49dacae08e3f39a/classes.dex" />
-    </item>
-    <item
-        is-multidex="true"
-        jar="/home/seavenois/.android/build-cache/b5b82e58b7bae041ff28755836abc8dabc895d22/output/jars/classes.jar"
-        jumboMode="true"
-        optimize="true"
-        revision="25.0.0"
-        sha1="af13a350b71b437ebf4be335d02a8f785c39b111">
-        <dex dex="/home/seavenois/Workspace/Programming/GM_APP/app/build/intermediates/transforms/dex/debug/folders/1000/10/classes_545da5d1233db3a0297ca5b6f05fce09621e2ed4/classes.dex" />
-    </item>
 
 </items>

+ 2 - 0
osmdroid-android-5.6.5-release/build.gradle

@@ -0,0 +1,2 @@
+configurations.maybeCreate("default")
+artifacts.add("default", file('osmdroid-android-5.6.5-release.aar'))

BIN
osmdroid-android-5.6.5-release/osmdroid-android-5.6.5-release.aar


+ 1 - 1
settings.gradle

@@ -1 +1 @@
-include ':app'
+include ':app', ':osmdroid-android-5.6.5-release'