From e8de7908fd032297466b4b26e0e65ea2f5cdcd75 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Thu, 30 Oct 2014 00:21:34 -0700 Subject: [PATCH] Fix a bunch of static analysis warnings --- app/build.gradle | 2 ++ .../com/limelight/AddComputerManually.java | 2 +- app/src/main/java/com/limelight/AppView.java | 12 +++++----- app/src/main/java/com/limelight/Game.java | 24 +++++++------------ app/src/main/java/com/limelight/PcView.java | 6 ++--- .../binding/crypto/AndroidCryptoProvider.java | 7 ++++-- .../binding/input/ControllerHandler.java | 6 ++--- .../limelight/binding/input/TouchContext.java | 2 +- .../binding/input/evdev/EvdevHandler.java | 2 +- .../binding/input/evdev/EvdevReader.java | 3 ++- .../binding/input/evdev/EvdevWatcher.java | 3 ++- .../video/AndroidCpuDecoderRenderer.java | 1 + .../video/MediaCodecDecoderRenderer.java | 3 +-- .../binding/video/MediaCodecHelper.java | 11 +++++---- .../computers/ComputerManagerService.java | 6 ++--- .../limelight/computers/IdentityManager.java | 4 ++-- .../main/java/com/limelight/utils/Dialog.java | 4 ++-- .../com/limelight/utils/SpinnerDialog.java | 2 +- app/src/main/res/layout/simplerow.xml | 4 +--- 19 files changed, 52 insertions(+), 52 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 23586d6f..ff2a7c9f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,3 +1,4 @@ +import com.android.builder.model.ProductFlavor import org.apache.tools.ant.taskdefs.condition.Os apply plugin: 'com.android.application' @@ -33,6 +34,7 @@ android { sourceSets.main.jni.srcDirs = [] + //noinspection GroovyAssignabilityCheck,GroovyAssignabilityCheck task ndkBuild(type: Exec, description: 'Compile JNI source via NDK') { Properties properties = new Properties() properties.load(project.rootProject.file('local.properties').newDataInputStream()) diff --git a/app/src/main/java/com/limelight/AddComputerManually.java b/app/src/main/java/com/limelight/AddComputerManually.java index 20251528..e82e1d16 100644 --- a/app/src/main/java/com/limelight/AddComputerManually.java +++ b/app/src/main/java/com/limelight/AddComputerManually.java @@ -98,7 +98,7 @@ public class AddComputerManually extends Activity { try { addThread.join(); - } catch (InterruptedException e) {} + } catch (InterruptedException ignored) {} addThread = null; } diff --git a/app/src/main/java/com/limelight/AppView.java b/app/src/main/java/com/limelight/AppView.java index 6fb6f2b1..617d379c 100644 --- a/app/src/main/java/com/limelight/AppView.java +++ b/app/src/main/java/com/limelight/AppView.java @@ -81,7 +81,7 @@ public class AppView extends Activity { @Override public void onItemClick(AdapterView arg0, View arg1, int pos, long id) { - AppObject app = (AppObject) appListAdapter.getItem(pos); + AppObject app = appListAdapter.getItem(pos); if (app == null || app.app == null) { return; } @@ -134,7 +134,7 @@ public class AppView extends Activity { super.onCreateContextMenu(menu, v, menuInfo); AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo; - AppObject selectedApp = (AppObject) appListAdapter.getItem(info.position); + AppObject selectedApp = appListAdapter.getItem(info.position); if (selectedApp == null || selectedApp.app == null) { return; } @@ -159,7 +159,7 @@ public class AppView extends Activity { @Override public boolean onContextItemSelected(MenuItem item) { AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); - AppObject app = (AppObject) appListAdapter.getItem(info.position); + AppObject app = appListAdapter.getItem(info.position); switch (item.getItemId()) { case RESUME_ID: @@ -221,9 +221,9 @@ public class AppView extends Activity { // Success case return; - } catch (GfeHttpResponseException e) { - } catch (IOException e) { - } catch (XmlPullParserException e) { + } catch (GfeHttpResponseException ignored) { + } catch (IOException ignored) { + } catch (XmlPullParserException ignored) { } finally { spinner.dismiss(); } diff --git a/app/src/main/java/com/limelight/Game.java b/app/src/main/java/com/limelight/Game.java index 2dc19159..3544c2ae 100644 --- a/app/src/main/java/com/limelight/Game.java +++ b/app/src/main/java/com/limelight/Game.java @@ -555,9 +555,9 @@ public class Game extends Activity implements SurfaceHolder.Callback, case MotionEvent.ACTION_MOVE: // ACTION_MOVE is special because it always has actionIndex == 0 // We'll call the move handlers for all indexes manually - for (int i = 0; i < touchContextMap.length; i++) { - touchContextMap[i].touchMoveEvent(eventX, eventY); - } + for (TouchContext aTouchContextMap : touchContextMap) { + aTouchContextMap.touchMoveEvent(eventX, eventY); + } break; default: return false; @@ -621,21 +621,15 @@ public class Game extends Activity implements SurfaceHolder.Callback, @Override public boolean onTouchEvent(MotionEvent event) { - if (!handleMotionEvent(event)) { - return super.onTouchEvent(event); - } - - return true; - } + return handleMotionEvent(event) || super.onTouchEvent(event); + + } @Override public boolean onGenericMotionEvent(MotionEvent event) { - if (!handleMotionEvent(event)) { - return super.onGenericMotionEvent(event); - } - - return true; - } + return handleMotionEvent(event) || super.onGenericMotionEvent(event); + + } private void updateMousePosition(int eventX, int eventY) { // Send a mouse move if we already have a mouse location diff --git a/app/src/main/java/com/limelight/PcView.java b/app/src/main/java/com/limelight/PcView.java index 74514602..c5018887 100644 --- a/app/src/main/java/com/limelight/PcView.java +++ b/app/src/main/java/com/limelight/PcView.java @@ -101,7 +101,7 @@ public class PcView extends Activity { @Override public void onItemClick(AdapterView arg0, View arg1, int pos, long id) { - ComputerObject computer = (ComputerObject) pcListAdapter.getItem(pos); + ComputerObject computer = pcListAdapter.getItem(pos); if (computer.details == null) { // Placeholder item; no context menu for it return; @@ -236,7 +236,7 @@ public class PcView extends Activity { super.onCreateContextMenu(menu, v, menuInfo); AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo; - ComputerObject computer = (ComputerObject) pcListAdapter.getItem(info.position); + ComputerObject computer = pcListAdapter.getItem(info.position); if (computer == null || computer.details == null) { startComputerUpdates(); return; @@ -477,7 +477,7 @@ public class PcView extends Activity { @Override public boolean onContextItemSelected(MenuItem item) { AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); - ComputerObject computer = (ComputerObject) pcListAdapter.getItem(info.position); + ComputerObject computer = pcListAdapter.getItem(info.position); switch (item.getItemId()) { case PAIR_ID: diff --git a/app/src/main/java/com/limelight/binding/crypto/AndroidCryptoProvider.java b/app/src/main/java/com/limelight/binding/crypto/AndroidCryptoProvider.java index 01d62db6..64e9c1a6 100644 --- a/app/src/main/java/com/limelight/binding/crypto/AndroidCryptoProvider.java +++ b/app/src/main/java/com/limelight/binding/crypto/AndroidCryptoProvider.java @@ -52,7 +52,7 @@ public class AndroidCryptoProvider implements LimelightCryptoProvider { private RSAPrivateKey key; private byte[] pemCertBytes; - private static Object globalCryptoLock = new Object(); + private static final Object globalCryptoLock = new Object(); static { // Install the Bouncy Castle provider @@ -74,7 +74,10 @@ public class AndroidCryptoProvider implements LimelightCryptoProvider { try { FileInputStream fin = new FileInputStream(f); byte[] fileData = new byte[(int) f.length()]; - fin.read(fileData); + if (fin.read(fileData) != f.length()) { + // Failed to read + fileData = null; + } fin.close(); return fileData; } catch (IOException e) { diff --git a/app/src/main/java/com/limelight/binding/input/ControllerHandler.java b/app/src/main/java/com/limelight/binding/input/ControllerHandler.java index 38f4dab8..b525c419 100644 --- a/app/src/main/java/com/limelight/binding/input/ControllerHandler.java +++ b/app/src/main/java/com/limelight/binding/input/ControllerHandler.java @@ -418,7 +418,7 @@ public class ControllerHandler { // UI thread. try { Thread.sleep(ControllerHandler.MINIMUM_BUTTON_DOWN_TIME_MS); - } catch (InterruptedException e) {} + } catch (InterruptedException ignored) {} } switch (keyCode) { @@ -495,7 +495,7 @@ public class ControllerHandler { try { Thread.sleep(EMULATED_SELECT_UP_DELAY_MS); - } catch (InterruptedException e) {} + } catch (InterruptedException ignored) {} } } @@ -513,7 +513,7 @@ public class ControllerHandler { try { Thread.sleep(EMULATED_SPECIAL_UP_DELAY_MS); - } catch (InterruptedException e) {} + } catch (InterruptedException ignored) {} } } diff --git a/app/src/main/java/com/limelight/binding/input/TouchContext.java b/app/src/main/java/com/limelight/binding/input/TouchContext.java index 7ee68c10..4d66fec8 100644 --- a/app/src/main/java/com/limelight/binding/input/TouchContext.java +++ b/app/src/main/java/com/limelight/binding/input/TouchContext.java @@ -65,7 +65,7 @@ public class TouchContext { // do input detection by polling try { Thread.sleep(100); - } catch (InterruptedException e) {} + } catch (InterruptedException ignored) {} // Raise the mouse button conn.sendMouseButtonUp(buttonIndex); diff --git a/app/src/main/java/com/limelight/binding/input/evdev/EvdevHandler.java b/app/src/main/java/com/limelight/binding/input/evdev/EvdevHandler.java index fb1fff71..5d78477a 100644 --- a/app/src/main/java/com/limelight/binding/input/evdev/EvdevHandler.java +++ b/app/src/main/java/com/limelight/binding/input/evdev/EvdevHandler.java @@ -158,7 +158,7 @@ public class EvdevHandler { try { handlerThread.join(); - } catch (InterruptedException e) {} + } catch (InterruptedException ignored) {} } public void notifyDeleted() { diff --git a/app/src/main/java/com/limelight/binding/input/evdev/EvdevReader.java b/app/src/main/java/com/limelight/binding/input/evdev/EvdevReader.java index eb0cfda9..102c17f9 100644 --- a/app/src/main/java/com/limelight/binding/input/evdev/EvdevReader.java +++ b/app/src/main/java/com/limelight/binding/input/evdev/EvdevReader.java @@ -13,7 +13,7 @@ public class EvdevReader { } // Requires root to chmod /dev/input/eventX - public static boolean setPermissions(String[] files, int octalPermissions) { + public static boolean setPermissions(String[] files, int octalPermissions) { ProcessBuilder builder = new ProcessBuilder("su"); try { @@ -28,6 +28,7 @@ public class EvdevReader { p.waitFor(); p.destroy(); + return true; } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { diff --git a/app/src/main/java/com/limelight/binding/input/evdev/EvdevWatcher.java b/app/src/main/java/com/limelight/binding/input/evdev/EvdevWatcher.java index 8d90b83b..6584dcc3 100644 --- a/app/src/main/java/com/limelight/binding/input/evdev/EvdevWatcher.java +++ b/app/src/main/java/com/limelight/binding/input/evdev/EvdevWatcher.java @@ -8,11 +8,12 @@ import com.limelight.LimeLog; import android.os.FileObserver; +@SuppressWarnings("ALL") public class EvdevWatcher { private static final String PATH = "/dev/input"; private static final String REQUIRED_FILE_PREFIX = "event"; - private HashMap handlers = new HashMap(); + private final HashMap handlers = new HashMap(); private boolean shutdown = false; private boolean init = false; private boolean ungrabbed = false; diff --git a/app/src/main/java/com/limelight/binding/video/AndroidCpuDecoderRenderer.java b/app/src/main/java/com/limelight/binding/video/AndroidCpuDecoderRenderer.java index 498bb114..26b11076 100644 --- a/app/src/main/java/com/limelight/binding/video/AndroidCpuDecoderRenderer.java +++ b/app/src/main/java/com/limelight/binding/video/AndroidCpuDecoderRenderer.java @@ -18,6 +18,7 @@ import com.limelight.nvstream.av.video.VideoDecoderRenderer; import com.limelight.nvstream.av.video.VideoDepacketizer; import com.limelight.nvstream.av.video.cpu.AvcDecoder; +@SuppressWarnings("EmptyCatchBlock") public class AndroidCpuDecoderRenderer implements VideoDecoderRenderer { private Thread rendererThread; diff --git a/app/src/main/java/com/limelight/binding/video/MediaCodecDecoderRenderer.java b/app/src/main/java/com/limelight/binding/video/MediaCodecDecoderRenderer.java index 0ba47678..ef5576c9 100644 --- a/app/src/main/java/com/limelight/binding/video/MediaCodecDecoderRenderer.java +++ b/app/src/main/java/com/limelight/binding/video/MediaCodecDecoderRenderer.java @@ -324,7 +324,7 @@ public class MediaCodecDecoderRenderer implements VideoDecoderRenderer { rendererThread.interrupt(); try { rendererThread.join(); - } catch (InterruptedException e) { } + } catch (InterruptedException ignored) { } } // Stop the decoder @@ -454,7 +454,6 @@ public class MediaCodecDecoderRenderer implements VideoDecoderRenderer { timestampUs, codecFlags); depacketizer.freeDecodeUnit(decodeUnit); - return; } @Override diff --git a/app/src/main/java/com/limelight/binding/video/MediaCodecHelper.java b/app/src/main/java/com/limelight/binding/video/MediaCodecHelper.java index 1e69c773..752322bf 100644 --- a/app/src/main/java/com/limelight/binding/video/MediaCodecHelper.java +++ b/app/src/main/java/com/limelight/binding/video/MediaCodecHelper.java @@ -3,6 +3,7 @@ package com.limelight.binding.video; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; +import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.Locale; @@ -99,9 +100,7 @@ public class MediaCodecHelper { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { MediaCodecList mcl = new MediaCodecList(MediaCodecList.REGULAR_CODECS); - for (MediaCodecInfo info : mcl.getCodecInfos()) { - infoList.add(info); - } + Collections.addAll(infoList, mcl.getCodecInfos()); } else { for (int i = 0; i < MediaCodecList.getCodecCount(); i++) { @@ -112,7 +111,8 @@ public class MediaCodecHelper { return infoList; } - public static String dumpDecoders() throws Exception { + @SuppressWarnings("RedundantThrows") + public static String dumpDecoders() throws Exception { String str = ""; for (MediaCodecInfo codecInfo : getMediaCodecList()) { // Skip encoders @@ -203,7 +203,8 @@ public class MediaCodecHelper { // We declare this method as explicitly throwing Exception // since some bad decoders can throw IllegalArgumentExceptions unexpectedly // and we want to be sure all callers are handling this possibility - public static MediaCodecInfo findKnownSafeDecoder() throws Exception { + @SuppressWarnings("RedundantThrows") + public static MediaCodecInfo findKnownSafeDecoder() throws Exception { for (MediaCodecInfo codecInfo : getMediaCodecList()) { // Skip encoders if (codecInfo.isEncoder()) { diff --git a/app/src/main/java/com/limelight/computers/ComputerManagerService.java b/app/src/main/java/com/limelight/computers/ComputerManagerService.java index de264b49..2a2bcd84 100644 --- a/app/src/main/java/com/limelight/computers/ComputerManagerService.java +++ b/app/src/main/java/com/limelight/computers/ComputerManagerService.java @@ -42,7 +42,7 @@ public class ComputerManagerService extends Service { private boolean stopped; private DiscoveryService.DiscoveryBinder discoveryBinder; - private ServiceConnection discoveryServiceConnection = new ServiceConnection() { + private final ServiceConnection discoveryServiceConnection = new ServiceConnection() { public void onServiceConnected(ComponentName className, IBinder binder) { synchronized (discoveryServiceConnection) { DiscoveryService.DiscoveryBinder privateBinder = ((DiscoveryService.DiscoveryBinder)binder); @@ -84,7 +84,7 @@ public class ComputerManagerService extends Service { // Wait for the bind notification discoveryServiceConnection.wait(1000); } - } catch (InterruptedException e) { + } catch (InterruptedException ignored) { } } } @@ -93,7 +93,7 @@ public class ComputerManagerService extends Service { while (activePolls.get() != 0) { try { Thread.sleep(250); - } catch (InterruptedException e) {} + } catch (InterruptedException ignored) {} } } diff --git a/app/src/main/java/com/limelight/computers/IdentityManager.java b/app/src/main/java/com/limelight/computers/IdentityManager.java index ab33ee35..8734d124 100644 --- a/app/src/main/java/com/limelight/computers/IdentityManager.java +++ b/app/src/main/java/com/limelight/computers/IdentityManager.java @@ -54,7 +54,7 @@ public class IdentityManager { if (reader != null) { try { reader.close(); - } catch (IOException e) {} + } catch (IOException ignored) {} } } } @@ -76,7 +76,7 @@ public class IdentityManager { if (writer != null) { try { writer.close(); - } catch (IOException e) {} + } catch (IOException ignored) {} } } diff --git a/app/src/main/java/com/limelight/utils/Dialog.java b/app/src/main/java/com/limelight/utils/Dialog.java index d95dcfb3..eb7cd81b 100644 --- a/app/src/main/java/com/limelight/utils/Dialog.java +++ b/app/src/main/java/com/limelight/utils/Dialog.java @@ -13,7 +13,7 @@ public class Dialog implements Runnable { private AlertDialog alert; - private static ArrayList rundownDialogs = new ArrayList(); + private static final ArrayList rundownDialogs = new ArrayList(); public Dialog(Activity activity, String title, String message, boolean endAfterDismiss) { @@ -57,7 +57,7 @@ public class Dialog implements Runnable { alert.setButton(AlertDialog.BUTTON_NEUTRAL, "OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { synchronized (rundownDialogs) { - rundownDialogs.remove(this); + rundownDialogs.remove(Dialog.this); alert.dismiss(); } diff --git a/app/src/main/java/com/limelight/utils/SpinnerDialog.java b/app/src/main/java/com/limelight/utils/SpinnerDialog.java index 5b304034..4424a48c 100644 --- a/app/src/main/java/com/limelight/utils/SpinnerDialog.java +++ b/app/src/main/java/com/limelight/utils/SpinnerDialog.java @@ -14,7 +14,7 @@ public class SpinnerDialog implements Runnable,OnCancelListener { private ProgressDialog progress; private boolean finish; - private static ArrayList rundownDialogs = new ArrayList(); + private static final ArrayList rundownDialogs = new ArrayList(); public SpinnerDialog(Activity activity, String title, String message, boolean finish) { diff --git a/app/src/main/res/layout/simplerow.xml b/app/src/main/res/layout/simplerow.xml index 102d6549..6c40b68e 100644 --- a/app/src/main/res/layout/simplerow.xml +++ b/app/src/main/res/layout/simplerow.xml @@ -1,7 +1,5 @@ -