// Path: beacontag_sdk/src/main/java/com/orange/beaconme_sdk/ble/model/BLERange.java
// public enum BLERange {
//     IMMIDIATE(0, 1), NEAR(1, 10),  FAR(10, Double.MAX_VALUE);
// 
//     public static BLERange getRange(double distance) {
//         for (BLERange range: BLERange.values()) {
//             if (range.isWithinRange(distance)) return range;
//         }
//         return FAR;
//     }
//     
//     BLERange(double bottomThreshold, double topThreshold) {
//         this.topThreshold = topThreshold;
//         this.bottomThreshold = bottomThreshold;
//     }
// 
//     private final double topThreshold;
//     private final double bottomThreshold;
//     
//     public boolean isWithinRange(double distance) {
//         return (distance <= topThreshold) && (distance > bottomThreshold);
//     }
// }
// 
// Path: beacontag_sdk/src/main/java/com/orange/beaconme_sdk/ble/model/DeviceFootprint.java
// public class DeviceFootprint implements Serializable {
// 
//     private String uuid;
// 
//     private int major;
// 
//     private int minor;
// 
//     public DeviceFootprint() {}
// 
//     /**
//      * Create new footprint
//      * @param uuid uuid of the device
//      * @param major major of the device
//      * @param minor minor of the device
//      */
//     public DeviceFootprint(String uuid, int major, int minor) {
//         this.uuid = uuid;
//         this.major = major;
//         this.minor = minor;
//     }
// 
//     public String getUuid() {
//         return uuid;
//     }
// 
//     public int getMajor() {
//         return major;
//     }
// 
//     public int getMinor() {
//         return minor;
//     }
// 
//     @Override
//     public boolean equals(Object o) {
//         if (this == o) return true;
//         if (o == null || getClass() != o.getClass()) return false;
// 
//         DeviceFootprint that = (DeviceFootprint) o;
// 
//         if (major != that.major) return false;
//         if (minor != that.minor) return false;
//         if (!uuid.equals(that.uuid)) return false;
// 
//         return true;
//     }
// 
//     @Override
//     public int hashCode() {
//         int result = uuid.hashCode();
//         result = 31 * result + major;
//         result = 31 * result + minor;
//         return result;
//     }
// }


import com.orange.beaconme_sdk.ble.model.BLERange;
import com.orange.beaconme_sdk.ble.model.DeviceFootprint;
/*
 * Copyright (c) 2015 Orange.
 *
 * This library 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 2.1 of the License, or (at your option) any later version.
 * This library 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, which can be found in the file 'LICENSE.txt' in
 * this package distribution or at 'http://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html'
 * for more details.
 *
 * Created by Orange Beacon on 08/6/15.
 */
package com.orange.beaconme_sdk.control.detection_handlers;


/**
 *
 */
public class EnterAndExitAreaHandler extends AreaHandler {
    public EnterAndExitAreaHandler(DeviceFootprint footprint, OnTriggerFiredListener listener) {
        super(footprint, listener);
    }

    @Override
// Path: beacontag_sdk/src/main/java/com/orange/beaconme_sdk/ble/model/BLERange.java
// public enum BLERange {
//     IMMIDIATE(0, 1), NEAR(1, 10),  FAR(10, Double.MAX_VALUE);
// 
//     public static BLERange getRange(double distance) {
//         for (BLERange range: BLERange.values()) {
//             if (range.isWithinRange(distance)) return range;
//         }
//         return FAR;
//     }
//     
//     BLERange(double bottomThreshold, double topThreshold) {
//         this.topThreshold = topThreshold;
//         this.bottomThreshold = bottomThreshold;
//     }
// 
//     private final double topThreshold;
//     private final double bottomThreshold;
//     
//     public boolean isWithinRange(double distance) {
//         return (distance <= topThreshold) && (distance > bottomThreshold);
//     }
// }
// 
// Path: beacontag_sdk/src/main/java/com/orange/beaconme_sdk/ble/model/DeviceFootprint.java
// public class DeviceFootprint implements Serializable {
// 
//     private String uuid;
// 
//     private int major;
// 
//     private int minor;
// 
//     public DeviceFootprint() {}
// 
//     /**
//      * Create new footprint
//      * @param uuid uuid of the device
//      * @param major major of the device
//      * @param minor minor of the device
//      */
//     public DeviceFootprint(String uuid, int major, int minor) {
//         this.uuid = uuid;
//         this.major = major;
//         this.minor = minor;
//     }
// 
//     public String getUuid() {
//         return uuid;
//     }
// 
//     public int getMajor() {
//         return major;
//     }
// 
//     public int getMinor() {
//         return minor;
//     }
// 
//     @Override
//     public boolean equals(Object o) {
//         if (this == o) return true;
//         if (o == null || getClass() != o.getClass()) return false;
// 
//         DeviceFootprint that = (DeviceFootprint) o;
// 
//         if (major != that.major) return false;
//         if (minor != that.minor) return false;
//         if (!uuid.equals(that.uuid)) return false;
// 
//         return true;
//     }
// 
//     @Override
//     public int hashCode() {
//         int result = uuid.hashCode();
//         result = 31 * result + major;
//         result = 31 * result + minor;
//         return result;
//     }
// }


// Path: beacontag_sdk/src/main/java/com/orange/beaconme_sdk/control/detection_handlers/EnterAndExitAreaHandler.java
import com.orange.beaconme_sdk.ble.model.BLERange;
import com.orange.beaconme_sdk.ble.model.DeviceFootprint;

/*
 * Copyright (c) 2015 Orange.
 *
 * This library 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 2.1 of the License, or (at your option) any later version.
 * This library 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, which can be found in the file 'LICENSE.txt' in
 * this package distribution or at 'http://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html'
 * for more details.
 *
 * Created by Orange Beacon on 08/6/15.
 */
package com.orange.beaconme_sdk.control.detection_handlers;


/**
 *
 */
public class EnterAndExitAreaHandler extends AreaHandler {
    public EnterAndExitAreaHandler(DeviceFootprint footprint, OnTriggerFiredListener listener) {
        super(footprint, listener);
    }

    @Override
    protected void onRangeChanged(BLERange oldRange, BLERange newRange) {