summaryrefslogtreecommitdiff
path: root/android/sdl_android/src/main
diff options
context:
space:
mode:
authorBilal Alsharifi <bilal.alsharifi@gmail.com>2020-09-16 13:47:38 -0400
committerBilal Alsharifi <bilal.alsharifi@gmail.com>2020-09-16 13:47:38 -0400
commitca572ffcc60b274b99236da4f6f46649062e32df (patch)
treea7706c5e0d56897af0ee7d4e63b029dc7a0d13a3 /android/sdl_android/src/main
parente297e68fd68e2302dc2d6fcd7b86798a863f7177 (diff)
parentde8e5c9a71ba2c4c793bcf6fcccbb964fe25853a (diff)
downloadsdl_android-ca572ffcc60b274b99236da4f6f46649062e32df.tar.gz
Merge branch 'develop' into feature/issue_1448_generate_deprecated_javadocfeature/issue_1448_generate_deprecated_javadoc
Diffstat (limited to 'android/sdl_android/src/main')
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/encoder/EncoderUtils.java12
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/encoder/SdlEncoder.java4
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/encoder/VirtualDisplayEncoder.java6
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManager.java3
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/AudioDecoder.java1
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/AudioDecoderCompat.java3
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/AudioStreamManager.java9
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/BaseAudioDecoder.java3
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/SampleBuffer.java3
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/file/FileManager.java3
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/file/filetypes/SdlArtwork.java3
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/file/filetypes/SdlFile.java4
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/lifecycle/EncryptionLifecycleManager.java2
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleManager.java12
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/lifecycle/SystemCapabilityManager.java2
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenConfig.java4
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenDeviceIconManager.java18
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenManager.java17
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/SDLLockScreenActivity.java1
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/permission/PermissionManager.java2
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/ScreenManager.java2
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/SoftButtonManager.java2
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/SubscribeButtonManager.java2
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/TextAndGraphicManager.java2
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/choiceset/ChoiceSetManager.java2
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/menu/MenuManager.java2
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/menu/VoiceCommandManager.java2
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/video/HapticInterfaceManager.java48
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/video/VideoStreamManager.java38
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/protocol/SdlPacket.java6
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/protocol/SdlProtocol.java1
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/protocol/heartbeat/HeartbeatMonitor.java6
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/protocol/heartbeat/IHeartbeatMonitor.java18
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/protocol/heartbeat/IHeartbeatMonitorListener.java4
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/session/SdlSession.java (renamed from android/sdl_android/src/main/java/com/smartdevicelink/SdlConnection/SdlSession.java)7
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/streaming/StreamPacketizer.java13
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/streaming/video/SdlRemoteDisplay.java20
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/trace/TraceDeviceInfo.java8
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexBaseTransport.java2
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexBluetoothTransport.java35
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexTcpTransport.java12
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexTransportConfig.java6
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexUsbTransport.java2
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/transport/RouterServiceValidator.java74
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlBroadcastReceiver.java22
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java104
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterStatusProvider.java14
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/transport/TCPTransportManager.java4
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/transport/TransportBroker.java120
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/transport/TransportManager.java7
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/transport/UsbTransferProvider.java4
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/transport/utl/ByteArrayMessageSpliter.java8
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/transport/utl/SdlDeviceListener.java1
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/util/AndroidTools.java4
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/util/HttpRequestTask.java6
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/util/IntegrationValidator.java8
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/util/MediaStreamingStatus.java25
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/util/SdlAppInfo.java2
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/util/ServiceFinder.java2
59 files changed, 313 insertions, 444 deletions
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/encoder/EncoderUtils.java b/android/sdl_android/src/main/java/com/smartdevicelink/encoder/EncoderUtils.java
index 8f3001294..5fd3f417d 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/encoder/EncoderUtils.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/encoder/EncoderUtils.java
@@ -87,14 +87,18 @@ public final class EncoderUtils {
}
ByteBuffer sps = format.getByteBuffer("csd-0");
- int spsLen = sps.remaining();
+ int spsLen = sps != null ? sps.remaining() : 0;
ByteBuffer pps = format.getByteBuffer("csd-1");
- int ppsLen = pps.remaining();
+ int ppsLen = pps != null ? pps.remaining() : 0;
byte[] output = new byte[spsLen + ppsLen];
try {
- sps.get(output, 0, spsLen);
- pps.get(output, spsLen, ppsLen);
+ if (sps != null) {
+ sps.get(output, 0, spsLen);
+ }
+ if (pps != null) {
+ pps.get(output, spsLen, ppsLen);
+ }
} catch (Exception e) {
// should not happen
DebugTool.logWarning(TAG, "Error while copying H264 codec specific data: " + e);
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/encoder/SdlEncoder.java b/android/sdl_android/src/main/java/com/smartdevicelink/encoder/SdlEncoder.java
index 7172b0225..251c3ad3a 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/encoder/SdlEncoder.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/encoder/SdlEncoder.java
@@ -38,7 +38,7 @@ import android.media.MediaFormat;
import android.os.Build;
import android.view.Surface;
-import com.smartdevicelink.proxy.interfaces.IVideoStreamListener;
+import com.smartdevicelink.streaming.video.IVideoStreamListener;
import com.smartdevicelink.util.DebugTool;
import java.io.IOException;
@@ -214,7 +214,7 @@ public class SdlEncoder {
if (mBufferInfo.size != 0) {
ByteBuffer encoderOutputBuffer = encoderOutputBuffers[encoderStatus];
- byte[] dataToWrite = null;
+ byte[] dataToWrite;
int dataOffset = 0;
// append SPS and PPS in front of every IDR NAL unit
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/encoder/VirtualDisplayEncoder.java b/android/sdl_android/src/main/java/com/smartdevicelink/encoder/VirtualDisplayEncoder.java
index 766e10aaa..de342f7c9 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/encoder/VirtualDisplayEncoder.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/encoder/VirtualDisplayEncoder.java
@@ -43,10 +43,10 @@ import android.os.Build;
import android.view.Display;
import android.view.Surface;
-import com.smartdevicelink.proxy.interfaces.IVideoStreamListener;
import com.smartdevicelink.proxy.rpc.ImageResolution;
import com.smartdevicelink.proxy.rpc.VideoStreamingFormat;
import com.smartdevicelink.proxy.rpc.enums.VideoStreamingCodec;
+import com.smartdevicelink.streaming.video.IVideoStreamListener;
import com.smartdevicelink.streaming.video.VideoStreamingParameters;
import com.smartdevicelink.util.DebugTool;
@@ -101,17 +101,14 @@ public class VirtualDisplayEncoder {
initPassed = true;
}
- @SuppressWarnings("unused")
public VideoStreamingParameters getStreamingParams(){
return this.streamingParams;
}
- @SuppressWarnings("unused")
public void setStreamingParams(int displayDensity, ImageResolution resolution, int frameRate, int bitrate, int interval, VideoStreamingFormat format) {
this.streamingParams = new VideoStreamingParameters(displayDensity, frameRate, bitrate, interval, resolution, format);
}
- @SuppressWarnings("unused")
public void setStreamingParams(VideoStreamingParameters streamingParams) {
this.streamingParams = streamingParams;
}
@@ -321,7 +318,6 @@ public class VirtualDisplayEncoder {
}
}
- @SuppressWarnings("deprecation")
void drainEncoder(boolean endOfStream) {
if (mVideoEncoder == null || mOutputListener == null) {
return;
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManager.java
index f109cbe85..09adbbaa6 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManager.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManager.java
@@ -36,6 +36,7 @@ import android.annotation.SuppressLint;
import android.content.Context;
import android.os.Handler;
import android.os.Looper;
+
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -90,7 +91,7 @@ public class SdlManager extends BaseSdlManager {
@Override
public void onTransportEvent(List<TransportRecord> connectedTransports, boolean audioStreamTransportAvail, boolean videoStreamTransportAvail) {
- //Pass to submanagers that need it
+ //Pass to sub managers that need it
if (videoStreamManager != null) {
videoStreamManager.handleTransportUpdated(connectedTransports, audioStreamTransportAvail, videoStreamTransportAvail);
}
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/AudioDecoder.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/AudioDecoder.java
index 04fe41c97..141a2b020 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/AudioDecoder.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/AudioDecoder.java
@@ -36,6 +36,7 @@ import android.media.MediaCodec;
import android.media.MediaFormat;
import android.net.Uri;
import android.os.Build;
+
import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi;
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/AudioDecoderCompat.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/AudioDecoderCompat.java
index ce2d3c49e..7e32d3261 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/AudioDecoderCompat.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/AudioDecoderCompat.java
@@ -35,6 +35,7 @@ import android.content.Context;
import android.media.MediaCodec;
import android.media.MediaFormat;
import android.net.Uri;
+
import androidx.annotation.NonNull;
import com.smartdevicelink.managers.audio.AudioStreamManager.SampleType;
@@ -90,7 +91,7 @@ public class AudioDecoderCompat extends BaseAudioDecoder {
* Runnable to decode audio data
*/
private static class DecoderRunnable implements Runnable {
- WeakReference<AudioDecoderCompat> weakReference;
+ final WeakReference<AudioDecoderCompat> weakReference;
/**
* Decodes all audio data from source
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/AudioStreamManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/AudioStreamManager.java
index 52b4db580..0e4a2ed2c 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/AudioStreamManager.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/AudioStreamManager.java
@@ -38,11 +38,12 @@ import android.net.Uri;
import android.os.Build;
import android.os.Handler;
import android.os.Looper;
+
import androidx.annotation.IntDef;
import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
-import com.smartdevicelink.SdlConnection.SdlSession;
+import com.smartdevicelink.session.SdlSession;
import com.smartdevicelink.managers.CompletionListener;
import com.smartdevicelink.managers.StreamingStateMachine;
import com.smartdevicelink.managers.lifecycle.OnSystemCapabilityListener;
@@ -50,9 +51,8 @@ import com.smartdevicelink.protocol.ProtocolMessage;
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.protocol.enums.SessionType;
import com.smartdevicelink.proxy.RPCNotification;
-import com.smartdevicelink.proxy.interfaces.IAudioStreamListener;
-import com.smartdevicelink.proxy.interfaces.ISdl;
-import com.smartdevicelink.proxy.interfaces.ISdlServiceListener;
+import com.smartdevicelink.managers.ISdl;
+import com.smartdevicelink.protocol.ISdlServiceListener;
import com.smartdevicelink.proxy.rpc.AudioPassThruCapabilities;
import com.smartdevicelink.proxy.rpc.OnHMIStatus;
import com.smartdevicelink.proxy.rpc.enums.HMILevel;
@@ -61,6 +61,7 @@ import com.smartdevicelink.proxy.rpc.enums.SystemCapabilityType;
import com.smartdevicelink.proxy.rpc.listeners.OnRPCNotificationListener;
import com.smartdevicelink.streaming.IStreamListener;
import com.smartdevicelink.streaming.StreamPacketizer;
+import com.smartdevicelink.streaming.audio.IAudioStreamListener;
import com.smartdevicelink.transport.utl.TransportRecord;
import com.smartdevicelink.util.DebugTool;
import com.smartdevicelink.util.Version;
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/BaseAudioDecoder.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/BaseAudioDecoder.java
index 53e3d64f0..d7f4f3a7c 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/BaseAudioDecoder.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/BaseAudioDecoder.java
@@ -38,6 +38,7 @@ import android.media.MediaExtractor;
import android.media.MediaFormat;
import android.net.Uri;
import android.os.Build;
+
import androidx.annotation.NonNull;
import com.smartdevicelink.managers.audio.AudioStreamManager.SampleType;
@@ -109,7 +110,7 @@ public abstract class BaseAudioDecoder {
for (int i = 0; i < numTracks; ++i) {
MediaFormat f = extractor.getTrackFormat(i);
String m = f.getString(MediaFormat.KEY_MIME);
- if (m.startsWith("audio/")) {
+ if (m != null && m.startsWith("audio/")) {
format = f;
mime = m;
extractor.selectTrack(i);
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/SampleBuffer.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/SampleBuffer.java
index 05a9cc285..0993b2ec2 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/SampleBuffer.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/SampleBuffer.java
@@ -44,7 +44,6 @@ import java.nio.ByteOrder;
public class SampleBuffer {
private static final String TAG = SampleBuffer.class.getSimpleName();
- @SuppressWarnings({"unused", "FieldCanBeLocal"})
private @SampleType final int sampleType;
private final ByteBuffer byteBuffer;
private final int channelCount;
@@ -94,7 +93,6 @@ public class SampleBuffer {
* @param presentationTimeUs The presentation time for the buffer.
* @return A new and empty sample buffer.
*/
- @SuppressWarnings("unused")
public static SampleBuffer allocate(int capacity, @SampleType int sampleType, int channelCount, ByteOrder byteOrder, long presentationTimeUs) {
return new SampleBuffer(capacity, sampleType, channelCount, byteOrder, presentationTimeUs);
}
@@ -117,7 +115,6 @@ public class SampleBuffer {
/**
* Returns the capacity of the buffer per channel.
*/
- @SuppressWarnings("unused")
public int capacity() {
return byteBuffer.capacity() / sampleType / channelCount;
}
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/file/FileManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/file/FileManager.java
index 0efc3b6ff..6b98e9b58 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/file/FileManager.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/file/FileManager.java
@@ -35,11 +35,12 @@ package com.smartdevicelink.managers.file;
import android.content.Context;
import android.content.res.Resources;
import android.net.Uri;
+
import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
+import com.smartdevicelink.managers.ISdl;
import com.smartdevicelink.managers.file.filetypes.SdlFile;
-import com.smartdevicelink.proxy.interfaces.ISdl;
import com.smartdevicelink.proxy.rpc.PutFile;
import com.smartdevicelink.util.DebugTool;
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/file/filetypes/SdlArtwork.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/file/filetypes/SdlArtwork.java
index d0e46f7e5..afceb04a1 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/file/filetypes/SdlArtwork.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/file/filetypes/SdlArtwork.java
@@ -33,6 +33,7 @@
package com.smartdevicelink.managers.file.filetypes;
import android.net.Uri;
+
import androidx.annotation.NonNull;
import com.smartdevicelink.proxy.rpc.Image;
@@ -111,7 +112,7 @@ public class SdlArtwork extends SdlFile implements Cloneable{
}
@Override
- public void setType(FileType fileType) {
+ public void setType(@NonNull FileType fileType) {
if(fileType == null || fileType.equals(FileType.GRAPHIC_JPEG) || fileType.equals(FileType.GRAPHIC_PNG)
|| fileType.equals(FileType.GRAPHIC_BMP)){
super.setType(fileType);
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/file/filetypes/SdlFile.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/file/filetypes/SdlFile.java
index 4fe5e3898..2b978c790 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/file/filetypes/SdlFile.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/file/filetypes/SdlFile.java
@@ -33,6 +33,7 @@
package com.smartdevicelink.managers.file.filetypes;
import android.net.Uri;
+
import androidx.annotation.NonNull;
import com.smartdevicelink.proxy.rpc.enums.FileType;
@@ -40,6 +41,7 @@ import com.smartdevicelink.proxy.rpc.enums.StaticIconName;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
+import java.util.Arrays;
/**
* A class representing data to be uploaded to core
@@ -317,7 +319,7 @@ public class SdlFile{
int result = 1;
result += ((getName() == null) ? 0 : Integer.rotateLeft(getName().hashCode(), 1));
result += ((getUri() == null) ? 0 : Integer.rotateLeft(getUri().hashCode(), 2));
- result += ((getFileData() == null) ? 0 : Integer.rotateLeft(getFileData().hashCode(), 3));
+ result += ((getFileData() == null) ? 0 : Integer.rotateLeft(Arrays.hashCode(getFileData()), 3));
result += ((getType() == null) ? 0 : Integer.rotateLeft(getType().hashCode(), 4));
result += Integer.rotateLeft(Boolean.valueOf(isStaticIcon()).hashCode(), 5);
result += Integer.rotateLeft(Boolean.valueOf(isPersistent()).hashCode(), 6);
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/lifecycle/EncryptionLifecycleManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/lifecycle/EncryptionLifecycleManager.java
index ae7a0886e..b2749212e 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/lifecycle/EncryptionLifecycleManager.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/lifecycle/EncryptionLifecycleManager.java
@@ -34,9 +34,9 @@ package com.smartdevicelink.managers.lifecycle;
import androidx.annotation.NonNull;
+import com.smartdevicelink.managers.ISdl;
import com.smartdevicelink.managers.ServiceEncryptionListener;
import com.smartdevicelink.protocol.enums.SessionType;
-import com.smartdevicelink.proxy.interfaces.ISdl;
class EncryptionLifecycleManager extends BaseEncryptionLifecycleManager {
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleManager.java
index 78233dc0f..e5aee6c3e 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleManager.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleManager.java
@@ -32,15 +32,15 @@
package com.smartdevicelink.managers.lifecycle;
-import android.app.Service;
import android.content.Context;
+
import androidx.annotation.RestrictTo;
-import com.smartdevicelink.SdlConnection.SdlSession;
+import com.smartdevicelink.session.SdlSession;
import com.smartdevicelink.exception.SdlException;
import com.smartdevicelink.exception.SdlExceptionCause;
+import com.smartdevicelink.protocol.ISdlServiceListener;
import com.smartdevicelink.protocol.enums.SessionType;
-import com.smartdevicelink.proxy.interfaces.ISdlServiceListener;
import com.smartdevicelink.proxy.rpc.enums.SdlDisconnectedReason;
import com.smartdevicelink.proxy.rpc.enums.SystemCapabilityType;
import com.smartdevicelink.security.SdlSecurityBase;
@@ -52,8 +52,6 @@ import com.smartdevicelink.transport.enums.TransportType;
import com.smartdevicelink.util.DebugTool;
import java.lang.ref.WeakReference;
-import java.util.ArrayList;
-import java.util.Collections;
/**
* The lifecycle manager creates a central point for all SDL session logic to converge. It should only be used by
@@ -157,10 +155,6 @@ public class LifecycleManager extends BaseLifecycleManager {
*
* @param isEncrypted Specify true if packets on this service have to be encrypted
* @param parameters VideoStreamingParameters that are desired. Does not guarantee this is what will be accepted.
- * @return If the service is opened successfully, an instance of VideoStreamingParams is
- * returned which contains accepted video format. If the service is opened with legacy
- * mode (i.e. without any negotiation) then an instance of VideoStreamingParams is
- * returned. If the service was not opened then null is returned.
*/
private void tryStartVideoStream(boolean isEncrypted, VideoStreamingParameters parameters) {
if (session == null) {
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/lifecycle/SystemCapabilityManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/lifecycle/SystemCapabilityManager.java
index e4e635883..e10693770 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/lifecycle/SystemCapabilityManager.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/lifecycle/SystemCapabilityManager.java
@@ -31,7 +31,7 @@
*/
package com.smartdevicelink.managers.lifecycle;
-import com.smartdevicelink.proxy.interfaces.ISdl;
+import com.smartdevicelink.managers.ISdl;
/**
* <strong>SystemCapabilityManager</strong> <br>
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenConfig.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenConfig.java
index 8d1e9a6c8..df1db5475 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenConfig.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenConfig.java
@@ -60,7 +60,9 @@ import java.lang.annotation.RetentionPolicy;
*/
public class LockScreenConfig {
- private boolean enable, deviceLogo, enableDismissGesture;
+ private final boolean enable;
+ private boolean deviceLogo;
+ private boolean enableDismissGesture;
private int backgroundColor, appIconInt, customViewInt;
private @DisplayMode int displayMode;
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenDeviceIconManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenDeviceIconManager.java
index 711afcc72..603435800 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenDeviceIconManager.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenDeviceIconManager.java
@@ -24,7 +24,7 @@ import java.security.NoSuchAlgorithmException;
*/
class LockScreenDeviceIconManager {
- private Context context;
+ private final Context context;
private static final String SDL_DEVICE_STATUS_SHARED_PREFS = "sdl.lockScreenIcon";
private static final String STORED_ICON_DIRECTORY_PATH = "sdl/lock_screen_icon/";
private static final String TAG = "LockScreenDeviceIconManager";
@@ -47,7 +47,7 @@ class LockScreenDeviceIconManager {
* @param iconRetrievedListener an interface that will implement onIconReceived and OnError methods
*/
void retrieveIcon(String iconURL, OnIconRetrievedListener iconRetrievedListener) {
- Bitmap icon = null;
+ Bitmap icon;
try {
if (isIconCachedAndValid(iconURL)) {
DebugTool.logInfo(TAG, "Icon Is Up To Date");
@@ -127,7 +127,7 @@ class LockScreenDeviceIconManager {
icon.compress(Bitmap.CompressFormat.PNG, 0 /*ignored for PNG*/, bos);
byte[] bitmapData = bos.toByteArray();
- FileOutputStream fos = null;
+ FileOutputStream fos;
try {
fos = new FileOutputStream(f);
fos.write(bitmapData);
@@ -189,11 +189,11 @@ class LockScreenDeviceIconManager {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] messageDigest = md.digest(iconUrl.getBytes());
BigInteger no = new BigInteger(1, messageDigest);
- String hashtext = no.toString(16);
- while (hashtext.length() < 32) {
- hashtext = "0" + hashtext;
+ StringBuilder hashText = new StringBuilder(no.toString(16));
+ while (hashText.length() < 32) {
+ hashText.insert(0, "0");
}
- iconHash = hashtext;
+ iconHash = hashText.toString();
} catch (NoSuchAlgorithmException e) {
DebugTool.logError(TAG, "Unable to hash icon url");
e.printStackTrace();
@@ -208,7 +208,9 @@ class LockScreenDeviceIconManager {
File iconDir = new File(context.getCacheDir() + "/" + STORED_ICON_DIRECTORY_PATH);
if (iconDir.listFiles() != null) {
for (File child : iconDir.listFiles()) {
- child.delete();
+ if (child != null) {
+ child.delete();
+ }
}
}
}
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenManager.java
index 06f992875..56975a390 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenManager.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenManager.java
@@ -44,7 +44,7 @@ import com.smartdevicelink.managers.BaseSubManager;
import com.smartdevicelink.managers.CompletionListener;
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCNotification;
-import com.smartdevicelink.proxy.interfaces.ISdl;
+import com.smartdevicelink.managers.ISdl;
import com.smartdevicelink.proxy.rpc.OnDriverDistraction;
import com.smartdevicelink.proxy.rpc.OnHMIStatus;
import com.smartdevicelink.proxy.rpc.OnSystemRequest;
@@ -70,19 +70,26 @@ import java.lang.ref.WeakReference;
public class LockScreenManager extends BaseSubManager {
private static final String TAG = "LockScreenManager";
- private WeakReference<Context> context;
+ private final WeakReference<Context> context;
HMILevel hmiLevel;
private OnRPCNotificationListener systemRequestListener, ddListener, hmiListener;
private String deviceIconUrl;
- boolean driverDistStatus, mIsLockscreenDismissible, enableDismissGesture, lockScreenEnabled, deviceLogoEnabled;
+ boolean driverDistStatus;
+ boolean mIsLockscreenDismissible;
+ boolean enableDismissGesture;
+ final boolean lockScreenEnabled;
+ final boolean deviceLogoEnabled;
private volatile boolean isApplicationForegrounded;
private androidx.lifecycle.LifecycleObserver lifecycleObserver;
- int lockScreenIcon, lockScreenColor, customView, displayMode;
+ final int lockScreenIcon;
+ final int lockScreenColor;
+ final int customView;
+ int displayMode;
Bitmap deviceLogo;
private boolean mLockScreenHasBeenDismissed, lockscreenDismissReceiverRegistered, receivedFirstDDNotification;
private String mLockscreenWarningMsg;
private BroadcastReceiver mLockscreenDismissedReceiver;
- private LockScreenDeviceIconManager mLockScreenDeviceIconManager;
+ private final LockScreenDeviceIconManager mLockScreenDeviceIconManager;
public LockScreenManager(LockScreenConfig lockScreenConfig, Context context, ISdl internalInterface){
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/SDLLockScreenActivity.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/SDLLockScreenActivity.java
index a1af673a2..3007d081a 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/SDLLockScreenActivity.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/SDLLockScreenActivity.java
@@ -55,7 +55,6 @@ import com.smartdevicelink.R;
public class SDLLockScreenActivity extends Activity {
- private static final String TAG = "SDLLockScreenActivity";
public static final String LOCKSCREEN_COLOR_EXTRA = "LOCKSCREEN_COLOR_EXTRA";
public static final String LOCKSCREEN_ICON_EXTRA = "LOCKSCREEN_ICON_EXTRA";
public static final String LOCKSCREEN_DEVICE_LOGO_EXTRA = "LOCKSCREEN_DEVICE_LOGO_EXTRA";
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/permission/PermissionManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/permission/PermissionManager.java
index 7430c3143..540cbbf20 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/permission/PermissionManager.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/permission/PermissionManager.java
@@ -35,7 +35,7 @@ package com.smartdevicelink.managers.permission;
import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
-import com.smartdevicelink.proxy.interfaces.ISdl;
+import com.smartdevicelink.managers.ISdl;
/**
PermissionManager gives the developer information about what permissions are permitted in specific HMI level
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/ScreenManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/ScreenManager.java
index 31c6da0b1..00bb57628 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/ScreenManager.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/ScreenManager.java
@@ -35,8 +35,8 @@ package com.smartdevicelink.managers.screen;
import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
+import com.smartdevicelink.managers.ISdl;
import com.smartdevicelink.managers.file.FileManager;
-import com.smartdevicelink.proxy.interfaces.ISdl;
/**
* <strong>ScreenManager</strong> <br>
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/SoftButtonManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/SoftButtonManager.java
index 5499d3a5a..8e30bb446 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/SoftButtonManager.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/SoftButtonManager.java
@@ -35,8 +35,8 @@ package com.smartdevicelink.managers.screen;
import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
+import com.smartdevicelink.managers.ISdl;
import com.smartdevicelink.managers.file.FileManager;
-import com.smartdevicelink.proxy.interfaces.ISdl;
/**
* <strong>SoftButtonManager</strong> <br>
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/SubscribeButtonManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/SubscribeButtonManager.java
index 9f08bef36..eba3c9b2f 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/SubscribeButtonManager.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/SubscribeButtonManager.java
@@ -3,7 +3,7 @@ package com.smartdevicelink.managers.screen;
import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
-import com.smartdevicelink.proxy.interfaces.ISdl;
+import com.smartdevicelink.managers.ISdl;
/**
* <strong>SubscribeButtonManager</strong> <br>
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/TextAndGraphicManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/TextAndGraphicManager.java
index fe216ea5f..b4154cdf0 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/TextAndGraphicManager.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/TextAndGraphicManager.java
@@ -36,9 +36,9 @@ import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
import com.smartdevicelink.R;
+import com.smartdevicelink.managers.ISdl;
import com.smartdevicelink.managers.file.FileManager;
import com.smartdevicelink.managers.file.filetypes.SdlArtwork;
-import com.smartdevicelink.proxy.interfaces.ISdl;
import com.smartdevicelink.proxy.rpc.enums.FileType;
/**
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/choiceset/ChoiceSetManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/choiceset/ChoiceSetManager.java
index f0895fe22..887d40e94 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/choiceset/ChoiceSetManager.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/choiceset/ChoiceSetManager.java
@@ -35,8 +35,8 @@ package com.smartdevicelink.managers.screen.choiceset;
import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
+import com.smartdevicelink.managers.ISdl;
import com.smartdevicelink.managers.file.FileManager;
-import com.smartdevicelink.proxy.interfaces.ISdl;
/**
* <strong>ChoiceSetManager</strong> <br>
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/menu/MenuManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/menu/MenuManager.java
index d29312cdf..b2055c976 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/menu/MenuManager.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/menu/MenuManager.java
@@ -34,8 +34,8 @@ package com.smartdevicelink.managers.screen.menu;
import androidx.annotation.RestrictTo;
+import com.smartdevicelink.managers.ISdl;
import com.smartdevicelink.managers.file.FileManager;
-import com.smartdevicelink.proxy.interfaces.ISdl;
/**
* <strong>MenuManager</strong> <br>
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/menu/VoiceCommandManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/menu/VoiceCommandManager.java
index afde7404d..641ab189e 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/menu/VoiceCommandManager.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/menu/VoiceCommandManager.java
@@ -34,7 +34,7 @@ package com.smartdevicelink.managers.screen.menu;
import androidx.annotation.RestrictTo;
-import com.smartdevicelink.proxy.interfaces.ISdl;
+import com.smartdevicelink.managers.ISdl;
/**
* <strong>VoiceCommandManager</strong> <br>
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/video/HapticInterfaceManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/video/HapticInterfaceManager.java
index 78b6bb03b..36863bc99 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/video/HapticInterfaceManager.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/video/HapticInterfaceManager.java
@@ -1,30 +1,30 @@
-/***************************************************************************************************
- * Copyright © 2017 Xevo Inc.
- * Redistribution and use in source and binary forms, with or without modification, are permitted
- * provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright notice, this list of conditions
- * and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice, this list of
- * conditions and the following disclaimer in the documentation and/or other materials provided
- * with the distribution.
- * 3. Neither the name of the copyright holder nor the names of its contributors may be used to
- * endorse or promote products derived from this software without specific prior written
- * permission.
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
- * WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- **************************************************************************************************/
+/**************************************************************************************************
+ Copyright © 2017 Xevo Inc.
+ Redistribution and use in source and binary forms, with or without modification, are permitted
+ provided that the following conditions are met:
+ 1. Redistributions of source code must retain the above copyright notice, this list of conditions
+ and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice, this list of
+ conditions and the following disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ 3. Neither the name of the copyright holder nor the names of its contributors may be used to
+ endorse or promote products derived from this software without specific prior written
+ permission.
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
+ WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
package com.smartdevicelink.managers.video;
import android.view.View;
import android.view.ViewGroup;
-import com.smartdevicelink.proxy.interfaces.ISdl;
+import com.smartdevicelink.managers.ISdl;
import com.smartdevicelink.proxy.rpc.HapticRect;
import com.smartdevicelink.proxy.rpc.Rectangle;
import com.smartdevicelink.proxy.rpc.SendHapticData;
@@ -45,7 +45,7 @@ import java.util.List;
class HapticInterfaceManager extends BaseHapticInterfaceManager {
private static final String TAG = "Haptic";
- private WeakReference<ISdl> proxyHolder;
+ private final WeakReference<ISdl> proxyHolder;
private List<HapticRect> userHapticData;
HapticInterfaceManager(ISdl proxy) {
@@ -70,7 +70,7 @@ class HapticInterfaceManager extends BaseHapticInterfaceManager {
}
/**
- * Sends haptic data found by searching for focusable and clickable Views in the view heirarchy
+ * Sends haptic data found by searching for focusable and clickable Views in the view hierarchy
* to the HU. Should be called by Presentation's OnShowListener.
*
* @param root
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/video/VideoStreamManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/video/VideoStreamManager.java
index 77467f429..a8c3a74be 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/video/VideoStreamManager.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/video/VideoStreamManager.java
@@ -42,19 +42,18 @@ import android.view.MotionEvent;
import androidx.annotation.RestrictTo;
-import com.smartdevicelink.SdlConnection.SdlSession;
+import com.smartdevicelink.session.SdlSession;
import com.smartdevicelink.encoder.VirtualDisplayEncoder;
import com.smartdevicelink.managers.BaseSubManager;
import com.smartdevicelink.managers.CompletionListener;
+import com.smartdevicelink.managers.ISdl;
import com.smartdevicelink.managers.StreamingStateMachine;
import com.smartdevicelink.managers.lifecycle.OnSystemCapabilityListener;
+import com.smartdevicelink.protocol.ISdlServiceListener;
import com.smartdevicelink.protocol.ProtocolMessage;
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.protocol.enums.SessionType;
import com.smartdevicelink.proxy.RPCNotification;
-import com.smartdevicelink.proxy.interfaces.ISdl;
-import com.smartdevicelink.proxy.interfaces.ISdlServiceListener;
-import com.smartdevicelink.proxy.interfaces.IVideoStreamListener;
import com.smartdevicelink.proxy.rpc.DisplayCapabilities;
import com.smartdevicelink.proxy.rpc.ImageResolution;
import com.smartdevicelink.proxy.rpc.OnHMIStatus;
@@ -73,6 +72,7 @@ import com.smartdevicelink.proxy.rpc.listeners.OnRPCNotificationListener;
import com.smartdevicelink.streaming.AbstractPacketizer;
import com.smartdevicelink.streaming.IStreamListener;
import com.smartdevicelink.streaming.StreamPacketizer;
+import com.smartdevicelink.streaming.video.IVideoStreamListener;
import com.smartdevicelink.streaming.video.RTPH264Packetizer;
import com.smartdevicelink.streaming.video.SdlRemoteDisplay;
import com.smartdevicelink.streaming.video.VideoStreamingParameters;
@@ -89,17 +89,17 @@ import java.util.concurrent.FutureTask;
@TargetApi(19)
public class VideoStreamManager extends BaseVideoStreamManager {
- private static String TAG = "VideoStreamManager";
+ private static final String TAG = "VideoStreamManager";
private WeakReference<Context> context;
private volatile VirtualDisplayEncoder virtualDisplayEncoder;
private Class<? extends SdlRemoteDisplay> remoteDisplayClass = null;
private SdlRemoteDisplay remoteDisplay;
- private float[] touchScalar = {1.0f,1.0f}; //x, y
+ private final float[] touchScalar = {1.0f,1.0f}; //x, y
private HapticInterfaceManager hapticManager;
private SdlMotionEvent sdlMotionEvent = null;
private OnHMIStatus currentOnHMIStatus;
- private StreamingStateMachine stateMachine;
+ private final StreamingStateMachine stateMachine;
private VideoStreamingParameters parameters;
private IVideoStreamListener streamListener;
private boolean isTransportAvailable = false;
@@ -466,13 +466,13 @@ public class VideoStreamManager extends BaseVideoStreamManager {
remoteDisplay.dismissPresentation();
}
- FutureTask<Boolean> fTask = new FutureTask<Boolean>( new SdlRemoteDisplay.Creator(context.get(), disp, remoteDisplay, remoteDisplayClass, new SdlRemoteDisplay.Callback(){
+ FutureTask<Boolean> fTask = new FutureTask<>(new SdlRemoteDisplay.Creator(context.get(), disp, remoteDisplay, remoteDisplayClass, new SdlRemoteDisplay.Callback() {
@Override
public void onCreated(final SdlRemoteDisplay remoteDisplay) {
//Remote display has been created.
//Now is a good time to do parsing for spatial data
VideoStreamManager.this.remoteDisplay = remoteDisplay;
- if(hapticManager != null) {
+ if (hapticManager != null) {
remoteDisplay.getMainView().post(new Runnable() {
@Override
public void run() {
@@ -482,17 +482,17 @@ public class VideoStreamManager extends BaseVideoStreamManager {
}
//Get touch scalars
ImageResolution resolution = null;
- if(internalInterface.getProtocolVersion().getMajor() >= 5){ //At this point we should already have the capability
+ if (internalInterface.getProtocolVersion().getMajor() >= 5) { //At this point we should already have the capability
VideoStreamingCapability capability = null;
if (internalInterface.getSystemCapabilityManager() != null) {
capability = (VideoStreamingCapability) internalInterface.getSystemCapabilityManager().getCapability(SystemCapabilityType.VIDEO_STREAMING, null, false);
}
- if(capability != null){
+ if (capability != null) {
resolution = capability.getPreferredResolution();
}
}
- if(resolution == null){ //Either the protocol version is too low to access video streaming caps, or they were null
+ if (resolution == null) { //Either the protocol version is too low to access video streaming caps, or they were null
DisplayCapabilities dispCap = null;
if (internalInterface.getSystemCapabilityManager() != null) {
dispCap = (DisplayCapabilities) internalInterface.getSystemCapabilityManager().getCapability(SystemCapabilityType.DISPLAY, null, false);
@@ -502,11 +502,11 @@ public class VideoStreamManager extends BaseVideoStreamManager {
}
}
- if(resolution != null){
+ if (resolution != null) {
DisplayMetrics displayMetrics = new DisplayMetrics();
disp.getMetrics(displayMetrics);
createTouchScalar(resolution, displayMetrics);
- }
+ }
}
@@ -514,7 +514,7 @@ public class VideoStreamManager extends BaseVideoStreamManager {
public void onInvalidated(final SdlRemoteDisplay remoteDisplay) {
//Our view has been invalidated
//A good time to refresh spatial data
- if(hapticManager != null) {
+ if (hapticManager != null) {
remoteDisplay.getMainView().post(new Runnable() {
@Override
public void run() {
@@ -523,7 +523,7 @@ public class VideoStreamManager extends BaseVideoStreamManager {
});
}
}
- } ));
+ }));
Thread showPresentation = new Thread(fTask);
showPresentation.setName("RmtDispThread");
@@ -562,7 +562,7 @@ public class VideoStreamManager extends BaseVideoStreamManager {
}
List<MotionEvent> convertTouchEvent(OnTouchEvent onTouchEvent){
- List<MotionEvent> motionEventList = new ArrayList<MotionEvent>();
+ List<MotionEvent> motionEventList = new ArrayList<>();
List<TouchEvent> touchEventList = onTouchEvent.getEvent();
if (touchEventList == null || touchEventList.size() == 0) return null;
@@ -643,7 +643,7 @@ public class VideoStreamManager extends BaseVideoStreamManager {
*/
private static class SdlMotionEvent {
class Pointer {
- int id;
+ final int id;
float x;
float y;
Pointer (int id) {
@@ -657,7 +657,7 @@ public class VideoStreamManager extends BaseVideoStreamManager {
}
}
- private CopyOnWriteArrayList<Pointer> pointers = new CopyOnWriteArrayList<>();
+ private final CopyOnWriteArrayList<Pointer> pointers = new CopyOnWriteArrayList<>();
private long downTime;
private long downTimeOnHMI;
private long eventTime;
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/protocol/SdlPacket.java b/android/sdl_android/src/main/java/com/smartdevicelink/protocol/SdlPacket.java
index 723af1939..707f55c01 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/protocol/SdlPacket.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/protocol/SdlPacket.java
@@ -34,7 +34,7 @@ public class SdlPacket extends BaseSdlPacket implements Parcelable {
}
/* ***************************************************************************************************************************************************
- * *********************************************************** Parceable Overrides *****************************************************************
+ * *********************************************************** Parcelable Overrides *****************************************************************
*****************************************************************************************************************************************************/
@@ -42,7 +42,7 @@ public class SdlPacket extends BaseSdlPacket implements Parcelable {
//I think this is FIFO...right?
public SdlPacket(Parcel p) {
this.version = p.readInt();
- this.encryption = (p.readInt() == 0) ? false : true;
+ this.encryption = p.readInt() != 0;
this.frameType = p.readInt();
this.serviceType = p.readInt();
this.frameInfo = p.readInt();
@@ -61,7 +61,7 @@ public class SdlPacket extends BaseSdlPacket implements Parcelable {
messagingVersion = p.readInt();
if (messagingVersion >= 2) {
if (p.readInt() == 1) { //We should have a transport type attached
- this.transportRecord = (TransportRecord) p.readParcelable(TransportRecord.class.getClassLoader());
+ this.transportRecord = p.readParcelable(TransportRecord.class.getClassLoader());
}
}
}catch (RuntimeException e){
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/protocol/SdlProtocol.java b/android/sdl_android/src/main/java/com/smartdevicelink/protocol/SdlProtocol.java
index fd6ac275f..2f5771548 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/protocol/SdlProtocol.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/protocol/SdlProtocol.java
@@ -51,7 +51,6 @@ public class SdlProtocol extends SdlProtocolBase {
private static final String TAG ="SdlProtocol";
- @SuppressWarnings("ConstantConditions")
public SdlProtocol(@NonNull ISdlProtocol iSdlProtocol, @NonNull MultiplexTransportConfig config) {
super(iSdlProtocol,config);
this.requestedPrimaryTransports = config.getPrimaryTransports();
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/protocol/heartbeat/HeartbeatMonitor.java b/android/sdl_android/src/main/java/com/smartdevicelink/protocol/heartbeat/HeartbeatMonitor.java
index dd65cc3a4..b0fcc73f3 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/protocol/heartbeat/HeartbeatMonitor.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/protocol/heartbeat/HeartbeatMonitor.java
@@ -47,7 +47,7 @@ public class HeartbeatMonitor implements IHeartbeatMonitor {
private final Object listenerLock = new Object();
private int mHeartBeatInterval = HEARTBEAT_INTERVAL;
- private boolean mHeartBeatAck = true;
+ private final boolean mHeartBeatAck = true;
private IHeartbeatMonitorListener mListener;
private volatile boolean mIsAckReceived;
@@ -64,7 +64,7 @@ public class HeartbeatMonitor implements IHeartbeatMonitor {
public Runnable getHeartbeatRunnable () { return heartbeatTimeoutRunnable; }
public boolean isHeartbeatReceived () { return isHeartbeatReceived; }
- private Runnable heartbeatTimeoutRunnable = new Runnable() {
+ private final Runnable heartbeatTimeoutRunnable = new Runnable() {
@Override
public void run() {
@@ -91,7 +91,7 @@ public class HeartbeatMonitor implements IHeartbeatMonitor {
}
};
- private Runnable heartbeatAckTimeoutRunnable = new Runnable() {
+ private final Runnable heartbeatAckTimeoutRunnable = new Runnable() {
@Override
public void run() {
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/protocol/heartbeat/IHeartbeatMonitor.java b/android/sdl_android/src/main/java/com/smartdevicelink/protocol/heartbeat/IHeartbeatMonitor.java
index 6ad5fb001..68e8709f4 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/protocol/heartbeat/IHeartbeatMonitor.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/protocol/heartbeat/IHeartbeatMonitor.java
@@ -38,19 +38,19 @@ public interface IHeartbeatMonitor {
/**
* Starts the monitor. If the monitor is already started, nothing happens.
*/
- public void start();
+ void start();
/**
* Stops the monitor. Does nothing if it is already stopped.
*/
- public void stop();
+ void stop();
/**
* Returns the heartbeat messages interval.
*
* @return interval in milliseconds
*/
- public int getInterval();
+ int getInterval();
/**
* Sets the interval for sending heartbeat messages if nothing is sent over
@@ -59,34 +59,34 @@ public interface IHeartbeatMonitor {
* @param interval interval in milliseconds (min/max values depend on
* concrete implementations)
*/
- public void setInterval(int interval);
+ void setInterval(int interval);
/**
* Returns the listener.
*
* @return the listener
*/
- public IHeartbeatMonitorListener getListener();
+ IHeartbeatMonitorListener getListener();
/**
* Sets the heartbeat's listener.
*
* @param listener the new listener
*/
- public void setListener(IHeartbeatMonitorListener listener);
+ void setListener(IHeartbeatMonitorListener listener);
/**
* Notifies the monitor about sent/received messages.
*/
- public void notifyTransportActivity();
+ void notifyTransportActivity();
/**
* Notifies the monitor about a received heartbeat ACK message.
*/
- public void heartbeatACKReceived();
+ void heartbeatACKReceived();
/**
* Notifies the monitor about a received heartbeat message.
*/
- public void heartbeatReceived();
+ void heartbeatReceived();
} \ No newline at end of file
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/protocol/heartbeat/IHeartbeatMonitorListener.java b/android/sdl_android/src/main/java/com/smartdevicelink/protocol/heartbeat/IHeartbeatMonitorListener.java
index 26f3535b2..e95a6a5ec 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/protocol/heartbeat/IHeartbeatMonitorListener.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/protocol/heartbeat/IHeartbeatMonitorListener.java
@@ -45,12 +45,12 @@ public interface IHeartbeatMonitorListener {
*
* @param monitor the caller
*/
- public void sendHeartbeat(IHeartbeatMonitor monitor);
+ void sendHeartbeat(IHeartbeatMonitor monitor);
/**
* Notifies the listener that the heartbeat timed out.
*
* @param monitor the caller
*/
- public void heartbeatTimedOut(IHeartbeatMonitor monitor);
+ void heartbeatTimedOut(IHeartbeatMonitor monitor);
}
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/SdlConnection/SdlSession.java b/android/sdl_android/src/main/java/com/smartdevicelink/session/SdlSession.java
index c57743a2f..f7c1e18d6 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/SdlConnection/SdlSession.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/session/SdlSession.java
@@ -30,18 +30,18 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
-package com.smartdevicelink.SdlConnection;
+package com.smartdevicelink.session;
import android.content.Context;
import androidx.annotation.RestrictTo;
import com.smartdevicelink.exception.SdlException;
+import com.smartdevicelink.protocol.ISdlServiceListener;
import com.smartdevicelink.protocol.SdlPacket;
import com.smartdevicelink.protocol.SdlProtocol;
import com.smartdevicelink.protocol.SdlProtocolBase;
import com.smartdevicelink.protocol.enums.SessionType;
-import com.smartdevicelink.proxy.interfaces.ISdlServiceListener;
import com.smartdevicelink.transport.MultiplexTransportConfig;
import com.smartdevicelink.transport.TCPTransportConfig;
import com.smartdevicelink.transport.enums.TransportType;
@@ -98,7 +98,8 @@ public class SdlSession extends BaseSdlSession {
}
// If requiresAudioSupport is false, or a supported audio output device is available
- return !requiresAudioSupport || mediaStreamingStatus.isAudioOutputAvailable();
+ boolean isAudioOutputAvailable = mediaStreamingStatus != null && mediaStreamingStatus.isAudioOutputAvailable();
+ return !requiresAudioSupport || isAudioOutputAvailable;
}
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/streaming/StreamPacketizer.java b/android/sdl_android/src/main/java/com/smartdevicelink/streaming/StreamPacketizer.java
index 24608ecfe..7bd091596 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/streaming/StreamPacketizer.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/streaming/StreamPacketizer.java
@@ -33,12 +33,12 @@ package com.smartdevicelink.streaming;
import androidx.annotation.RestrictTo;
-import com.smartdevicelink.SdlConnection.SdlSession;
+import com.smartdevicelink.session.SdlSession;
import com.smartdevicelink.managers.CompletionListener;
import com.smartdevicelink.protocol.ProtocolMessage;
import com.smartdevicelink.protocol.enums.SessionType;
-import com.smartdevicelink.proxy.interfaces.IAudioStreamListener;
-import com.smartdevicelink.proxy.interfaces.IVideoStreamListener;
+import com.smartdevicelink.streaming.audio.IAudioStreamListener;
+import com.smartdevicelink.streaming.video.IVideoStreamListener;
import com.smartdevicelink.util.DebugTool;
import java.io.IOException;
@@ -68,14 +68,13 @@ public class StreamPacketizer extends AbstractPacketizer implements IVideoStream
// a limit of the buffer size, we avoid buffer overflows when underlying transport is too slow.
private static final int MAX_QUEUE_SIZE = 256 * 1024;
- private Object mPauseLock;
+ private final Object mPauseLock = new Object();
private boolean mPaused;
private boolean isServiceProtected = false;
private BlockingQueue<ByteBufferWithListener> mOutputQueue;
public StreamPacketizer(IStreamListener streamListener, InputStream is, SessionType sType, byte rpcSessionID, SdlSession session) throws IOException {
super(streamListener, is, sType, rpcSessionID, session);
- mPauseLock = new Object();
mPaused = false;
isServiceProtected = _session.isServiceProtected(_serviceType);
if (bufferSize == 0) {
@@ -87,7 +86,7 @@ public class StreamPacketizer extends AbstractPacketizer implements IVideoStream
bufferSize = BUFF_READ_SIZE;
buffer = new byte[bufferSize];
}
- mOutputQueue = new LinkedBlockingQueue<ByteBufferWithListener>(MAX_QUEUE_SIZE / bufferSize);
+ mOutputQueue = new LinkedBlockingQueue<>(MAX_QUEUE_SIZE / bufferSize);
}
public void start() throws IOException {
@@ -158,7 +157,7 @@ public class StreamPacketizer extends AbstractPacketizer implements IVideoStream
}
while (frame.hasRemaining()) {
- int len = frame.remaining() > bufferSize ? bufferSize : frame.remaining();
+ int len = Math.min(frame.remaining(), bufferSize);
ProtocolMessage pm = new ProtocolMessage();
pm.setSessionID(_rpcSessionID);
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/streaming/video/SdlRemoteDisplay.java b/android/sdl_android/src/main/java/com/smartdevicelink/streaming/video/SdlRemoteDisplay.java
index cdb80ef1e..e22fbb9c6 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/streaming/video/SdlRemoteDisplay.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/streaming/video/SdlRemoteDisplay.java
@@ -51,7 +51,7 @@ import java.lang.reflect.Constructor;
import java.util.concurrent.Callable;
/**
- * SdlRemoteDisplay is an abstract class that should be extended by developers to creat their remote displays.
+ * SdlRemoteDisplay is an abstract class that should be extended by developers to create their remote displays.
* All logic for UI events can be stored in their extension.
*
* <br><br> <b>NOTE:</b> When the UI changes (buttons appear, layouts change, etc) the developer should call {@link #invalidate()} to alert any
@@ -64,8 +64,8 @@ public abstract class SdlRemoteDisplay extends Presentation {
protected Window w;
protected View mainView;
- protected Handler handler = new Handler();
- protected Handler uiHandler = new Handler(Looper.getMainLooper());
+ protected final Handler handler = new Handler();
+ protected final Handler uiHandler = new Handler(Looper.getMainLooper());
protected Callback callback;
public SdlRemoteDisplay(Context context, Display display) {
@@ -95,7 +95,7 @@ public abstract class SdlRemoteDisplay extends Presentation {
handler.removeCallbacks(mStartRefreshTaskCallback);
}
- protected Runnable mStartRefreshTaskCallback = new Runnable() {
+ protected final Runnable mStartRefreshTaskCallback = new Runnable() {
public void run() {
if(mainView == null){
mainView = w.getDecorView().findViewById(android.R.id.content);
@@ -108,7 +108,6 @@ public abstract class SdlRemoteDisplay extends Presentation {
}
};
- @SuppressWarnings("unused")
public View getMainView(){
if(mainView == null){
mainView = w.getDecorView().findViewById(android.R.id.content);
@@ -116,7 +115,6 @@ public abstract class SdlRemoteDisplay extends Presentation {
return this.mainView;
}
- @SuppressWarnings("unused")
public void invalidate(){
// let listeners know the view has been invalidated
if(callback != null){
@@ -152,13 +150,13 @@ public abstract class SdlRemoteDisplay extends Presentation {
}
public static class Creator implements Callable<Boolean> {
- private Context context;
- private Display mDisplay;
+ private final Context context;
+ private final Display mDisplay;
boolean presentationShowError = false;
SdlRemoteDisplay remoteDisplay;
- Class<? extends SdlRemoteDisplay> remoteDisplayClass;
- private Handler uiHandler = new Handler(Looper.getMainLooper());
- private Callback callback;
+ final Class<? extends SdlRemoteDisplay> remoteDisplayClass;
+ private final Handler uiHandler = new Handler(Looper.getMainLooper());
+ private final Callback callback;
public Creator(Context context, Display display, SdlRemoteDisplay remoteDisplay, Class<? extends SdlRemoteDisplay> remoteDisplayClass, Callback callback){
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/trace/TraceDeviceInfo.java b/android/sdl_android/src/main/java/com/smartdevicelink/trace/TraceDeviceInfo.java
index 584b388ef..5f2452125 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/trace/TraceDeviceInfo.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/trace/TraceDeviceInfo.java
@@ -29,9 +29,6 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
-/**
- *
- */
package com.smartdevicelink.trace;
import android.bluetooth.BluetoothAdapter;
@@ -145,9 +142,8 @@ public class TraceDeviceInfo {
.getBondedDevices();
StringBuilder write = new StringBuilder("<btpairs>");
- Iterator<BluetoothDevice> iter = btDevices.iterator();
- while (iter.hasNext()) {
- write.append(SdlTrace.getBTDeviceInfo(iter.next()));
+ for (BluetoothDevice btDevice : btDevices) {
+ write.append(SdlTrace.getBTDeviceInfo(btDevice));
}
write.append("</btpairs>");
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexBaseTransport.java b/android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexBaseTransport.java
index e1f138978..a8eecd484 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexBaseTransport.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexBaseTransport.java
@@ -124,7 +124,7 @@ public abstract class MultiplexBaseTransport {
}
protected abstract void stop(int state);
- protected void stop(int state, byte error) {};
+ protected void stop(int state, byte error) {}
public abstract void write(byte[] out, int offset, int count);
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexBluetoothTransport.java b/android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexBluetoothTransport.java
index 449774d57..7995b7bde 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexBluetoothTransport.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexBluetoothTransport.java
@@ -29,6 +29,7 @@ import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
+
import androidx.annotation.RequiresPermission;
import com.smartdevicelink.protocol.SdlPacket;
@@ -63,7 +64,7 @@ public class MultiplexBluetoothTransport extends MultiplexBaseTransport{
// Key names received from the BluetoothSerialServer Handler
private static final long MS_TILL_TIMEOUT = 2500;
private static final int READ_BUFFER_SIZE = 4096;
- private final Object THREAD_LOCK = new Object();;
+ private final Object THREAD_LOCK = new Object();
protected static final String SHARED_PREFS = "sdl.bluetoothprefs";
@@ -75,7 +76,7 @@ public class MultiplexBluetoothTransport extends MultiplexBaseTransport{
private ConnectedThread mConnectedThread;
private ConnectedWriteThread mConnectedWriteThread;
Handler timeOutHandler;
- Runnable socketRunable;
+ Runnable socketRunnable;
boolean keepSocketAlive = true;
/**
@@ -310,7 +311,7 @@ public class MultiplexBluetoothTransport extends MultiplexBaseTransport{
private void timerDelayRemoveDialog(final BluetoothSocket sock){
timeOutHandler = new Handler();
- socketRunable = new Runnable() {
+ socketRunnable = new Runnable() {
public void run() {
//Log.e(TAG, "BLUETOOTH SOCKET CONNECT TIMEOUT - ATTEMPT TO CLOSE SOCKET");
try {
@@ -320,7 +321,7 @@ public class MultiplexBluetoothTransport extends MultiplexBaseTransport{
}
}
};
- timeOutHandler.postDelayed(socketRunable, MS_TILL_TIMEOUT);
+ timeOutHandler.postDelayed(socketRunnable, MS_TILL_TIMEOUT);
}
@@ -332,7 +333,7 @@ public class MultiplexBluetoothTransport extends MultiplexBaseTransport{
*/
private class AcceptThread extends Thread {
// The local server socket
- private String mSocketType;
+ private final String mSocketType;
final BluetoothServerSocket mmServerSocket;
@SuppressLint("NewApi")
@@ -350,7 +351,7 @@ public class MultiplexBluetoothTransport extends MultiplexBaseTransport{
} catch (IOException e) {
//Log.e(TAG, "Socket Type: " + mSocketType + "listen() failed", e);
MultiplexBluetoothTransport.this.stop(STATE_ERROR, REASON_SPP_ERROR);
- //Let's try to shut down this thead
+ //Let's try to shut down this thread
}catch(SecurityException e2){
//Log.e(TAG, "<LIVIO> Security Exception in Accept Thread - "+e2.toString());
interrupt();
@@ -369,7 +370,7 @@ public class MultiplexBluetoothTransport extends MultiplexBaseTransport{
" BEGIN mAcceptThread" + this);
setName("AcceptThread" + mSocketType);
- BluetoothSocket socket = null;
+ BluetoothSocket socket;
int listenAttempts = 0;
// Listen to the server socket if we're not connected
@@ -453,8 +454,8 @@ public class MultiplexBluetoothTransport extends MultiplexBaseTransport{
private final BluetoothDevice mmDevice;
public ConnectThread(BluetoothDevice device) {
mmDevice = device;
- //Log.d(TAG, "Attempting to conenct to " + device.getName());
- //Log.d(TAG, "UUID to conenct to " + SERVER_UUID.toString());
+ //Log.d(TAG, "Attempting to connect to " + device.getName());
+ //Log.d(TAG, "UUID to connect to " + SERVER_UUID.toString());
}
@@ -463,7 +464,7 @@ public class MultiplexBluetoothTransport extends MultiplexBaseTransport{
try{
mAdapter.cancelDiscovery();
}catch(SecurityException e2){
- DebugTool.logError(TAG, "Don't have required permision to cancel discovery. Moving on");
+ DebugTool.logError(TAG, "Don't have required permission to cancel discovery. Moving on");
}
}
@@ -499,13 +500,13 @@ public class MultiplexBluetoothTransport extends MultiplexBaseTransport{
try {
Method m = mmDevice.getClass().getMethod("createRfcommSocket", new Class[]{int.class});
//Log.i(TAG,"connecting using createRfcommSocket");
- mmSocket = (BluetoothSocket) m.invoke(mmDevice, Integer.valueOf(1));
+ mmSocket = (BluetoothSocket) m.invoke(mmDevice, 1);
if (mmSocket != null) {
//Looper.prepare();
timerDelayRemoveDialog(mmSocket);
//Looper.loop();
mmSocket.connect();
- timeOutHandler.removeCallbacks(socketRunable);
+ timeOutHandler.removeCallbacks(socketRunnable);
if (Looper.myLooper() != null) {
Looper.myLooper().quit();
}
@@ -533,7 +534,7 @@ public class MultiplexBluetoothTransport extends MultiplexBaseTransport{
timerDelayRemoveDialog(mmSocket);
//Looper.loop();
mmSocket.connect();
- timeOutHandler.removeCallbacks(socketRunable);
+ timeOutHandler.removeCallbacks(socketRunnable);
if (Looper.myLooper() != null) {
Looper.myLooper().quit();
}
@@ -562,7 +563,7 @@ public class MultiplexBluetoothTransport extends MultiplexBaseTransport{
timerDelayRemoveDialog(mmSocket);
//Looper.loop();
mmSocket.connect();
- timeOutHandler.removeCallbacks(socketRunable);
+ timeOutHandler.removeCallbacks(socketRunnable);
if (Looper.myLooper() != null) {
Looper.myLooper().quit();
}
@@ -584,7 +585,7 @@ public class MultiplexBluetoothTransport extends MultiplexBaseTransport{
timerDelayRemoveDialog(mmSocket);
//Looper.loop();
mmSocket.connect();
- timeOutHandler.removeCallbacks(socketRunable);
+ timeOutHandler.removeCallbacks(socketRunnable);
if (Looper.myLooper() != null) {
Looper.myLooper().quit();
}
@@ -701,7 +702,7 @@ public class MultiplexBluetoothTransport extends MultiplexBaseTransport{
private class ConnectedThread extends Thread {
private final BluetoothSocket mmSocket;
private final InputStream mmInStream;
- SdlPsm psm;
+ final SdlPsm psm;
public ConnectedThread(BluetoothSocket socket) {
this.psm = new SdlPsm();
//Log.d(TAG, "Creating a Connected - Read Thread");
@@ -791,7 +792,7 @@ public class MultiplexBluetoothTransport extends MultiplexBaseTransport{
Field[] f = bsSocket.getClass().getDeclaredFields();
//int channel = -1;
- BluetoothSocket mySocket = null;
+ BluetoothSocket mySocket;
for (Field field : f) {
if(field.getName().equals("mSocket")){
field.setAccessible(true);
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexTcpTransport.java b/android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexTcpTransport.java
index 50d6ba051..c640f67ba 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexTcpTransport.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexTcpTransport.java
@@ -70,7 +70,7 @@ public class MultiplexTcpTransport extends MultiplexBaseTransport {
private OutputStream mOutputStream = null;
private MultiplexTcpTransport.TcpTransportThread mThread = null;
private WriterThread writerThread;
- private Context mContext;
+ private final Context mContext;
public MultiplexTcpTransport(int port, String ipAddress, boolean autoReconnect, Handler handler, Context context) {
@@ -182,7 +182,7 @@ public class MultiplexTcpTransport extends MultiplexBaseTransport {
* Internal class that represents separate thread, that does actual work, related to connecting/reading/writing data
*/
private class TcpTransportThread extends Thread {
- SdlPsm psm;
+ final SdlPsm psm;
public TcpTransportThread(){
psm = new SdlPsm();
}
@@ -358,7 +358,7 @@ public class MultiplexTcpTransport extends MultiplexBaseTransport {
private class WriterThread extends Thread {
private boolean isHalted = false;
- private boolean mVerbose = false;
+ private final boolean mVerbose = false;
final BlockingQueue<OutPacket> packetQueue = new LinkedBlockingQueue<>();
@Override
@@ -433,9 +433,9 @@ public class MultiplexTcpTransport extends MultiplexBaseTransport {
}
private final class OutPacket{
- byte[] bytes;
- int count;
- int offset;
+ final byte[] bytes;
+ final int count;
+ final int offset;
OutPacket(byte[] bytes, int offset, int count){
this.bytes = bytes;
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexTransportConfig.java b/android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexTransportConfig.java
index 4d0ab0670..e2dd06521 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexTransportConfig.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexTransportConfig.java
@@ -67,8 +67,8 @@ public class MultiplexTransportConfig extends BaseTransportConfig{
*/
public static final int FLAG_MULTI_SECURITY_HIGH = 0x30;
- Context context;
- String appId;
+ final Context context;
+ final String appId;
ComponentName service;
int securityLevel;
@@ -143,7 +143,7 @@ public class MultiplexTransportConfig extends BaseTransportConfig{
}
/**
- * Get the securitly level that will be used to verify a router service before binding
+ * Get the security level that will be used to verify a router service before binding
* @return the set security level
* @see #FLAG_MULTI_SECURITY_OFF
* @see #FLAG_MULTI_SECURITY_LOW
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexUsbTransport.java b/android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexUsbTransport.java
index 42bbc29a4..e76f2180c 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexUsbTransport.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexUsbTransport.java
@@ -205,7 +205,7 @@ public class MultiplexUsbTransport extends MultiplexBaseTransport{
}
private class ReaderThread extends Thread{
- SdlPsm psm;
+ final SdlPsm psm;
final InputStream inputStream;
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/transport/RouterServiceValidator.java b/android/sdl_android/src/main/java/com/smartdevicelink/transport/RouterServiceValidator.java
index 78f78ccb2..39f5909b5 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/transport/RouterServiceValidator.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/transport/RouterServiceValidator.java
@@ -47,6 +47,7 @@ import android.os.AsyncTask;
import android.os.Build;
import android.os.Handler;
import android.os.Looper;
+
import androidx.annotation.NonNull;
import com.smartdevicelink.util.AndroidTools;
@@ -89,7 +90,7 @@ public class RouterServiceValidator {
private static final String JSON_RESPONSE_OBJECT_TAG = "response";
- private static final String JSON_RESONSE_APP_VERSIONS_TAG = "versionBlacklist";
+ private static final String JSON_RESPONSE_APP_VERSIONS_TAG = "versionBlacklist";
private static final String JSON_PUT_ARRAY_TAG = "installedApps";
private static final String JSON_APP_PACKAGE_TAG = "packageName";
@@ -112,7 +113,7 @@ public class RouterServiceValidator {
* This will flag the validator to check for app version during debugging.
* <br><br><b>NOTE: This flag will include a package check as well.
*/
- public static final int FLAG_DEBUG_VERSION_CHECK = 0x03; //We use 3 becuase version check will be 2, but since a version check implies a package check we do 2+1=3;
+ public static final int FLAG_DEBUG_VERSION_CHECK = 0x03; //We use 3 because version check will be 2, but since a version check implies a package check we do 2+1=3;
public static final int FLAG_DEBUG_INSTALLED_FROM_CHECK = 0x04;
public static final int FLAG_DEBUG_USE_TIMESTAMP_CHECK = 0x05;
@@ -121,11 +122,10 @@ public class RouterServiceValidator {
private int flags = FLAG_DEBUG_NONE;
- private Context context= null;
+ private Context context;
private boolean inDebugMode = false;
- @SuppressWarnings("unused")
private static boolean pendingListRefresh = false;
-
+
private ComponentName service;//This is how we can save different routers over another in a waterfall method if we choose to.
private static int securityLevel = -1;
@@ -240,7 +240,7 @@ public class RouterServiceValidator {
* FindRouterTask: AsyncTask to find the connected RouterService.
*/
class FindRouterTask extends AsyncTask<Context, Void, ComponentName> {
- FindConnectedRouterCallback mCallback;
+ final FindConnectedRouterCallback mCallback;
final Handler mHandler = new Handler(Looper.getMainLooper());
final Integer TIMEOUT_MSEC = 10000; // 10 sec
@@ -356,7 +356,6 @@ public class RouterServiceValidator {
|| (this.inDebugMode && ((this.flags & FLAG_DEBUG_INSTALLED_FROM_CHECK) != FLAG_DEBUG_INSTALLED_FROM_CHECK));
}
- @SuppressWarnings("unused")
private boolean shouldOverrideTimeCheck(){
return (this.inDebugMode && ((this.flags & FLAG_DEBUG_USE_TIMESTAMP_CHECK) != FLAG_DEBUG_USE_TIMESTAMP_CHECK));
}
@@ -402,17 +401,18 @@ public class RouterServiceValidator {
ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
//PackageManager pm = context.getPackageManager();
-
- for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
- //Log.d(TAG, service.service.getClassName());
- //We will check to see if it contains this name, should be pretty specific
- if ((service.service.getClassName()).toLowerCase(Locale.US).contains(SdlBroadcastReceiver.SDL_ROUTER_SERVICE_CLASS_NAME)){
- //this.service = service.service; //This is great
- if(service.started && service.restarting==0){ //If this service has been started and is not crashed
- return service.service; //appPackageForComponenetName(service.service,pm);
+ if (manager != null) {
+ for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
+ //Log.d(TAG, service.service.getClassName());
+ //We will check to see if it contains this name, should be pretty specific
+ if ((service.service.getClassName()).toLowerCase(Locale.US).contains(SdlBroadcastReceiver.SDL_ROUTER_SERVICE_CLASS_NAME)) {
+ //this.service = service.service; //This is great
+ if (service.started && service.restarting == 0) { //If this service has been started and is not crashed
+ return service.service; //appPackageForComponenetName(service.service,pm);
+ }
}
}
- }
+ }
return null;
}
@@ -484,7 +484,7 @@ public class RouterServiceValidator {
JSONObject trustedApps = stringToJson(getTrustedList(context));
JSONArray versions;
- JSONObject app = null;
+ JSONObject app;
try {
app = trustedApps.getJSONObject(packageName);
@@ -498,7 +498,7 @@ public class RouterServiceValidator {
if(shouldOverrideVersionCheck()){ //If we don't care about versions, just return true
return true;
}
- try { versions = app.getJSONArray(JSON_RESONSE_APP_VERSIONS_TAG); } catch (JSONException e) { e.printStackTrace();return false;}
+ try { versions = app.getJSONArray(JSON_RESPONSE_APP_VERSIONS_TAG); } catch (JSONException e) { e.printStackTrace();return false;}
return verifyVersion(version, versions);
}
@@ -530,12 +530,12 @@ public class RouterServiceValidator {
* @return
*/
private static List<SdlApp> findAllSdlApps(Context context){
- List<SdlApp> apps = new ArrayList<SdlApp>();
+ List<SdlApp> apps = new ArrayList<>();
PackageManager packageManager = context.getPackageManager();
Intent intent = new Intent();
intent.setAction(TransportConstants.START_ROUTER_SERVICE_ACTION);
List<ResolveInfo> infoList = packageManager.queryBroadcastReceivers(intent, 0);
- //We want to sort our list so that we know it's the same everytime
+ //We want to sort our list so that we know it's the same every time
Collections.sort(infoList,new Comparator<ResolveInfo>() {
@Override
public int compare(ResolveInfo lhs, ResolveInfo rhs) {
@@ -583,7 +583,7 @@ public class RouterServiceValidator {
}
return false;
}
-
+
pendingListRefresh = true;
//Might want to store a flag letting this class know a request is currently pending
StringBuilder builder = new StringBuilder();
@@ -660,11 +660,13 @@ public class RouterServiceValidator {
*/
protected boolean isServiceRunning(Context context, ComponentName service){
ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
- for (RunningServiceInfo serviceInfo : manager.getRunningServices(Integer.MAX_VALUE)) {
- if (serviceInfo.service.equals(service)) {
- return true;
- }
- }
+ if (manager != null) {
+ for (RunningServiceInfo serviceInfo : manager.getRunningServices(Integer.MAX_VALUE)) {
+ if (serviceInfo.service.equals(service)) {
+ return true;
+ }
+ }
+ }
return false;
}
@@ -703,9 +705,9 @@ public class RouterServiceValidator {
return prefAdd.commit();
}
/******************************************************************
- *
+ *
* Saving the list for later!!!
- *
+ *
******************************************************************/
/**
@@ -796,8 +798,8 @@ public class RouterServiceValidator {
* Class that holds all the info we want to send/receive from the validation server
*/
public static class SdlApp{
- String packageName;
- int versionCode;
+ final String packageName;
+ final int versionCode;
SdlApp(String packageName, int versionCode){
this.packageName = packageName;
@@ -805,7 +807,7 @@ public class RouterServiceValidator {
}
}
- public static enum TrustedAppStore{
+ public enum TrustedAppStore{
PLAY_STORE("com.android.vending"),
AMAZON("com.amazon.venezia"),
XIAOMI("com.xiaomi.market"),
@@ -815,7 +817,7 @@ public class RouterServiceValidator {
HIAPK("com.hiapk.marketpho"),
;
- String packageString;
+ final String packageString;
private TrustedAppStore(String packageString){
this.packageString = packageString;
}
@@ -830,8 +832,8 @@ public class RouterServiceValidator {
return false;
}
TrustedAppStore[] stores = TrustedAppStore.values();
- for(int i =0; i<stores.length; i++){
- if(packageString.equalsIgnoreCase(stores[i].packageString)){
+ for (TrustedAppStore store : stores) {
+ if (packageString.equalsIgnoreCase(store.packageString)) {
return true;
}
}
@@ -843,8 +845,8 @@ public class RouterServiceValidator {
* This interface is used as a callback to know when we have either obtained a list or at least returned from our attempt.
*
*/
- public static interface TrustedListCallback{
- public void onListObtained(boolean successful);
+ public interface TrustedListCallback{
+ void onListObtained(boolean successful);
}
}
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlBroadcastReceiver.java b/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlBroadcastReceiver.java
index bad3ccc2e..3229d4abd 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlBroadcastReceiver.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlBroadcastReceiver.java
@@ -41,19 +41,14 @@ import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
import android.hardware.usb.UsbManager;
import android.os.Build;
-import android.os.Debug;
import android.os.Looper;
import android.os.Parcelable;
import android.util.AndroidRuntimeException;
import androidx.annotation.CallSuper;
-import com.smartdevicelink.R;
import com.smartdevicelink.transport.RouterServiceValidator.TrustedListCallback;
import com.smartdevicelink.transport.enums.TransportType;
import com.smartdevicelink.transport.utl.SdlDeviceListener;
@@ -162,7 +157,7 @@ public abstract class SdlBroadcastReceiver extends BroadcastReceiver{
RouterServiceValidator.createTrustedListRequest(context, false, new TrustedListCallback(){
@Override
public void onListObtained(boolean successful) {
- //Log.v(TAG, "SDL enabled by router service from " + packageName + " compnent package " + componentName.getPackageName() + " - " + componentName.getClassName());
+ //Log.v(TAG, "SDL enabled by router service from " + packageName + " component package " + componentName.getPackageName() + " - " + componentName.getClassName());
//List obtained. Let's start our service
queuedService = componentName;
finalIntent.setAction("com.sdl.noaction"); //Replace what's there so we do go into some unintended loop
@@ -261,7 +256,7 @@ public abstract class SdlBroadcastReceiver extends BroadcastReceiver{
new ServiceFinder(context, context.getPackageName(), new ServiceFinder.ServiceFinderCallback() {
@Override
public void onComplete(Vector<ComponentName> routerServices) {
- runningBluetoothServicePackage = new Vector<ComponentName>();
+ runningBluetoothServicePackage = new Vector<>();
runningBluetoothServicePackage.addAll(routerServices);
if (runningBluetoothServicePackage.isEmpty()) {
//If there isn't a service running we should try to start one
@@ -350,6 +345,7 @@ public abstract class SdlBroadcastReceiver extends BroadcastReceiver{
if (e != null
&& e instanceof AndroidRuntimeException
&& "android.app.RemoteServiceException".equals(e.getClass().getName()) //android.app.RemoteServiceException is a private class
+ && e.getMessage() != null
&& e.getMessage().contains("SdlRouterService")) {
DebugTool.logInfo(TAG, "Handling failed startForegroundService call");
@@ -375,13 +371,15 @@ public abstract class SdlBroadcastReceiver extends BroadcastReceiver{
return false;
}
if (runningBluetoothServicePackage == null) {
- runningBluetoothServicePackage = new Vector<ComponentName>();
+ runningBluetoothServicePackage = new Vector<>();
} else {
runningBluetoothServicePackage.clear();
}
ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
- manager.getRunningAppProcesses();
- List<RunningServiceInfo> runningServices = null;
+ if (manager != null) {
+ manager.getRunningAppProcesses();
+ }
+ List<RunningServiceInfo> runningServices;
try {
runningServices = manager.getRunningServices(Integer.MAX_VALUE);
} catch (NullPointerException e) {
@@ -450,7 +448,7 @@ public abstract class SdlBroadcastReceiver extends BroadcastReceiver{
ServiceFinder finder = new ServiceFinder(context, context.getPackageName(), new ServiceFinder.ServiceFinderCallback() {
@Override
public void onComplete(Vector<ComponentName> routerServices) {
- runningBluetoothServicePackage = new Vector<ComponentName>();
+ runningBluetoothServicePackage = new Vector<>();
runningBluetoothServicePackage.addAll(routerServices);
requestTransportStatus(context,null,true,false);
}
@@ -473,7 +471,7 @@ public abstract class SdlBroadcastReceiver extends BroadcastReceiver{
return;
}
if((!lookForServices || isRouterServiceRunning(context)) && !runningBluetoothServicePackage.isEmpty()){ //So there is a service up, let's see if it's connected
- final ConcurrentLinkedQueue<ComponentName> list = new ConcurrentLinkedQueue<ComponentName>(runningBluetoothServicePackage);
+ final ConcurrentLinkedQueue<ComponentName> list = new ConcurrentLinkedQueue<>(runningBluetoothServicePackage);
final SdlRouterStatusProvider.ConnectedStatusCallback sdlBrCallback = new SdlRouterStatusProvider.ConnectedStatusCallback() {
@Override
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java b/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java
index 2fde0e817..8f569e7a2 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java
@@ -70,12 +70,13 @@ import android.os.Parcel;
import android.os.ParcelFileDescriptor;
import android.os.Parcelable;
import android.os.RemoteException;
-import androidx.annotation.NonNull;
-import androidx.core.app.NotificationCompat;
import android.util.AndroidRuntimeException;
import android.util.SparseArray;
import android.util.SparseIntArray;
+import androidx.annotation.NonNull;
+import androidx.core.app.NotificationCompat;
+
import com.smartdevicelink.R;
import com.smartdevicelink.marshal.JsonRPCMarshaller;
import com.smartdevicelink.protocol.BinaryFrameHeader;
@@ -152,18 +153,12 @@ public class SdlRouterService extends Service{
public static final String SDL_NOTIFICATION_FAQS_PAGE = "https://smartdevicelink.com/en/guides/android/frequently-asked-questions/sdl-notifications/";
- /**
- * @deprecated use {@link TransportConstants#START_ROUTER_SERVICE_ACTION} instead
- */
- @Deprecated
- public static final String START_SERVICE_ACTION = "sdl.router.startservice";
public static final String REGISTER_WITH_ROUTER_ACTION = "com.sdl.android.register";
/** Message types sent from the BluetoothReadService Handler */
public static final int MESSAGE_STATE_CHANGE = 1;
public static final int MESSAGE_READ = 2;
- @SuppressWarnings("unused")
- public static final int MESSAGE_WRITE = 3;
+ public static final int MESSAGE_WRITE = 3;
public static final int MESSAGE_DEVICE_NAME = 4;
public static final int MESSAGE_LOG = 5;
@@ -1023,7 +1018,6 @@ public class SdlRouterService extends Service{
return true;
}
- @SuppressWarnings("unused")
private void pingClients(){
Message message = Message.obtain();
DebugTool.logInfo(TAG, "Pinging "+ registeredApps.size()+ " clients");
@@ -1229,6 +1223,7 @@ public class SdlRouterService extends Service{
if (e != null
&& e instanceof AndroidRuntimeException
&& "android.app.RemoteServiceException".equals(e.getClass().getName()) //android.app.RemoteServiceException is a private class
+ && e.getMessage() != null
&& e.getMessage().contains("invalid channel for service notification")) { //This is the message received in the exception for notification channel issues
// Set the flag to not delete the notification channel to avoid this exception in the future
@@ -1442,7 +1437,6 @@ public class SdlRouterService extends Service{
}
@SuppressLint("NewApi")
- @SuppressWarnings("deprecation")
private void enterForeground(String content, long chronometerLength, boolean ongoing) {
DebugTool.logInfo(TAG, "Attempting to enter the foreground - " + System.currentTimeMillis());
@@ -1610,12 +1604,6 @@ public class SdlRouterService extends Service{
*********************************************** Helper Methods **************************************************************
****************************************************************************************************************************************/
- @SuppressWarnings("SameReturnValue")
- @Deprecated
- public String getConnectedDeviceName(){
- return null;
- }
-
private ArrayList<TransportRecord> getConnectedTransports(){
ArrayList<TransportRecord> connected = new ArrayList<>();
if(bluetoothTransport != null && bluetoothTransport.isConnected()){
@@ -1733,11 +1721,6 @@ public class SdlRouterService extends Service{
}
}
- @Deprecated
- public void onTransportConnected(final TransportType type){
- onTransportConnected(new TransportRecord(type,null));
- }
-
public void onTransportConnected(final TransportRecord record){
cancelForegroundTimeOut();
enterForeground(createConnectedNotificationText(),0,true);
@@ -1798,11 +1781,6 @@ public class SdlRouterService extends Service{
}
- @Deprecated
- public void onTransportDisconnected(TransportType type) {
- onTransportDisconnected(new TransportRecord(type,null));
- }
-
public void onTransportDisconnected(TransportRecord record){
cachedModuleVersion = -1; //Reset our cached version
//Stop any current pings being sent before the proper state can be determined.
@@ -1911,16 +1889,6 @@ public class SdlRouterService extends Service{
}
}
- @Deprecated
- public void onTransportError(TransportType transportType){
- onTransportError(new TransportRecord(transportType,null), null);
- }
-
- @Deprecated
- public void onTransportError(TransportRecord record) {
- onTransportError(record, null);
- }
-
public void onTransportError(TransportRecord transport, Bundle errorBundle){
switch (transport.getType()){
case BLUETOOTH:
@@ -2012,7 +1980,7 @@ public class SdlRouterService extends Service{
}
}
- @SuppressWarnings("unused") //The return false after the packet null check is not dead code. Read the getByteArray method from bundle
+ //The return false after the packet null check is not dead code. Read the getByteArray method from bundle
public boolean writeBytesToTransport(Bundle bundle){
if(bundle == null){
return false;
@@ -2385,7 +2353,7 @@ public class SdlRouterService extends Service{
* And start SDL
* @return a boolean if a connection was attempted
*/
- @SuppressWarnings({"MissingPermission", "unused"})
+ @SuppressWarnings({"MissingPermission"})
public synchronized boolean bluetoothQuerryAndConnect(){
BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
if(adapter != null && adapter.isEnabled()){
@@ -2429,29 +2397,6 @@ public class SdlRouterService extends Service{
//**************************************************************************************************************************************
//********************************************************* PREFERENCES ****************************************************************
//**************************************************************************************************************************************
- /**
- * @deprecated
- * This method will set the last known bluetooth connection method that worked with this phone.
- * This helps speed up the process of connecting
- * @param level The level of bluetooth connecting method that last worked
- * @param prefLocation Where the preference should be stored
- */
- @SuppressWarnings("DeprecatedIsStillUsed")
- @Deprecated
- public static void setBluetoothPrefs (int level, String prefLocation) {
- DebugTool.logWarning(TAG, "This method is deprecated and will not take any action");
- }
-
- /**
- * @deprecated
- * This method has been deprecated as it was bad practice.
- */
- @SuppressWarnings({"DeprecatedIsStillUsed", "SameReturnValue"})
- @Deprecated
- public static int getBluetoothPrefs(String prefLocation)
- {
- return 0;
- }
/**
* Set the connection establishment status of the particular device
@@ -2756,7 +2701,6 @@ public class SdlRouterService extends Service{
// *********************************************************** UTILITY ****************************************************************
//*****************************************************************************************************************************************/
- @SuppressWarnings("unused")
private void debugPacket(byte[] bytes){
//DEBUG
@@ -2940,7 +2884,7 @@ public class SdlRouterService extends Service{
* @deprecated Move to the new version checking system with meta-data
*
*/
- @SuppressWarnings({"unused", "DeprecatedIsStillUsed"})
+ @SuppressWarnings({"DeprecatedIsStillUsed"})
@Deprecated
static class LocalRouterService implements Parcelable{
Intent launchIntent = null;
@@ -3075,24 +3019,6 @@ public class SdlRouterService extends Service{
/**
* This is a simple class to hold onto a reference of a registered app.
* @param appId the supplied id for this app that is attempting to register
- * @param messenger the specific messenger that is tied to this app
- */
- @Deprecated
- public RegisteredApp(String appId, Messenger messenger){
- this.appId = appId;
- this.messenger = messenger;
- this.sessionIds = new Vector<Long>();
- this.queues = new ConcurrentHashMap<>();
- queueWaitHandler = new Handler();
- registeredTransports = new SparseArray<ArrayList<TransportType>>();
- awaitingSession = new Vector<>();
- setDeathNote();
- routerMessagingVersion = 1;
- }
-
- /**
- * This is a simple class to hold onto a reference of a registered app.
- * @param appId the supplied id for this app that is attempting to register
* @param routerMessagingVersion
* @param messenger the specific messenger that is tied to this app
*/
@@ -3184,7 +3110,6 @@ public class SdlRouterService extends Service{
}
}
- @SuppressWarnings("unused")
public void clearSessionIds(){
this.sessionIds.clear();
}
@@ -3373,11 +3298,6 @@ public class SdlRouterService extends Service{
}
}
- @Deprecated
- public void handleMessage(int flags, byte[] packet) {
- handleMessage(flags,packet,null);
- }
-
public void handleMessage(int flags, byte[] packet, TransportType transportType){
if(flags == TransportConstants.BYTES_TO_SEND_FLAG_LARGE_PACKET_START){
clearBuffer();
@@ -3509,17 +3429,11 @@ public class SdlRouterService extends Service{
private static final int DELAY_COEF = 1;
private static final int SIZE_COEF = 1;
- private byte[] bytesToWrite = null;
+ private byte[] bytesToWrite;
private final int offset, size, priorityCoefficient;
private final long timestamp;
final Bundle receivedBundle;
TransportType transportType;
-
- @SuppressWarnings("SameParameterValue")
- @Deprecated
- public PacketWriteTask(byte[] bytes, int offset, int size, int priorityCoefficient) {
- this(bytes, offset, size, priorityCoefficient,null);
- }
public PacketWriteTask(byte[] bytes, int offset, int size, int priorityCoefficient, TransportType transportType){
timestamp = System.currentTimeMillis();
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterStatusProvider.java b/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterStatusProvider.java
index 6a7230fcd..0640017d5 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterStatusProvider.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterStatusProvider.java
@@ -54,16 +54,16 @@ public class SdlRouterStatusProvider {
private static final String TAG = "SdlRouterStateProvider";
- private Context context = null;
+ private Context context;
private boolean isBound = false;
- ConnectedStatusCallback cb = null;
+ ConnectedStatusCallback cb;
Messenger routerServiceMessenger = null;
- private ComponentName routerService = null;
+ private ComponentName routerService;
private int flags = 0;
final Messenger clientMessenger;
- private ServiceConnection routerConnection= new ServiceConnection() {
+ private final ServiceConnection routerConnection= new ServiceConnection() {
public void onServiceConnected(ComponentName className, IBinder service) {
DebugTool.logInfo(TAG, "Bound to service " + className.toString());
@@ -167,7 +167,7 @@ public class SdlRouterStatusProvider {
public ClientHandler(SdlRouterStatusProvider provider){
super(Looper.getMainLooper());
- this.provider = new WeakReference<SdlRouterStatusProvider>(provider);
+ this.provider = new WeakReference<>(provider);
}
@Override
@@ -183,10 +183,10 @@ public class SdlRouterStatusProvider {
break;
}
}
- };
+ }
public interface ConnectedStatusCallback{
- public void onConnectionStatusUpdate(boolean connected, ComponentName service, Context context);
+ void onConnectionStatusUpdate(boolean connected, ComponentName service, Context context);
}
}
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/transport/TCPTransportManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/transport/TCPTransportManager.java
index 3df010bcf..4381b97c6 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/transport/TCPTransportManager.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/transport/TCPTransportManager.java
@@ -14,9 +14,9 @@ public class TCPTransportManager extends TransportManagerBase{
private static final String TAG = "TCPTransportManager";
- private TCPHandler tcpHandler;
+ private final TCPHandler tcpHandler;
private MultiplexTcpTransport transport;
- private TCPTransportConfig config;
+ private final TCPTransportConfig config;
public TCPTransportManager(TCPTransportConfig config, TransportEventListener transportEventListener){
super(config,transportEventListener);
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/transport/TransportBroker.java b/android/sdl_android/src/main/java/com/smartdevicelink/transport/TransportBroker.java
index 3851ab563..dd887b6d4 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/transport/TransportBroker.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/transport/TransportBroker.java
@@ -33,13 +33,10 @@
package com.smartdevicelink.transport;
import android.annotation.SuppressLint;
-import android.app.ActivityManager;
-import android.app.ActivityManager.RunningServiceInfo;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
-import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
@@ -49,6 +46,9 @@ import android.os.Parcelable;
import android.os.RemoteException;
import android.os.TransactionTooLargeException;
+import androidx.annotation.NonNull;
+import androidx.annotation.RestrictTo;
+
import com.smartdevicelink.protocol.SdlPacket;
import com.smartdevicelink.transport.enums.TransportType;
import com.smartdevicelink.transport.utl.ByteAraryMessageAssembler;
@@ -62,9 +62,9 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
-import java.util.Locale;
+@RestrictTo(RestrictTo.Scope.LIBRARY)
public class TransportBroker {
private static final String TAG = "SdlTransportBroker";
@@ -80,9 +80,9 @@ public class TransportBroker {
private static final TransportRecord LEGACY_TRANSPORT_RECORD = new TransportRecord(TransportType.BLUETOOTH,null);
private final String WHERE_TO_REPLY_PREFIX = "com.sdl.android.";
- private String appId = null;
- private String whereToReply = null;
- private Context currentContext = null;
+ private final String appId;
+ private final String whereToReply;
+ private Context currentContext;
private final Object INIT_LOCK = new Object();
private final Object MESSAGE_SEND_LOCK = new Object();
@@ -92,7 +92,7 @@ public class TransportBroker {
boolean isBound = false, registeredWithRouterService = false;
private String routerPackage = null, routerClassName = null;
- private ComponentName routerService = null;
+ private ComponentName routerService;
private SdlPacket bufferedPacket = null;
@@ -100,7 +100,7 @@ public class TransportBroker {
private ServiceConnection routerConnection;
private int routerServiceVersion = 1;
- private int messagingVersion = MAX_MESSAGING_VERSION;
+ private final int messagingVersion = MAX_MESSAGING_VERSION;
private void initRouterConnection() {
routerConnection = new ServiceConnection() {
@@ -180,11 +180,11 @@ public class TransportBroker {
* Handler of incoming messages from service.
*/
static class ClientHandler extends Handler {
- ClassLoader loader;
+ final ClassLoader loader;
final WeakReference<TransportBroker> provider;
public ClientHandler(TransportBroker provider) {
- this.provider = new WeakReference<TransportBroker>(provider);
+ this.provider = new WeakReference<>(provider);
loader = getClass().getClassLoader();
}
@@ -235,7 +235,6 @@ public class TransportBroker {
broker.registeredWithRouterService = false;
broker.enableLegacyMode(true);
//We call this so we can start the process of legacy connection
- //onHardwareDisconnected(TransportType.BLUETOOTH);
broker.onLegacyModeEnabled();
break;
default:
@@ -243,7 +242,7 @@ public class TransportBroker {
DebugTool.logWarning(TAG, "Registration denied from router service. Reason - " + msg.arg1);
break;
}
- ;
+
break;
@@ -251,7 +250,6 @@ public class TransportBroker {
if (msg.arg1 == TransportConstants.UNREGISTRATION_RESPONSE_SUCESS) {
// We've been unregistered. Now what?
-
} else { //We were denied our unregister request to the router service, let's see why
DebugTool.logWarning(TAG, "Unregister request denied from router service. Reason - " + msg.arg1);
//Do we care?
@@ -263,7 +261,7 @@ public class TransportBroker {
DebugTool.logWarning(TAG, "Received packet message from router service with no bundle");
return;
}
- //So the intent has a packet with it. PEFRECT! Let's send it through the library
+ //So the intent has a packet with it. PERFECT! Let's send it through the library
int flags = bundle.getInt(TransportConstants.BYTES_TO_SEND_FLAGS, TransportConstants.BYTES_TO_SEND_FLAG_NONE);
if (bundle.containsKey(TransportConstants.FORMED_PACKET_EXTRA_NAME)) {
@@ -310,10 +308,8 @@ public class TransportBroker {
broker.bufferedPacket = null;
}
}
- //}
- //}
} else {
- DebugTool.logWarning(TAG, "Flase positive packet reception");
+ DebugTool.logWarning(TAG, "False positive packet reception");
}
break;
case TransportConstants.HARDWARE_CONNECTION_EVENT:
@@ -356,7 +352,7 @@ public class TransportBroker {
}
/**
- * Handle a potential connection event. This will adapt legacy router service implementaions
+ * Handle a potential connection event. This will adapt legacy router service implementations
* into the new multiple transport scheme.
* @param bundle the received bundle from the router service
* @param broker reference to the transport broker that this handler exists
@@ -393,25 +389,19 @@ public class TransportBroker {
@SuppressLint("SimpleDateFormat")
- public TransportBroker(Context context, String appId, ComponentName service) {
+ public TransportBroker(@NonNull Context context, @NonNull String appId, @NonNull ComponentName service) {
synchronized (INIT_LOCK) {
+ this.appId = appId;
+ currentContext = context;
+ this.routerService = service;
+
clientMessenger = new Messenger(new ClientHandler(this));
initRouterConnection();
- //So the user should have set the AppId, lets define where the intents need to be sent
+
+ //So the user should have set the AppId, lets define where the messages need to be sent
SimpleDateFormat s = new SimpleDateFormat("hhmmssss"); //So we have a time stamp of the event
String timeStamp = s.format(new Date(System.currentTimeMillis()));
- if (whereToReply == null) {
- if (appId == null) { //This should really just throw an error
- whereToReply = WHERE_TO_REPLY_PREFIX + "." + timeStamp;
- } else {
- whereToReply = WHERE_TO_REPLY_PREFIX + appId + "." + timeStamp;
- }
- }
- //this.appId = appId.concat(timeStamp);
- this.appId = appId;
- currentContext = context;
- //Log.d(TAG, "Registering our reply receiver: " + whereToReply);
- this.routerService = service;
+ whereToReply = WHERE_TO_REPLY_PREFIX + appId + "." + timeStamp;
}
}
@@ -422,7 +412,7 @@ public class TransportBroker {
//Log.d(TAG, "Starting up transport broker for " + whereToReply);
synchronized (INIT_LOCK) {
if (currentContext == null) {
- throw new IllegalStateException("This instance can't be started since it's local reference of context is null. Ensure when suppling a context to the TransportBroker that it is valid");
+ throw new IllegalStateException("This instance can't be started since it's local reference of context is null. Ensure when supplying a context to the TransportBroker that it is valid");
}
if (routerConnection == null) {
initRouterConnection();
@@ -479,31 +469,11 @@ public class TransportBroker {
public void onServiceUnregsiteredFromRouterService(int unregisterCode) {
}
- @Deprecated
- public void onHardwareDisconnected(TransportType type) {
- stop();
- }
public void onHardwareDisconnected(TransportRecord record, List<TransportRecord> connectedTransports) {
}
- /**
- * WILL NO LONGER BE CALLED
- *
- * @param type
- * @return
- */
- @Deprecated
- public boolean onHardwareConnected(TransportType type) {
- synchronized (INIT_LOCK) {
- if (routerServiceMessenger == null) {
- return false;
- }
- return true;
- }
- }
-
public boolean onHardwareConnected(List<TransportRecord> transports) {
synchronized (INIT_LOCK) {
if (routerServiceMessenger == null && transports != null && transports.size() > 0) {
@@ -525,31 +495,7 @@ public class TransportBroker {
return routerServiceVersion;
}
- /**
- * We want to check to see if the Router service is already up and running
- *
- * @param context
- * @return
- */
- private boolean isRouterServiceRunning(Context context) {
- if (context == null) {
-
- return false;
- }
- ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
- for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
- //We will check to see if it contains this name, should be pretty specific
- if ((service.service.getClassName()).toLowerCase(Locale.US).contains(SdlBroadcastReceiver.SDL_ROUTER_SERVICE_CLASS_NAME)) {
- this.routerClassName = service.service.getClassName();
- this.routerPackage = service.service.getPackageName();
- return true;
- }
- }
- return false;
- }
-
-
- public boolean sendPacketToRouterService(SdlPacket packet) { //We use ints because that is all that is supported by the outputstream class
+ public boolean sendPacketToRouterService(SdlPacket packet) { //We use ints because that is all that is supported by the output stream class
//Log.d(TAG,whereToReply + "Sending packet to router service");
if (routerServiceMessenger == null) {
@@ -617,16 +563,14 @@ public class TransportBroker {
}
//Make sure we know where to bind to
if (this.routerService == null) {
- if ((Build.VERSION.SDK_INT < Build.VERSION_CODES.O) && !isRouterServiceRunning(getContext())) {//We should be able to ignore this case because of the validation now
- DebugTool.logInfo(TAG, whereToReply + " found no router service. Shutting down.");
- this.onHardwareDisconnected(null);
- return false;
- }
- } else {//We were already told where to bind. This should be the case.
- this.routerClassName = this.routerService.getClassName();
- this.routerPackage = this.routerService.getPackageName();
+ DebugTool.logInfo(TAG, whereToReply + " has no router service reference; should shut down.");
+ return false;
}
+ this.routerClassName = this.routerService.getClassName();
+ this.routerPackage = this.routerService.getPackageName();
+
+
if (!sendBindingIntent()) {
DebugTool.logError(TAG, "Something went wrong while trying to bind with the router service.");
SdlBroadcastReceiver.queryForConnectedService(currentContext);
@@ -730,7 +674,7 @@ public class TransportBroker {
*/
private static boolean legacyModeEnabled = false;
- private static Object LEGACY_LOCK = new Object();
+ private static final Object LEGACY_LOCK = new Object();
protected void enableLegacyMode(boolean enable) {
synchronized (LEGACY_LOCK) {
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/transport/TransportManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/transport/TransportManager.java
index c653c7d93..13edfb5f1 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/transport/TransportManager.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/transport/TransportManager.java
@@ -55,7 +55,6 @@ import com.smartdevicelink.util.DebugTool;
import java.lang.ref.WeakReference;
import java.util.List;
-@SuppressWarnings("unused")
public class TransportManager extends TransportManagerBase{
private static final String TAG = "TransportManager";
@@ -97,7 +96,7 @@ public class TransportManager extends TransportManagerBase{
@Override
public void onFinishedValidation(boolean valid, ComponentName name) {
DebugTool.logInfo(TAG, "onFinishedValidation valid=" + valid + "; name=" + ((name == null)? "null" : name.getPackageName()));
- if (valid) {
+ if (valid && name != null) {
mConfig.service = name;
transport = new TransportBrokerImpl(contextWeakReference.get(), mConfig.appId, mConfig.service);
DebugTool.logInfo(TAG, "TransportManager start was called; transport=" + transport);
@@ -244,7 +243,7 @@ public class TransportManager extends TransportManagerBase{
String[] split = address.split(":");
if(split.length == 2) {
bundle.putString(ControlFrameTags.RPC.TransportEventUpdate.TCP_IP_ADDRESS, split[0]);
- bundle.putInt(ControlFrameTags.RPC.TransportEventUpdate.TCP_PORT, Integer.valueOf(split[1]));
+ bundle.putInt(ControlFrameTags.RPC.TransportEventUpdate.TCP_PORT, Integer.parseInt(split[1]));
} //else {something went wrong;}
}else{
bundle.putString(ControlFrameTags.RPC.TransportEventUpdate.TCP_IP_ADDRESS, address);
@@ -450,7 +449,7 @@ public class TransportManager extends TransportManagerBase{
String action = intent.getAction();
if(BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action)){
exitLegacyMode("Bluetooth disconnected");
- }else if(action.equalsIgnoreCase(BluetoothAdapter.ACTION_STATE_CHANGED)){
+ }else if(action != null && action.equalsIgnoreCase(BluetoothAdapter.ACTION_STATE_CHANGED)){
int bluetoothState = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, -1);
if(bluetoothState == BluetoothAdapter.STATE_TURNING_OFF || bluetoothState == BluetoothAdapter.STATE_OFF){
DebugTool.logInfo(TAG, "Bluetooth is shutting off, exiting legacy mode.");
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/transport/UsbTransferProvider.java b/android/sdl_android/src/main/java/com/smartdevicelink/transport/UsbTransferProvider.java
index cd351a622..0b0c9b88d 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/transport/UsbTransferProvider.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/transport/UsbTransferProvider.java
@@ -71,7 +71,7 @@ public class UsbTransferProvider {
ParcelFileDescriptor usbPfd;
Bundle usbInfoBundle;
- private ServiceConnection routerConnection= new ServiceConnection() {
+ private final ServiceConnection routerConnection= new ServiceConnection() {
public void onServiceConnected(ComponentName className, IBinder service) {
DebugTool.logInfo(TAG, "Bound to service " + className.toString());
@@ -212,7 +212,7 @@ public class UsbTransferProvider {
public ClientHandler(UsbTransferProvider provider){
super(Looper.getMainLooper());
- this.provider = new WeakReference<UsbTransferProvider>(provider);
+ this.provider = new WeakReference<>(provider);
}
@Override
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/transport/utl/ByteArrayMessageSpliter.java b/android/sdl_android/src/main/java/com/smartdevicelink/transport/utl/ByteArrayMessageSpliter.java
index 9ab93aea9..670711709 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/transport/utl/ByteArrayMessageSpliter.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/transport/utl/ByteArrayMessageSpliter.java
@@ -50,11 +50,11 @@ public class ByteArrayMessageSpliter {
boolean firstPacket;
ByteArrayInputStream stream;
int bytesRead;
- int what;
- String appId;
+ final int what;
+ final String appId;
byte[] buffer;
- int orginalSize;
- int priorityCoef;
+ final int orginalSize;
+ final int priorityCoef;
int routerServiceVersion = 1;
TransportRecord transportRecord;
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/transport/utl/SdlDeviceListener.java b/android/sdl_android/src/main/java/com/smartdevicelink/transport/utl/SdlDeviceListener.java
index b9bd8bb12..1ca1f8d97 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/transport/utl/SdlDeviceListener.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/transport/utl/SdlDeviceListener.java
@@ -39,6 +39,7 @@ import android.content.SharedPreferences;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
+
import androidx.annotation.NonNull;
import com.smartdevicelink.transport.MultiplexBaseTransport;
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/util/AndroidTools.java b/android/sdl_android/src/main/java/com/smartdevicelink/util/AndroidTools.java
index 0e75acd77..ea2bf709f 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/util/AndroidTools.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/util/AndroidTools.java
@@ -84,7 +84,7 @@ public class AndroidTools {
public static HashMap<String,ResolveInfo> getSdlEnabledApps(Context context, String myPackageName){
Intent intent = new Intent(TransportConstants.START_ROUTER_SERVICE_ACTION);
List<ResolveInfo> infos = context.getPackageManager().queryBroadcastReceivers(intent, 0);
- HashMap<String,ResolveInfo> sdlMultiList = new HashMap<String,ResolveInfo>();
+ HashMap<String,ResolveInfo> sdlMultiList = new HashMap<>();
for(ResolveInfo info: infos){
if(info.activityInfo.applicationInfo.packageName.equals(myPackageName)){
continue; //Ignoring my own package
@@ -111,7 +111,7 @@ public class AndroidTools {
if(packageManager != null) {
for (ResolveInfo info : resolveInfoList) {
- PackageInfo packageInfo = null;
+ PackageInfo packageInfo;
try {
packageInfo = packageManager.getPackageInfo(info.serviceInfo.packageName, 0);
sdlAppInfoList.add(new SdlAppInfo(info, packageInfo));
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/util/HttpRequestTask.java b/android/sdl_android/src/main/java/com/smartdevicelink/util/HttpRequestTask.java
index 44125dff2..1cc0b514c 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/util/HttpRequestTask.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/util/HttpRequestTask.java
@@ -146,7 +146,7 @@ public class HttpRequestTask extends AsyncTask<String, String, String> {
}
return null;
}
- String response = null;
+ String response;
response = buffer.toString();
//send to post execute
@@ -199,12 +199,12 @@ public class HttpRequestTask extends AsyncTask<String, String, String> {
* Called when HTTP request is successfully completed.
* @param response The response to the HTTP request.
*/
- public abstract void httpCallComplete(String response);
+ void httpCallComplete(String response);
/**
* Called when HTTP request failed.
* @param statusCode The HTTP failure code.
*/
- public abstract void httpFailure(int statusCode);
+ void httpFailure(int statusCode);
}
}
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/util/IntegrationValidator.java b/android/sdl_android/src/main/java/com/smartdevicelink/util/IntegrationValidator.java
index 6553da286..d88912c62 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/util/IntegrationValidator.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/util/IntegrationValidator.java
@@ -113,8 +113,8 @@ public class IntegrationValidator {
if (permissionInfos != null && permissionInfos.length > 0) {
String permissionInfo;
- for (int i = 0; i < permissionInfos.length; i++) {
- permissionInfo = permissionInfos[i];
+ for (String info : permissionInfos) {
+ permissionInfo = info;
permissionList.remove(permissionInfo);
}
}
@@ -147,9 +147,9 @@ public class IntegrationValidator {
if (receivers != null && receivers.length > 0) {
ActivityInfo receiver;
- for (int i = 0; i < receivers.length; i++) {
+ for (ActivityInfo activityInfo : receivers) {
- receiver = receivers[i];
+ receiver = activityInfo;
if (receiver != null) {
int j = 0;
for (ResolveInfo sdlReceiver : sdlReceivers) {
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/util/MediaStreamingStatus.java b/android/sdl_android/src/main/java/com/smartdevicelink/util/MediaStreamingStatus.java
index 84c21f761..e7a4b69d6 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/util/MediaStreamingStatus.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/util/MediaStreamingStatus.java
@@ -43,6 +43,7 @@ import android.content.IntentFilter;
import android.media.AudioDeviceInfo;
import android.media.AudioManager;
import android.os.Build;
+
import androidx.annotation.NonNull;
import java.lang.ref.WeakReference;
@@ -63,9 +64,9 @@ public class MediaStreamingStatus {
private static final Object BROADCAST_RECEIVER_LOCK = new Object();
private boolean broadcastReceiverValid = true;
- private WeakReference<Context> contextWeakReference;
+ private final WeakReference<Context> contextWeakReference;
private Callback callback;
- private List<String> intentList;
+ private final List<String> intentList;
public MediaStreamingStatus(@NonNull Context context, @NonNull Callback callback){
contextWeakReference = new WeakReference<>(context);
@@ -115,11 +116,13 @@ public class MediaStreamingStatus {
// If API level 23+ audio manager can iterate over all current devices to see if a supported
// device is present.
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
- AudioDeviceInfo[] deviceInfos = audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS);
- if(deviceInfos != null) {
- for (AudioDeviceInfo deviceInfo : deviceInfos) {
- if (deviceInfo != null && isSupportedAudioDevice(deviceInfo.getType())) {
- return true;
+ if (audioManager != null) {
+ AudioDeviceInfo[] deviceInfos = audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS);
+ if (deviceInfos != null) {
+ for (AudioDeviceInfo deviceInfo : deviceInfos) {
+ if (deviceInfo != null && isSupportedAudioDevice(deviceInfo.getType())) {
+ return true;
+ }
}
}
}
@@ -127,7 +130,11 @@ public class MediaStreamingStatus {
}
//This means the SDK version is < M, and our min is 8 so this API is always available
- return audioManager.isBluetoothA2dpOn();
+ if (audioManager != null) {
+ return audioManager.isBluetoothA2dpOn();
+ }
+
+ return false;
}
/**
@@ -268,7 +275,7 @@ public class MediaStreamingStatus {
}
}
- private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
+ private final BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
synchronized (BROADCAST_RECEIVER_LOCK) {
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/util/SdlAppInfo.java b/android/sdl_android/src/main/java/com/smartdevicelink/util/SdlAppInfo.java
index 0a08a3f16..35c852c09 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/util/SdlAppInfo.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/util/SdlAppInfo.java
@@ -53,7 +53,7 @@ public class SdlAppInfo {
String packageName;
ComponentName routerServiceComponentName;
- int routerServiceVersion = 4; //We use this as a default and assume if the number doens't exist in meta data it is because the app hasn't updated.
+ int routerServiceVersion = 4; //We use this as a default and assume if the number doesn't exist in meta data it is because the app hasn't updated.
boolean isCustomRouterService = false;
long lastUpdateTime;
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/util/ServiceFinder.java b/android/sdl_android/src/main/java/com/smartdevicelink/util/ServiceFinder.java
index 9265eb345..0848446ef 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/util/ServiceFinder.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/util/ServiceFinder.java
@@ -91,7 +91,7 @@ public class ServiceFinder {
}
- BroadcastReceiver mainServiceReceiver = new BroadcastReceiver() {
+ final BroadcastReceiver mainServiceReceiver = new BroadcastReceiver() {
private final Object LIST_LOCK = new Object();
@Override