diff --git a/.idea/libraries/support_v4_19_1_0.xml b/.idea/libraries/support_v4_19_1_0.xml
index e21be56..5c5cddd 100755
--- a/.idea/libraries/support_v4_19_1_0.xml
+++ b/.idea/libraries/support_v4_19_1_0.xml
@@ -1,11 +1,11 @@
-
+
-
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index ad311ed..490d9d3 100755
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -3,8 +3,7 @@
-
+
-
-
+
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100755
index 0000000..e96534f
--- /dev/null
+++ b/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/UeControl.iml b/UeControl.iml
index 4936b63..b20c571 100755
--- a/UeControl.iml
+++ b/UeControl.iml
@@ -1,5 +1,5 @@
-
+
@@ -12,8 +12,7 @@
-
+
-
-
+
\ No newline at end of file
diff --git a/app/app.iml b/app/app.iml
index 0b2ad4d..8d5be01 100755
--- a/app/app.iml
+++ b/app/app.iml
@@ -1,5 +1,5 @@
-
+
@@ -80,14 +80,13 @@
-
-
-
-
+
-
+
+
+
+
-
-
+
\ No newline at end of file
diff --git a/app/draggable.svg b/app/draggable.svg
old mode 100644
new mode 100755
diff --git a/app/file.svg b/app/file.svg
old mode 100644
new mode 100755
diff --git a/app/folder.svg b/app/folder.svg
old mode 100644
new mode 100755
diff --git a/app/function.png b/app/function.png
old mode 100644
new mode 100755
diff --git a/app/function.svg b/app/function.svg
old mode 100644
new mode 100755
diff --git a/app/libs/android-logging-log4j-1.0.3.jar b/app/libs/android-logging-log4j-1.0.3.jar
old mode 100644
new mode 100755
diff --git a/app/libs/dom4j-1.6.1.jar b/app/libs/dom4j-1.6.1.jar
old mode 100644
new mode 100755
diff --git a/app/libs/gson-2.3.jar b/app/libs/gson-2.3.jar
old mode 100644
new mode 100755
diff --git a/app/libs/jaxen-1.1.6.jar b/app/libs/jaxen-1.1.6.jar
old mode 100644
new mode 100755
diff --git a/app/libs/log4j-1.2.17.jar b/app/libs/log4j-1.2.17.jar
old mode 100644
new mode 100755
diff --git a/app/libs/src/GraphView-3.1.3.zip b/app/libs/src/GraphView-3.1.3.zip
old mode 100644
new mode 100755
diff --git a/app/src/main/java/com/ericsson/uecontrol/core/behaviour/UeBehaviourFtp.java b/app/src/main/java/com/ericsson/uecontrol/core/behaviour/UeBehaviourFtp.java
new file mode 100755
index 0000000..c598ee8
--- /dev/null
+++ b/app/src/main/java/com/ericsson/uecontrol/core/behaviour/UeBehaviourFtp.java
@@ -0,0 +1,68 @@
+package com.ericsson.uecontrol.core.behaviour;
+
+import com.ericsson.uecontrol.core.UeBehaviour;
+import org.apache.commons.net.ftp.FTP;
+import org.apache.commons.net.ftp.FTPClient;
+import org.apache.log4j.Logger;
+
+import java.io.IOException;
+
+/**
+ * This behaviour simulates downloading a file from FTP
+ *
+ * Created by ezivkoc on 2014-07-15.
+ */
+public abstract class UeBehaviourFtp extends UeBehaviour {
+ private static final Logger log = Logger.getLogger(UeBehaviourFtp.class);
+
+ final protected void execute() throws IOException {
+ FTPClient ftp = new FTPClient();
+ try {
+ // Connect
+ ftp.setConnectTimeout(5000);
+ ftp.setDataTimeout(3000);
+ if (getHost().contains(":")) {
+ String tmpHost = getHost().substring(0, getHost().indexOf(':'));
+ int tmpPort = Integer.parseInt(getHost().substring(getHost().indexOf(':')));
+ ftp.connect(tmpHost, tmpPort);
+ } else ftp.connect(getHost());
+ if(getUsername() != null && !getUsername().isEmpty())
+ ftp.login(getUsername(), getPassword());
+ ftp.setFileType(FTP.BINARY_FILE_TYPE);
+ ftp.enterLocalPassiveMode();
+
+ executeFtp(ftp);
+
+ // Disconnect
+ ftp.logout();
+ } finally {
+ if(ftp.isConnected()) {
+ ftp.disconnect();
+ }
+ }
+ }
+
+ protected String getFtpUrl(String filePath) {
+ String url = "ftp://";
+ if(getUsername() != null && !getUsername().isEmpty()) {
+ url += getUsername();
+ if(getPassword() !=null && !getPassword().isEmpty())
+ url += ":" + getPassword();
+ url += "@";
+ }
+ url += getHost();
+ if(filePath != null && !filePath.isEmpty()){
+ if(!filePath.startsWith("/"))
+ filePath = "/"+filePath;
+ url += filePath;
+ }
+ return url;
+ }
+
+
+ abstract protected void executeFtp(FTPClient client) throws IOException;
+
+ abstract String getHost();
+ abstract String getUsername();
+ abstract String getPassword();
+}
diff --git a/app/src/main/java/com/ericsson/uecontrol/core/behaviour/UeBehaviourFtpDownload.java b/app/src/main/java/com/ericsson/uecontrol/core/behaviour/UeBehaviourFtpDownload.java
index f0c5a73..48712f0 100755
--- a/app/src/main/java/com/ericsson/uecontrol/core/behaviour/UeBehaviourFtpDownload.java
+++ b/app/src/main/java/com/ericsson/uecontrol/core/behaviour/UeBehaviourFtpDownload.java
@@ -2,15 +2,19 @@ package com.ericsson.uecontrol.core.behaviour;
import com.ericsson.uecontrol.gui.util.Configurator.Configurable;
+import org.apache.commons.net.ftp.FTPClient;
import org.apache.log4j.Logger;
+import java.io.*;
+
/**
* This behaviour simulates downloading a file from FTP
*
* Created by ezivkoc on 2014-07-15.
*/
-public class UeBehaviourFtpDownload extends UeBehaviourFileDownload {
+public class UeBehaviourFtpDownload extends UeBehaviourFtp {
private static final Logger log = Logger.getLogger(UeBehaviourFtpDownload.class);
+ private static final int BUFFER_SIZE = 512;
@Configurable("Host")
private String host = "ftp.otenet.gr";
@@ -21,23 +25,46 @@ public class UeBehaviourFtpDownload extends UeBehaviourFileDownload {
@Configurable("Password")
private String password = "speedtest";
+ private transient long estimatedDataLength = -1;
@Override
- protected String getFileUrl() {
- String url = "ftp://";
- if(username != null && !username.isEmpty()) {
- url += username;
- if(password !=null && !password.isEmpty())
- url += ":"+password;
- url += "@";
+ protected void executeFtp(FTPClient ftp) throws IOException {
+ // Download data
+ InputStream inStream = ftp.retrieveFileStream(filePath);
+ if (inStream != null) {
+ InputStream in = new BufferedInputStream(inStream);
+
+ long progress = 0;
+ long read = 0;
+ byte[] data = new byte[BUFFER_SIZE];
+
+ while((read = in.read(data)) != -1 && !stopExecution()){
+ progress += read;
+ super.setProgress((float)progress/estimatedDataLength);
+ }
+
+ estimatedDataLength = progress;
+ in.close();
+ if(!ftp.completePendingCommand()) {
+ throw new IOException("FTP reply: "+ftp.getReplyString());
+ }
+ } else {
+ throw new IOException("FTP reply: "+ftp.getReplyString());
}
- url += host;
- if(filePath != null && !filePath.isEmpty()){
- if(!filePath.startsWith("/"))
- filePath = "/"+filePath;
- url += filePath;
- }
- return url;
+ }
+
+
+ @Override
+ public String getHost() {
+ return host;
+ }
+ @Override
+ public String getUsername() {
+ return username;
+ }
+ @Override
+ public String getPassword() {
+ return password;
}
@@ -46,4 +73,8 @@ public class UeBehaviourFtpDownload extends UeBehaviourFileDownload {
return "FTP Download";
}
+ @Override
+ public String toString() {
+ return "Will download " + getFtpUrl(filePath);
+ }
}
diff --git a/app/src/main/java/com/ericsson/uecontrol/core/behaviour/UeBehaviourFtpUpload.java b/app/src/main/java/com/ericsson/uecontrol/core/behaviour/UeBehaviourFtpUpload.java
index a632ad2..9a4515c 100755
--- a/app/src/main/java/com/ericsson/uecontrol/core/behaviour/UeBehaviourFtpUpload.java
+++ b/app/src/main/java/com/ericsson/uecontrol/core/behaviour/UeBehaviourFtpUpload.java
@@ -21,7 +21,7 @@ import java.net.URLConnection;
*
* Created by ezivkoc on 2014-07-15.
*/
-public class UeBehaviourFtpUpload extends UeBehaviour {
+public class UeBehaviourFtpUpload extends UeBehaviourFtp {
private static final int BUFFER_SIZE = 512;
private static final Logger log = Logger.getLogger(UeBehaviourFtpUpload.class);
@@ -38,85 +38,42 @@ public class UeBehaviourFtpUpload extends UeBehaviour {
@Override
- protected void execute() throws IOException {
- FTPClient ftp = new FTPClient();
- try {
- // Connect
- ftp.setConnectTimeout(3000);
- ftp.setDataTimeout(200);
- if (host.contains(":")) {
- String tmpHost = host.substring(0, host.indexOf(':'));
- int tmpPort = Integer.parseInt(host.substring(host.indexOf(':')));
- ftp.connect(tmpHost, tmpPort);
- } else ftp.connect(host);
- ftp.login(username, password);
- ftp.setFileType(FTP.BINARY_FILE_TYPE);
+ protected void executeFtp(FTPClient ftp) throws IOException {
+ // Upload data
+ OutputStream outStream = ftp.storeFileStream(filePath);
+ if (outStream != null) {
+ OutputStream out = new BufferedOutputStream(outStream);
+ int total = 0;
+ byte[] data = new byte[BUFFER_SIZE];
+ while (total < size && !stopExecution()) {
+ int writeLength = (total + data.length < size ? data.length : size - total);
+ out.write(data, 0, writeLength);
- // Upload data
- OutputStream outStream = ftp.storeFileStream(filePath);
- if (outStream != null) {
- OutputStream out = new BufferedOutputStream(outStream);
- int total = 0;
- byte[] data = new byte[BUFFER_SIZE];
- while (total < size && !stopExecution()) {
- int writeLength = (total + data.length < size ? data.length : size - total);
- out.write(data, 0, writeLength);
-
- total += writeLength;
- super.setProgress((float) total / size);
- }
- out.close();
- if(!ftp.completePendingCommand()) {
- throw new IOException("FTP reply: "+ftp.getReplyString());
- }
- } else {
+ total += writeLength;
+ super.setProgress((float) total / size);
+ }
+ out.close();
+ if(!ftp.completePendingCommand()) {
throw new IOException("FTP reply: "+ftp.getReplyString());
}
-
- // Disconnect
- ftp.logout();
- } finally {
- if(ftp.isConnected()) {
- ftp.disconnect();
- }
+ } else {
+ throw new IOException("FTP reply: "+ftp.getReplyString());
}
-
}
-/* @Override
- protected void execute() throws IOException {
- URL url = new URL(getFileUrl());
- log.debug("Uploading file: " + url);
- byte[] data = new byte[BUFFER_SIZE];
- URLConnection connection = url.openConnection();
- OutputStream out = new BufferedOutputStream(connection.getOutputStream());
- int total = 0;
- while(total < size && !stopExecution()){
- int writeLength = (total+data.length < size ? data.length : total+data.length-size);
- out.write(data, 0, writeLength);
- total += writeLength;
- super.setProgress((float)total/size);
- }
- out.close();
- }
-*/
- protected String getFileUrl() {
- String url = "ftp://";
- if(username != null && !username.isEmpty()) {
- url += username;
- if(password !=null && !password.isEmpty())
- url += ":"+password;
- url += "@";
- }
- url += host;
- if(filePath != null && !filePath.isEmpty()){
- if(!filePath.startsWith("/"))
- filePath = "/"+filePath;
- url += filePath;
- }
- return url;
+ @Override
+ public String getHost() {
+ return host;
+ }
+ @Override
+ public String getUsername() {
+ return username;
+ }
+ @Override
+ public String getPassword() {
+ return password;
}
diff --git a/app/src/main/java/com/ericsson/uecontrol/core/util/UrlUtil.java b/app/src/main/java/com/ericsson/uecontrol/core/util/UrlUtil.java
index 63e946c..be8ffad 100755
--- a/app/src/main/java/com/ericsson/uecontrol/core/util/UrlUtil.java
+++ b/app/src/main/java/com/ericsson/uecontrol/core/util/UrlUtil.java
@@ -4,9 +4,12 @@ import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
+import android.os.Handler;
import com.ericsson.uecontrol.gui.MainActivity;
+import org.apache.log4j.Logger;
import java.io.IOException;
+import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
@@ -14,15 +17,24 @@ import java.net.URLConnection;
* Created by ezivkoc on 2014-09-18.
*/
public class UrlUtil {
+ private static final Logger log = Logger.getLogger(UrlUtil.class);
public static URLConnection getURLConnection(URL url) throws IOException {
if(!isNetworkAvailable())
throw new IOException("No Data Network Available");
- URLConnection connection = url.openConnection();
+ final URLConnection connection = url.openConnection();
connection.setConnectTimeout(5000);
connection.setReadTimeout(3000);
connection.setUseCaches(false);
+
+ /*new Thread(new Runnable() {
+ public void run() {
+ try{Thread.sleep(5000);}catch(Exception e){};
+ log.error("Force disconnect URLConnection");
+ connection.
+ }
+ }).start();*/
connection.connect();
return connection;
diff --git a/app/src/main/java/com/ericsson/uecontrol/gui/util/WifiScanner.java b/app/src/main/java/com/ericsson/uecontrol/gui/util/WifiScanner.java
new file mode 100755
index 0000000..a42b2d9
--- /dev/null
+++ b/app/src/main/java/com/ericsson/uecontrol/gui/util/WifiScanner.java
@@ -0,0 +1,47 @@
+package com.ericsson.uecontrol.gui.util;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.net.wifi.ScanResult;
+import android.net.wifi.WifiManager;
+
+import com.ericsson.uecontrol.gui.MainActivity;
+import org.apache.log4j.Logger;
+
+import java.util.List;
+
+/**
+ * Created by ezivkoc on 2014-11-05.
+ */
+public class WifiScanner {
+ private static final Logger log = Logger.getLogger(WifiScanner.class);
+
+ private WifiManager mainWifi;
+ private WifiReceiver receiverWifi;
+
+ public WifiScanner() {
+ mainWifi = (WifiManager) MainActivity.getContext().getSystemService(MainActivity.getContext().WIFI_SERVICE);
+ receiverWifi = new WifiReceiver();
+ }
+
+ protected void start() {
+ MainActivity.getContext().registerReceiver(receiverWifi, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
+ mainWifi.startScan();
+ }
+
+ protected void stop() {
+ MainActivity.getContext().unregisterReceiver(receiverWifi);
+ }
+
+
+ class WifiReceiver extends BroadcastReceiver {
+ public void onReceive(Context c, Intent intent) {
+ List scanList = mainWifi.getScanResults();
+ for(ScanResult item : scanList){
+ log.debug("WiFi scan found SSID: "+item);
+ }
+ }
+ }
+}
diff --git a/app/src/main/res/drawable-hdpi/arrow_down_24.png b/app/src/main/res/drawable-hdpi/arrow_down_24.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-hdpi/arrow_up_24.png b/app/src/main/res/drawable-hdpi/arrow_up_24.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-hdpi/file.png b/app/src/main/res/drawable-hdpi/file.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-hdpi/folder.png b/app/src/main/res/drawable-hdpi/folder.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-hdpi/stat_download.xml b/app/src/main/res/drawable-hdpi/stat_download.xml
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-hdpi/stat_download_static.xml b/app/src/main/res/drawable-hdpi/stat_download_static.xml
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-hdpi/stat_sys_download_anim0.png b/app/src/main/res/drawable-hdpi/stat_sys_download_anim0.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-hdpi/stat_sys_download_anim1.png b/app/src/main/res/drawable-hdpi/stat_sys_download_anim1.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-hdpi/stat_sys_download_anim2.png b/app/src/main/res/drawable-hdpi/stat_sys_download_anim2.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-hdpi/stat_sys_download_anim3.png b/app/src/main/res/drawable-hdpi/stat_sys_download_anim3.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-hdpi/stat_sys_download_anim4.png b/app/src/main/res/drawable-hdpi/stat_sys_download_anim4.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-hdpi/stat_sys_download_anim5.png b/app/src/main/res/drawable-hdpi/stat_sys_download_anim5.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-hdpi/stat_sys_upload_anim0.png b/app/src/main/res/drawable-hdpi/stat_sys_upload_anim0.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-hdpi/stat_sys_upload_anim1.png b/app/src/main/res/drawable-hdpi/stat_sys_upload_anim1.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-hdpi/stat_sys_upload_anim2.png b/app/src/main/res/drawable-hdpi/stat_sys_upload_anim2.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-hdpi/stat_sys_upload_anim3.png b/app/src/main/res/drawable-hdpi/stat_sys_upload_anim3.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-hdpi/stat_sys_upload_anim4.png b/app/src/main/res/drawable-hdpi/stat_sys_upload_anim4.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-hdpi/stat_sys_upload_anim5.png b/app/src/main/res/drawable-hdpi/stat_sys_upload_anim5.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-hdpi/stat_upload.xml b/app/src/main/res/drawable-hdpi/stat_upload.xml
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-mdpi/draggable.png b/app/src/main/res/drawable-mdpi/draggable.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-mdpi/file.png b/app/src/main/res/drawable-mdpi/file.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-mdpi/folder.png b/app/src/main/res/drawable-mdpi/folder.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-mdpi/icon.png b/app/src/main/res/drawable-mdpi/icon.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-mdpi/stat_sys_download_anim0.png b/app/src/main/res/drawable-mdpi/stat_sys_download_anim0.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-mdpi/stat_sys_download_anim1.png b/app/src/main/res/drawable-mdpi/stat_sys_download_anim1.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-mdpi/stat_sys_download_anim2.png b/app/src/main/res/drawable-mdpi/stat_sys_download_anim2.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-mdpi/stat_sys_download_anim3.png b/app/src/main/res/drawable-mdpi/stat_sys_download_anim3.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-mdpi/stat_sys_download_anim4.png b/app/src/main/res/drawable-mdpi/stat_sys_download_anim4.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-mdpi/stat_sys_download_anim5.png b/app/src/main/res/drawable-mdpi/stat_sys_download_anim5.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-mdpi/stat_sys_upload_anim0.png b/app/src/main/res/drawable-mdpi/stat_sys_upload_anim0.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-mdpi/stat_sys_upload_anim1.png b/app/src/main/res/drawable-mdpi/stat_sys_upload_anim1.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-mdpi/stat_sys_upload_anim2.png b/app/src/main/res/drawable-mdpi/stat_sys_upload_anim2.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-mdpi/stat_sys_upload_anim3.png b/app/src/main/res/drawable-mdpi/stat_sys_upload_anim3.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-mdpi/stat_sys_upload_anim4.png b/app/src/main/res/drawable-mdpi/stat_sys_upload_anim4.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-mdpi/stat_sys_upload_anim5.png b/app/src/main/res/drawable-mdpi/stat_sys_upload_anim5.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xhdpi/draggable.png b/app/src/main/res/drawable-xhdpi/draggable.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xhdpi/file.png b/app/src/main/res/drawable-xhdpi/file.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xhdpi/folder.png b/app/src/main/res/drawable-xhdpi/folder.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xhdpi/icon.png b/app/src/main/res/drawable-xhdpi/icon.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xhdpi/stat_sys_download_anim0.png b/app/src/main/res/drawable-xhdpi/stat_sys_download_anim0.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xhdpi/stat_sys_download_anim1.png b/app/src/main/res/drawable-xhdpi/stat_sys_download_anim1.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xhdpi/stat_sys_download_anim2.png b/app/src/main/res/drawable-xhdpi/stat_sys_download_anim2.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xhdpi/stat_sys_download_anim3.png b/app/src/main/res/drawable-xhdpi/stat_sys_download_anim3.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xhdpi/stat_sys_download_anim4.png b/app/src/main/res/drawable-xhdpi/stat_sys_download_anim4.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xhdpi/stat_sys_download_anim5.png b/app/src/main/res/drawable-xhdpi/stat_sys_download_anim5.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xhdpi/stat_sys_upload_anim0.png b/app/src/main/res/drawable-xhdpi/stat_sys_upload_anim0.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xhdpi/stat_sys_upload_anim1.png b/app/src/main/res/drawable-xhdpi/stat_sys_upload_anim1.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xhdpi/stat_sys_upload_anim2.png b/app/src/main/res/drawable-xhdpi/stat_sys_upload_anim2.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xhdpi/stat_sys_upload_anim3.png b/app/src/main/res/drawable-xhdpi/stat_sys_upload_anim3.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xhdpi/stat_sys_upload_anim4.png b/app/src/main/res/drawable-xhdpi/stat_sys_upload_anim4.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xhdpi/stat_sys_upload_anim5.png b/app/src/main/res/drawable-xhdpi/stat_sys_upload_anim5.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xxhdpi/draggable.png b/app/src/main/res/drawable-xxhdpi/draggable.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xxhdpi/file.png b/app/src/main/res/drawable-xxhdpi/file.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xxhdpi/folder.png b/app/src/main/res/drawable-xxhdpi/folder.png
old mode 100644
new mode 100755
diff --git a/app/src/main/res/drawable-xxhdpi/icon.png b/app/src/main/res/drawable-xxhdpi/icon.png
old mode 100644
new mode 100755
diff --git a/app/src/main/resources/META-INF/licenses/GraphView/license.txt b/app/src/main/resources/META-INF/licenses/GraphView/license.txt
old mode 100644
new mode 100755
diff --git a/app/src/main/resources/META-INF/licenses/android-logging-log4j/LICENSE b/app/src/main/resources/META-INF/licenses/android-logging-log4j/LICENSE
old mode 100644
new mode 100755
diff --git a/app/src/main/resources/META-INF/licenses/dom4j/LICENSE.txt b/app/src/main/resources/META-INF/licenses/dom4j/LICENSE.txt
old mode 100644
new mode 100755
diff --git a/app/src/main/resources/META-INF/licenses/gson/LICENSE b/app/src/main/resources/META-INF/licenses/gson/LICENSE
old mode 100644
new mode 100755
diff --git a/app/src/main/resources/META-INF/licenses/jaxen/LICENSE.txt b/app/src/main/resources/META-INF/licenses/jaxen/LICENSE.txt
old mode 100644
new mode 100755
diff --git a/app/src/main/resources/META-INF/licenses/log4j/LICENSE b/app/src/main/resources/META-INF/licenses/log4j/LICENSE
old mode 100644
new mode 100755
diff --git a/app/src/main/resources/META-INF/licenses/log4j/NOTICE b/app/src/main/resources/META-INF/licenses/log4j/NOTICE
old mode 100644
new mode 100755
diff --git a/app_icon.png b/app_icon.png
old mode 100644
new mode 100755