From ca4255943a403347c76addf85326703f199c4eb7 Mon Sep 17 00:00:00 2001 From: CiufudeanDani Date: Wed, 30 Mar 2022 12:52:38 +0300 Subject: [PATCH 1/2] clean code --- .../com/safemobile/services/TCPmsgParser.java | 425 ++++++++---------- 1 file changed, 182 insertions(+), 243 deletions(-) diff --git a/libSafeMobile/src/main/java/com/safemobile/services/TCPmsgParser.java b/libSafeMobile/src/main/java/com/safemobile/services/TCPmsgParser.java index e528666..c1e15e4 100644 --- a/libSafeMobile/src/main/java/com/safemobile/services/TCPmsgParser.java +++ b/libSafeMobile/src/main/java/com/safemobile/services/TCPmsgParser.java @@ -1,7 +1,6 @@ package com.safemobile.services; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; import java.util.NoSuchElementException; @@ -12,16 +11,14 @@ import com.safemobile.lib.SM; import com.safemobile.lib.TCPmsg; -public class TCPmsgParser implements Runnable{ +public class TCPmsgParser implements Runnable { - public boolean run = true; private TCPmsg _msg; - private static List _listeners = new ArrayList(); + private static final List _listeners = new ArrayList<>(); private Thread TCPmsgParserThread; - public TCPmsgParser() - { + public TCPmsgParser() { TCPmsgParserThread = new Thread(this, "TCPmsgParserThread"); TCPmsgParserThread.start(); // (2) Start the thread. } @@ -37,404 +34,349 @@ public class TCPmsgParser implements Runnable{ public synchronized void clearITCPListeners() { _listeners.clear(); } - - public int getListenersSize() - { - return _listeners.size(); - } - + private synchronized void _fireLoginEvent() { TCPEvent event = new TCPEvent( this, _msg ); - Iterator listeners = _listeners.iterator(); - while( listeners.hasNext() ) { - ( (ITCPListener) listeners.next() ).onLoginReceived( event ); + for (ITCPListener listener : _listeners) { + listener.onLoginReceived(event); } } private synchronized void _fireGPSEvent() { TCPEvent event = new TCPEvent( this, _msg ); - Iterator listeners = _listeners.iterator(); - while( listeners.hasNext() ) { - ( (ITCPListener) listeners.next() ).onGPSReceived(event); + for (ITCPListener listener : _listeners) { + listener.onGPSReceived(event); } } private synchronized void _fireSMSEvent() { TCPEvent event = new TCPEvent( this, _msg ); - Iterator listeners = _listeners.iterator(); - while( listeners.hasNext() ) { - ( (ITCPListener) listeners.next() ).onSMSReceived( event ); + for (ITCPListener listener : _listeners) { + listener.onSMSReceived(event); } } private synchronized void _fireLastSMSEvent() { TCPEvent event = new TCPEvent( this, _msg ); - Iterator listeners = _listeners.iterator(); - while( listeners.hasNext() ) { - ( (ITCPListener) listeners.next() ).onLastSMSsReceived(event); + for (ITCPListener listener : _listeners) { + listener.onLastSMSsReceived(event); } } private synchronized void _fireVehEvent() { TCPEvent event = new TCPEvent( this, _msg ); - Iterator listeners = _listeners.iterator(); - while( listeners.hasNext() ) { - ( (ITCPListener) listeners.next() ).onVehiclesReceived( event ); + for (ITCPListener listener : _listeners) { + listener.onVehiclesReceived(event); } } private synchronized void _fireNewSMS() { TCPEvent event = new TCPEvent( this, _msg ); - Iterator listeners = _listeners.iterator(); - while( listeners.hasNext() ) { - ( (ITCPListener) listeners.next() ).onNewSMSReceived(event); + for (ITCPListener listener : _listeners) { + listener.onNewSMSReceived(event); } } private synchronized void _fireSMSconfirm() { TCPEvent event = new TCPEvent( this, _msg ); - Iterator listeners = _listeners.iterator(); - while( listeners.hasNext() ) { - ( (ITCPListener) listeners.next() ).onSMSAckReceived(event); + for (ITCPListener listener : _listeners) { + listener.onSMSAckReceived(event); } } private synchronized void _fireLastPos() { TCPEvent event = new TCPEvent( this, _msg ); - Iterator listeners = _listeners.iterator(); - while( listeners.hasNext() ) { - ( (ITCPListener) listeners.next() ).onLastPositionsReceived(event); + for (ITCPListener listener : _listeners) { + listener.onLastPositionsReceived(event); } } private synchronized void _fireRadioEvent() { TCPEvent event = new TCPEvent( this, _msg ); - Iterator listeners = _listeners.iterator(); - while( listeners.hasNext() ) { - ( (ITCPListener) listeners.next() ).onRadioMsgReceived(event); + for (ITCPListener listener : _listeners) { + listener.onRadioMsgReceived(event); } } private synchronized void _fireHistPos() { TCPEvent event = new TCPEvent( this, _msg ); - Iterator listeners = _listeners.iterator(); - while( listeners.hasNext() ) { - ( (ITCPListener) listeners.next() ).onHistoryPositionsReceived(event); + for (ITCPListener listener : _listeners) { + listener.onHistoryPositionsReceived(event); } } private synchronized void _fireHistCount() { TCPEvent event = new TCPEvent( this, _msg ); - Iterator listeners = _listeners.iterator(); - while( listeners.hasNext() ) { - ( (ITCPListener) listeners.next() ).onHistoryPositionsCountReceived(event); + for (ITCPListener listener : _listeners) { + listener.onHistoryPositionsCountReceived(event); } } private synchronized void _fireAlarmList() { TCPEvent event = new TCPEvent( this, _msg ); - Iterator listeners = _listeners.iterator(); - while( listeners.hasNext() ) { - ( (ITCPListener) listeners.next() ).onAlarmsReceived(event); + for (ITCPListener listener : _listeners) { + listener.onAlarmsReceived(event); } } private synchronized void _fireAlarmACK() { TCPEvent event = new TCPEvent( this, _msg ); - Iterator listeners = _listeners.iterator(); - while( listeners.hasNext() ) { - ( (ITCPListener) listeners.next() ).onAlarmAckReceived(event); + for (ITCPListener listener : _listeners) { + listener.onAlarmAckReceived(event); } } private synchronized void _fireAlarmLive() { TCPEvent event = new TCPEvent( this, _msg ); - Iterator listeners = _listeners.iterator(); - while( listeners.hasNext() ) { - ( (ITCPListener) listeners.next() ).alarmLiveReceived(event); + for (ITCPListener listener : _listeners) { + listener.alarmLiveReceived(event); } } private synchronized void _fireRecordList() { TCPEvent event = new TCPEvent( this, _msg ); - Iterator listeners = _listeners.iterator(); - while( listeners.hasNext() ) { - ( (ITCPListener) listeners.next()).onRecordingsListReceived(event); + for (ITCPListener listener : _listeners) { + listener.onRecordingsListReceived(event); } } private synchronized void _fireRecordPlay() { TCPEvent event = new TCPEvent( this, _msg ); - Iterator listeners = _listeners.iterator(); - while( listeners.hasNext() ) { - ( (ITCPListener) listeners.next()).onRecordingPlayReceived(event); + for (ITCPListener listener : _listeners) { + listener.onRecordingPlayReceived(event); } } private synchronized void _firePOLLEvent() { TCPEvent event = new TCPEvent( this, _msg ); - Iterator listeners = _listeners.iterator(); - while( listeners.hasNext() ) { - ( (ITCPListener) listeners.next()).onPollReceived(event); + for (ITCPListener listener : _listeners) { + listener.onPollReceived(event); } } private synchronized void _fireConnectionReplyEvent() { TCPEvent event = new TCPEvent( this, _msg ); - Iterator listeners = _listeners.iterator(); - while( listeners.hasNext() ) { - ( (ITCPListener) listeners.next()).onConnectionReplyReceived(event); + for (ITCPListener listener : _listeners) { + listener.onConnectionReplyReceived(event); } } private synchronized void _fireContactsReceivedEvent() { TCPEvent event = new TCPEvent( this, _msg ); - - Iterator listeners = _listeners.iterator(); - while( listeners.hasNext() ) { - ( (ITCPListener) listeners.next()).onContactsListReceived(event); + + for (ITCPListener listener : _listeners) { + listener.onContactsListReceived(event); } } private synchronized void _fireRecordingsReceivedEvent() { TCPEvent event = new TCPEvent( this, _msg ); - - Iterator listeners = _listeners.iterator(); - while( listeners.hasNext() ) { - ( (ITCPListener) listeners.next()).onRecordingsListReceived(event); + + for (ITCPListener listener : _listeners) { + listener.onRecordingsListReceived(event); } } private synchronized void _fireTextMessagesReceivedEvent() { TCPEvent event = new TCPEvent( this, _msg ); - - Iterator listeners = _listeners.iterator(); - while( listeners.hasNext() ) { - ( (ITCPListener) listeners.next()).onTextMessagesListReceived(event); + + for (ITCPListener listener : _listeners) { + listener.onTextMessagesListReceived(event); } } private synchronized void _fireRecordingPlayReceivedEvent() { TCPEvent event = new TCPEvent( this, _msg ); - - Iterator listeners = _listeners.iterator(); - while( listeners.hasNext() ) { - ( (ITCPListener) listeners.next()).onRecordingPlayReceived(event); + + for (ITCPListener listener : _listeners) { + listener.onRecordingPlayReceived(event); } } public static synchronized void _fireTCPConnectionDownEvent(boolean previuosWasConnectionUp) { - Iterator listeners = _listeners.iterator(); - while( listeners.hasNext() ) { - ( (ITCPListener) listeners.next()).onTCPConnectionDown(previuosWasConnectionUp); + for (ITCPListener listener : _listeners) { + listener.onTCPConnectionDown(previuosWasConnectionUp); } } public static synchronized void _fireTCPConnectionUpEvent(boolean previuosWasConnectionUp) { - Iterator listeners = _listeners.iterator(); - while( listeners.hasNext() ) { - ( (ITCPListener) listeners.next()).onTCPConnectionUp(previuosWasConnectionUp); + for (ITCPListener listener : _listeners) { + listener.onTCPConnectionUp(previuosWasConnectionUp); } } public static synchronized void _fireonTCPConnectionStatusEvent(boolean isConnectionUp, boolean previuosWasConnectionUp) { - Iterator listeners = _listeners.iterator(); - while( listeners.hasNext() ) { - ( (ITCPListener) listeners.next()).onTCPConnectionStatusReceived(isConnectionUp, previuosWasConnectionUp); + for (ITCPListener listener : _listeners) { + listener.onTCPConnectionStatusReceived(isConnectionUp, previuosWasConnectionUp); } } public static synchronized void _firePONGReceivedEvent() { - Iterator listeners = _listeners.iterator(); - while( listeners.hasNext() ) { - ( (ITCPListener) listeners.next()).onPONGReceived(); + for (ITCPListener listener : _listeners) { + listener.onPONGReceived(); } } @Override - public void run() - { - while(run) - { - //SM.Debug("TCPmsgParser waiting for data..."); + public void run() { + while(run) { sleep(1); - if(TCPhandler.msgList==null) + if (TCPhandler.msgList == null) continue; - if(!TCPhandler.msgList.isEmpty()) - { - try - { + if(!TCPhandler.msgList.isEmpty()) { + try { _msg = TCPhandler.msgList.poll(); if(_msg == null) continue; - if(_msg.OK == false) + if(!_msg.OK) continue; //parse the rest of the message; - switch(_msg.opCode) - { - case 40:{ - _fireLoginEvent(); - break; - } + switch(_msg.opCode) { + case 40:{ + _fireLoginEvent(); + break; + } - case 41:{ - _fireVehEvent(); - break; - } + case 41:{ + _fireVehEvent(); + break; + } - case 42:{ - _fireSMSEvent(); - break; - } + case 42:{ + _fireSMSEvent(); + break; + } - case 43:{ - _fireLastSMSEvent(); - break; - } + case 43:{ + _fireLastSMSEvent(); + break; + } - case OperationCodes.TM_ACK:{ - _fireSMSconfirm(); - break; - } - case OperationCodes.TM_ACK_SD:{ - _fireSMSconfirm(); - break; - } + case OperationCodes.TM_ACK: + case OperationCodes.TM_ACK_SD: { + _fireSMSconfirm(); + break; + } - case OperationCodes.RECEIVED_TM:{ - _fireNewSMS(); - break; - } + case OperationCodes.RECEIVED_TM:{ + _fireNewSMS(); + break; + } - case 45:{ - _fireLastPos(); - break; - } + case 45:{ + _fireLastPos(); + break; + } - case 131:{ - _fireGPSEvent(); - break; - } + case 131:{ + _fireGPSEvent(); + break; + } - case 231:{ - _firePOLLEvent(); - break; - } + case 231:{ + _firePOLLEvent(); + break; + } - case 50:{ - _fireRadioEvent(); - break; - } + case 50:{ + _fireRadioEvent(); + break; + } - case 46:{ - _fireHistPos(); - break; - } + case 46:{ + _fireHistPos(); + break; + } - case 86:{ - _fireHistCount(); - break; - } + case 86:{ + _fireHistCount(); + break; + } - case 47:{ - _fireAlarmList(); - break; - } + case 47:{ + _fireAlarmList(); + break; + } - case 48:{ - _fireAlarmACK(); - break; - } + case 48:{ + _fireAlarmACK(); + break; + } - case 49:{ - _fireRecordList(); - break; - } + case 49:{ + _fireRecordList(); + break; + } - case 38:{ - _fireRecordPlay(); - break; - } + case 38:{ + _fireRecordPlay(); + break; + } - case 135: - case 136: - case 137: - case 138: - case 140:{ - _fireAlarmLive(); - break; - } + case 135: + case 136: + case 137: + case 138: + case 140:{ + _fireAlarmLive(); + break; + } - case OperationCodes.PONG: { - //_firePONGReceivedEvent(); - break; - } + case OperationCodes.PONG: { + //_firePONGReceivedEvent(); + break; + } - case OperationCodes.CONNECTION_REP: { - _fireConnectionReplyEvent(); - break; - } + case OperationCodes.CONNECTION_REP: { + _fireConnectionReplyEvent(); + break; + } - case OperationCodes.CONTACTS_REP: { - sleep(15); - _fireContactsReceivedEvent(); - break; - } + case OperationCodes.CONTACTS_REP: { + sleep(15); + _fireContactsReceivedEvent(); + break; + } - case OperationCodes.TM_LIST_REP: { - _fireTextMessagesReceivedEvent(); - break; - } + case OperationCodes.TM_LIST_REP: { + _fireTextMessagesReceivedEvent(); + break; + } - case OperationCodes.RECORDINGS_LIST_REP: { - _fireRecordingsReceivedEvent(); - break; - } + case OperationCodes.RECORDINGS_LIST_REP: { + _fireRecordingsReceivedEvent(); + break; + } - case OperationCodes.RECORDING_REP: { - _fireRecordingPlayReceivedEvent(); - break; - } + case OperationCodes.RECORDING_REP: { + _fireRecordingPlayReceivedEvent(); + break; + } - default: - break; - } - } - catch(Exception ex) - { - try { - if(TCPhandler.msgList.size() > 0) - _msg = TCPhandler.msgList.remove(0); - } - catch(NoSuchElementException exe) - { - SM.Exception("TCP msg Parser", "NoSuchElementException"); - } - } - } - - - } - /* - catch (Exception e) - { - SM.Debug("Error on fire Event:"+e.toString()); - break; - } - - }*/ + default: + break; + } + } catch(Exception ex) { + try { + if(TCPhandler.msgList.size() > 0) + _msg = TCPhandler.msgList.remove(0); + } catch(NoSuchElementException exe) { + SM.Exception("TCP msg Parser", "NoSuchElementException"); + } + } + } + } SM.Debug("TCPmsgParser listen thread stoped."); } private void sleep(int miliseconds) { try { Thread.sleep(miliseconds); - } catch (InterruptedException e) { - } + } catch (InterruptedException ignored) { } } public void clearMsgList() @@ -442,17 +384,14 @@ public class TCPmsgParser implements Runnable{ TCPhandler.msgList.clear(); } - public void Stop() - { + public void Stop() { run = false; // stop thread - if(TCPmsgParserThread != null) - { + if(TCPmsgParserThread != null) { Thread moribund = TCPmsgParserThread; TCPmsgParserThread = null; moribund.interrupt(); } SM.Debug("Stoping TCPmsgParser"); } - -} +} \ No newline at end of file From ba0dc850f78ba21bb5f32706c64ba7e078963be9 Mon Sep 17 00:00:00 2001 From: CiufudeanDani Date: Thu, 31 Mar 2022 14:12:03 +0300 Subject: [PATCH 2/2] display notifications --- safeDispatch/build.gradle | 2 - .../safedispatch/NotificationActivity.java | 29 +++--- .../safedispatch/TabLayoutActivity.java | 92 +++++++++---------- .../src/main/res/layout-large/tabpanel.xml | 6 +- 4 files changed, 64 insertions(+), 65 deletions(-) diff --git a/safeDispatch/build.gradle b/safeDispatch/build.gradle index 94cc018..7368309 100644 --- a/safeDispatch/build.gradle +++ b/safeDispatch/build.gradle @@ -78,6 +78,4 @@ dependencies { // add Gson implementation 'com.google.code.gson:gson:2.8.6' - - //retrofit } diff --git a/safeDispatch/src/main/java/com/safemobile/safedispatch/NotificationActivity.java b/safeDispatch/src/main/java/com/safemobile/safedispatch/NotificationActivity.java index a64d418..75594e0 100644 --- a/safeDispatch/src/main/java/com/safemobile/safedispatch/NotificationActivity.java +++ b/safeDispatch/src/main/java/com/safemobile/safedispatch/NotificationActivity.java @@ -16,17 +16,22 @@ public class NotificationActivity extends Activity{ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - // get notification type - int key = getIntent().getExtras().getInt("key"); - + // get notification type + int key = getIntent().getExtras().getInt("key"); + // broadcast intent - Intent i = new Intent(); - switch(key) - { - case AppParams.messageNotif: i.setAction(NOTIFICATION_MESSAGE_INTENT); break; - case AppParams.alertNotif: i.setAction(NOTIFICATION_ALERT_INTENT); break; - case AppParams.pollNotif: i.setAction(NOTIFICATION_POLL_INTENT); break; - } + Intent i = new Intent(); + switch(key) { + case AppParams.messageNotif: + i.setAction(NOTIFICATION_MESSAGE_INTENT); + break; + case AppParams.alertNotif: + i.setAction(NOTIFICATION_ALERT_INTENT); + break; + case AppParams.pollNotif: + i.setAction(NOTIFICATION_POLL_INTENT); + break; + } getBaseContext().sendBroadcast(i); @@ -35,6 +40,4 @@ public class NotificationActivity extends Activity{ /* Finish activity and return to parent activity */ finish(); } - -} - +} \ No newline at end of file diff --git a/safeDispatch/src/main/java/com/safemobile/safedispatch/TabLayoutActivity.java b/safeDispatch/src/main/java/com/safemobile/safedispatch/TabLayoutActivity.java index 9b3ce43..75fbd86 100644 --- a/safeDispatch/src/main/java/com/safemobile/safedispatch/TabLayoutActivity.java +++ b/safeDispatch/src/main/java/com/safemobile/safedispatch/TabLayoutActivity.java @@ -14,13 +14,11 @@ import java.util.Timer; import java.util.TimerTask; import com.google.android.gms.tasks.Task; -import com.google.android.gms.tasks.TaskCompletionSource; import com.safemobile.activities.AbstractEmptyActivity; import com.safemobile.activities.AbstractLiveActivity; import com.safemobile.activities.AbstractMessagesActivity; import com.safemobile.activities.AbstractRadioActivity; import com.safemobile.activities.AbstractSDParentActivity; -import com.safemobile.safedispatch.R; import com.safemobile.enums.AuthorizationCode; import com.safemobile.enums.AuthorizationStatus; import com.safemobile.enums.ProviderSettingsStatus; @@ -59,7 +57,7 @@ import com.safemobile.services.TCPService.TCPBinder; import android.Manifest; import android.annotation.SuppressLint; import android.app.Dialog; -import android.app.Notification; +import android.app.NotificationChannel; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.BroadcastReceiver; @@ -74,6 +72,7 @@ import android.content.res.Configuration; import android.content.res.Resources; import android.net.Uri; import android.os.AsyncTask; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.IBinder; @@ -94,6 +93,8 @@ import android.widget.Toast; import android.widget.TabHost.TabSpec; import androidx.annotation.NonNull; +import androidx.core.app.NotificationCompat; +import androidx.core.app.NotificationManagerCompat; public class TabLayoutActivity extends AbstractSDParentActivity { @@ -1233,7 +1234,7 @@ public class TabLayoutActivity extends AbstractSDParentActivity { getMessageActivity().updateSMS(sms.smsList); } } catch (Exception ex) { - SM.Debug("Error on smsReceived:" + ex.toString()); + SM.Debug("Error on smsReceived:" + ex); } } @@ -1426,7 +1427,7 @@ public class TabLayoutActivity extends AbstractSDParentActivity { SM.Debug("tmpHist seqID:" + tmpHist.seqID); int pos = Integer.parseInt(tmpHist.seqID.substring(0, tmpHist.seqID.indexOf('.'))); - int all = Integer.parseInt(tmpHist.seqID.substring(tmpHist.seqID.indexOf('.') + 1, tmpHist.seqID.length())); + int all = Integer.parseInt(tmpHist.seqID.substring(tmpHist.seqID.indexOf('.') + 1)); if (all != 0) { if (Boolean.TRUE.equals(getFirstHistoryData())) { try { @@ -1668,13 +1669,11 @@ public class TabLayoutActivity extends AbstractSDParentActivity { case 137: setMess("zone " + tempArr[1]); break; - case 138: - setMess("emergency"); - break; case 140: setMess("telemetry " + tempArr[1]); break; default: +// 138 setMess("emergency"); } myHandler.post(updateResultsAlarm); @@ -1896,10 +1895,7 @@ public class TabLayoutActivity extends AbstractSDParentActivity { public void createNotification(int icon) { mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); - String tickerText = "SafeMobile Dispatch: New Message from " + getImei(); - String contentTitle = "New Message from " + getImei(); - String contentText = "\"" + getMess() + "\""; - + String contentTitle, contentText; Vehicle veh = getVehicle4Imei(getImei()); int iconValue = icon; @@ -1912,7 +1908,6 @@ public class TabLayoutActivity extends AbstractSDParentActivity { case AppParams.pollNotif: contentText = "\"" + getMess() + "\""; contentTitle = "Poll Reply from " + (veh != null ? getVehicle4Imei(getImei()).name : getImei()); - tickerText = "SafeMobile Dispatch: Poll Reply from " + (veh != null ? getVehicle4Imei(getImei()).name : getImei()); icon = R.drawable.poll; break; case AppParams.alertNotif: @@ -1921,34 +1916,53 @@ public class TabLayoutActivity extends AbstractSDParentActivity { vehName = getString(R.string.from) + ": " + getVehicle4Imei(getImei()).name; contentText = "\"" + getMess() + "\""; contentTitle = getString(R.string.newAlarm) + vehName; - tickerText = "SafeMobile Dispatch: " + getString(R.string.newAlarm) + vehName; - icon = R.drawable.alert; + icon = R.drawable.arrow_down; break; default: throw new IllegalStateException("Unexpected value: " + icon); } - Notification notification = new Notification(icon, tickerText, System.currentTimeMillis()); - // set intent to be opened on NotificationClick /* Notification */ - Intent notificationIntent = new Intent(this, NotificationActivity.class); - notificationIntent.putExtra("key", iconValue); + Intent intent = new Intent(this, NotificationActivity.class); + intent.putExtra("key", iconValue); // cancel old notification mNotificationManager.cancel(icon); - PendingIntent contentIntent = PendingIntent.getActivity(context, NOTIFICATION_ACTIVITY_RESULT, notificationIntent, PendingIntent.FLAG_CANCEL_CURRENT); - - // flag that the notification will be closed when clicked - notification.flags |= Notification.FLAG_AUTO_CANCEL; - notification.number = 1; // the same notification will be shown; - notification.tickerText = tickerText; // notification text when arrives - notification.sound = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.new_sms); - // add notification to the manager - mNotificationManager.notify(icon, notification); + PendingIntent pendingIntent = PendingIntent.getActivity(context, NOTIFICATION_ACTIVITY_RESULT, intent, PendingIntent.FLAG_CANCEL_CURRENT); + createNotificationChannel(icon, contentTitle, contentText, pendingIntent); } + private void createNotificationChannel(int icon, String title, String text, PendingIntent pendingIntent) { + // Create the NotificationChannel, but only on API 26+ because + // the NotificationChannel class is new and not in the support library + String notificationChannelID = String.valueOf(icon); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + CharSequence name = "Notification Channel"; + int importance = NotificationManager.IMPORTANCE_HIGH; + NotificationChannel channel = new NotificationChannel(notificationChannelID, name, importance); + // Register the channel with the system; you can't change the importance + // or other notification behaviors after this + NotificationManager notificationManager = getSystemService(NotificationManager.class); + notificationManager.createNotificationChannel(channel); + } + + + NotificationCompat.Builder builder = new NotificationCompat.Builder(context, notificationChannelID) + .setSmallIcon(icon) + .setContentTitle(title) + .setContentText(text) + .setPriority(NotificationCompat.PRIORITY_DEFAULT) + .setAutoCancel(true) + .setContentIntent(pendingIntent); + + Log.v("test111", "test"); + NotificationManagerCompat managerCompat = NotificationManagerCompat.from(context); + managerCompat.notify(icon, builder.build()); + } + + // return vehicle according to imei private Vehicle getVehicle4Imei(String imei) { Vehicle veh = null; @@ -2092,7 +2106,7 @@ public class TabLayoutActivity extends AbstractSDParentActivity { setVehicleStatus(Integer.parseInt(params[1]), Integer.parseInt(params[2]), Integer.parseInt(params[3]), Integer.parseInt(params[4])); } catch (Exception ex) { - SM.Exception("Paramas -> setVehicleStatus", "EXCeption ex " + ex.toString()); + SM.Exception("Paramas -> setVehicleStatus", "EXCeption ex " + ex); } break; @@ -2123,21 +2137,6 @@ public class TabLayoutActivity extends AbstractSDParentActivity { new ConnectTask().execute(params); } - public class ConnectParserTask extends AsyncTask { - @Override - protected TCPhandler doInBackground(String... params) { - if (myService != null) - tcpParser = myService.getTCPmsgParser(); - - // add TCPParserListener - if (tcpParser != null) { - SM.Debug("## tcpParser != null ", "#### call tcpParserListener("); - tcpParserListener(); - } - return null; - } - } - /* Display Toast messages*/ @Override public void displayToast(final String msg) { @@ -2247,10 +2246,8 @@ public class TabLayoutActivity extends AbstractSDParentActivity { super.onRequestPermissionsResult(requestCode, permissions, grantResults); SM.Debug("onRequestPermissionsResult", "[requestCode] " + requestCode); - String permission = ""; switch (requestCode) { case PermissionModule.RECORD_AUDIO_PERMISSION_REQUEST_CODE: - permission = Manifest.permission.RECORD_AUDIO; break; default: throw new IllegalStateException("Unexpected value: " + requestCode); @@ -2301,10 +2298,9 @@ public class TabLayoutActivity extends AbstractSDParentActivity { private void waitForUserInput(Boolean result) { if (result) { - final int requestCode = 1202; //navigate to application's settings String action = ProviderSettingsHelper.getAction(ProviderSettingsStatus.APPLICATION_DETAILS); - if (action == null || action == "") + if (action == null || action.equals("")) return; boolean isActionApplicationDetailsSettings = action.equals(ProviderSettingsHelper.ACTION_APPLICATION_DETAILS_SETTINGS); diff --git a/safeDispatch/src/main/res/layout-large/tabpanel.xml b/safeDispatch/src/main/res/layout-large/tabpanel.xml index 4722cba..a39efc0 100644 --- a/safeDispatch/src/main/res/layout-large/tabpanel.xml +++ b/safeDispatch/src/main/res/layout-large/tabpanel.xml @@ -88,7 +88,9 @@ - + + + + android:padding="3dp">