Skip to content
This repository was archived by the owner on Sep 13, 2024. It is now read-only.

Commit 0ef19c9

Browse files
Improved caching
It still not working because of some permission issues with reading data from a URL.
1 parent b87f8bd commit 0ef19c9

4 files changed

Lines changed: 63 additions & 11 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@
99
/captures
1010
.externalNativeBuild
1111
.idea/caches/build_file_checksums.ser
12+
.idea/caches/build_file_checksums.ser

app/src/main/AndroidManifest.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
<uses-permission android:name="android.permission.INTERNET" />
77
<uses-permission android:name="android.permission.REORDER_TASKS" />
88
<uses-permission android:name="android.permission.CAMERA" />
9+
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
10+
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
11+
912
<uses-feature
1013
android:name="android.hardware.camera"
1114
android:required="false" />

app/src/main/java/com/coderbunker/kioskapp/KioskActivity.java

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,6 @@
3838
import com.gun0912.tedpermission.PermissionListener;
3939
import com.gun0912.tedpermission.TedPermission;
4040

41-
import java.net.MalformedURLException;
42-
import java.net.URL;
4341
import java.util.ArrayList;
4442
import java.util.Arrays;
4543
import java.util.List;
@@ -78,6 +76,8 @@ public class KioskActivity extends Activity implements Observer {
7876
private Camera mCamera;
7977
private CameraPreview mCameraPreview;
8078

79+
private boolean enableCaching = false;
80+
8181
@Override
8282
public void onBackPressed() {
8383
//Do nothing...
@@ -142,23 +142,18 @@ public void run() {
142142
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
143143
System.out.println("Test: " + request.getUrl().toString());
144144

145-
try {
145+
if (enableCaching) {
146146
if (request.getUrl().toString().contains(".mp4") || request.getUrl().toString().contains(".wav")) {
147147
String[] url_parts = request.getUrl().toString().split("/");
148148
String file_name = url_parts[url_parts.length - 1];
149149

150150
if (SaveAndLoad.readFromFile(file_name, KioskActivity.this).equals("")) {
151-
String response = URLRequest.requestURL(new URL(request.getUrl().toString()), "GET", "");
152-
153-
SaveAndLoad.writeToFile(file_name, response, KioskActivity.this);
151+
URLRequest.startDownload(request.getUrl().toString(), file_name);
154152
}
155153
return new WebResourceResponse(SaveAndLoad.getMimeType(request.getUrl().toString()), "UTF-8", SaveAndLoad.readFromFileAndReturnInputStream(file_name, KioskActivity.this));
156154

157155
}
158-
} catch (MalformedURLException e) {
159-
e.printStackTrace();
160156
}
161-
162157
return super.shouldInterceptRequest(view, request);
163158
}
164159

app/src/main/java/com/coderbunker/kioskapp/lib/URLRequest.java

Lines changed: 55 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
package com.coderbunker.kioskapp.lib;
22

3+
import android.os.AsyncTask;
4+
import android.os.Environment;
35
import android.os.StrictMode;
6+
import android.util.Log;
47

58
import java.io.BufferedInputStream;
69
import java.io.BufferedReader;
10+
import java.io.File;
11+
import java.io.FileOutputStream;
712
import java.io.IOException;
813
import java.io.InputStream;
914
import java.io.InputStreamReader;
@@ -14,7 +19,6 @@
1419

1520
public class URLRequest {
1621
public static String requestURL(URL url, String method, String body) {
17-
1822
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
1923
StrictMode.setThreadPolicy(policy);
2024

@@ -74,7 +78,56 @@ public static String requestURL(URL url, String method, String body) {
7478
}
7579
return result;
7680
} catch (NullPointerException e) {
81+
e.printStackTrace();
7782
return "";
7883
}
7984
}
80-
}
85+
86+
private static class Download extends AsyncTask<String, String, String> {
87+
@Override
88+
protected void onPreExecute() {
89+
90+
}
91+
92+
@Override
93+
protected String doInBackground(String... arg0) {
94+
downloadFile(arg0[0], arg0[1]);
95+
return null;
96+
}
97+
98+
@Override
99+
protected void onPostExecute(String s) {
100+
System.out.println("Downloaded");
101+
}
102+
}
103+
104+
public static void startDownload(String fileURL, String fileName) {
105+
(new Download()).execute(fileURL, fileName);
106+
107+
}
108+
109+
private static void downloadFile(String fileURL, String fileName) {
110+
try {
111+
String rootDir = Environment.getExternalStorageDirectory()
112+
+ File.separator + "Video";
113+
File rootFile = new File(rootDir);
114+
rootFile.mkdir();
115+
URL url = new URL(fileURL);
116+
HttpURLConnection c = (HttpURLConnection) url.openConnection();
117+
c.setRequestMethod("GET");
118+
c.setDoOutput(true);
119+
c.connect();
120+
FileOutputStream f = new FileOutputStream(new File(rootFile,
121+
fileName));
122+
InputStream in = c.getInputStream();
123+
byte[] buffer = new byte[1024];
124+
int len1 = 0;
125+
while ((len1 = in.read(buffer)) > 0) {
126+
f.write(buffer, 0, len1);
127+
}
128+
f.close();
129+
} catch (IOException e) {
130+
Log.d("Error....", e.toString());
131+
}
132+
}
133+
}

0 commit comments

Comments
 (0)