diff --git a/app/src/androidTest/java/org/flyve/mdm/agent/core/mqtt/MqttModelTest.java b/app/src/androidTest/java/org/flyve/mdm/agent/core/mqtt/MqttModelTest.java new file mode 100644 index 0000000000..8f5eca34ae --- /dev/null +++ b/app/src/androidTest/java/org/flyve/mdm/agent/core/mqtt/MqttModelTest.java @@ -0,0 +1,63 @@ +package org.flyve.mdm.agent.core.mqtt; + +import android.content.Context; +import android.support.test.InstrumentationRegistry; +import android.support.test.rule.ActivityTestRule; + +import org.flyve.mdm.agent.ui.StartEnrollmentActivity; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; + +import static org.mockito.Mockito.mock; + +/* + * Copyright 2018 Teclib. All rights reserved. + * + * This file is part of flyve-mdm-android + * + * flyve-mdm-android is a subproject of Flyve MDM. Flyve MDM is a mobile + * device management software. + * + * Flyve MDM is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 3 + * of the License, or (at your option) any later version. + * + * Flyve MDM is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * ------------------------------------------------------------------------------ + * @author @rafaelje + * @date 25/6/18 + * @copyright Copyright 2018 Teclib. All rights reserved. + * @license GPLv3 https://www.gnu.org/licenses/gpl-3.0.html + * @link https://github.com/flyve-mdm/flyve-mdm-android + * @link https://flyve-mdm.com + * ------------------------------------------------------------------------------ + */ + +public class MqttModelTest { + + private Context context; + private MqttModel model; + + @Rule + public ActivityTestRule rule = new ActivityTestRule<>(StartEnrollmentActivity.class); + + @Before + public void setUp() { + context = InstrumentationRegistry.getTargetContext(); + mqtt.Presenter presenter = mock(mqtt.Presenter.class); + model = new MqttModel(presenter); + } + + + @Test + public void lint() { + + Assert.assertTrue(true); + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 6a28b65b4b..05a024b23d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,7 +1,7 @@ diff --git a/app/src/main/assets/about.properties b/app/src/main/assets/about.properties index 11c12778a7..9ee774ca43 100644 --- a/app/src/main/assets/about.properties +++ b/app/src/main/assets/about.properties @@ -1,6 +1,6 @@ -about.version=2.0.0-rc.4 -about.build=2556 -about.date=Wed Sep 26 19:33:47 2018 +about.version=2.0.0-rc.5 +about.build=2869 +about.date=Tue Nov 20 19:07:10 2018 about.commit= about.commitFull= about.github=https://github.com/flyve-mdm/flyve-mdm-android-agent diff --git a/app/src/main/java/org/flyve/mdm/agent/adapter/ApplicationsAdapter.java b/app/src/main/java/org/flyve/mdm/agent/adapter/ApplicationsAdapter.java index 7fff881ceb..671bb961dc 100644 --- a/app/src/main/java/org/flyve/mdm/agent/adapter/ApplicationsAdapter.java +++ b/app/src/main/java/org/flyve/mdm/agent/adapter/ApplicationsAdapter.java @@ -96,7 +96,7 @@ public View getView(int position, View convertView, ViewGroup parent) { try { app = data[position]; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", getView",ex.getMessage()); return vi; } @@ -114,7 +114,7 @@ public View getView(int position, View convertView, ViewGroup parent) { status = parent.getResources().getString(R.string.app_installed); } } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", getView", ex.getMessage()); } } else { status = parent.getResources().getString(R.string.app_not_installed); diff --git a/app/src/main/java/org/flyve/mdm/agent/adapter/ConnectivityAdapter.java b/app/src/main/java/org/flyve/mdm/agent/adapter/ConnectivityAdapter.java index 839c77abc4..86f444cd7c 100644 --- a/app/src/main/java/org/flyve/mdm/agent/adapter/ConnectivityAdapter.java +++ b/app/src/main/java/org/flyve/mdm/agent/adapter/ConnectivityAdapter.java @@ -93,7 +93,7 @@ public View getView(int position, View convertView, ViewGroup parent) { try { hashdata = data.get(position); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", getView", ex.getMessage()); return vi; } diff --git a/app/src/main/java/org/flyve/mdm/agent/adapter/DrawerAdapter.java b/app/src/main/java/org/flyve/mdm/agent/adapter/DrawerAdapter.java index 7a6eefb6a2..0d467a8d78 100644 --- a/app/src/main/java/org/flyve/mdm/agent/adapter/DrawerAdapter.java +++ b/app/src/main/java/org/flyve/mdm/agent/adapter/DrawerAdapter.java @@ -93,7 +93,7 @@ public View getView(int position, View convertView, ViewGroup parent) { try { hashdata = data.get(position); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", getView", ex.getMessage()); return vi; } diff --git a/app/src/main/java/org/flyve/mdm/agent/adapter/FilesAdapter.java b/app/src/main/java/org/flyve/mdm/agent/adapter/FilesAdapter.java index feb16a3f23..5fbc2f498c 100644 --- a/app/src/main/java/org/flyve/mdm/agent/adapter/FilesAdapter.java +++ b/app/src/main/java/org/flyve/mdm/agent/adapter/FilesAdapter.java @@ -92,7 +92,7 @@ public View getView(int position, View convertView, ViewGroup parent) { try { file = data[position]; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", getView", ex.getMessage()); return vi; } diff --git a/app/src/main/java/org/flyve/mdm/agent/adapter/LogAdapter.java b/app/src/main/java/org/flyve/mdm/agent/adapter/LogAdapter.java index 7c1d49dd9f..497667ca14 100644 --- a/app/src/main/java/org/flyve/mdm/agent/adapter/LogAdapter.java +++ b/app/src/main/java/org/flyve/mdm/agent/adapter/LogAdapter.java @@ -45,7 +45,7 @@ public LogAdapter(Activity activity, List> data) { try { inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", LogAdapter", ex.getMessage()); } } @@ -94,7 +94,7 @@ public View getView(int position, View convertView, ViewGroup parent) { try { hashdata = data.get(position); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", getView", ex.getMessage()); return vi; } diff --git a/app/src/main/java/org/flyve/mdm/agent/adapter/PoliciesAdapter.java b/app/src/main/java/org/flyve/mdm/agent/adapter/PoliciesAdapter.java index 2271dcee16..fe17d19ff0 100644 --- a/app/src/main/java/org/flyve/mdm/agent/adapter/PoliciesAdapter.java +++ b/app/src/main/java/org/flyve/mdm/agent/adapter/PoliciesAdapter.java @@ -92,7 +92,7 @@ public View getView(int position, View convertView, ViewGroup parent) { try { hashdata = data.get(position); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", getView", ex.getMessage()); return vi; } diff --git a/app/src/main/java/org/flyve/mdm/agent/core/Routes.java b/app/src/main/java/org/flyve/mdm/agent/core/Routes.java index 26dd17e39d..23a3430add 100644 --- a/app/src/main/java/org/flyve/mdm/agent/core/Routes.java +++ b/app/src/main/java/org/flyve/mdm/agent/core/Routes.java @@ -92,8 +92,8 @@ public String pluginFlyvemdmAgent(String agentId) { * @param fileId String file id * @return String url */ - public String pluginFlyvemdmFile(String fileId, String sessionToken) { - return url + "/PluginFlyvemdmFile/" + fileId + "?session_token=" + sessionToken; + public String pluginFlyvemdmFile(String fileId) { + return url + "/PluginFlyvemdmFile/" + fileId; } /** @@ -101,7 +101,7 @@ public String pluginFlyvemdmFile(String fileId, String sessionToken) { * @param fileId String file id * @return String url */ - public String pluginFlyvemdmPackage(String fileId, String sessionToken) { - return url + "/PluginFlyvemdmPackage/" + fileId + "?session_token=" + sessionToken; + public String pluginFlyvemdmPackage(String fileId) { + return url + "/PluginFlyvemdmPackage/" + fileId; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/core/deeplink/DeeplinkModel.java b/app/src/main/java/org/flyve/mdm/agent/core/deeplink/DeeplinkModel.java index bf890190bf..c58da7750a 100644 --- a/app/src/main/java/org/flyve/mdm/agent/core/deeplink/DeeplinkModel.java +++ b/app/src/main/java/org/flyve/mdm/agent/core/deeplink/DeeplinkModel.java @@ -53,7 +53,7 @@ public void lint(Context context, String deeplink) { deepLinkData = Helpers.base64decode(deeplink); } catch(Exception ex) { presenter.showSnackError( CommonErrorType.DEEPLINK_BASE64DECODE, deepLinkErrorMessage); - FlyveLog.e(deepLinkErrorMessage + " - " + ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", lint", deepLinkErrorMessage + " - " + ex.getMessage()); return; } @@ -127,7 +127,7 @@ public void lint(Context context, String deeplink) { presenter.lintSuccess(deeplinkSchema); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", lint", ex.getMessage()); presenter.showSnackError( CommonErrorType.DEEPLINK_GENERAL_EXCEPTION, deepLinkErrorMessage ); } } @@ -152,11 +152,9 @@ public void saveSupervisor(Context context, String name, String phone, String we @Override public void saveMQTTConfig(Context context, String url, String userToken, String invitationToken) { MqttData cache = new MqttData(context); - if(cache.getUrl().isEmpty()) { - cache.setUrl(url); - cache.setUserToken(userToken); - cache.setInvitationToken(invitationToken); - } + cache.setUrl(url); + cache.setUserToken(userToken); + cache.setInvitationToken(invitationToken); } @Override diff --git a/app/src/main/java/org/flyve/mdm/agent/core/enrollment/EnrollmentHelper.java b/app/src/main/java/org/flyve/mdm/agent/core/enrollment/EnrollmentHelper.java index 704276cb72..f19a462ab2 100644 --- a/app/src/main/java/org/flyve/mdm/agent/core/enrollment/EnrollmentHelper.java +++ b/app/src/main/java/org/flyve/mdm/agent/core/enrollment/EnrollmentHelper.java @@ -88,7 +88,7 @@ private String manageError(String error) { String errorMessage = ""; if(error.contains("EXCEPTION_HTTP") || error.contains("ERROR")) { - FlyveLog.e(error); + FlyveLog.e(this.getClass().getName() + ", manageError", error); errorMessage = error; @@ -107,7 +107,7 @@ private String manageError(String error) { errorMessage = errorArray[0]; } } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", manageError", ex.getMessage()); } return errorMessage; @@ -128,10 +128,11 @@ public void run() String profileId = ""; JSONObject jsonSession; HashMap header = new HashMap(); + header.put("user_token", cache.getUserToken()); try { // STEP 1 get session token - data = getSyncWebData(routes.initSession(cache.getUserToken()), "GET", null); + data = getSyncWebData(routes.initSession(cache.getUserToken()), "GET", header); final String errorMessage = manageError(data); if(!errorMessage.equals("")) { @@ -148,7 +149,7 @@ public void run() { cache.setSessionToken(sessionToken); } catch (final Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", getActiveSessionToken", ex.getMessage()); EnrollmentHelper.runOnUI(new Runnable() { public void run() { callback.onError(CommonErrorType.ENROLLMENT_HELPER_INITSESSION, context.getString(R.string.wrong_json_format, data, ex.getMessage())); @@ -182,7 +183,7 @@ public void run() { cache.setProfileId(profileId); } catch (final Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", getActiveSessionToken", ex.getMessage()); EnrollmentHelper.runOnUI(new Runnable() { public void run() { callback.onError(CommonErrorType.ENROLLMENT_HELPER_FULLSESSION, context.getString(R.string.wrong_json_format, data, ex.getMessage())); @@ -209,7 +210,7 @@ public void run() { }); } } catch (final Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", getActiveSessionToken", ex.getMessage()); EnrollmentHelper.runOnUI(new Runnable() { public void run() { callback.onError(CommonErrorType.ENROLLMENT_HELPER_CHANGEACTIVEPROFILE, context.getString(R.string.wrong_json_format, data, ex.getMessage())); @@ -257,7 +258,7 @@ public void run() { if(data.contains("ERROR")){ final String msgError = manageError(data); - FlyveLog.e(msgError + " - Device serial: " + Helpers.getDeviceSerial()); + FlyveLog.e(this.getClass().getName() + ", enrollment", msgError + " - Device serial: " + Helpers.getDeviceSerial()); EnrollmentHelper.runOnUI(new Runnable() { public void run() { @@ -357,7 +358,7 @@ public void run() { } }); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", createX509cert", ex.getMessage()); EnrollmentHelper.runOnUI(new Runnable() { public void run() { callback.onError(CommonErrorType.ENROLLMENT_HELPER_X509CERTIFICATION, "false"); diff --git a/app/src/main/java/org/flyve/mdm/agent/core/enrollment/EnrollmentModel.java b/app/src/main/java/org/flyve/mdm/agent/core/enrollment/EnrollmentModel.java index 425bb3f1b2..1ba986d301 100644 --- a/app/src/main/java/org/flyve/mdm/agent/core/enrollment/EnrollmentModel.java +++ b/app/src/main/java/org/flyve/mdm/agent/core/enrollment/EnrollmentModel.java @@ -192,7 +192,6 @@ public void onSuccess(String data) { // ------------------------------- MqttData cache = new MqttData(activity); cache.setInvitationToken(""); - cache.setUserToken(""); presenter.enrollSuccess(); } diff --git a/app/src/main/java/org/flyve/mdm/agent/core/mqtt/MqttModel.java b/app/src/main/java/org/flyve/mdm/agent/core/mqtt/MqttModel.java index 5276785425..4a2daf77c7 100644 --- a/app/src/main/java/org/flyve/mdm/agent/core/mqtt/MqttModel.java +++ b/app/src/main/java/org/flyve/mdm/agent/core/mqtt/MqttModel.java @@ -84,11 +84,18 @@ import org.flyve.mdm.agent.utils.Helpers; import org.json.JSONArray; import org.json.JSONObject; + +import java.security.KeyStore; +import java.security.cert.CertificateFactory; +import java.security.cert.X509Certificate; import java.util.Date; +import java.util.Enumeration; import java.util.Timer; import java.util.TimerTask; +import javax.net.ssl.KeyManagerFactory; import javax.net.ssl.SSLContext; +import javax.net.ssl.TrustManagerFactory; public class MqttModel implements mqtt.Model { @@ -134,6 +141,7 @@ public void sendInventory(Context context) { public void connect(final Context context, final MqttCallback callback) { // if the device is connected exit if(getMqttClient()!=null && getMqttClient().isConnected()) { + setStatus(context, callback, true); return; } @@ -154,7 +162,7 @@ public void connect(final Context context, final MqttCallback callback) { connectionInformation.append("TLS: " + mTLS + "\n"); Log.d("MQTT", connectionInformation.toString()); - Helpers.storeLog(Helpers.broadCastMessage("MQTT", "Connection Information", connectionInformation.toString())); + Helpers.storeLog("MQTT", "Connection Information", connectionInformation.toString()); String protocol = "tcp"; // TLS is active change protocol @@ -163,36 +171,68 @@ public void connect(final Context context, final MqttCallback callback) { } String clientId; - try { - clientId = MqttClient.generateClientId(); - client = new MqttAndroidClient(context, protocol + "://" + mBroker + ":" + mPort, clientId); - } catch (ExceptionInInitializerError ex) { - showDetailError(context, CommonErrorType.MQTT_IN_INITIALIZER_ERROR, ex.getMessage()); - reconnect(context, callback); - return; - } + MqttConnectOptions options; - client.setCallback( callback ); + if(client==null) { + try { + clientId = MqttClient.generateClientId(); + client = new MqttAndroidClient(context, protocol + "://" + mBroker + ":" + mPort, clientId); + } catch (ExceptionInInitializerError ex) { + showDetailError(context, CommonErrorType.MQTT_IN_INITIALIZER_ERROR, ex.getMessage()); + reconnect(context, callback); + return; + } + + client.setCallback(callback); + } - MqttConnectOptions options; try { options = new MqttConnectOptions(); options.setPassword(mPassword.toCharArray()); options.setUserName(mUser); options.setCleanSession(true); options.setMqttVersion(MqttConnectOptions.MQTT_VERSION_3_1); - options.setConnectionTimeout(0); + options.setConnectionTimeout(MqttConnectOptions.CONNECTION_TIMEOUT_DEFAULT); + options.setKeepAliveInterval(MqttConnectOptions.KEEP_ALIVE_INTERVAL_DEFAULT); options.setAutomaticReconnect(true); // Create a testament to send when MQTT connection is down - String will = "{ online: false }"; - options.setWill("/Status/Online", will.getBytes(), 0, false); + String will = "{ \"online\": false }"; + options.setWill(mTopic + "/Status/Online", will.getBytes(), 0, true); // If TLS is active needs ssl connection option if (mTLS.equals("1")) { + TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); + + KeyStore caKeyStore = KeyStore.getInstance(KeyStore.getDefaultType()); + caKeyStore.load(null, null); + + CertificateFactory certificationFactory = CertificateFactory.getInstance("X.509"); + X509Certificate ca = (X509Certificate) certificationFactory.generateCertificate(context.getResources().openRawResource(R.raw.flyve_org)); + String alias = ca.getSubjectX500Principal().getName(); + + // Set propper alias name + caKeyStore.setCertificateEntry(alias, ca); + trustManagerFactory.init(caKeyStore); + + FlyveLog.v("Certificate Owner: %s", ca.getSubjectDN().toString()); + FlyveLog.v("Certificate Issuer: %s", ca.getIssuerDN().toString()); + FlyveLog.v("Certificate Serial Number: %s", ca.getSerialNumber().toString()); + FlyveLog.v("Certificate Algorithm: %s", ca.getSigAlgName()); + FlyveLog.v("Certificate Version: %s", ca.getVersion()); + FlyveLog.v("Certificate OID: %s", ca.getSigAlgOID()); + Enumeration aliasesCA = caKeyStore.aliases(); + for (; aliasesCA.hasMoreElements(); ) { + String o = aliasesCA.nextElement(); + FlyveLog.v("Alias: %s isKeyEntry:%s isCertificateEntry:%s", o, caKeyStore.isKeyEntry(o), caKeyStore.isCertificateEntry(o)); + } + + KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance("X509"); + keyManagerFactory.init(null,null); + // SSL - SSLContext sslContext = SSLContext.getInstance("TLSv1.2"); - sslContext.init(null, null, null); + SSLContext sslContext = SSLContext.getInstance("TLS"); + sslContext.init(keyManagerFactory.getKeyManagers(), trustManagerFactory.getTrustManagers(), null); options.setSocketFactory(sslContext.getSocketFactory()); } } catch (Exception ex) { @@ -200,14 +240,20 @@ public void connect(final Context context, final MqttCallback callback) { return; } + try { IMqttToken token = client.connect(options); token.setActionCallback(new IMqttActionListener() { @Override public void onSuccess(IMqttToken asyncActionToken) { + Helpers.storeLog("MQTT", "Connection Success", ""); + // We are connected setStatus(context, callback, true); + // set the reconnection counter to 0 + reconnectionCounter = 0; + // Everything ready waiting for message PoliciesController policiesController = new PoliciesController(context, client); @@ -230,7 +276,6 @@ public void onFailure(IMqttToken asyncActionToken, Throwable ex) { } else { messageError = ex.getMessage(); } - showDetailError(context, CommonErrorType.MQTT_ACTION_CALLBACK, messageError); } }); @@ -259,6 +304,7 @@ public void run() { executeConnection = true; } else { executeConnection = false; + return; } } else { timeLastReconnection = new Date().getTime(); @@ -268,23 +314,19 @@ public void run() { if(!isConnected()) { if(executeConnection) { reconnectionCounter++; - - if((reconnectionCounter % 10)==0) { - tryEverySeconds *= 2; - } - String message = "Reconnecting " + reconnectionCounter + " times"; - + Helpers.storeLog("MQTT", "Reconnection", message); if(new AppData(context).getEnableNotificationConnection()) { Helpers.sendToNotificationBar(context, 101, context.getString(R.string.app_name), message, false, MainActivity.class, "service_disconnect"); } FlyveLog.d(message); - connect(context, callback); } } else { FlyveLog.d("Reconnection finish"); + Helpers.storeLog("MQTT", "Reconnection Success", ""); + reconnectionCounter = 0; reconnectionTimer.cancel(); reconnectionTimer = null; } @@ -293,15 +335,13 @@ public void run() { } public void messageArrived(Context context, String topic, MqttMessage message) { - FlyveLog.d("- Topic: " + topic + "\n\n- Message: " + new String(message.getPayload())); - FlyveLog.d("- Topic: " + topic + "\n\n- Message: " + new String(message.getPayload())); int priority = topic.contains("fleet") ? 0 : 1; String messageBody = new String(message.getPayload()); PoliciesController policiesController = new PoliciesController(context, getMqttClient()); - Helpers.storeLog(Helpers.broadCastMessage("MQTT Message", "Body", messageBody)); + Helpers.storeLog("MQTT Message", "Body", messageBody); if(topic.isEmpty()) { // exit if the topic if empty @@ -641,7 +681,7 @@ public void messageArrived(Context context, String topic, MqttMessage message) { @Override public void showDetailError(Context context, int type, String message) { - FlyveLog.e(context.getResources().getString(R.string.error_message_with_number, String.valueOf(type), message)); + FlyveLog.e(this.getClass().getName() + ", showDetailError", context.getResources().getString(R.string.error_message_with_number, String.valueOf(type), message)); } @Override @@ -658,7 +698,7 @@ public void onDestroy(Context context) { public void deliveryComplete(Context context, IMqttDeliveryToken token) { try { FlyveLog.d("deliveryComplete Token: " + token.isComplete() + " : " + token.getMessage().toString()); - Helpers.storeLog(Helpers.broadCastMessage(context.getString(R.string.mqtt_delivery), context.getString(R.string.response_id), String.valueOf(token.getMessageId()))); + Helpers.storeLog(context.getString(R.string.mqtt_delivery), context.getString(R.string.response_id), String.valueOf(token.getMessageId())); } catch (Exception ex) { showDetailError(context, CommonErrorType.MQTT_DELIVERY_COMPLETE, ex.getMessage()); } @@ -702,7 +742,7 @@ public void callPolicy(Context context, Class classPolic @Override public void connectionLost(Context context, MqttCallback callback, String message) { - showDetailError(context, CommonErrorType.MQTT_CONNECTION_LOST, message); + showDetailError(context, CommonErrorType.MQTT_CONNECTION_LOST, "Method: connectionLost " + message); setStatus(context, callback, false); } diff --git a/app/src/main/java/org/flyve/mdm/agent/core/permission/PermissionModel.java b/app/src/main/java/org/flyve/mdm/agent/core/permission/PermissionModel.java index adacf2686a..38b4980170 100644 --- a/app/src/main/java/org/flyve/mdm/agent/core/permission/PermissionModel.java +++ b/app/src/main/java/org/flyve/mdm/agent/core/permission/PermissionModel.java @@ -101,7 +101,7 @@ public void onTaskSuccess(String s) { @Override public void onTaskError(Throwable throwable) { - FlyveLog.e(throwable.getMessage()); + FlyveLog.e(this.getClass().getName() + ", generateInventory", throwable.getMessage()); } }); diff --git a/app/src/main/java/org/flyve/mdm/agent/core/user/UserModel.java b/app/src/main/java/org/flyve/mdm/agent/core/user/UserModel.java index b578008bd0..5310eb1a13 100644 --- a/app/src/main/java/org/flyve/mdm/agent/core/user/UserModel.java +++ b/app/src/main/java/org/flyve/mdm/agent/core/user/UserModel.java @@ -136,7 +136,7 @@ public void save(Activity activity, UserSchema schema) { presenter.saveSuccess(); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", save", ex.getMessage()); presenter.showDetailError(CommonErrorType.USER_SAVE_EXCEPTION, ex.getMessage()); } } diff --git a/app/src/main/java/org/flyve/mdm/agent/data/database/MDMLogData.java b/app/src/main/java/org/flyve/mdm/agent/data/database/MDMLogData.java new file mode 100644 index 0000000000..f98c68e8ee --- /dev/null +++ b/app/src/main/java/org/flyve/mdm/agent/data/database/MDMLogData.java @@ -0,0 +1,62 @@ +/* + * Copyright Teclib. All rights reserved. + * + * This file is part of flyve-mdm-android + * + * flyve-mdm-android is a subproject of Flyve MDM. Flyve MDM is a mobile + * device management software. + * + * Flyve MDM is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 3 + * of the License, or (at your option) any later version. + * + * Flyve MDM is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * ------------------------------------------------------------------------------ + * @author @rafaelje + * @copyright Copyright Teclib. All rights reserved. + * @license GPLv3 https://www.gnu.org/licenses/gpl-3.0.html + * @link https://github.com/flyve-mdm/flyve-mdm-android + * @link https://flyve-mdm.com + * ------------------------------------------------------------------------------ + */ + +package org.flyve.mdm.agent.data.database; + +import android.content.Context; + +import org.flyve.mdm.agent.data.database.entity.MDMLog; +import org.flyve.mdm.agent.data.database.setup.AppDataBase; + +public class MDMLogData { + + private AppDataBase dataBase; + + public MDMLogData(Context context) { + dataBase = AppDataBase.getAppDatabase(context); + } + + public MDMLog[] getAllLogs() { + return dataBase.MDMLogDao().loadAll(); + } + + public void deleteAll() { + dataBase.MDMLogDao().deleteAll(); + } + + private void keepClear() { + dataBase.MDMLogDao().keepClear(); + } + + public void addLog(String message) { + keepClear(); + + MDMLog log = new MDMLog(); + log.description = message; + log.date = (int) (System.currentTimeMillis() % Integer.MAX_VALUE); + dataBase.MDMLogDao().insert(log); + } +} diff --git a/app/src/main/java/org/flyve/mdm/agent/data/database/dao/MDMLogDao.java b/app/src/main/java/org/flyve/mdm/agent/data/database/dao/MDMLogDao.java new file mode 100644 index 0000000000..b178709372 --- /dev/null +++ b/app/src/main/java/org/flyve/mdm/agent/data/database/dao/MDMLogDao.java @@ -0,0 +1,50 @@ +/* + * Copyright Teclib. All rights reserved. + * + * Flyve MDM is a mobile device management software. + * + * Flyve MDM is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 3 + * of the License, or (at your option) any later version. + * + * Flyve MDM is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * ------------------------------------------------------------------------------ + * @author Rafael Hernandez + * @copyright Copyright Teclib. All rights reserved. + * @license GPLv3 https://www.gnu.org/licenses/gpl-3.0.html + * @link https://github.com/flyve-mdm/android-mdm-agent + * @link https://flyve-mdm.com + * ------------------------------------------------------------------------------ + */ + +package org.flyve.mdm.agent.data.database.dao; + +import android.arch.persistence.room.Dao; +import android.arch.persistence.room.Insert; +import android.arch.persistence.room.Query; +import android.arch.persistence.room.Update; + +import org.flyve.mdm.agent.data.database.entity.MDMLog; + +@Dao +public interface MDMLogDao { + + @Insert + void insert(MDMLog... log); + + @Update + void update(MDMLog... log); + + @Query("SELECT * FROM log order by id desc") + MDMLog[] loadAll(); + + @Query("DELETE FROM log") + void deleteAll(); + + @Query("DELETE FROM log WHERE id NOT IN ( SELECT id FROM ( SELECT id FROM log ORDER BY id DESC LIMIT 200 ) logs );") + void keepClear(); +} diff --git a/app/src/main/java/org/flyve/mdm/agent/data/database/entity/MDMLog.java b/app/src/main/java/org/flyve/mdm/agent/data/database/entity/MDMLog.java new file mode 100644 index 0000000000..906d07bac2 --- /dev/null +++ b/app/src/main/java/org/flyve/mdm/agent/data/database/entity/MDMLog.java @@ -0,0 +1,46 @@ +/* + * Copyright Teclib. All rights reserved. + * + * Flyve MDM is a mobile device management software. + * + * Flyve MDM is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 3 + * of the License, or (at your option) any later version. + * + * Flyve MDM is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * ------------------------------------------------------------------------------ + * @author Rafael Hernandez + * @copyright Copyright Teclib. All rights reserved. + * @license GPLv3 https://www.gnu.org/licenses/gpl-3.0.html + * @link https://github.com/flyve-mdm/android-mdm-agent + * @link https://flyve-mdm.com + * ------------------------------------------------------------------------------ + */ + +package org.flyve.mdm.agent.data.database.entity; + +import android.arch.persistence.room.ColumnInfo; +import android.arch.persistence.room.Entity; +import android.arch.persistence.room.PrimaryKey; + +@Entity (tableName = "log") +public class MDMLog { + + @PrimaryKey (autoGenerate = true) + @ColumnInfo (name = "id") + public int id; + + @ColumnInfo (name = "description") + public String description; + + @ColumnInfo (name = "type") + public String type; + + @ColumnInfo (name = "date") + public int date; + +} \ No newline at end of file diff --git a/app/src/main/java/org/flyve/mdm/agent/data/database/setup/AppDataBase.java b/app/src/main/java/org/flyve/mdm/agent/data/database/setup/AppDataBase.java index cf6343e477..bb13f04d23 100644 --- a/app/src/main/java/org/flyve/mdm/agent/data/database/setup/AppDataBase.java +++ b/app/src/main/java/org/flyve/mdm/agent/data/database/setup/AppDataBase.java @@ -28,17 +28,19 @@ import android.arch.persistence.room.RoomDatabase; import android.content.Context; -import org.flyve.mdm.agent.data.database.entity.File; import org.flyve.mdm.agent.data.database.dao.ApplicationDao; import org.flyve.mdm.agent.data.database.dao.FileDao; +import org.flyve.mdm.agent.data.database.dao.MDMLogDao; import org.flyve.mdm.agent.data.database.dao.MQTTDao; import org.flyve.mdm.agent.data.database.dao.PoliciesDao; import org.flyve.mdm.agent.data.database.entity.Application; +import org.flyve.mdm.agent.data.database.entity.File; +import org.flyve.mdm.agent.data.database.entity.MDMLog; import org.flyve.mdm.agent.data.database.entity.MQTT; import org.flyve.mdm.agent.data.database.entity.Policies; -@Database(entities = {Application.class, MQTT.class, Policies.class, File.class}, version = 8, exportSchema = false) +@Database(entities = {Application.class, MQTT.class, Policies.class, File.class, MDMLog.class}, version = 10, exportSchema = false) public abstract class AppDataBase extends RoomDatabase { private static AppDataBase instance; @@ -47,6 +49,7 @@ public abstract class AppDataBase extends RoomDatabase { public abstract MQTTDao MQTTDao(); public abstract PoliciesDao PoliciesDao(); public abstract FileDao FileDao(); + public abstract MDMLogDao MDMLogDao(); public static AppDataBase getAppDatabase(Context context) { if (instance == null) { diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/AirplaneModePolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/AirplaneModePolicy.java index 368d51f839..5d895eb372 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/AirplaneModePolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/AirplaneModePolicy.java @@ -44,10 +44,10 @@ public AirplaneModePolicy(Context context) { protected boolean process() { try { boolean disable = Boolean.parseBoolean(this.policyValue.toString()); - PoliciesConnectivity.disableRoaming(disable); + PoliciesConnectivity.disableAirplaneMode(disable); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/BasePolicies.java b/app/src/main/java/org/flyve/mdm/agent/policies/BasePolicies.java index c54edf407d..5a57cd5836 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/BasePolicies.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/BasePolicies.java @@ -35,7 +35,6 @@ import org.flyve.mdm.agent.data.database.PoliciesData; import org.flyve.mdm.agent.data.database.entity.Policies; import org.flyve.mdm.agent.utils.FlyveLog; -import org.flyve.mdm.agent.utils.Helpers; public abstract class BasePolicies { @@ -120,12 +119,12 @@ private void mqttSendTaskStatus(String mqttTopic, String taskId, String status) MqttMessage message = new MqttMessage(encodedPayload); IMqttDeliveryToken token = this.mqttClient.publish(topic, message); - Log(Helpers.broadCastMessage(MQTT_SEND, "Send Status", "ID: " + token.getMessageId())); + Log(MQTT_SEND, "Send Status", "ID: " + token.getMessageId()); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", mqttSendTaskStatus", ex.getMessage()); // send broadcast - Log(Helpers.broadCastMessage(ERROR, "Error sending status", ex.getMessage())); + Log(ERROR, "Error sending status", ex.getMessage()); } } @@ -135,10 +134,10 @@ private void mqttResponse(String status) { } } - protected void Log(String message){ + protected void Log(String type, String title, String message){ // write log file if(enableLog) { - FlyveLog.f(message, FlyveLog.FILE_NAME_LOG); + FlyveLog.f(type, title, message); } } @@ -166,7 +165,7 @@ private void validate() throws PoliciesException { public void execute() throws PoliciesException { validate(); - Log("Start the policy: " + this.policyName + " value: " + this.policyValue + " priority: " + this.policyPriority); + Log("Execute Policy", "Policy " + this.policyName, "Start the policy: " + this.policyName + "\nvalue: " + this.policyValue + "\npriority:" + this.policyPriority); boolean status = process(); if(status) { policyDone(); @@ -182,7 +181,7 @@ protected void policyDone() { } protected void policyFail() { - Log("Policy Fail: " + this.policyName + " value: " + this.policyValue + " priority: " + this.policyPriority); + Log("Policy ERROR", "Policy " + this.policyName,"Policy Fail: " + this.policyName + "\nvalue: " + this.policyValue + "\npriority: " + this.policyPriority); if(mqttEnable) { mqttResponse(MQTT_FEEDBACK_FAILED); } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/BluetoothPolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/BluetoothPolicy.java index e48a028fd1..d7efc8153b 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/BluetoothPolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/BluetoothPolicy.java @@ -47,7 +47,7 @@ protected boolean process() { PoliciesConnectivity.disableBluetooth(disable); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/CameraPolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/CameraPolicy.java index a99624582b..5600113012 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/CameraPolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/CameraPolicy.java @@ -47,7 +47,7 @@ protected boolean process() { mdm.disableCamera(Boolean.valueOf(this.policyValue.toString())); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/GPSPolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/GPSPolicy.java index a4eae0c939..484b0ba915 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/GPSPolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/GPSPolicy.java @@ -47,7 +47,7 @@ protected boolean process() { PoliciesConnectivity.disableGps(disable); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/HostpotTetheringPolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/HostpotTetheringPolicy.java index 0394817eb7..764bb01154 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/HostpotTetheringPolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/HostpotTetheringPolicy.java @@ -47,7 +47,7 @@ protected boolean process() { PoliciesConnectivity.disableHostpotTethering(disable); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/MaximumFailedPasswordForWipePolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/MaximumFailedPasswordForWipePolicy.java index 4ef5680fa8..98c8b41c1a 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/MaximumFailedPasswordForWipePolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/MaximumFailedPasswordForWipePolicy.java @@ -47,7 +47,7 @@ protected boolean process() { new PoliciesDeviceManager(context).setMaximumFailedPasswordsForWipe(maximum); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/MaximumTimeToLockPolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/MaximumTimeToLockPolicy.java index 1baf0b7ce1..9e62b41296 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/MaximumTimeToLockPolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/MaximumTimeToLockPolicy.java @@ -47,7 +47,7 @@ protected boolean process() { new PoliciesDeviceManager(context).setMaximumTimeToLock(maximum); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/MobileLinePolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/MobileLinePolicy.java index 35efe8aee3..810cdf08d6 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/MobileLinePolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/MobileLinePolicy.java @@ -48,7 +48,7 @@ protected boolean process() { PoliciesConnectivity.disableMobileLine(disable); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/NFCPolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/NFCPolicy.java index 8605d6c9ef..65a7e5586e 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/NFCPolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/NFCPolicy.java @@ -47,7 +47,7 @@ protected boolean process() { PoliciesConnectivity.disableNFC(disable); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/PasswordEnablePolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/PasswordEnablePolicy.java index d61b52b371..aa2b17434c 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/PasswordEnablePolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/PasswordEnablePolicy.java @@ -47,7 +47,7 @@ protected boolean process() { new PoliciesDeviceManager(context).enablePassword(true, type); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/PasswordMinLengthPolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/PasswordMinLengthPolicy.java index f5f436496a..c8f21db232 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/PasswordMinLengthPolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/PasswordMinLengthPolicy.java @@ -47,7 +47,7 @@ protected boolean process() { new PoliciesDeviceManager(context).setPasswordLength(length); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/PasswordMinLetterPolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/PasswordMinLetterPolicy.java index ab2d8ce53e..ea63448859 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/PasswordMinLetterPolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/PasswordMinLetterPolicy.java @@ -47,7 +47,7 @@ protected boolean process() { new PoliciesDeviceManager(context).setPasswordMinimumLetters(minimum); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/PasswordMinLowerCasePolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/PasswordMinLowerCasePolicy.java index 042ef4c0b3..348a0fb11d 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/PasswordMinLowerCasePolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/PasswordMinLowerCasePolicy.java @@ -47,7 +47,7 @@ protected boolean process() { new PoliciesDeviceManager(context).setPasswordMinimumLowerCase(minimum); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/PasswordMinNonLetterPolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/PasswordMinNonLetterPolicy.java index c0265e9651..8b8c874a78 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/PasswordMinNonLetterPolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/PasswordMinNonLetterPolicy.java @@ -47,7 +47,7 @@ protected boolean process() { new PoliciesDeviceManager(context).setPasswordMinimumNonLetter(minimum); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/PasswordMinNumericPolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/PasswordMinNumericPolicy.java index 6bc6106a6f..764c43f451 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/PasswordMinNumericPolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/PasswordMinNumericPolicy.java @@ -47,7 +47,7 @@ protected boolean process() { new PoliciesDeviceManager(context).setPasswordMinimumNumeric(minimum); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/PasswordMinSymbolsPolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/PasswordMinSymbolsPolicy.java index 182f04cdbe..20936dfbfa 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/PasswordMinSymbolsPolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/PasswordMinSymbolsPolicy.java @@ -47,7 +47,7 @@ protected boolean process() { new PoliciesDeviceManager(context).setPasswordMinimumSymbols(minimum); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/PasswordMinUpperCasePolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/PasswordMinUpperCasePolicy.java index 1c77b92402..66e1867b73 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/PasswordMinUpperCasePolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/PasswordMinUpperCasePolicy.java @@ -47,7 +47,7 @@ protected boolean process() { new PoliciesDeviceManager(context).setPasswordMinimumUpperCase(minimum); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/PasswordQualityPolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/PasswordQualityPolicy.java index 469d514605..5036f9101c 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/PasswordQualityPolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/PasswordQualityPolicy.java @@ -47,7 +47,7 @@ protected boolean process() { new PoliciesDeviceManager(context).setPasswordQuality(quality); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/RoamingPolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/RoamingPolicy.java index a51da15f02..7967a7df30 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/RoamingPolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/RoamingPolicy.java @@ -47,7 +47,7 @@ protected boolean process() { PoliciesConnectivity.disableRoaming(disable); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/ScreenCapturePolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/ScreenCapturePolicy.java index 72de0c1e66..fcc5713d98 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/ScreenCapturePolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/ScreenCapturePolicy.java @@ -47,7 +47,7 @@ protected boolean process() { new PoliciesDeviceManager(context).disableCaptureScreen(disable); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/SpeakerphonePolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/SpeakerphonePolicy.java index 491f1bc767..b9d41ef3bb 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/SpeakerphonePolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/SpeakerphonePolicy.java @@ -47,7 +47,7 @@ protected boolean process() { PoliciesConnectivity.disableSpeakerphone(disable); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/StatusBarPolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/StatusBarPolicy.java index c04fec198f..317db5b28b 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/StatusBarPolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/StatusBarPolicy.java @@ -47,7 +47,7 @@ protected boolean process() { new PoliciesDeviceManager(context).disableStatusBar(disable); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/StorageEncryptionPolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/StorageEncryptionPolicy.java index e35ad7686e..f03544130e 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/StorageEncryptionPolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/StorageEncryptionPolicy.java @@ -47,7 +47,7 @@ protected boolean process() { new PoliciesDeviceManager(this.context).storageEncryptionDevice(enable); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/StreamAccessibilityPolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/StreamAccessibilityPolicy.java index 5bcab9bdc5..d3653196bf 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/StreamAccessibilityPolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/StreamAccessibilityPolicy.java @@ -53,7 +53,7 @@ protected boolean process() { PoliciesConnectivity.disableSounds(AudioManager.STREAM_ACCESSIBILITY, disable); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/StreamAlarmPolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/StreamAlarmPolicy.java index a8b2b414aa..6800002460 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/StreamAlarmPolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/StreamAlarmPolicy.java @@ -62,12 +62,12 @@ protected boolean process() { aManager.setStreamMute(AudioManager.STREAM_ALARM, disable); } } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); } return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/StreamDTMFPolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/StreamDTMFPolicy.java index 20217e3b2f..d21bbb89e4 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/StreamDTMFPolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/StreamDTMFPolicy.java @@ -48,7 +48,7 @@ protected boolean process() { PoliciesConnectivity.disableSounds(AudioManager.STREAM_DTMF, disable); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/StreamMusicPolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/StreamMusicPolicy.java index 9fccf86399..7a74ff08e8 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/StreamMusicPolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/StreamMusicPolicy.java @@ -48,7 +48,7 @@ protected boolean process() { PoliciesConnectivity.disableSounds(AudioManager.STREAM_MUSIC, disable); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/StreamNotificationPolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/StreamNotificationPolicy.java index 577827273b..c3926f9daf 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/StreamNotificationPolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/StreamNotificationPolicy.java @@ -48,7 +48,7 @@ protected boolean process() { PoliciesConnectivity.disableSounds(AudioManager.STREAM_NOTIFICATION, disable); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/StreamRingPolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/StreamRingPolicy.java index 5704ee232c..515be881a0 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/StreamRingPolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/StreamRingPolicy.java @@ -48,7 +48,7 @@ protected boolean process() { PoliciesConnectivity.disableSounds(AudioManager.STREAM_RING, disable); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/StreamVoiceCallPolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/StreamVoiceCallPolicy.java index 9aef23b2e5..72cb25d75b 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/StreamVoiceCallPolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/StreamVoiceCallPolicy.java @@ -48,7 +48,7 @@ protected boolean process() { PoliciesConnectivity.disableSounds(AudioManager.STREAM_VOICE_CALL, disable); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/UsbAdbPolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/UsbAdbPolicy.java index a2eb2f4f92..a4f8d97e3e 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/UsbAdbPolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/UsbAdbPolicy.java @@ -47,7 +47,7 @@ protected boolean process() { PoliciesConnectivity.disableADBUsbFileTransferProtocols(disable); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/UsbMtpPolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/UsbMtpPolicy.java index a4184fbd05..34f78321b5 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/UsbMtpPolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/UsbMtpPolicy.java @@ -47,7 +47,7 @@ protected boolean process() { PoliciesConnectivity.disableMTPUsbFileTransferProtocols(disable); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/UsbPtpPolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/UsbPtpPolicy.java index ad4a7f7fac..a5b83c5081 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/UsbPtpPolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/UsbPtpPolicy.java @@ -47,7 +47,7 @@ protected boolean process() { PoliciesConnectivity.disablePTPUsbFileTransferProtocols(disable); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/VPNPolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/VPNPolicy.java index 20a81574d6..a8a7abfe7d 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/VPNPolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/VPNPolicy.java @@ -47,7 +47,7 @@ protected boolean process() { new PoliciesDeviceManager(this.context).disableVPN(disable); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/policies/WifiPolicy.java b/app/src/main/java/org/flyve/mdm/agent/policies/WifiPolicy.java index 168ac16a4e..d5adbd3b64 100644 --- a/app/src/main/java/org/flyve/mdm/agent/policies/WifiPolicy.java +++ b/app/src/main/java/org/flyve/mdm/agent/policies/WifiPolicy.java @@ -47,7 +47,7 @@ protected boolean process() { PoliciesConnectivity.disableWifi(disable); return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/receivers/AppsReceiver.java b/app/src/main/java/org/flyve/mdm/agent/receivers/AppsReceiver.java index 8a055c08ef..e174050d96 100644 --- a/app/src/main/java/org/flyve/mdm/agent/receivers/AppsReceiver.java +++ b/app/src/main/java/org/flyve/mdm/agent/receivers/AppsReceiver.java @@ -63,7 +63,7 @@ public void onReceive(Context context, Intent intent) { Intent mIntent = new Intent(context, MQTTService.class); context.bindService(mIntent, mConnection, Context.BIND_AUTO_CREATE); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", onReceive", ex.getMessage()); } } } diff --git a/app/src/main/java/org/flyve/mdm/agent/receivers/MQTTConnectivityReceiver.java b/app/src/main/java/org/flyve/mdm/agent/receivers/MQTTConnectivityReceiver.java index 3e44704ac4..fa7794ee9f 100644 --- a/app/src/main/java/org/flyve/mdm/agent/receivers/MQTTConnectivityReceiver.java +++ b/app/src/main/java/org/flyve/mdm/agent/receivers/MQTTConnectivityReceiver.java @@ -75,7 +75,7 @@ public void onReceive(Context context, Intent intent) { // Register listener for LISTEN_CALL_STATE tmgr.listen(phoneListener, PhoneStateListener.LISTEN_CALL_STATE); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", onReceive", ex.getMessage()); } if(action.contains("USB")) { diff --git a/app/src/main/java/org/flyve/mdm/agent/security/AndroidCryptoProvider.java b/app/src/main/java/org/flyve/mdm/agent/security/AndroidCryptoProvider.java index 91811c13cd..87303cd9da 100644 --- a/app/src/main/java/org/flyve/mdm/agent/security/AndroidCryptoProvider.java +++ b/app/src/main/java/org/flyve/mdm/agent/security/AndroidCryptoProvider.java @@ -93,7 +93,7 @@ private byte[] loadFileToBytes(File f) { } return fileData; } catch (IOException e) { - FlyveLog.e("loadFileToBytes IOException",e); + FlyveLog.e(this.getClass().getName() + ", loadFileToBytes","loadFileToBytes IOException",e); return new byte[0]; } finally { try { @@ -101,7 +101,7 @@ private byte[] loadFileToBytes(File f) { fin.close(); } } catch (Exception e) { - FlyveLog.e("close FileInputStream, IO exception", e); + FlyveLog.e(this.getClass().getName() + ", loadFileToBytes", "close FileInputStream, IO exception", e); } } } @@ -168,7 +168,7 @@ public void generateRequest(GenerateCallback callback) { return; } } catch (Exception ex) { - FlyveLog.e("generateRequest",ex); + FlyveLog.e(this.getClass().getName() + ", generateRequest", "generateRequest",ex); callback.onGenerate(false); return; } @@ -276,14 +276,14 @@ public void saveCertKey(String certString) { certWriter.close(); } catch (Exception e) { - FlyveLog.e("saveCertKey",e); + FlyveLog.e(this.getClass().getName() + ", saveCertKey", "saveCertKey",e); } finally { try { if(certOut!=null) { certOut.close(); } } catch (Exception e){ - FlyveLog.e("saveCertKey, IOException", e); + FlyveLog.e(this.getClass().getName() + ", saveCertKey", "saveCertKey, IOException", e); } } } diff --git a/app/src/main/java/org/flyve/mdm/agent/services/DeviceLockedController.java b/app/src/main/java/org/flyve/mdm/agent/services/DeviceLockedController.java index 09cc713b78..2f6e6a6233 100644 --- a/app/src/main/java/org/flyve/mdm/agent/services/DeviceLockedController.java +++ b/app/src/main/java/org/flyve/mdm/agent/services/DeviceLockedController.java @@ -69,7 +69,7 @@ private boolean isPassOrPinSet() { KeyguardManager keyguardManager = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE); //api 16+ return keyguardManager.isKeyguardSecure(); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", isPassOrPinSet", ex.getMessage()); return false; } } @@ -83,7 +83,7 @@ private boolean isDeviceLocked() { KeyguardManager keyguardManager = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE); //api 23+ return keyguardManager.isDeviceSecure(); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", isDeviceLocked", ex.getMessage()); return false; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/services/PoliciesConnectivity.java b/app/src/main/java/org/flyve/mdm/agent/services/PoliciesConnectivity.java index 645ccfb53f..0ce1c3f12b 100644 --- a/app/src/main/java/org/flyve/mdm/agent/services/PoliciesConnectivity.java +++ b/app/src/main/java/org/flyve/mdm/agent/services/PoliciesConnectivity.java @@ -131,7 +131,7 @@ public static void disableMobileLine(boolean disable) { m2.invoke(iTelephony, false); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(PoliciesConnectivity.class.getClass().getName() + ", disableMobileLine", ex.getMessage()); } } } @@ -224,7 +224,7 @@ public static void disableSounds(int streamType, Boolean disable) { aManager.setStreamMute(streamType, disable); } } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(PoliciesConnectivity.class.getClass().getName() + ", disableSounds", ex.getMessage()); } } diff --git a/app/src/main/java/org/flyve/mdm/agent/services/PoliciesController.java b/app/src/main/java/org/flyve/mdm/agent/services/PoliciesController.java index 018f26c361..fd04328a8f 100644 --- a/app/src/main/java/org/flyve/mdm/agent/services/PoliciesController.java +++ b/app/src/main/java/org/flyve/mdm/agent/services/PoliciesController.java @@ -102,7 +102,7 @@ public void addManifest(JSONObject json) { String version = json.getString("version"); mqttData.setManifestVersion(version); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", addManifest", ex.getMessage()); } } @@ -125,7 +125,7 @@ public void subscribe(final String channel) { qos[k] = 0; } } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", subscribe", ex.getMessage()); } try { @@ -135,7 +135,7 @@ public void subscribe(final String channel) { public void onSuccess(IMqttToken asyncActionToken) { // The message was published FlyveLog.i("Subscribed topics: " + Arrays.toString(topics)); - broadcastReceivedLog(Helpers.broadCastMessage("TOPIC", "Subscribed", channel)); + broadcastReceivedLog("TOPIC", "Subscribed", channel); } @Override @@ -147,12 +147,12 @@ public void onFailure(IMqttToken asyncActionToken, if(exception != null) { errorMessage = exception.getMessage(); } - FlyveLog.e("ERROR on subscribe: " + errorMessage); - broadcastReceivedLog(Helpers.broadCastMessage(ERROR, "Error on subscribe", errorMessage)); + FlyveLog.e(this.getClass().getName() + ", subscribe", "ERROR on subscribe: " + errorMessage); + broadcastReceivedLog(ERROR, "Error on subscribe", errorMessage); } }); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", subscribe", ex.getMessage()); } } @@ -167,14 +167,14 @@ public void createInventory() { public void onTaskSuccess(String s) { // send inventory to MQTT sendInventory(s); - broadcastReceivedLog(Helpers.broadCastMessage(MQTT_SEND, "Inventory", "Inventory Send")); + broadcastReceivedLog(MQTT_SEND, "Inventory", "Inventory Send"); } @Override public void onTaskError(Throwable throwable) { - FlyveLog.e(throwable.getMessage()); + FlyveLog.e(this.getClass().getName() + ", createInventory", throwable.getMessage()); //send broadcast - broadcastReceivedLog(Helpers.broadCastMessage(ERROR, "Error on createInventory", throwable.getMessage())); + broadcastReceivedLog(ERROR, "Error on createInventory", throwable.getMessage()); } }); } @@ -210,7 +210,7 @@ public void useTLS(String taskId, Boolean enable) { sendTaskStatus(taskId, FEEDBACK_DONE); } } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", useTLS", ex.getMessage()); // return the status of the task sendTaskStatus(taskId, FEEDBACK_FAILED); @@ -233,13 +233,13 @@ public void lockDevice(Boolean lock) { if(lock) { mdm.lockScreen(); mdm.lockDevice(); - broadcastReceivedLog(Helpers.broadCastMessage(MQTT_SEND, "Lock", "Device Lock")); + broadcastReceivedLog(MQTT_SEND, "Lock", "Device Lock"); } else { Helpers.sendBroadcast("unlock", "org.flyvemdm.finishlock", context); } } catch (Exception ex) { - broadcastReceivedLog(Helpers.broadCastMessage(ERROR, "Error on lockDevice", ex.getMessage())); - FlyveLog.e(ex.getCause().getMessage()); + broadcastReceivedLog(ERROR, "Error on lockDevice", ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", lockDevice", ex.getCause().getMessage()); } } @@ -247,12 +247,12 @@ public void resetPassword(String newPassword) { try { if(!newPassword.isEmpty()) { new PoliciesDeviceManager(context).resetPassword(newPassword); - broadcastReceivedLog(Helpers.broadCastMessage(MQTT_SEND, "Reset Password", "Reset Password : ****")); + broadcastReceivedLog(MQTT_SEND, "Reset Password", "Reset Password : ****"); } else { - broadcastReceivedLog(Helpers.broadCastMessage(ERROR, "Error on Reset Password", "the new password is empty")); + broadcastReceivedLog(ERROR, "Error on Reset Password", "the new password is empty"); } } catch (Exception ex) { - broadcastReceivedLog(Helpers.broadCastMessage(ERROR, "Error on Reset Password", ex.getMessage())); + broadcastReceivedLog(ERROR, "Error on Reset Password", ex.getMessage()); } } @@ -264,7 +264,7 @@ public void removePackage(String taskId, String packageName) { // return the status of the task sendTaskStatus(taskId, FEEDBACK_DONE); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", removePackage", ex.getMessage()); // return the status of the task sendTaskStatus(taskId, FEEDBACK_FAILED); @@ -286,13 +286,13 @@ public void onSuccess(String sessionToken) { PoliciesFiles policiesFiles = new PoliciesFiles(PoliciesController.this.context); policiesFiles.execute("package", deployApp, id, sessionToken); - broadcastReceivedLog(Helpers.broadCastMessage(MQTT_SEND, "Install package", "name: " + deployApp + " id: " + id)); + broadcastReceivedLog(MQTT_SEND, "Install package", "name: " + deployApp + " id: " + id); // return the status of the task sendTaskStatus(taskId, FEEDBACK_RECEIVED); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); - broadcastReceivedLog(Helpers.broadCastMessage(ERROR, "Error on getActiveSessionToken", ex.getMessage())); + FlyveLog.e(this.getClass().getName() + ", installPackage", ex.getMessage()); + broadcastReceivedLog(ERROR, "Error on getActiveSessionToken", ex.getMessage()); // return the status of the task sendTaskStatus(taskId, FEEDBACK_FAILED); @@ -301,9 +301,8 @@ public void onSuccess(String sessionToken) { @Override public void onError(int type, String error) { - FlyveLog.e(error); - broadcastReceivedLog(Helpers.broadCastMessage(String.valueOf(type), ERROR, error)); - broadcastReceivedLog("Application fail: " + error); + FlyveLog.e(this.getClass().getName() + ", installPackage", error); + broadcastReceivedLog(String.valueOf(type), ERROR, error); // return the status of the task sendTaskStatus(taskId, FEEDBACK_FAILED); @@ -327,7 +326,7 @@ public void onSuccess(String sessionToken) { if("true".equals(policiesFiles.execute("file", deployFile, id, sessionToken))) { FlyveLog.d("File was stored on: " + deployFile); - broadcastReceivedLog(Helpers.broadCastMessage(MQTT_SEND, "File was stored on", deployFile)); + broadcastReceivedLog(MQTT_SEND, "File was stored on", deployFile); // return the status of the task sendTaskStatus(taskId, FEEDBACK_DONE); @@ -336,8 +335,8 @@ public void onSuccess(String sessionToken) { @Override public void onError(int type, String error) { - FlyveLog.e(error); - broadcastReceivedLog(Helpers.broadCastMessage(String.valueOf(type), "Error on applicationOnDevices", error)); + FlyveLog.e(this.getClass().getName() + ", downloadFile", error); + broadcastReceivedLog(String.valueOf(type), "Error on applicationOnDevices", error); // return the status of the task sendTaskStatus(taskId, FEEDBACK_FAILED); @@ -351,12 +350,12 @@ public void removeFile(String taskId, String removeFile) { policiesFiles.removeFile(removeFile); FlyveLog.d("Remove file: " + removeFile); - broadcastReceivedLog(Helpers.broadCastMessage(MQTT_SEND, "Remove file", removeFile)); + broadcastReceivedLog(MQTT_SEND, "Remove file", removeFile); // return the status of the task sendTaskStatus(taskId, FEEDBACK_DONE); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", removeFile", ex.getMessage()); // return the status of the task sendTaskStatus(taskId, FEEDBACK_FAILED); @@ -374,10 +373,10 @@ public void wipe() { try { PoliciesDeviceManager mdm = new PoliciesDeviceManager(this.context); mdm.wipe(); - broadcastReceivedLog(Helpers.broadCastMessage(MQTT_SEND, "Wipe", "Wipe success")); + broadcastReceivedLog(MQTT_SEND, "Wipe", "Wipe success"); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); - broadcastReceivedLog(Helpers.broadCastMessage(ERROR, "Error on wipe", ex.getMessage())); + FlyveLog.e(this.getClass().getName() + ", wipe", ex.getMessage()); + broadcastReceivedLog(ERROR, "Error on wipe", ex.getMessage()); } } @@ -397,7 +396,7 @@ public boolean unenroll() { encodedPayload = payload.getBytes(UTF_8); MqttMessage message = new MqttMessage(encodedPayload); client.publish(topic, message); - broadcastReceivedLog(Helpers.broadCastMessage(MQTT_SEND, "Unenroll", "Unenroll success")); + broadcastReceivedLog(MQTT_SEND, "Unenroll", "Unenroll success"); // clear cache mqttData.deleteAll(); @@ -416,8 +415,8 @@ public boolean unenroll() { return true; } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); - broadcastReceivedLog(Helpers.broadCastMessage(ERROR, "Error on unenroll", ex.getMessage())); + FlyveLog.e(this.getClass().getName() + ", unenroll", ex.getMessage()); + broadcastReceivedLog(ERROR, "Error on unenroll", ex.getMessage()); return false; } } @@ -434,10 +433,10 @@ public void sendKeepAlive() { encodedPayload = payload.getBytes(UTF_8); MqttMessage message = new MqttMessage(encodedPayload); IMqttDeliveryToken token = client.publish(topic, message); - broadcastReceivedLog(Helpers.broadCastMessage(MQTT_SEND, "PING", "ID: " + token.getMessageId())); + broadcastReceivedLog(MQTT_SEND, "PING", "ID: " + token.getMessageId()); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); - broadcastReceivedLog(Helpers.broadCastMessage(ERROR, "Error on sendKeepAlive", ex.getMessage())); + FlyveLog.e(this.getClass().getName() + ", sendKeepAlive", ex.getMessage()); + broadcastReceivedLog(ERROR, "Error on sendKeepAlive", ex.getMessage()); } } @@ -454,12 +453,12 @@ public void sendInventory(String payload) { IMqttDeliveryToken token = client.publish(topic, message); // send broadcast - broadcastReceivedLog(Helpers.broadCastMessage(MQTT_SEND, "Send Inventory", "ID: " + token.getMessageId())); + broadcastReceivedLog(MQTT_SEND, "Send Inventory", "ID: " + token.getMessageId()); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", sendInventory", ex.getMessage()); // send broadcast - broadcastReceivedLog(Helpers.broadCastMessage(ERROR, "Error on sendKeepAlive", ex.getMessage())); + broadcastReceivedLog(ERROR, "Error on sendKeepAlive", ex.getMessage()); } } @@ -474,12 +473,12 @@ public void sendTaskStatus(String taskId, String status) { IMqttDeliveryToken token = client.publish(topic, message); // send broadcast - broadcastReceivedLog(Helpers.broadCastMessage(MQTT_SEND, "Send Inventory", "ID: " + token.getMessageId())); + broadcastReceivedLog(MQTT_SEND, "Send Inventory", "ID: " + token.getMessageId()); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", sendTaskStatus", ex.getMessage()); // send broadcast - broadcastReceivedLog(Helpers.broadCastMessage(ERROR, "Error on sendKeepAlive", ex.getMessage())); + broadcastReceivedLog(ERROR, "Error on sendKeepAlive", ex.getMessage()); } } @@ -495,28 +494,28 @@ public void sendStatusVersion() { encodedPayload = payload.getBytes(UTF_8); MqttMessage message = new MqttMessage(encodedPayload); IMqttDeliveryToken token = client.publish(topic, message); - broadcastReceivedLog(Helpers.broadCastMessage(MQTT_SEND, "Send Status Version", "ID: " + token.getMessageId())); + broadcastReceivedLog(MQTT_SEND, "Send Status Version", "ID: " + token.getMessageId()); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); - broadcastReceivedLog(Helpers.broadCastMessage(ERROR, "Error on sendStatusVersion", ex.getMessage())); + FlyveLog.e(this.getClass().getName() + ", sendStatusVersion",ex.getMessage()); + broadcastReceivedLog(ERROR, "Error on sendStatusVersion", ex.getMessage()); } } /** * Send the Status version of the agent - * payload: {"online": "true"} + * payload: {"online": true} */ public void sendOnlineStatus(Boolean status) { String topic = mTopic + "/Status/Online"; - String payload = "{\"online\": \"" + Boolean.toString( status ) + "\"}"; + String payload = "{\"online\": " + Boolean.toString( status ) + "}"; byte[] encodedPayload = new byte[0]; try { encodedPayload = payload.getBytes(UTF_8); MqttMessage message = new MqttMessage(encodedPayload); - IMqttDeliveryToken token = client.publish(topic, message); - broadcastReceivedLog(Helpers.broadCastMessage(MQTT_SEND, "Send Online Status", "ID: " + token.getMessageId())); + IMqttDeliveryToken token = client.publish(topic, payload.getBytes(), 0, true, null, null); + broadcastReceivedLog(MQTT_SEND, "Send Online Status", "ID: " + token.getMessageId()); } catch (Exception ex) { - broadcastReceivedLog(Helpers.broadCastMessage(ERROR, "Error on sendStatusVersion", ex.getMessage())); + broadcastReceivedLog(ERROR, "Error on sendStatusVersion", ex.getMessage()); } } @@ -553,10 +552,10 @@ public void gotLocation(Location location) { IMqttDeliveryToken token = client.publish(topic, message); // send broadcast - broadcastReceivedLog(Helpers.broadCastMessage(MQTT_SEND, "Send Geolocation", "ID: " + token.getMessageId())); + broadcastReceivedLog(MQTT_SEND, "Send Geolocation", "ID: " + token.getMessageId()); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); - broadcastReceivedLog(Helpers.broadCastMessage(ERROR, "Error on GPS location", ex.getMessage())); + FlyveLog.e(this.getClass().getName() + ", sendGPS", ex.getMessage()); + broadcastReceivedLog(ERROR, "Error on GPS location", ex.getMessage()); } } } @@ -567,9 +566,9 @@ public void gotLocation(Location location) { * Broadcast the received log * @param message */ - private void broadcastReceivedLog(String message){ + private void broadcastReceivedLog(String type, String title, String message){ // write log file - FlyveLog.f(message, FlyveLog.FILE_NAME_LOG); + FlyveLog.f(type, title, message); } } diff --git a/app/src/main/java/org/flyve/mdm/agent/services/PoliciesDeviceManager.java b/app/src/main/java/org/flyve/mdm/agent/services/PoliciesDeviceManager.java index 8f1caca64c..1fe6ebc586 100644 --- a/app/src/main/java/org/flyve/mdm/agent/services/PoliciesDeviceManager.java +++ b/app/src/main/java/org/flyve/mdm/agent/services/PoliciesDeviceManager.java @@ -38,6 +38,8 @@ import org.flyve.mdm.agent.utils.FlyveLog; import org.flyve.mdm.agent.utils.Helpers; +import static android.app.admin.DevicePolicyManager.WIPE_EXTERNAL_STORAGE; + public class PoliciesDeviceManager { private DevicePolicyManager mDPM; @@ -56,7 +58,7 @@ public void disableRoaming(boolean disable) { try { mDPM.setGlobalSetting(mDeviceAdmin, Settings.Global.DATA_ROAMING, disable ? "0" : "1"); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", disableRoaming", ex.getMessage()); } } else { FlyveLog.i("Disable roaming policy is available on devices with api equals or mayor than 21"); @@ -69,7 +71,7 @@ public void disableCaptureScreen(boolean disable) { try { mDPM.setScreenCaptureDisabled(mDeviceAdmin, disable); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", disableCaptureScreen", ex.getMessage()); } } else { FlyveLog.i("Screen capture policy is available on devices with api equals or mayor than 21"); @@ -82,7 +84,7 @@ public void disableVPN(Boolean disable) { try { mDPM.setAlwaysOnVpnPackage(mDeviceAdmin, null, !disable); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", disableVPN", ex.getMessage()); } } else { FlyveLog.i("VPN policy is available on devices with api equals or mayor than 24"); @@ -95,7 +97,7 @@ public void disableStatusBar(boolean disable) { try { mDPM.setStatusBarDisabled(mDeviceAdmin, disable); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", disableStatusBar", ex.getMessage()); } } } @@ -111,7 +113,7 @@ public void enablePassword(boolean enable, String typeRecommended) { context.startActivity(intent); } } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", enablePassword", ex.getMessage()); } } else { Intent intent = new Intent(DevicePolicyManager.ACTION_SET_NEW_PASSWORD); @@ -129,7 +131,7 @@ public void reboot() { PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); pm.reboot(null); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", reboot", ex.getMessage()); } } @@ -141,7 +143,7 @@ public void resetPassword(String newPassword) { * Erase all data of the device */ public void wipe() { - mDPM.wipeData(0); + mDPM.wipeData(WIPE_EXTERNAL_STORAGE); } /** diff --git a/app/src/main/java/org/flyve/mdm/agent/services/PoliciesFiles.java b/app/src/main/java/org/flyve/mdm/agent/services/PoliciesFiles.java index 1b69adabe8..42467d3827 100644 --- a/app/src/main/java/org/flyve/mdm/agent/services/PoliciesFiles.java +++ b/app/src/main/java/org/flyve/mdm/agent/services/PoliciesFiles.java @@ -32,6 +32,7 @@ import org.flyve.mdm.agent.R; import org.flyve.mdm.agent.core.Routes; +import org.flyve.mdm.agent.data.database.MqttData; import org.flyve.mdm.agent.data.database.setup.AppDataBase; import org.flyve.mdm.agent.ui.MDMAgent; import org.flyve.mdm.agent.utils.AppThreadManager; @@ -42,6 +43,7 @@ import org.json.JSONObject; import java.io.File; +import java.util.HashMap; import static org.flyve.mdm.agent.ui.MDMAgent.getMqttClient; @@ -49,6 +51,7 @@ public class PoliciesFiles extends AsyncTask { private Context context; private Routes routes; + private MqttData cache; /** * This constructor loads the context of the current class @@ -57,6 +60,7 @@ public class PoliciesFiles extends AsyncTask { public PoliciesFiles(Context context) { this.context = context; routes = new Routes(context); + cache = new MqttData(context); } /** @@ -116,11 +120,11 @@ public Boolean downloadFile(String path, String id, String sessionToken) { try { filePath = new StorageFolder(context).convertPath(path); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", downloadFile", ex.getMessage()); } - final String url = routes.pluginFlyvemdmFile(id, sessionToken); - String completeFilePath = download(url, filePath); + final String url = routes.pluginFlyvemdmFile(id); + String completeFilePath = download(url, filePath, sessionToken); return(completeFilePath.equalsIgnoreCase("")); } @@ -146,11 +150,11 @@ public Boolean downloadApk(String appName, String id, String sessionToken) { } catch (Exception ex) { AppThreadManager manager = MDMAgent.getAppThreadManager(); manager.finishProcess(context); - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", downloadApk", ex.getMessage()); } - final String url = routes.pluginFlyvemdmPackage(id, sessionToken); - String completeFilePath = download(url, filePath); + final String url = routes.pluginFlyvemdmPackage(id); + String completeFilePath = download(url, filePath, sessionToken); if(completeFilePath.equalsIgnoreCase("")) { AppThreadManager manager = MDMAgent.getAppThreadManager(); manager.finishProcess(context); @@ -179,28 +183,30 @@ public Boolean downloadApk(String appName, String id, String sessionToken) { * @param path String path to save * @return String complete path with name of the file */ - private String download(final String url, final String path) { + private String download(final String url, final String path, String sessionToken) { + HashMap header = new HashMap(); + header.put("Session-Token", sessionToken); - String data = ConnectionHTTP.getSyncWebData(url, "GET",null); + String data = ConnectionHTTP.getSyncWebData(url, "GET",header); if(data.contains("ERROR")) { Helpers.sendToNotificationBar(context, context.getResources().getString(R.string.download_file_fail)); AppThreadManager manager = MDMAgent.getAppThreadManager(); manager.finishProcess(context); - FlyveLog.e(data + "\n" + url); + FlyveLog.e(this.getClass().getName() + ", download", data + "\n" + url); } else { try { JSONObject jsonObjDownload = new JSONObject(data); - return getFile(jsonObjDownload, path, url, data); + return getFile(jsonObjDownload, path, url, data, sessionToken); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", download", ex.getMessage() + "\n" + url); return ""; } } // endif Exception return ""; } - private String getFile(JSONObject jsonObjDownload, String path, String url, String data) { + private String getFile(JSONObject jsonObjDownload, String path, String url, String data, String sessionToken) { String fileName = ""; @@ -227,7 +233,7 @@ private String getFile(JSONObject jsonObjDownload, String path, String url, Stri return file.getAbsolutePath(); } - Boolean isSave = ConnectionHTTP.getSyncFile(url, filePath, new ConnectionHTTP.ProgressCallback() { + Boolean isSave = ConnectionHTTP.getSyncFile(url, filePath , sessionToken, new ConnectionHTTP.ProgressCallback() { @Override public void progress(int value) { publishProgress(value); @@ -243,13 +249,13 @@ public void progress(int value) { return file.getAbsolutePath(); } else { publishProgress(100); - FlyveLog.e("Download fail: " + data); + FlyveLog.e(this.getClass().getName() + ", getFile", "Download fail: " + data + "\n" + url); return ""; } } catch(Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", getFile", ex.getMessage()+ "\n" + url); return ""; } } @@ -275,7 +281,7 @@ public boolean removeFile(String filePath) { File file = new File(realPath); return file.delete(); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", removeFile", ex.getMessage() + "\n" + filePath); return false; } } @@ -292,7 +298,7 @@ public int removeApk(String mPackage){ try { context.startActivity(intent); } catch (ActivityNotFoundException e) { - FlyveLog.e(e.getMessage()); + FlyveLog.e(this.getClass().getName() + ", removeApk", e.getMessage() + "\n" + mPackage); return 0; } return 1; diff --git a/app/src/main/java/org/flyve/mdm/agent/ui/EditUserActivity.java b/app/src/main/java/org/flyve/mdm/agent/ui/EditUserActivity.java index 980269c816..d19e6869d1 100644 --- a/app/src/main/java/org/flyve/mdm/agent/ui/EditUserActivity.java +++ b/app/src/main/java/org/flyve/mdm/agent/ui/EditUserActivity.java @@ -89,7 +89,7 @@ protected void onCreate(Bundle savedInstanceState) { try { getSupportActionBar().setDisplayHomeAsUpEnabled(true); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", onCreate", ex.getMessage()); } toolbar.setNavigationOnClickListener(new View.OnClickListener() { @@ -235,7 +235,7 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) { strPicture = Helpers.bitmapToString(bitmap); imgPhoto.setImageBitmap(bitmap); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", onActivityResult", ex.getMessage()); } } } @@ -253,7 +253,7 @@ private void onSelectFromGalleryResult(Intent data) { strPicture = Helpers.bitmapToString(bm); imgPhoto.setImageBitmap(bm); } catch (IOException e) { - FlyveLog.e(e.getMessage()); + FlyveLog.e(this.getClass().getName() + ", onSelectFromGalleryResult", e.getMessage()); } } } @@ -266,7 +266,7 @@ public void loadSuccess(UserSchema userSchema) { try { imgPhoto.setImageBitmap(Helpers.stringToBitmap(userSchema.getPicture())); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", loadSuccess", ex.getMessage()); } } diff --git a/app/src/main/java/org/flyve/mdm/agent/ui/EnrollmentActivity.java b/app/src/main/java/org/flyve/mdm/agent/ui/EnrollmentActivity.java index 1a0e4ffed4..d289a0e770 100644 --- a/app/src/main/java/org/flyve/mdm/agent/ui/EnrollmentActivity.java +++ b/app/src/main/java/org/flyve/mdm/agent/ui/EnrollmentActivity.java @@ -98,7 +98,7 @@ protected void onCreate(Bundle savedInstanceState) { try { getSupportActionBar().setDisplayHomeAsUpEnabled(true); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", onCreate", ex.getMessage()); } toolbar.setNavigationOnClickListener(new View.OnClickListener() { @@ -199,7 +199,7 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) { try { filePhoto = new File(presenter.getPhoto().getPath()); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", onActivityResult", ex.getMessage()); return; } @@ -213,7 +213,7 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) { try { bitmap = Helpers.modifyOrientation(bitmap, filePhoto.getAbsolutePath()); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", onActivityResult", ex.getMessage()); } strPicture = Helpers.bitmapToString(bitmap); @@ -233,7 +233,7 @@ private void onSelectFromGalleryResult(Intent data) { try { bm = MediaStore.Images.Media.getBitmap(getApplicationContext().getContentResolver(), data.getData()); } catch (IOException e) { - FlyveLog.e(e.getMessage()); + FlyveLog.e(this.getClass().getName() + ", onSelectFromGalleryResult", e.getMessage()); } } diff --git a/app/src/main/java/org/flyve/mdm/agent/ui/ErrorActivity.java b/app/src/main/java/org/flyve/mdm/agent/ui/ErrorActivity.java index 7056325829..21ac28e836 100644 --- a/app/src/main/java/org/flyve/mdm/agent/ui/ErrorActivity.java +++ b/app/src/main/java/org/flyve/mdm/agent/ui/ErrorActivity.java @@ -48,7 +48,7 @@ protected void onCreate(Bundle savedInstanceState) { TextView txtMessage = findViewById(R.id.txtMessage); txtMessage.setText(message); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", onCreate", ex.getMessage()); } Button btnClose = findViewById(R.id.btnClose); diff --git a/app/src/main/java/org/flyve/mdm/agent/ui/FragmentFeedback.java b/app/src/main/java/org/flyve/mdm/agent/ui/FragmentFeedback.java index 29d70eaf82..28f8e98f03 100644 --- a/app/src/main/java/org/flyve/mdm/agent/ui/FragmentFeedback.java +++ b/app/src/main/java/org/flyve/mdm/agent/ui/FragmentFeedback.java @@ -168,7 +168,7 @@ private JSONObject createFeedbackJSON(Switch[] sw){ jsonPolicy.put("message", editMessage.getText().toString()); jsonFeedback.put("feedback", jsonPolicy); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", createFeedbackJSON", ex.getMessage()); } return jsonFeedback; diff --git a/app/src/main/java/org/flyve/mdm/agent/ui/FragmentInformation.java b/app/src/main/java/org/flyve/mdm/agent/ui/FragmentInformation.java index 8d9fd875e9..50219b5a99 100644 --- a/app/src/main/java/org/flyve/mdm/agent/ui/FragmentInformation.java +++ b/app/src/main/java/org/flyve/mdm/agent/ui/FragmentInformation.java @@ -186,7 +186,7 @@ private void loadSupervisor() { txtDescriptionSupervisor.setText(supervisor.getEmail()); } } catch(Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", loadSupervisor", ex.getMessage()); } } @@ -212,12 +212,12 @@ private void loadClientInfo() { try { imgUser.setImageBitmap(Helpers.stringToBitmap(user.getPicture())); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", loadClientInfo", ex.getMessage()); imgUser.setImageResource(R.drawable.ic_user_round); } } } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", loadClientInfo", ex.getMessage()); } } @@ -251,7 +251,7 @@ public void onReceive(Context context, Intent intent) { statusMQTT(Boolean.parseBoolean(msg)); } } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", broadcastServiceStatus", ex.getMessage()); } } } diff --git a/app/src/main/java/org/flyve/mdm/agent/ui/FragmentLog.java b/app/src/main/java/org/flyve/mdm/agent/ui/FragmentLog.java index 61766488df..1994e4effb 100644 --- a/app/src/main/java/org/flyve/mdm/agent/ui/FragmentLog.java +++ b/app/src/main/java/org/flyve/mdm/agent/ui/FragmentLog.java @@ -36,11 +36,12 @@ import org.flyve.mdm.agent.R; import org.flyve.mdm.agent.adapter.LogAdapter; +import org.flyve.mdm.agent.data.database.MDMLogData; +import org.flyve.mdm.agent.data.database.entity.MDMLog; import org.flyve.mdm.agent.utils.FlyveLog; -import org.flyve.mdm.agent.utils.LogFileReader; +import org.json.JSONObject; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; @@ -50,6 +51,7 @@ public class FragmentLog extends Fragment { private List> arrData; private ListView lst; private ProgressBar pb; + private MDMLogData logsData; /** * Called to have the fragments instantiate its user interface View @@ -66,11 +68,13 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, txtMessage = v.findViewById(R.id.txtMessage); pb = v.findViewById(R.id.progressBar); + logsData = new MDMLogData(FragmentLog.this.getContext()); + FloatingActionButton btnDelete = v.findViewById(R.id.btnDelete); btnDelete.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - FlyveLog.clearLog( FlyveLog.FILE_NAME_LOG ); + logsData.deleteAll(); arrData.clear(); loadLogFile(); } @@ -100,29 +104,42 @@ public void onRefresh() { private void loadLogFile() { pb.setVisibility(View.VISIBLE); - LogFileReader.loadLog(FlyveLog.FILE_NAME_LOG, new LogFileReader.LogFileCallback() { - @Override - public void onSuccess(List> data) { - pb.setVisibility(View.GONE); - - // order data last first - Collections.reverse(data); - arrData = data; - if(arrData.isEmpty()) { - txtMessage.setText(getResources().getString(R.string.without_data_to_show)); - } else { - txtMessage.setText(""); - } - - LogAdapter mAdapter = new LogAdapter(FragmentLog.this.getActivity(), arrData); - lst.setAdapter(mAdapter); + MDMLog[] logs = logsData.getAllLogs(); + for(MDMLog log : logs) { + HashMap data = addLine(log.description); + if(data!=null) { + arrData.add(data); } + } - @Override - public void onError(String error) { - pb.setVisibility(View.GONE); - txtMessage.setText(getResources().getString(R.string.we_can_not_show_the_log)); - } - }); + if(arrData.isEmpty()) { + txtMessage.setText(getResources().getString(R.string.without_data_to_show)); + } else { + txtMessage.setText(""); + } + + LogAdapter mAdapter = new LogAdapter(FragmentLog.this.getActivity(), arrData); + lst.setAdapter(mAdapter); + pb.setVisibility(View.GONE); } + + private HashMap addLine(String line) { + try { + HashMap map = new HashMap<>(); + + JSONObject json = new JSONObject(line); + + map.put("type", json.getString("type")); + map.put("title", json.getString("title")); + map.put("body", json.getString("body")); + map.put("date", json.getString("date")); + + return map; + } catch (Exception ex) { + FlyveLog.e(this.getClass().getName() + ", addLine", "ERROR: " + line + " - " + ex.getMessage()); + } + + return null; + } + } diff --git a/app/src/main/java/org/flyve/mdm/agent/ui/FragmentSlideWalkthrough.java b/app/src/main/java/org/flyve/mdm/agent/ui/FragmentSlideWalkthrough.java index 220351b745..ecad4a9521 100644 --- a/app/src/main/java/org/flyve/mdm/agent/ui/FragmentSlideWalkthrough.java +++ b/app/src/main/java/org/flyve/mdm/agent/ui/FragmentSlideWalkthrough.java @@ -77,7 +77,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, mMessage = walkthroughData.getMessage(); mImage = walkthroughData.getImage(); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", onCreateView", ex.getMessage()); } diff --git a/app/src/main/java/org/flyve/mdm/agent/ui/FragmentTestPolicies.java b/app/src/main/java/org/flyve/mdm/agent/ui/FragmentTestPolicies.java index abe47860e0..9ad5a1aa8c 100644 --- a/app/src/main/java/org/flyve/mdm/agent/ui/FragmentTestPolicies.java +++ b/app/src/main/java/org/flyve/mdm/agent/ui/FragmentTestPolicies.java @@ -185,7 +185,7 @@ public void onClick(View v) { try { Helpers.deleteMQTTCache(FragmentTestPolicies.this.getContext()); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", onCreateView", ex.getMessage()); } } }); @@ -243,7 +243,7 @@ public void run() { // String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS).getAbsolutePath() + "/CHANGELOG.md"; FlyveLog.d(path); - ConnectionHTTP.getSyncFile("https://raw.githubusercontent.com/flyve-mdm/android-mdm-agent/develop/CHANGELOG.md", path, new ConnectionHTTP.ProgressCallback() { + ConnectionHTTP.getSyncFile("https://raw.githubusercontent.com/flyve-mdm/android-mdm-agent/develop/CHANGELOG.md", path, "", new ConnectionHTTP.ProgressCallback() { @Override public void progress(int value) { @@ -262,7 +262,7 @@ public void progress(int value) { public void onClick(View v) { String path = new StorageFolder(getContext()).getDocumentsDir() + "/flyve-apk.apk"; FlyveLog.d(path); - ConnectionHTTP.getSyncFile("https://f-droid.org/repo/org.flyve.inventory.agent_37960.apk", path, new ConnectionHTTP.ProgressCallback() { + ConnectionHTTP.getSyncFile("https://f-droid.org/repo/org.flyve.inventory.agent_37960.apk", path, "", new ConnectionHTTP.ProgressCallback() { @Override public void progress(int value) { diff --git a/app/src/main/java/org/flyve/mdm/agent/ui/InstallAppActivity.java b/app/src/main/java/org/flyve/mdm/agent/ui/InstallAppActivity.java index dcdef30fa5..9451e8916b 100644 --- a/app/src/main/java/org/flyve/mdm/agent/ui/InstallAppActivity.java +++ b/app/src/main/java/org/flyve/mdm/agent/ui/InstallAppActivity.java @@ -78,14 +78,14 @@ protected void onCreate(Bundle savedInstanceState) { finish(); } } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", onCreate", ex.getMessage()); finish(); } } else { try { installApk(appPath); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", onCreate", ex.getMessage()); } } } else { @@ -150,7 +150,7 @@ public void installApk(String file) { try { startActivityForResult(intent, APP_INSTALL_REQUEST); } catch (ActivityNotFoundException e) { - FlyveLog.e(e.getMessage()); + FlyveLog.e(this.getClass().getName() + ", installApk", e.getMessage()); } } @@ -163,7 +163,7 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { FlyveLog.d("Package Installation Success"); status = "2"; // installed } else { - FlyveLog.e("Installation failed or is installed"); + FlyveLog.e(this.getClass().getName() + ", onActivityResult", "Installation failed or is installed"); } } @@ -187,7 +187,7 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { } } } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", onActivityResult", ex.getMessage()); } finish(); diff --git a/app/src/main/java/org/flyve/mdm/agent/ui/LockActivity.java b/app/src/main/java/org/flyve/mdm/agent/ui/LockActivity.java index 3280191801..a9b56a6c40 100644 --- a/app/src/main/java/org/flyve/mdm/agent/ui/LockActivity.java +++ b/app/src/main/java/org/flyve/mdm/agent/ui/LockActivity.java @@ -121,7 +121,7 @@ private void loadSupervisor() { txtDescriptionSupervisor.setText(supervisor.getEmail()); } } catch(Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", loadSupervisor", ex.getMessage()); } } diff --git a/app/src/main/java/org/flyve/mdm/agent/ui/MainActivity.java b/app/src/main/java/org/flyve/mdm/agent/ui/MainActivity.java index 33e901391b..17c4a0fe31 100644 --- a/app/src/main/java/org/flyve/mdm/agent/ui/MainActivity.java +++ b/app/src/main/java/org/flyve/mdm/agent/ui/MainActivity.java @@ -59,21 +59,6 @@ public class MainActivity extends AppCompatActivity { private Intent mServiceIntent; private AppData cache; - /** - * Perform the final clenup before the activity is destroyed - */ - @Override - public void onDestroy() { - // stop the service - if(mServiceIntent!=null) { - stopService(mServiceIntent); - } - - FlyveLog.i("onDestroy!"); - - super.onDestroy(); - } - /** * Called when the activity is starting * @param savedInstanceState if the activity is being re-initialized, it contains the data it most recently supplied @@ -139,7 +124,7 @@ private void checkNotifications() { NotificationManager notificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.cancel(1009); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", checkNotifications", ex.getMessage()); } } } @@ -299,7 +284,7 @@ public void loadListDrawer(int menuItemSelected, String extra) { selectedItem = arrDrawer.get(menuItemSelected); loadFragment(selectedItem, extra); } catch(Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", loadListDrawer", ex.getMessage()); } } } diff --git a/app/src/main/java/org/flyve/mdm/agent/ui/PreviewSupervisorActivity.java b/app/src/main/java/org/flyve/mdm/agent/ui/PreviewSupervisorActivity.java index acf79291a4..4f4a3c2734 100644 --- a/app/src/main/java/org/flyve/mdm/agent/ui/PreviewSupervisorActivity.java +++ b/app/src/main/java/org/flyve/mdm/agent/ui/PreviewSupervisorActivity.java @@ -52,7 +52,7 @@ protected void onCreate(Bundle savedInstanceState) { try { getSupportActionBar().setDisplayHomeAsUpEnabled(true); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", onCreate", ex.getMessage()); } toolbar.setNavigationOnClickListener(new View.OnClickListener() { @@ -91,7 +91,7 @@ public void onClick(View v) { txtWebsite.setText(supervisor.getWebsite()); } } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", onCreate", ex.getMessage()); } } } diff --git a/app/src/main/java/org/flyve/mdm/agent/ui/PreviewUserActivity.java b/app/src/main/java/org/flyve/mdm/agent/ui/PreviewUserActivity.java index fb0ad1802e..1998baaf54 100644 --- a/app/src/main/java/org/flyve/mdm/agent/ui/PreviewUserActivity.java +++ b/app/src/main/java/org/flyve/mdm/agent/ui/PreviewUserActivity.java @@ -56,7 +56,7 @@ protected void onCreate(Bundle savedInstanceState) { try { getSupportActionBar().setDisplayHomeAsUpEnabled(true); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", onCreate", ex.getMessage()); } toolbar.setNavigationOnClickListener(new View.OnClickListener() { @@ -147,7 +147,7 @@ private void loadData() { TextView txtAdministrativeNumber = findViewById(R.id.txtAdministrativeNumber); txtAdministrativeNumber.setText(user.getAdministrativeNumber()); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", loadData", ex.getMessage()); } } diff --git a/app/src/main/java/org/flyve/mdm/agent/ui/StartEnrollmentActivity.java b/app/src/main/java/org/flyve/mdm/agent/ui/StartEnrollmentActivity.java index 397ee6c8c5..91d520dcb8 100644 --- a/app/src/main/java/org/flyve/mdm/agent/ui/StartEnrollmentActivity.java +++ b/app/src/main/java/org/flyve/mdm/agent/ui/StartEnrollmentActivity.java @@ -160,6 +160,15 @@ public void onClick(View v) { public void lintSuccess(DeeplinkSchema deeplinkSchema) { presenter.saveMQTTConfig(StartEnrollmentActivity.this, deeplinkSchema.getUrl(), deeplinkSchema.getUserToken(), deeplinkSchema.getInvitationToken()); presenter.saveSupervisor(StartEnrollmentActivity.this, deeplinkSchema.getName(), deeplinkSchema.getPhone(), deeplinkSchema.getWebsite(), deeplinkSchema.getEmail()); + + TextView txtURL = findViewById(R.id.txtURL); + txtURL.setText(getResources().getString(R.string.deeplink_url, deeplinkSchema.getUrl().substring(0,15))); + + TextView txtInvitationToken = findViewById(R.id.txtInvitationToken); + txtInvitationToken.setText(getResources().getString(R.string.deeplink_invitation_token, deeplinkSchema.getInvitationToken().substring(0,15))); + + TextView txtUserToken = findViewById(R.id.txtUserToken); + txtUserToken.setText(getResources().getString(R.string.deeplink_user_token, deeplinkSchema.getUserToken().substring(0,15))); } @Override diff --git a/app/src/main/java/org/flyve/mdm/agent/utils/AppThreadManager.java b/app/src/main/java/org/flyve/mdm/agent/utils/AppThreadManager.java index 27112e4ce2..49fae9cfcd 100644 --- a/app/src/main/java/org/flyve/mdm/agent/utils/AppThreadManager.java +++ b/app/src/main/java/org/flyve/mdm/agent/utils/AppThreadManager.java @@ -41,9 +41,7 @@ public class AppThreadManager { private static AppThreadManager singleton; - private int index; private MqttAndroidClient client; - private Boolean lock; private List item; @@ -56,9 +54,7 @@ public static AppThreadManager getAppThreadManager(MqttAndroidClient client) { private AppThreadManager(MqttAndroidClient client) { this.item = new ArrayList<>(); - this.index = 0; this.client = client; - this.lock = false; } public void add(Context context, JSONObject jsonObj) { @@ -78,7 +74,6 @@ public void finishProcess(Context context) { if(!item.isEmpty()) { item.remove(0); } - this.lock = false; FlyveLog.i("Finish Processing"); process(context); @@ -86,8 +81,7 @@ public void finishProcess(Context context) { } public void process(Context context) { - if(!item.isEmpty() && !lock) { - this.lock = true; + if(!item.isEmpty()) { FlyveLog.i("Processing item 0 from item size -> " + item.size()); JSONObject jsonObj = item.get(0); @@ -115,7 +109,7 @@ public void process(Context context) { finishProcess(context); } } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", process", ex.getMessage()); } } } diff --git a/app/src/main/java/org/flyve/mdm/agent/utils/ConnectionHTTP.java b/app/src/main/java/org/flyve/mdm/agent/utils/ConnectionHTTP.java index 56b2d869c8..1d6bf8cac9 100644 --- a/app/src/main/java/org/flyve/mdm/agent/utils/ConnectionHTTP.java +++ b/app/src/main/java/org/flyve/mdm/agent/utils/ConnectionHTTP.java @@ -25,7 +25,6 @@ import android.os.Handler; import android.os.Looper; -import android.util.Log; import org.json.JSONObject; @@ -96,7 +95,7 @@ public static String getSyncWebData(String url, String method, Map header = new HashMap(); header.put("Accept","application/octet-stream"); header.put("Content-Type","application/json"); + header.put("Session-Token", sessionToken); StringBuilder logHeader = new StringBuilder(); for (Map.Entry entry : header.entrySet()) { @@ -207,7 +207,7 @@ public static Boolean getSyncFile(final String url, final String pathFile, final return true; } catch (final Exception ex) { - FlyveLog.e(ex.getClass() +" : " + ex.getMessage()); + FlyveLog.e(ConnectionHTTP.class.getClass().getName() + ", getSyncFile", ex.getClass() +" : " + ex.getMessage()); return false; } finally { @@ -215,7 +215,7 @@ public static Boolean getSyncFile(final String url, final String pathFile, final try { output.close(); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(ConnectionHTTP.class.getClass().getName() + ", getSyncFile", ex.getMessage()); } } } @@ -295,7 +295,7 @@ public void run() { public void run() { callback.callback(EXCEPTION_HTTP + ex.getMessage()); - FlyveLog.e(ex.getClass() + " : " + ex.getMessage()); + FlyveLog.e(ConnectionHTTP.class.getClass().getName() + ", getWebData",ex.getClass() + " : " + ex.getMessage()); } }); } @@ -323,7 +323,7 @@ private static String inputStreamToString(final InputStream stream) throws IOExc private static void Log(String message){ // write log file - Log.d("HTTP", message); + FlyveLog.e(ConnectionHTTP.class.getClass().getName() + ", Log", message); } diff --git a/app/src/main/java/org/flyve/mdm/agent/utils/EnvInfoAbout.java b/app/src/main/java/org/flyve/mdm/agent/utils/EnvInfoAbout.java index 92e0311bbb..363313cbed 100644 --- a/app/src/main/java/org/flyve/mdm/agent/utils/EnvInfoAbout.java +++ b/app/src/main/java/org/flyve/mdm/agent/utils/EnvInfoAbout.java @@ -40,7 +40,7 @@ public EnvInfoAbout(Context context) { InputStream inputStream = assetManager.open("about.properties"); properties.load(inputStream); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", EnvInfoAbout", ex.getMessage()); isLoaded = false; } isLoaded = true; diff --git a/app/src/main/java/org/flyve/mdm/agent/utils/EnvInfoSetup.java b/app/src/main/java/org/flyve/mdm/agent/utils/EnvInfoSetup.java index a2e807a3d0..ef0e302a5b 100644 --- a/app/src/main/java/org/flyve/mdm/agent/utils/EnvInfoSetup.java +++ b/app/src/main/java/org/flyve/mdm/agent/utils/EnvInfoSetup.java @@ -40,7 +40,7 @@ public EnvInfoSetup(Context context) { InputStream inputStream = assetManager.open("setup.properties"); properties.load(inputStream); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", EnvInfoSetup", ex.getMessage()); isLoaded = false; } isLoaded = true; diff --git a/app/src/main/java/org/flyve/mdm/agent/utils/FastLocationProvider.java b/app/src/main/java/org/flyve/mdm/agent/utils/FastLocationProvider.java index d3c949afaa..69dc34c10a 100644 --- a/app/src/main/java/org/flyve/mdm/agent/utils/FastLocationProvider.java +++ b/app/src/main/java/org/flyve/mdm/agent/utils/FastLocationProvider.java @@ -54,13 +54,13 @@ public boolean getLocation(Context context, LocationResult result) { try { gpsEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);} catch(Exception ex){ - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", getLocation",ex.getMessage()); } try { networkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); } catch(Exception ex){ - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", getLocation",ex.getMessage()); } //don't start listeners if no provider is enabled @@ -77,7 +77,7 @@ public boolean getLocation(Context context, LocationResult result) { locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListenerNetwork); } } catch (SecurityException ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", getLocation", ex.getMessage()); } timer = new Timer(); @@ -143,7 +143,7 @@ public void run() { netLocation = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); } } catch (SecurityException ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", GetLastLocation", ex.getMessage()); } //if there are both values use the latest one diff --git a/app/src/main/java/org/flyve/mdm/agent/utils/FlyveLog.java b/app/src/main/java/org/flyve/mdm/agent/utils/FlyveLog.java index 979828d000..079084ba9f 100644 --- a/app/src/main/java/org/flyve/mdm/agent/utils/FlyveLog.java +++ b/app/src/main/java/org/flyve/mdm/agent/utils/FlyveLog.java @@ -24,18 +24,12 @@ package org.flyve.mdm.agent.utils; import android.os.Environment; -import android.util.Log; import com.orhanobut.logger.Logger; +import org.flyve.mdm.agent.data.database.MDMLogData; import org.flyve.mdm.agent.ui.MDMAgent; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.io.PrintWriter; - /** * This is a Log wrapper */ @@ -101,10 +95,10 @@ public static void i(String message, Object... args) { * @param message String message * @param args Objects */ - public static void e(Throwable throwable, String message, Object... args) { + public static void e(String where, Throwable throwable, String message, Object... args) { if(MDMAgent.getIsDebuggable() && message != null) { Logger.e(throwable, message, args); - f(message, FILE_NAME_FEEDBACK); + f("ERROR", where, message); } } @@ -113,10 +107,10 @@ public static void e(Throwable throwable, String message, Object... args) { * @param message String message * @param args Objects */ - public static void e(String message, Object... args) { + public static void e(String where, String message, Object... args) { if(MDMAgent.getIsDebuggable() && message != null) { Logger.e(message, args); - f(message, FILE_NAME_FEEDBACK); + f("Error", where, message); } } @@ -154,101 +148,16 @@ public static void xml(String xml) { /** * Logs the message in a directory * @param message - * @param filename */ - public static void f(String message, String filename) { - String state = Environment.getExternalStorageState(); - File logFile; - - if (Environment.MEDIA_MOUNTED.equals(state)) { - File dir = new File(FLYVE_PATH); - if (!dir.exists()) { - FlyveLog.d("Create directory"); - dir.mkdirs(); - } - - logFile = new File(FLYVE_PATH + filename); - } else { - logFile = new File(MDMAgent.getInstance().getCacheDir(), filename); - } - - if (!logFile.exists()) { - try { - Boolean log = logFile.createNewFile(); - FlyveLog.d("Create File on f %s", log); - } catch (IOException ex) { - FlyveLog.i(ex.getMessage()); - } - } - - FileWriter fw = null; - - try { - //BufferedWriter for performance, true to set append to file flag - fw = new FileWriter(logFile, true); - BufferedWriter buf = new BufferedWriter(fw); - - buf.write(message); - buf.newLine(); - buf.flush(); - buf.close(); - fw.close(); - } - catch (IOException ex) { - Log.e("", ex.getMessage()); - } - finally { - if(fw!=null) { - try { - fw.close(); - } catch(Exception ex) { - Log.i("", ex.getMessage()); - } - } - } - + public static void f(String type, String title, String message) { + type = (type == null) ? "" : type; + title = (title == null) ? "" : title; + message = (message == null) ? "" : message; + + String msg = Helpers.broadCastMessage(type, title, message); + MDMLogData log = new MDMLogData(MDMAgent.getInstance()); + log.addLog(msg); } - /** - * Clear the log - * @param filename - */ - public static void clearLog(String filename) { - String state = Environment.getExternalStorageState(); - File logFile; - - if (Environment.MEDIA_MOUNTED.equals(state)) { - File dir = new File(FLYVE_PATH); - if (!dir.exists()) { - FlyveLog.d("Created Directory"); - dir.mkdirs(); - } - - logFile = new File(FLYVE_PATH + filename); - } else { - logFile = new File(MDMAgent.getInstance().getCacheDir(), filename); - } - - FileWriter fw = null; - try { - //BufferedWriter for performance, true to set append to file flag - fw = new FileWriter(logFile, false); - PrintWriter pwOb = new PrintWriter(fw, false); - pwOb.flush(); - pwOb.close(); - } - catch (IOException ex) { - e(ex.getMessage()); - } - finally { - if(fw!=null) { - try { - fw.close(); - } catch(Exception ex) { - FlyveLog.e(ex.getMessage()); - } - } - } - } } diff --git a/app/src/main/java/org/flyve/mdm/agent/utils/Helpers.java b/app/src/main/java/org/flyve/mdm/agent/utils/Helpers.java index 98ab10d07d..cd58a849ee 100644 --- a/app/src/main/java/org/flyve/mdm/agent/utils/Helpers.java +++ b/app/src/main/java/org/flyve/mdm/agent/utils/Helpers.java @@ -116,7 +116,7 @@ public static void installApk(Context context, String id, String appPath) { appVersionCode = String.valueOf(packageInfo.versionCode); appVersionName = String.valueOf(packageInfo.versionName); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(Helpers.class.getClass().getName() + ", installApk", ex.getMessage()); } if(appsArray.length <=0) { @@ -162,9 +162,9 @@ public static void openErrorActivity(Context context, String message) { context.startActivity(intent); } - public static void storeLog(String message) { + public static void storeLog(String type, String title, String message) { // write log file - FlyveLog.f(message, FlyveLog.FILE_NAME_LOG); + FlyveLog.f(type, title, message); } @@ -188,7 +188,7 @@ public static void installApkSilently(String filename) { Process proc = Runtime.getRuntime().exec(new String[]{"su", "-c", command}); proc.waitFor(); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(Helpers.class.getClass().getName() + ", installApkSilently", ex.getMessage()); } } else { FlyveLog.d("File " + file.getAbsolutePath() + " does not exists"); @@ -200,7 +200,7 @@ public static Drawable getApplicationImage(Context context, String packageApp) { return context.getPackageManager().getApplicationIcon(packageApp); } catch (PackageManager.NameNotFoundException ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(Helpers.class.getClass().getName() + ", getApplicationImage", ex.getMessage()); return null; } } @@ -212,7 +212,7 @@ public static void hideKeyboard(Activity activity) { InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(view.getWindowToken(), 0); } catch (NullPointerException ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(Helpers.class.getClass().getName() + ", hideKeyboard", ex.getMessage()); } } } @@ -259,7 +259,7 @@ public static void deleteMQTTCache(Context context) { FlyveLog.d(path.getAbsolutePath()); deleteFolder(path.getAbsolutePath()); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(Helpers.class.getClass().getName() + ", deleteMQTTCache", ex.getMessage()); } } @@ -273,7 +273,7 @@ public static void deleteFolder(String path) { try { runtime.exec(deleteCmd); } catch (IOException ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(Helpers.class.getClass().getName() + ", deleteFolder", ex.getMessage()); } } } @@ -320,7 +320,7 @@ public static void sendToNotificationBar(Context context, int id, String title, notificationManager.createNotificationChannel(notificationChannel); builder.setChannelId(notificationChannelId); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(Helpers.class.getClass().getName() + ", sendToNotificationBar", ex.getMessage()); } } @@ -337,7 +337,7 @@ public static void sendToNotificationBar(Context context, int id, String title, try { notificationManager.notify(id, builder.build()); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(Helpers.class.getClass().getName() + ", deleteFolder", ex.getMessage()); } } @@ -363,7 +363,7 @@ public static String isSystemApp(Context context) { return "1"; } } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(Helpers.class.getClass().getName() + ", isSystemApp", ex.getMessage()); return "0"; } } @@ -409,7 +409,7 @@ public static String base64decode(String text) { byte[] bdata = Base64.decode(text, Base64.DEFAULT); rtext = new String(bdata, "UTF-8"); } catch (UnsupportedEncodingException e) { - FlyveLog.e(e.getMessage()); + FlyveLog.e(Helpers.class.getClass().getName() + ", base64decode", e.getMessage()); } return rtext.trim(); } @@ -428,7 +428,7 @@ public static String base64encode(String text) { rtext = rtext.replaceAll("-", "+"); rtext = rtext.replaceAll(" ", "+"); } catch (UnsupportedEncodingException e) { - FlyveLog.e(e.getMessage()); + FlyveLog.e(Helpers.class.getClass().getName() + ", base64decode", e.getMessage()); } return rtext; @@ -540,7 +540,7 @@ public static void deleteAllSMS(Context context) { FlyveLog.d("Rows deleted: " + rowsDeleted); } } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(Helpers.class.getClass().getName() + ", deleteAllSMS", ex.getMessage()); } } @@ -594,7 +594,7 @@ public static Bitmap stringToBitmap(String encodedString){ byte [] encodeByte=Base64.decode(encodedString,Base64.DEFAULT); return BitmapFactory.decodeByteArray(encodeByte, 0, encodeByte.length); } catch(Exception e) { - FlyveLog.e(e.getMessage()); + FlyveLog.e(Helpers.class.getClass().getName() + ", stringToBitmap", e.getMessage()); return null; } } diff --git a/app/src/main/java/org/flyve/mdm/agent/utils/LogFileReader.java b/app/src/main/java/org/flyve/mdm/agent/utils/LogFileReader.java index 9294638ffa..7b4e021fc7 100644 --- a/app/src/main/java/org/flyve/mdm/agent/utils/LogFileReader.java +++ b/app/src/main/java/org/flyve/mdm/agent/utils/LogFileReader.java @@ -72,7 +72,7 @@ private static void addLine(String line) { arrData.add(map); } catch (Exception ex) { - FlyveLog.e("ERROR: " + line + " - " + ex.getMessage()); + FlyveLog.e(LogFileReader.class.getClass().getName() + ", addLine","ERROR: " + line + " - " + ex.getMessage()); } } @@ -112,7 +112,7 @@ public void run() { }); } catch (final Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(LogFileReader.class.getClass().getName() + ", loadLog", ex.getMessage()); LogFileReader.runOnUI(new Runnable() { public void run() { callback.onError(ex.getMessage()); @@ -124,7 +124,7 @@ public void run() { try { br.close(); } catch(Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(LogFileReader.class.getClass().getName() + ", loadLog", ex.getMessage()); } } @@ -132,7 +132,7 @@ public void run() { try { fr.close(); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(LogFileReader.class.getClass().getName() + ", loadLog", ex.getMessage()); } } } diff --git a/app/src/main/java/org/flyve/mdm/agent/utils/RoundedImageView.java b/app/src/main/java/org/flyve/mdm/agent/utils/RoundedImageView.java index 0c26bcfabd..1561de68a7 100644 --- a/app/src/main/java/org/flyve/mdm/agent/utils/RoundedImageView.java +++ b/app/src/main/java/org/flyve/mdm/agent/utils/RoundedImageView.java @@ -75,7 +75,7 @@ protected void onDraw(Canvas canvas) { Bitmap roundBitmap = getCroppedBitmap(bitmap, w); canvas.drawBitmap(roundBitmap, 0, 0, null); } catch (Exception ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", onDraw", ex.getMessage()); } } diff --git a/app/src/main/java/org/flyve/mdm/agent/utils/TimeAlarm.java b/app/src/main/java/org/flyve/mdm/agent/utils/TimeAlarm.java index 2241d89d8a..528d68b953 100644 --- a/app/src/main/java/org/flyve/mdm/agent/utils/TimeAlarm.java +++ b/app/src/main/java/org/flyve/mdm/agent/utils/TimeAlarm.java @@ -65,7 +65,7 @@ public void setAlarm(Context context) { try { am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), time, pi); } catch (NullPointerException ex) { - FlyveLog.e(ex.getMessage()); + FlyveLog.e(this.getClass().getName() + ", setAlarm", ex.getMessage()); } } diff --git a/app/src/main/res/layout/activity_start_enrollment.xml b/app/src/main/res/layout/activity_start_enrollment.xml index 1b9b6d9905..031ea294e9 100644 --- a/app/src/main/res/layout/activity_start_enrollment.xml +++ b/app/src/main/res/layout/activity_start_enrollment.xml @@ -1,9 +1,9 @@ - + android:layout_height="match_parent" + xmlns:tools="http://schemas.android.com/tools"> + + + + + + + + + + Message from MQTT Service (%1$s) - %2$s Wrong information, data: %1$s - error: %2$s + + URL: %1$s + Invitation Token: %1$s + User Token: %1$s \ No newline at end of file diff --git a/ci/scripts/setup_environment.sh b/ci/scripts/setup_environment.sh index a6b7ff2f78..2a557e3262 100755 --- a/ci/scripts/setup_environment.sh +++ b/ci/scripts/setup_environment.sh @@ -59,5 +59,6 @@ export GIT_TAG=$(jq -r ".version" package.json) # install transifex CLI sudo apt-get -y install python-pip +sudo pip install --upgrade "urllib3==1.22" awscli awsebcli sudo pip install transifex-client sudo echo $'[https://www.transifex.com]\nhostname = https://www.transifex.com\nusername = '"$TRANSIFEX_USER"$'\npassword = '"$TRANSIFEX_TOKEN"$'\ntoken = '"$TRANSIFEX_TOKEN"$'\n' > ~/.transifexrc