diff --git a/adal-location/src/main/AndroidManifest.xml b/adal-location/src/main/AndroidManifest.xml index 32e7c14..d7a2f66 100644 --- a/adal-location/src/main/AndroidManifest.xml +++ b/adal-location/src/main/AndroidManifest.xml @@ -23,9 +23,10 @@ ~ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --> - + + diff --git a/adal-location/src/main/java/com/massivedisaster/location/AbstractLocationManager.java b/adal-location/src/main/java/com/massivedisaster/adal/location/AbstractLocationManager.java similarity index 86% rename from adal-location/src/main/java/com/massivedisaster/location/AbstractLocationManager.java rename to adal-location/src/main/java/com/massivedisaster/adal/location/AbstractLocationManager.java index e760d93..13f909d 100644 --- a/adal-location/src/main/java/com/massivedisaster/location/AbstractLocationManager.java +++ b/adal-location/src/main/java/com/massivedisaster/adal/location/AbstractLocationManager.java @@ -1,21 +1,29 @@ /* * ADAL - A set of Android libraries to help speed up Android development. - * Copyright (C) 2017 ADAL. * - * ADAL is free software; you can redistribute it and/or modify it under - * the terms of the GNU Lesser General Public License as published by the Free - * Software Foundation; either version 3 of the License, or any later version. + * Copyright (c) 2017 ADAL * - * ADAL is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more - * details. + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: * - * You should have received a copy of the GNU Lesser General Public License along - * with ADAL. If not, see . + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package com.massivedisaster.location; +package com.massivedisaster.adal.location; import android.Manifest; import android.app.Activity; @@ -35,12 +43,12 @@ import com.google.android.gms.common.api.GoogleApiClient; import com.google.android.gms.location.LocationListener; import com.google.android.gms.location.LocationServices; +import com.massivedisaster.adal.location.broadcast.LocationStatusBroadcastReceiver; +import com.massivedisaster.adal.location.listener.OnLocationManager; +import com.massivedisaster.adal.location.listener.OnLocationStatusProviderListener; +import com.massivedisaster.adal.location.utils.LocationError; +import com.massivedisaster.adal.location.utils.LocationUtils; import com.massivedisaster.adal.permissions.PermissionsManager; -import com.massivedisaster.location.broadcast.LocationStatusBroadcastReceiver; -import com.massivedisaster.location.listener.OnLocationManager; -import com.massivedisaster.location.listener.OnLocationStatusProviderListener; -import com.massivedisaster.location.utils.LocationError; -import com.massivedisaster.location.utils.LocationUtils; /** * AbstractLocationManager contains the base methods to request device location diff --git a/adal-location/src/main/java/com/massivedisaster/location/LocationManager.java b/adal-location/src/main/java/com/massivedisaster/adal/location/LocationManager.java similarity index 97% rename from adal-location/src/main/java/com/massivedisaster/location/LocationManager.java rename to adal-location/src/main/java/com/massivedisaster/adal/location/LocationManager.java index 081cd5a..c39cf62 100644 --- a/adal-location/src/main/java/com/massivedisaster/location/LocationManager.java +++ b/adal-location/src/main/java/com/massivedisaster/adal/location/LocationManager.java @@ -23,7 +23,7 @@ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package com.massivedisaster.location; +package com.massivedisaster.adal.location; import android.content.IntentSender; import android.support.annotation.NonNull; @@ -37,8 +37,8 @@ import com.google.android.gms.location.LocationSettingsRequest; import com.google.android.gms.location.LocationSettingsResult; import com.google.android.gms.location.LocationSettingsStatusCodes; -import com.massivedisaster.location.listener.OnLocationManager; -import com.massivedisaster.location.utils.LocationError; +import com.massivedisaster.adal.location.listener.OnLocationManager; +import com.massivedisaster.adal.location.utils.LocationError; /** * LocationManager requests single or multiple device locations. diff --git a/adal-location/src/main/java/com/massivedisaster/adal/location/broadcast/AbstractGeofenceBroadcastReceiver.java b/adal-location/src/main/java/com/massivedisaster/adal/location/broadcast/AbstractGeofenceBroadcastReceiver.java new file mode 100644 index 0000000..3f9c134 --- /dev/null +++ b/adal-location/src/main/java/com/massivedisaster/adal/location/broadcast/AbstractGeofenceBroadcastReceiver.java @@ -0,0 +1,80 @@ +/* + * ADAL - A set of Android libraries to help speed up Android development. + * + * Copyright (c) 2017 ADAL + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +package com.massivedisaster.adal.location.broadcast; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.util.Log; + +/** + * Abstract Broadcast Receiver to handle Geofence messages + */ +public abstract class AbstractGeofenceBroadcastReceiver extends BroadcastReceiver { + + public static final String ACTION_RECEIVE_GEOFENCE = "com.massivedisaster.adal.location.ACTION_RECEIVE_GEOFENCE"; + + private static final String ILLEGAL_ACTION_EXCEPTION = "You must define an action on your pending intent"; + private static final String BOOT_COMPLETE_MESSAGE = "::: ::: ::: BOOT - ON RECEIVE"; + private static final String GEOFENCE_RECEIVED_MESSAGE = "::: ::: ::: GEOFENCE - ON RECEIVE"; + + /** + * Handles broadcast message when action + * equals to {@link android.content.Intent#ACTION_BOOT_COMPLETED ACTION_BOOT_COMPLETED} + * + * @param context used by the application + * @param intent declared as a Pending Intent by the system or a user's request + */ + protected abstract void onBootCompleted(Context context, Intent intent); + + /** + * Handles broadcast message when action + * equals to {@link #ACTION_RECEIVE_GEOFENCE ACTION_RECEIVE_GEOFENCE} + * + * @param context used by the application + * @param intent declared as a Pending Intent by the system or a user's request + */ + protected abstract void onReceiveGeofence(Context context, Intent intent); + + /** + * @inheritdoc + */ + @Override + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); + if (action == null) { + throw new IllegalArgumentException(ILLEGAL_ACTION_EXCEPTION); + } + + if (action.equals(Intent.ACTION_BOOT_COMPLETED)) { + Log.d(AbstractGeofenceBroadcastReceiver.class.getSimpleName(), BOOT_COMPLETE_MESSAGE); + onBootCompleted(context, intent); + } else if (action.equals(ACTION_RECEIVE_GEOFENCE)) { + Log.d(AbstractGeofenceBroadcastReceiver.class.getSimpleName(), GEOFENCE_RECEIVED_MESSAGE); + onReceiveGeofence(context, intent); + } + } +} diff --git a/adal-location/src/main/java/com/massivedisaster/location/broadcast/LocationStatusBroadcastReceiver.java b/adal-location/src/main/java/com/massivedisaster/adal/location/broadcast/LocationStatusBroadcastReceiver.java similarity index 92% rename from adal-location/src/main/java/com/massivedisaster/location/broadcast/LocationStatusBroadcastReceiver.java rename to adal-location/src/main/java/com/massivedisaster/adal/location/broadcast/LocationStatusBroadcastReceiver.java index dd61767..5a57090 100644 --- a/adal-location/src/main/java/com/massivedisaster/location/broadcast/LocationStatusBroadcastReceiver.java +++ b/adal-location/src/main/java/com/massivedisaster/adal/location/broadcast/LocationStatusBroadcastReceiver.java @@ -15,16 +15,16 @@ * with ADAL. If not, see . */ -package com.massivedisaster.location.broadcast; +package com.massivedisaster.adal.location.broadcast; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; -import com.massivedisaster.location.LocationManager; -import com.massivedisaster.location.listener.OnLocationStatusProviderListener; -import com.massivedisaster.location.utils.LocationUtils; +import com.massivedisaster.adal.location.LocationManager; +import com.massivedisaster.adal.location.listener.OnLocationStatusProviderListener; +import com.massivedisaster.adal.location.utils.LocationUtils; /** diff --git a/adal-location/src/main/java/com/massivedisaster/location/listener/OnLocationManager.java b/adal-location/src/main/java/com/massivedisaster/adal/location/listener/OnLocationManager.java similarity index 93% rename from adal-location/src/main/java/com/massivedisaster/location/listener/OnLocationManager.java rename to adal-location/src/main/java/com/massivedisaster/adal/location/listener/OnLocationManager.java index 7990ddf..1811848 100644 --- a/adal-location/src/main/java/com/massivedisaster/location/listener/OnLocationManager.java +++ b/adal-location/src/main/java/com/massivedisaster/adal/location/listener/OnLocationManager.java @@ -15,11 +15,11 @@ * with ADAL. If not, see . */ -package com.massivedisaster.location.listener; +package com.massivedisaster.adal.location.listener; import android.location.Location; -import com.massivedisaster.location.utils.LocationError; +import com.massivedisaster.adal.location.utils.LocationError; /** * Manages location. diff --git a/adal-location/src/main/java/com/massivedisaster/location/listener/OnLocationStatusProviderListener.java b/adal-location/src/main/java/com/massivedisaster/adal/location/listener/OnLocationStatusProviderListener.java similarity index 95% rename from adal-location/src/main/java/com/massivedisaster/location/listener/OnLocationStatusProviderListener.java rename to adal-location/src/main/java/com/massivedisaster/adal/location/listener/OnLocationStatusProviderListener.java index 7333bdc..419ce10 100644 --- a/adal-location/src/main/java/com/massivedisaster/location/listener/OnLocationStatusProviderListener.java +++ b/adal-location/src/main/java/com/massivedisaster/adal/location/listener/OnLocationStatusProviderListener.java @@ -15,7 +15,7 @@ * with ADAL. If not, see . */ -package com.massivedisaster.location.listener; +package com.massivedisaster.adal.location.listener; /** * Listener to provider status diff --git a/adal-location/src/main/java/com/massivedisaster/location/utils/LocationError.java b/adal-location/src/main/java/com/massivedisaster/adal/location/utils/LocationError.java similarity index 94% rename from adal-location/src/main/java/com/massivedisaster/location/utils/LocationError.java rename to adal-location/src/main/java/com/massivedisaster/adal/location/utils/LocationError.java index dff6b7b..faedf8b 100644 --- a/adal-location/src/main/java/com/massivedisaster/location/utils/LocationError.java +++ b/adal-location/src/main/java/com/massivedisaster/adal/location/utils/LocationError.java @@ -15,7 +15,7 @@ * with ADAL. If not, see . */ -package com.massivedisaster.location.utils; +package com.massivedisaster.adal.location.utils; public enum LocationError { TIMEOUT, diff --git a/adal-location/src/main/java/com/massivedisaster/location/utils/LocationUtils.java b/adal-location/src/main/java/com/massivedisaster/adal/location/utils/LocationUtils.java similarity index 97% rename from adal-location/src/main/java/com/massivedisaster/location/utils/LocationUtils.java rename to adal-location/src/main/java/com/massivedisaster/adal/location/utils/LocationUtils.java index a2c2c2c..6608364 100644 --- a/adal-location/src/main/java/com/massivedisaster/location/utils/LocationUtils.java +++ b/adal-location/src/main/java/com/massivedisaster/adal/location/utils/LocationUtils.java @@ -15,7 +15,7 @@ * with ADAL. If not, see . */ -package com.massivedisaster.location.utils; +package com.massivedisaster.adal.location.utils; import android.util.Log; diff --git a/sample/src/main/java/com/massivedisaster/adal/sample/feature/location/FragmentLocation.java b/sample/src/main/java/com/massivedisaster/adal/sample/feature/location/FragmentLocation.java index d9d100d..da4ab9e 100644 --- a/sample/src/main/java/com/massivedisaster/adal/sample/feature/location/FragmentLocation.java +++ b/sample/src/main/java/com/massivedisaster/adal/sample/feature/location/FragmentLocation.java @@ -36,9 +36,9 @@ import com.massivedisaster.adal.fragment.BaseFragment; import com.massivedisaster.adal.sample.R; -import com.massivedisaster.location.LocationManager; -import com.massivedisaster.location.listener.OnLocationManager; -import com.massivedisaster.location.utils.LocationError; +import com.massivedisaster.adal.location.LocationManager; +import com.massivedisaster.adal.location.listener.OnLocationManager; +import com.massivedisaster.adal.location.utils.LocationError; public class FragmentLocation extends BaseFragment {