diff options
author | Anil Dahiya <anil_dahiya@infosys.com> | 2016-10-18 16:42:06 +0530 |
---|---|---|
committer | Anil Dahiya <anil_dahiya@infosys.com> | 2016-10-18 16:42:06 +0530 |
commit | f025244af5fb91a8047b288ce1bf0bce37d91b1a (patch) | |
tree | e1dc1aab263be105b55e0b8ecef2a9b6d67b45cd | |
parent | fd29e92919b93c51c660ddf8aa08bd78a107dfd5 (diff) | |
download | sdl_android-f025244af5fb91a8047b288ce1bf0bce37d91b1a.tar.gz |
Updation of SendLocation RPC with additional params. Also, addition of new RPC enum : DeliveryMode and RPCStruct : DateTime and OASISAddress.
4 files changed, 347 insertions, 0 deletions
diff --git a/sdl_android_lib/src/com/smartdevicelink/proxy/rpc/DateTime.java b/sdl_android_lib/src/com/smartdevicelink/proxy/rpc/DateTime.java new file mode 100644 index 000000000..6b0d79132 --- /dev/null +++ b/sdl_android_lib/src/com/smartdevicelink/proxy/rpc/DateTime.java @@ -0,0 +1,132 @@ +package com.smartdevicelink.proxy.rpc; + +import com.smartdevicelink.proxy.RPCStruct; + +import java.util.Hashtable; + +public class DateTime extends RPCStruct{ + public static final String KEY_MILLISECOND = "millisecond"; + public static final String KEY_SECOND = "second"; + public static final String KEY_MINUTE = "minute"; + public static final String KEY_HOUR = "hour"; + public static final String KEY_DAY = "day"; + public static final String KEY_MONTH = "month"; + public static final String KEY_YEAR = "year"; + public static final String KEY_TZ_HOUR = "tz_hour"; + public static final String KEY_TZ_MINUTE = "tz_minute"; + + public DateTime() { + } + + public DateTime(Hashtable<String, Object> hash) { + super(hash); + } + + public Integer getMilliSecond() { + return (Integer) store.get(KEY_MILLISECOND); + } + + public void setMilliSecond(Integer milliSecond) { + if (milliSecond != null) { + store.put(KEY_MILLISECOND, milliSecond); + } else { + store.remove(KEY_MILLISECOND); + } + } + + public Integer getSecond() { + return (Integer) store.get(KEY_SECOND); + } + + public void setSecond(Integer second) { + if (second != null) { + store.put(KEY_SECOND, second); + } else { + store.remove(KEY_SECOND); + } + } + + public Integer getMinute() { + return (Integer) store.get(KEY_MINUTE); + } + + public void setMinute(Integer minute) { + if (minute != null) { + store.put(KEY_MINUTE, minute); + } else { + store.remove(KEY_MINUTE); + } + } + + public Integer getHour() { + return (Integer) store.get(KEY_HOUR); + } + + public void setHour(Integer hour) { + if (hour != null) { + store.put(KEY_HOUR, hour); + } else { + store.remove(KEY_HOUR); + } + } + + public Integer getDay() { + return (Integer) store.get(KEY_DAY); + } + + public void setDay(Integer day) { + if (day != null) { + store.put(KEY_DAY, day); + } else { + store.remove(KEY_DAY); + } + } + + public Integer getMonth() { + return (Integer) store.get(KEY_MONTH); + } + + public void setMonth(Integer month) { + if (month != null) { + store.put(KEY_MONTH, month); + } else { + store.remove(KEY_MONTH); + } + } + + public Integer getYear() { + return (Integer) store.get(KEY_YEAR); + } + + public void setYear(Integer year) { + if (year != null) { + store.put(KEY_YEAR, year); + } else { + store.remove(KEY_YEAR); + } + } + + public Integer getTzHour() { + return (Integer) store.get(KEY_TZ_HOUR); + } + + public void setTzHour(Integer tzHour) { + if (tzHour != null) { + store.put(KEY_TZ_HOUR, tzHour); + } else { + store.remove(KEY_TZ_HOUR); + } + } + + public Integer getTzMinute() { + return (Integer) store.get(KEY_TZ_MINUTE); + } + + public void setTzMinute(Integer tzMinute) { + if (tzMinute != null) { + store.put(KEY_TZ_MINUTE, tzMinute); + } else { + store.remove(KEY_TZ_MINUTE); + } + } +} diff --git a/sdl_android_lib/src/com/smartdevicelink/proxy/rpc/OasisAddress.java b/sdl_android_lib/src/com/smartdevicelink/proxy/rpc/OasisAddress.java new file mode 100644 index 000000000..a20086c35 --- /dev/null +++ b/sdl_android_lib/src/com/smartdevicelink/proxy/rpc/OasisAddress.java @@ -0,0 +1,132 @@ +package com.smartdevicelink.proxy.rpc; + +import com.smartdevicelink.proxy.RPCStruct; + +import java.util.Hashtable; + +public class OasisAddress extends RPCStruct{ + public static final String KEY_COUNTRY_NAME = "countryName"; + public static final String KEY_COUNTRY_CODE = "countryCode"; + public static final String KEY_POSTAL_CODE = "postalCode"; + public static final String KEY_ADMINISTRATIVE_AREA = "administrativeArea"; + public static final String KEY_SUB_ADMINISTRATIVE_AREA = "subAdministrativeArea"; + public static final String KEY_LOCALITY = "locality"; + public static final String KEY_SUB_LOCALITY = "subLocality"; + public static final String KEY_THOROUGH_FARE = "thoroughfare"; + public static final String KEY_SUB_THOROUGH_FARE = "subThoroughfare"; + + public OasisAddress() { + } + + public OasisAddress(Hashtable<String, Object> hash) { + super(hash); + } + + public String getCountryName() { + return (String) store.get(KEY_COUNTRY_NAME); + } + + public void setCountryName(String countryName) { + if (countryName != null) { + store.put(KEY_COUNTRY_NAME, countryName); + } else { + store.remove(KEY_COUNTRY_NAME); + } + } + + public String getCountryCode() { + return (String) store.get(KEY_COUNTRY_CODE); + } + + public void setCountryCode(String countryCode) { + if (countryCode != null) { + store.put(KEY_COUNTRY_CODE, countryCode); + } else { + store.remove(KEY_COUNTRY_CODE); + } + } + + public String getPostalCode() { + return (String) store.get(KEY_POSTAL_CODE); + } + + public void setPostalCode(String postalCode) { + if (postalCode != null) { + store.put(KEY_POSTAL_CODE, postalCode); + } else { + store.remove(KEY_POSTAL_CODE); + } + } + + public String getAdministrativeArea() { + return (String) store.get(KEY_ADMINISTRATIVE_AREA); + } + + public void setAdministrativeArea(String administrativeArea) { + if (administrativeArea != null) { + store.put(KEY_ADMINISTRATIVE_AREA, administrativeArea); + } else { + store.remove(KEY_ADMINISTRATIVE_AREA); + } + } + + public String getSubAdministrativeArea() { + return (String) store.get(KEY_SUB_ADMINISTRATIVE_AREA); + } + + public void setSubAdministrativeArea(String subAdministrativeArea) { + if (subAdministrativeArea != null) { + store.put(KEY_SUB_ADMINISTRATIVE_AREA, subAdministrativeArea); + } else { + store.remove(KEY_SUB_ADMINISTRATIVE_AREA); + } + } + + public String getLocality() { + return (String) store.get(KEY_LOCALITY); + } + + public void setLocality(String locality) { + if (locality != null) { + store.put(KEY_LOCALITY, locality); + } else { + store.remove(KEY_LOCALITY); + } + } + + public String getSubLocality() { + return (String) store.get(KEY_SUB_LOCALITY); + } + + public void setSubLocality(String subLocality) { + if (subLocality != null) { + store.put(KEY_SUB_LOCALITY, subLocality); + } else { + store.remove(KEY_SUB_LOCALITY); + } + } + + public String getThoroughfare() { + return (String) store.get(KEY_THOROUGH_FARE); + } + + public void setThoroughfare(String thoroughFare) { + if (thoroughFare != null) { + store.put(KEY_THOROUGH_FARE, thoroughFare); + } else { + store.remove(KEY_THOROUGH_FARE); + } + } + + public String getSubThoroughfare() { + return (String) store.get(KEY_SUB_THOROUGH_FARE); + } + + public void setSubThoroughfare(String subThoroughfare) { + if (subThoroughfare != null) { + store.put(KEY_SUB_THOROUGH_FARE, subThoroughfare); + } else { + store.remove(KEY_SUB_THOROUGH_FARE); + } + } +} diff --git a/sdl_android_lib/src/com/smartdevicelink/proxy/rpc/SendLocation.java b/sdl_android_lib/src/com/smartdevicelink/proxy/rpc/SendLocation.java index dc77058de..2a9108e47 100644 --- a/sdl_android_lib/src/com/smartdevicelink/proxy/rpc/SendLocation.java +++ b/sdl_android_lib/src/com/smartdevicelink/proxy/rpc/SendLocation.java @@ -5,6 +5,8 @@ import java.util.List; import com.smartdevicelink.protocol.enums.FunctionID; import com.smartdevicelink.proxy.RPCRequest; +import com.smartdevicelink.proxy.rpc.enums.DeliveryMode; +import com.smartdevicelink.util.DebugTool; import com.smartdevicelink.util.SdlDataTypeConverter; @@ -23,6 +25,9 @@ public class SendLocation extends RPCRequest{ public static final String KEY_PHONE_NUMBER = "phoneNumber"; public static final String KEY_ADDRESS_LINES = "addressLines"; public static final String KEY_LOCATION_IMAGE = "locationImage"; + public static final String KEY_DELIVERY_MODE = "deliveryMode"; + public static final String KEY_TIME_STAMP = "timeStamp"; + public static final String KEY_ADDRESS = "address"; /** * Constructs a new SendLocation object @@ -221,4 +226,67 @@ public class SendLocation extends RPCRequest{ } } + public DeliveryMode getDeliveryMode() { + Object obj = parameters.get(KEY_DELIVERY_MODE); + if (obj instanceof DeliveryMode) { + return (DeliveryMode) obj; + } else if (obj instanceof String) { + return DeliveryMode.valueForString((String) obj); + } + return null; + } + + public void setDeliveryMode(DeliveryMode deliveryMode) { + if (deliveryMode != null) { + parameters.put(KEY_DELIVERY_MODE, deliveryMode); + } else { + parameters.remove(KEY_DELIVERY_MODE); + } + } + + @SuppressWarnings("unchecked") + public DateTime getTimeStamp() { + Object obj = parameters.get(KEY_TIME_STAMP); + if (obj instanceof DateTime) { + return (DateTime) obj; + } else if (obj instanceof Hashtable) { + try { + return new DateTime((Hashtable<String, Object>) obj); + } catch (Exception e) { + DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_TIME_STAMP, e); + } + } + return null; + } + + public void setTimeStamp(DateTime timeStamp) { + if (timeStamp != null) { + parameters.put(KEY_TIME_STAMP, timeStamp); + } else { + parameters.remove(KEY_TIME_STAMP); + } + } + + @SuppressWarnings("unchecked") + public OasisAddress getAddress() { + Object obj = parameters.get(KEY_ADDRESS); + if (obj instanceof OasisAddress) { + return (OasisAddress) obj; + } else if (obj instanceof Hashtable) { + try { + return new OasisAddress((Hashtable<String, Object>) obj); + } catch (Exception e) { + DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + KEY_ADDRESS, e); + } + } + return null; + } + + public void setAddress(OasisAddress address) { + if (address != null) { + parameters.put(KEY_ADDRESS, address); + } else { + parameters.remove(KEY_ADDRESS); + } + } } diff --git a/sdl_android_lib/src/com/smartdevicelink/proxy/rpc/enums/DeliveryMode.java b/sdl_android_lib/src/com/smartdevicelink/proxy/rpc/enums/DeliveryMode.java new file mode 100644 index 000000000..0b6834eed --- /dev/null +++ b/sdl_android_lib/src/com/smartdevicelink/proxy/rpc/enums/DeliveryMode.java @@ -0,0 +1,15 @@ +package com.smartdevicelink.proxy.rpc.enums; + +public enum DeliveryMode { + PROMPT, + DESTINATION, + QUEUE; + + public static DeliveryMode valueForString(String value) { + try{ + return valueOf(value); + }catch(Exception e){ + return null; + } + } +} |