From eb00581307bc3ae63394d89e24a430a895ab98c7 Mon Sep 17 00:00:00 2001 From: "mohit.trivedi" Date: Thu, 4 Apr 2019 12:13:29 +0530 Subject: [PATCH] -Solved constructor issue -Adding factory pattern --- .../beacon/BeaconHelper.java | 35 +++++++++++++------ .../beacon/BeaconKeySerializer.java | 6 +++- .../beaconwrapper/BLEBeaconWrapper.java | 9 ++--- .../network/NetworkManager.java | 6 +++- .../parse/ParserListClass.java | 14 ++++---- 5 files changed, 47 insertions(+), 23 deletions(-) diff --git a/androidblebeaconwrapperlib/src/main/java/com/androidblebeaconwrapperlib/beacon/BeaconHelper.java b/androidblebeaconwrapperlib/src/main/java/com/androidblebeaconwrapperlib/beacon/BeaconHelper.java index 26a6b7c..84b9e08 100644 --- a/androidblebeaconwrapperlib/src/main/java/com/androidblebeaconwrapperlib/beacon/BeaconHelper.java +++ b/androidblebeaconwrapperlib/src/main/java/com/androidblebeaconwrapperlib/beacon/BeaconHelper.java @@ -33,9 +33,20 @@ public class BeaconHelper { private boolean isOnlyBeaconStuff; private List iBeacons; - public BeaconHelper(Activity context) { + private BeaconHelper(Activity context) { this.context = context; - beaconKeySerializer = new BeaconKeySerializer(); + } + + public static BeaconHelper getInstance(Activity context) { + return new BeaconHelper(context); + } + + public void startBeaconUpdates(List data, long timeInterval, BeaconResultListener beaconResultListener) { + this.isOnlyBeaconStuff = false; + this.beaconResultListener = beaconResultListener; + this.data = data; + + beaconKeySerializer = BeaconKeySerializer.getInstance(); beaconResultEntities = new ArrayList<>(); bluetoothManager = (BluetoothManager) context.getSystemService(Context.BLUETOOTH_SERVICE); @@ -44,15 +55,8 @@ public BeaconHelper(Activity context) { oldKeys = new ArrayList<>(); newKeys = new ArrayList<>(); mHandler = new Handler(); - iBeacons = new ArrayList<>(); timer = new Timer(); - isOnlyBeaconStuff = false; - } - public void startBeaconUpdates(List data, long timeInterval, BeaconResultListener beaconResultListener) { - this.isOnlyBeaconStuff = false; - this.beaconResultListener = beaconResultListener; - this.data = data; try { String validationErrorMsg = checkValidation(); if (!TextUtils.isEmpty(validationErrorMsg)) { @@ -88,6 +92,14 @@ public void run() { public void startBeaconUpdates(long timeInterval, BeaconListener beaconListener) { this.isOnlyBeaconStuff = true; this.beaconListener = beaconListener; + + bluetoothManager = + (BluetoothManager) context.getSystemService(Context.BLUETOOTH_SERVICE); + mBluetoothAdapter = bluetoothManager.getAdapter(); + mHandler = new Handler(); + iBeacons = new ArrayList<>(); + timer = new Timer(); + try { String validationErrorMsg = checkValidation(); if (!TextUtils.isEmpty(validationErrorMsg)) { @@ -178,7 +190,7 @@ public void run() { }; private void getOnlyBeaconData(IBeacon iBeacon) { - try{ + try { boolean isAdd = true; for (int i = 0; i < iBeacons.size(); i++) { if (iBeacons.get(i).getBluetoothAddress().equals(iBeacon.getBluetoothAddress())) { @@ -195,7 +207,7 @@ private void getOnlyBeaconData(IBeacon iBeacon) { if (isAdd) { iBeacons.add(iBeacon); } - }catch (Exception e){ + } catch (Exception e) { displayBeaconError(e.getMessage()); } @@ -249,6 +261,7 @@ private void getBeaconFilteredData(IBeacon iBeacon) { private void displayError(String msg) { this.beaconResultListener.onError(msg); } + private void displayBeaconError(String msg) { this.beaconListener.onError(msg); } diff --git a/androidblebeaconwrapperlib/src/main/java/com/androidblebeaconwrapperlib/beacon/BeaconKeySerializer.java b/androidblebeaconwrapperlib/src/main/java/com/androidblebeaconwrapperlib/beacon/BeaconKeySerializer.java index 8008481..a931da4 100644 --- a/androidblebeaconwrapperlib/src/main/java/com/androidblebeaconwrapperlib/beacon/BeaconKeySerializer.java +++ b/androidblebeaconwrapperlib/src/main/java/com/androidblebeaconwrapperlib/beacon/BeaconKeySerializer.java @@ -9,10 +9,14 @@ public class BeaconKeySerializer { List fieldTypeEntities; - public BeaconKeySerializer() { + private BeaconKeySerializer() { fieldTypeEntities = new ArrayList<>(); } + public static BeaconKeySerializer getInstance(){ + return new BeaconKeySerializer(); + } + public List getBeaconAnnotationDetails(Object object) throws BeaconKeySerializeException { try { if (object == null) { diff --git a/androidblebeaconwrapperlib/src/main/java/com/androidblebeaconwrapperlib/beaconwrapper/BLEBeaconWrapper.java b/androidblebeaconwrapperlib/src/main/java/com/androidblebeaconwrapperlib/beaconwrapper/BLEBeaconWrapper.java index cca2a23..74a601a 100644 --- a/androidblebeaconwrapperlib/src/main/java/com/androidblebeaconwrapperlib/beaconwrapper/BLEBeaconWrapper.java +++ b/androidblebeaconwrapperlib/src/main/java/com/androidblebeaconwrapperlib/beaconwrapper/BLEBeaconWrapper.java @@ -32,11 +32,12 @@ public class BLEBeaconWrapper { public BLEBeaconWrapper(Activity context) { this.context = context; - networkManager = new NetworkManager(); - parserListClass = new ParserListClass(); - beaconHelper = new BeaconHelper(this.context); + networkManager = NetworkManager.getInstance(); + parserListClass = ParserListClass.getInstance(); + beaconHelper = BeaconHelper.getInstance(this.context); } + public void getBeaconData(String url, Class t, Map headerData, long timeInterval, BleBeaconListener tBleBeaconListener) { @@ -118,7 +119,7 @@ public void onError(String errorMsg) { } private void BeaconOnlyWrapper() { - beaconHelper.startBeaconUpdates( timeInterval, new BeaconListener() { + beaconHelper.startBeaconUpdates(timeInterval, new BeaconListener() { @Override public void onResult(List beaconResultEntities) { tBeaconListener.onResult(beaconResultEntities); diff --git a/androidblebeaconwrapperlib/src/main/java/com/androidblebeaconwrapperlib/network/NetworkManager.java b/androidblebeaconwrapperlib/src/main/java/com/androidblebeaconwrapperlib/network/NetworkManager.java index cad0574..9e88711 100644 --- a/androidblebeaconwrapperlib/src/main/java/com/androidblebeaconwrapperlib/network/NetworkManager.java +++ b/androidblebeaconwrapperlib/src/main/java/com/androidblebeaconwrapperlib/network/NetworkManager.java @@ -20,7 +20,11 @@ public class NetworkManager { - public NetworkManager() { + private NetworkManager() { + } + + public static NetworkManager getInstance(){ + return new NetworkManager(); } public void getRequest(String baseUrl, Map headerData, diff --git a/androidblebeaconwrapperlib/src/main/java/com/androidblebeaconwrapperlib/parse/ParserListClass.java b/androidblebeaconwrapperlib/src/main/java/com/androidblebeaconwrapperlib/parse/ParserListClass.java index 3bdbfe6..eb5b690 100644 --- a/androidblebeaconwrapperlib/src/main/java/com/androidblebeaconwrapperlib/parse/ParserListClass.java +++ b/androidblebeaconwrapperlib/src/main/java/com/androidblebeaconwrapperlib/parse/ParserListClass.java @@ -26,19 +26,18 @@ public class ParserListClass { private static final String JSON_OBJECT = "jsonObject"; private static final String JSON_ARRAY = "jsonArray"; private int count = 0; - private List parableObjects; private String jsonString; private FilterListener filterListener; - public ParserListClass() { - rootFields = new ArrayList<>(); - count = 0; - gson = new Gson(); - parableObjects = new ArrayList<>(); + private ParserListClass() { } + public static ParserListClass getInstance(){ + return new ParserListClass(); + } private void setFields() throws ParseFilterException { + rootFields = new ArrayList<>(); try { for (Field field : t.getDeclaredFields()) { field.setAccessible(true); @@ -80,6 +79,9 @@ public void parseData(Class t, String jsonString, FilterListener filterLis this.filterListener = filterListener; this.jsonString = jsonString; + count = 0; + gson = new Gson(); + if (!TextUtils.isEmpty(this.jsonString) && this.t != null && this.filterListener != null) { setFields();