diff options
Diffstat (limited to 'android')
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 Binary files differdeleted file mode 100755 index 16370f43a..000000000 --- a/android/hello_sdl_android/src/main/res.zip +++ /dev/null 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 |