diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2017-06-17 01:25:12 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2017-06-17 01:25:15 +0000 |
commit | b5c4e80ecd47dda8c73b0e93eb2ee1a8da58c981 (patch) | |
tree | 8a5657836c7c0c9533a46b88d8cbb58518f20fd3 /cmds/svc | |
parent | 7d136b777a71c816f4e7fc77be50a2aa56fb4322 (diff) | |
parent | d3375090aa3694d70d39590f1480ccd9b1eb48ae (diff) |
Merge "Simplify NfcCommand and avoid NullPointerExceptions"
Diffstat (limited to 'cmds/svc')
-rw-r--r-- | cmds/svc/src/com/android/commands/svc/NfcCommand.java | 53 |
1 files changed, 18 insertions, 35 deletions
diff --git a/cmds/svc/src/com/android/commands/svc/NfcCommand.java b/cmds/svc/src/com/android/commands/svc/NfcCommand.java index 02a92b9c19ff..020ca3387555 100644 --- a/cmds/svc/src/com/android/commands/svc/NfcCommand.java +++ b/cmds/svc/src/com/android/commands/svc/NfcCommand.java @@ -17,8 +17,6 @@ package com.android.commands.svc; import android.content.Context; -import android.content.pm.IPackageManager; -import android.content.pm.PackageManager; import android.nfc.INfcAdapter; import android.os.RemoteException; import android.os.ServiceManager; @@ -44,42 +42,27 @@ public class NfcCommand extends Svc.Command { @Override public void run(String[] args) { - boolean validCommand = false; - if (args.length >= 2) { - boolean flag = false; - if ("enable".equals(args[1])) { - flag = true; - validCommand = true; - } else if ("disable".equals(args[1])) { - flag = false; - validCommand = true; - } - if (validCommand) { - IPackageManager pm = IPackageManager.Stub.asInterface( - ServiceManager.getService("package")); - try { - if (pm.hasSystemFeature(PackageManager.FEATURE_NFC, 0) || - pm.hasSystemFeature(PackageManager.FEATURE_NFC_HOST_CARD_EMULATION, 0)) { - INfcAdapter nfc = INfcAdapter.Stub - .asInterface(ServiceManager.getService(Context.NFC_SERVICE)); - try { - if (flag) { - nfc.enable(); - } else - nfc.disable(true); - } catch (RemoteException e) { - System.err.println("NFC operation failed: " + e); - } - } else { - System.err.println("NFC feature not supported."); - } - } catch (RemoteException e) { - System.err.println("RemoteException while calling PackageManager, is the " - + "system running?"); - } + INfcAdapter adapter = INfcAdapter.Stub.asInterface( + ServiceManager.getService(Context.NFC_SERVICE)); + + if (adapter == null) { + System.err.println("Got a null NfcAdapter, is the system running?"); + return; + } + + try { + if (args.length == 2 && "enable".equals(args[1])) { + adapter.enable(); + return; + } else if (args.length == 2 && "disable".equals(args[1])) { + adapter.disable(true); return; } + } catch (RemoteException e) { + System.err.println("NFC operation failed: " + e); + return; } + System.err.println(longHelp()); } |