summaryrefslogtreecommitdiff
path: root/android/sdl_android/src
diff options
context:
space:
mode:
authorRHenigan <heniganr1@gmail.com>2020-03-24 10:58:15 -0400
committerRHenigan <heniganr1@gmail.com>2020-03-24 10:58:15 -0400
commit99934709fe36c32a171d434d70404e49b1a83d9f (patch)
tree83fb1f3c39d6315dc2ba534fc2c8d19c79e0027a /android/sdl_android/src
parent25264c22003a862f668fdc9af8daf69b87080f75 (diff)
downloadsdl_android-99934709fe36c32a171d434d70404e49b1a83d9f.tar.gz
Update Exceptions and integrate to lockscrnManager
Diffstat (limited to 'android/sdl_android/src')
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenDeviceIconManager.java75
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenManager.java10
2 files changed, 56 insertions, 29 deletions
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenDeviceIconManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenDeviceIconManager.java
index 71bdb77c5..e00a50db2 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenDeviceIconManager.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenDeviceIconManager.java
@@ -12,6 +12,7 @@ import org.json.JSONObject;
import java.io.ByteArrayOutputStream;
import java.io.File;
+import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;
@@ -24,49 +25,67 @@ public class LockScreenDeviceIconManager {
this.context = context;
}
- boolean updateCachedImage(String iconIUrl) throws JSONException {
+ boolean updateCachedImage(String iconIUrl) {
SharedPreferences sharedPref = this.context.getSharedPreferences("sdl", Context.MODE_PRIVATE);
String iconParameters = sharedPref.getString(iconIUrl, null);
if(iconParameters == null) {
return true;
} else {
- JSONObject jsonObject = new JSONObject(iconParameters);
- long lastUpdatedTime = (long) jsonObject.get("lastUpdatedTime");
- long currentTime = System.currentTimeMillis();
-
- long timeDifference = currentTime - lastUpdatedTime;
- long daysBetweenLastUpdate = timeDifference / (1000 * 60 * 60 * 24);
-
- return daysBetweenLastUpdate >= 30;
+ JSONObject jsonObject = null;
+ try {
+ jsonObject = new JSONObject(iconParameters);
+ long lastUpdatedTime = 0;
+ lastUpdatedTime = (long) jsonObject.get("lastUpdatedTime");
+ long currentTime = System.currentTimeMillis();
+
+ long timeDifference = currentTime - lastUpdatedTime;
+ long daysBetweenLastUpdate = timeDifference / (1000 * 60 * 60 * 24);
+
+ return daysBetweenLastUpdate >= 30;
+
+ } catch (JSONException e) {
+ e.printStackTrace();
+ return true;
+ }
}
}
- void saveFileToCache(Bitmap icon, String iconUrl) throws IOException, JSONException {
+ void saveFileToCache(Bitmap icon, String iconUrl) {
File f = new File(this.context.getCacheDir(), iconUrl);
- f.createNewFile();
-
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- icon.compress(Bitmap.CompressFormat.PNG, 0 /*ignored for PNG*/, bos);
- byte[] bitmapdata = bos.toByteArray();
-
- FileOutputStream fos = new FileOutputStream(f);
- fos.write(bitmapdata);
- fos.flush();
- fos.close();
-
- JSONObject iconParams = buildDeviceIconParameters(f.getAbsolutePath());
- writeDeviceIconParametersToSystemPreferences(iconUrl, iconParams);
+ try {
+ f.createNewFile();
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ icon.compress(Bitmap.CompressFormat.PNG, 0 /*ignored for PNG*/, bos);
+ byte[] bitmapdata = bos.toByteArray();
+
+ FileOutputStream fos = null;
+ fos = new FileOutputStream(f);
+ fos.write(bitmapdata);
+ fos.flush();
+ fos.close();
+ JSONObject iconParams;
+
+ iconParams = buildDeviceIconParameters(f.getAbsolutePath());
+ writeDeviceIconParametersToSystemPreferences(iconUrl, iconParams);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
- Bitmap getFileFromCache(String iconUrl) throws JSONException {
+ Bitmap getFileFromCache(String iconUrl) {
SharedPreferences sharedPref = this.context.getSharedPreferences("sdl", Context.MODE_PRIVATE);
String iconParameters = sharedPref.getString(iconUrl, null);
if (iconParameters != null) {
- JSONObject jsonObject = new JSONObject("storedUrl");
- String storedUrl = jsonObject.getString("storedUrl");
- Bitmap bitmap = BitmapFactory.decodeFile(storedUrl);
- return bitmap;
+ JSONObject jsonObject = null;
+ try {
+ jsonObject = new JSONObject("storedUrl");
+ String storedUrl = jsonObject.getString("storedUrl");
+ return BitmapFactory.decodeFile(storedUrl);
+ } catch (JSONException e) {
+ e.printStackTrace();
+ return null;
+ }
} else {
return null;
}
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenManager.java
index 30ed1b575..f5b7c5520 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenManager.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenManager.java
@@ -82,11 +82,14 @@ public class LockScreenManager extends BaseSubManager {
private boolean mLockScreenHasBeenDismissed, lockscreenDismissReceiverRegistered, receivedFirstDDNotification;
private String mLockscreenWarningMsg;
private BroadcastReceiver mLockscreenDismissedReceiver;
+ private LockScreenDeviceIconManager mLockScreenDeviceIconManager;
public LockScreenManager(LockScreenConfig lockScreenConfig, Context context, ISdl internalInterface){
super(internalInterface);
this.context = new WeakReference<>(context);
+ this.mLockScreenDeviceIconManager = new LockScreenDeviceIconManager(context);
+
// set initial class variables
hmiLevel = HMILevel.HMI_NONE;
@@ -376,7 +379,12 @@ public class LockScreenManager extends BaseSubManager {
@Override
public void run(){
try{
- deviceLogo = AndroidTools.downloadImage(url);
+ if(mLockScreenDeviceIconManager.updateCachedImage(url)) {
+ deviceLogo = AndroidTools.downloadImage(url);
+ mLockScreenDeviceIconManager.saveFileToCache(deviceLogo, url);
+ } else {
+ deviceLogo = mLockScreenDeviceIconManager.getFileFromCache(url);
+ }
Intent intent = new Intent(SDLLockScreenActivity.LOCKSCREEN_DEVICE_LOGO_DOWNLOADED);
intent.putExtra(SDLLockScreenActivity.LOCKSCREEN_DEVICE_LOGO_EXTRA, deviceLogoEnabled);
intent.putExtra(SDLLockScreenActivity.LOCKSCREEN_DEVICE_LOGO_BITMAP, deviceLogo);