Merge "Simplify NfcCommand and avoid NullPointerExceptions"
diff --git a/cmds/svc/src/com/android/commands/svc/NfcCommand.java b/cmds/svc/src/com/android/commands/svc/NfcCommand.java
index 02a92b9..020ca33 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 @@
@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());
}