summaryrefslogtreecommitdiff
path: root/android
diff options
context:
space:
mode:
Diffstat (limited to 'android')
-rwxr-xr-xandroid/hello_sdl_android/src/main/java/com/sdl/hellosdlandroid/MainActivity.java3
-rwxr-xr-xandroid/hello_sdl_android/src/main/java/com/sdl/hellosdlandroid/SdlReceiver.java2
-rwxr-xr-xandroid/hello_sdl_android/src/main/res.zipbin71117 -> 0 bytes
-rwxr-xr-xandroid/hello_sdl_android/src/main/res/values-v11/styles.xml11
-rwxr-xr-xandroid/hello_sdl_android/src/main/res/values-v14/styles.xml12
-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.java2
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/encoder/VirtualDisplayEncoder.java4
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManager.java2
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/AudioDecoderCompat.java2
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/BaseAudioDecoder.java2
-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/filetypes/SdlArtwork.java2
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/file/filetypes/SdlFile.java3
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleManager.java4
-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.java15
-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/video/HapticInterfaceManager.java46
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/video/VideoStreamManager.java30
-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.java3
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/streaming/StreamPacketizer.java7
-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.java34
-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.java73
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlBroadcastReceiver.java17
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java16
-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.java20
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/transport/TransportManager.java5
-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/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.java24
-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
50 files changed, 246 insertions, 268 deletions
diff --git a/android/hello_sdl_android/src/main/java/com/sdl/hellosdlandroid/MainActivity.java b/android/hello_sdl_android/src/main/java/com/sdl/hellosdlandroid/MainActivity.java
index c1a60de62..69a86129a 100755
--- a/android/hello_sdl_android/src/main/java/com/sdl/hellosdlandroid/MainActivity.java
+++ b/android/hello_sdl_android/src/main/java/com/sdl/hellosdlandroid/MainActivity.java
@@ -8,8 +8,7 @@ import android.view.MenuItem;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
- private static final String TAG = "MainActivity";
-
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
diff --git a/android/hello_sdl_android/src/main/java/com/sdl/hellosdlandroid/SdlReceiver.java b/android/hello_sdl_android/src/main/java/com/sdl/hellosdlandroid/SdlReceiver.java
index c850f388c..a63258a49 100755
--- a/android/hello_sdl_android/src/main/java/com/sdl/hellosdlandroid/SdlReceiver.java
+++ b/android/hello_sdl_android/src/main/java/com/sdl/hellosdlandroid/SdlReceiver.java
@@ -9,7 +9,7 @@ import com.smartdevicelink.transport.SdlRouterService;
import com.smartdevicelink.util.DebugTool;
public class SdlReceiver extends SdlBroadcastReceiver {
- private static final String TAG = "SdlBroadcastReciever";
+ private static final String TAG = "SdlBroadcastReceiver";
@Override
public void onSdlEnabled(Context context, Intent intent) {
diff --git a/android/hello_sdl_android/src/main/res.zip b/android/hello_sdl_android/src/main/res.zip
deleted file mode 100755
index 16370f43a..000000000
--- a/android/hello_sdl_android/src/main/res.zip
+++ /dev/null
Binary files differ
diff --git a/android/hello_sdl_android/src/main/res/values-v11/styles.xml b/android/hello_sdl_android/src/main/res/values-v11/styles.xml
deleted file mode 100755
index a4a95bc46..000000000
--- a/android/hello_sdl_android/src/main/res/values-v11/styles.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<resources>
-
- <!--
- Base application theme for API 11+. This theme completely replaces
- AppBaseTheme from res/values/styles.xml on API 11+ devices.
- -->
- <style name="AppBaseTheme" parent="Theme.AppCompat.Light">
- <!-- API 11 theme customizations can go here. -->
- </style>
-
-</resources>
diff --git a/android/hello_sdl_android/src/main/res/values-v14/styles.xml b/android/hello_sdl_android/src/main/res/values-v14/styles.xml
deleted file mode 100755
index 664f4f162..000000000
--- a/android/hello_sdl_android/src/main/res/values-v14/styles.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<resources>
-
- <!--
- Base application theme for API 14+. This theme completely replaces
- AppBaseTheme from BOTH res/values/styles.xml and
- res/values-v11/styles.xml on API 14+ devices.
- -->
- <style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
- <!-- API 14 theme customizations can go here. -->
- </style>
-
-</resources>
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..968662b79 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
@@ -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..bd9d4913d 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
@@ -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 b12efbfa6..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
@@ -91,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/AudioDecoderCompat.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/AudioDecoderCompat.java
index a807dba23..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
@@ -91,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/BaseAudioDecoder.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/audio/BaseAudioDecoder.java
index e994b3b85..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
@@ -110,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/filetypes/SdlArtwork.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/file/filetypes/SdlArtwork.java
index f238aef8c..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
@@ -112,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 240343839..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
@@ -41,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
@@ -318,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/LifecycleManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleManager.java
index ba0e7c981..005476c6e 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
@@ -155,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/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..c224e013d 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
@@ -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/video/HapticInterfaceManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/video/HapticInterfaceManager.java
index 78b6bb03b..25a2e8831 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,24 +1,24 @@
-/***************************************************************************************************
- * 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;
@@ -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 f49fb3bc1..4d289934d 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
@@ -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/session/SdlSession.java b/android/sdl_android/src/main/java/com/smartdevicelink/session/SdlSession.java
index 40a6e9836..4a75b431c 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/session/SdlSession.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/session/SdlSession.java
@@ -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 6513171fe..7835f8054 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
@@ -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 a6fb699e1..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
@@ -64,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";
@@ -76,7 +76,7 @@ public class MultiplexBluetoothTransport extends MultiplexBaseTransport{
private ConnectedThread mConnectedThread;
private ConnectedWriteThread mConnectedWriteThread;
Handler timeOutHandler;
- Runnable socketRunable;
+ Runnable socketRunnable;
boolean keepSocketAlive = true;
/**
@@ -311,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 {
@@ -321,7 +321,7 @@ public class MultiplexBluetoothTransport extends MultiplexBaseTransport{
}
}
};
- timeOutHandler.postDelayed(socketRunable, MS_TILL_TIMEOUT);
+ timeOutHandler.postDelayed(socketRunnable, MS_TILL_TIMEOUT);
}
@@ -333,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")
@@ -351,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();
@@ -370,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
@@ -454,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());
}
@@ -464,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");
}
}
@@ -500,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();
}
@@ -534,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();
}
@@ -563,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();
}
@@ -585,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();
}
@@ -702,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");
@@ -792,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 69f5265ef..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
@@ -90,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";
@@ -113,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;
@@ -122,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;
@@ -241,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
@@ -357,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));
}
@@ -403,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;
}
@@ -485,7 +484,7 @@ public class RouterServiceValidator {
JSONObject trustedApps = stringToJson(getTrustedList(context));
JSONArray versions;
- JSONObject app = null;
+ JSONObject app;
try {
app = trustedApps.getJSONObject(packageName);
@@ -499,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);
}
@@ -531,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) {
@@ -584,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();
@@ -661,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;
}
@@ -704,9 +705,9 @@ public class RouterServiceValidator {
return prefAdd.commit();
}
/******************************************************************
- *
+ *
* Saving the list for later!!!
- *
+ *
******************************************************************/
/**
@@ -797,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;
@@ -806,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"),
@@ -816,7 +817,7 @@ public class RouterServiceValidator {
HIAPK("com.hiapk.marketpho"),
;
- String packageString;
+ final String packageString;
private TrustedAppStore(String packageString){
this.packageString = packageString;
}
@@ -831,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;
}
}
@@ -844,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 0d783254f..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
@@ -157,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
@@ -256,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
@@ -345,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");
@@ -370,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) {
@@ -445,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);
}
@@ -468,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 9ed6b9d03..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
@@ -158,8 +158,7 @@ public class SdlRouterService extends Service{
/** 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;
@@ -1019,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");
@@ -1225,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
@@ -1438,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());
@@ -1982,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;
@@ -2355,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()){
@@ -2703,7 +2701,6 @@ public class SdlRouterService extends Service{
// *********************************************************** UTILITY ****************************************************************
//*****************************************************************************************************************************************/
- @SuppressWarnings("unused")
private void debugPacket(byte[] bytes){
//DEBUG
@@ -2887,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;
@@ -3113,7 +3110,6 @@ public class SdlRouterService extends Service{
}
}
- @SuppressWarnings("unused")
public void clearSessionIds(){
this.sessionIds.clear();
}
@@ -3433,7 +3429,7 @@ 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;
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 315644716..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
@@ -80,8 +80,8 @@ 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;
- private String whereToReply;
+ private final String appId;
+ private final String whereToReply;
private Context currentContext;
private final Object INIT_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();
}
@@ -242,7 +242,7 @@ public class TransportBroker {
DebugTool.logWarning(TAG, "Registration denied from router service. Reason - " + msg.arg1);
break;
}
- ;
+
break;
@@ -352,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
@@ -495,7 +495,7 @@ public class TransportBroker {
return routerServiceVersion;
}
- 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) {
@@ -674,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 e3614faa9..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";
@@ -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/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 b2c3b5378..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
@@ -64,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);
@@ -116,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;
+ }
}
}
}
@@ -128,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;
}
/**
@@ -269,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