.class abstract Lcom/android/server/usb/UsbDeviceManager$UsbHandler; .super Landroid/os/Handler; .source "UsbDeviceManager.java" # annotations .annotation system Ldalvik/annotation/EnclosingClass; value = Lcom/android/server/usb/UsbDeviceManager; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x408 name = "UsbHandler" .end annotation .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/android/server/usb/UsbDeviceManager$UsbHandler$AdbTransport; } .end annotation # static fields .field protected static final USB_PERSISTENT_CONFIG_PROPERTY:Ljava/lang/String; = "persist.sys.usb.config" # instance fields .field private mAccessoryConnectionStartTime:J .field private mAdbNotificationShown:Z .field private mAudioAccessoryConnected:Z .field private mAudioAccessorySupported:Z .field private mAudioSourceEnabled:Z .field protected mBootCompleted:Z .field private mBroadcastedIntent:Landroid/content/Intent; .field private mConfigured:Z .field protected mConnected:Z .field protected final mContentResolver:Landroid/content/ContentResolver; .field private final mContext:Landroid/content/Context; .field private mCurrentAccessory:Landroid/hardware/usb/UsbAccessory; .field protected mCurrentFunctions:J .field protected mCurrentFunctionsApplied:Z .field protected mCurrentGadgetHalVersion:I .field protected mCurrentUsbFunctionsReceived:Z .field protected mCurrentUser:I .field private mHideUsbNotification:Z .field private mHostConnected:Z .field private mMidiCard:I .field private mMidiDevice:I .field private mMidiEnabled:Z .field private mNotificationManager:Landroid/app/NotificationManager; .field protected mPendingBootAccessoryHandshakeBroadcast:Z .field private mPendingBootBroadcast:Z .field private final mPermissionManager:Lcom/android/server/usb/UsbPermissionManager; .field private mScreenLocked:Z .field protected mScreenUnlockedFunctions:J .field private mSendStringCount:I .field protected mSettings:Landroid/content/SharedPreferences; .field private mSinkPower:Z .field private mSourcePower:Z .field private mStartAccessory:Z .field private mSupportsAllCombinations:Z .field private mSystemReady:Z .field private mUsbAccessoryConnected:Z .field private final mUsbAlsaManager:Lcom/android/server/usb/UsbAlsaManager; .field private mUsbCharging:Z .field protected final mUsbDeviceManager:Lcom/android/server/usb/UsbDeviceManager; .field private mUsbNotificationId:I .field protected mUsbSpeed:I .field protected mUseUsbNotification:Z # direct methods .method constructor (Landroid/os/Looper;Landroid/content/Context;Lcom/android/server/usb/UsbDeviceManager;Lcom/android/server/usb/UsbAlsaManager;Lcom/android/server/usb/UsbPermissionManager;)V .registers 13 .param p1, "looper" # Landroid/os/Looper; .param p2, "context" # Landroid/content/Context; .param p3, "deviceManager" # Lcom/android/server/usb/UsbDeviceManager; .param p4, "alsaManager" # Lcom/android/server/usb/UsbAlsaManager; .param p5, "permissionManager" # Lcom/android/server/usb/UsbPermissionManager; .line 569 invoke-direct {p0, p1}, Landroid/os/Handler;->(Landroid/os/Looper;)V .line 537 const-wide/16 v0, 0x0 iput-wide v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mAccessoryConnectionStartTime:J .line 538 const/4 v0, 0x0 iput v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mSendStringCount:I .line 539 iput-boolean v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mStartAccessory:Z .line 570 iput-object p2, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mContext:Landroid/content/Context; .line 571 iput-object p3, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mUsbDeviceManager:Lcom/android/server/usb/UsbDeviceManager; .line 572 iput-object p4, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mUsbAlsaManager:Lcom/android/server/usb/UsbAlsaManager; .line 573 iput-object p5, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mPermissionManager:Lcom/android/server/usb/UsbPermissionManager; .line 574 invoke-virtual {p2}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; move-result-object v1 iput-object v1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mContentResolver:Landroid/content/ContentResolver; .line 576 invoke-static {}, Landroid/app/ActivityManager;->getCurrentUser()I move-result v1 iput v1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentUser:I .line 577 const/4 v1, 0x1 iput-boolean v1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mScreenLocked:Z .line 579 invoke-virtual {p0, p2}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->getPinnedSharedPrefs(Landroid/content/Context;)Landroid/content/SharedPreferences; move-result-object v2 iput-object v2, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mSettings:Landroid/content/SharedPreferences; .line 580 if-nez v2, :cond_35 .line 581 invoke-static {}, Lcom/android/server/usb/UsbDeviceManager;->-$$Nest$sfgetTAG()Ljava/lang/String; move-result-object v2 const-string v3, "Couldn\'t load shared preferences" invoke-static {v2, v3}, Landroid/util/Slog;->e(Ljava/lang/String;Ljava/lang/String;)I goto :goto_54 .line 583 :cond_35 sget-object v3, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; new-array v4, v1, [Ljava/lang/Object; iget v5, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentUser:I .line 585 invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v5 aput-object v5, v4, v0 const-string/jumbo v5, "usb-screen-unlocked-config-%d" invoke-static {v3, v5, v4}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; move-result-object v3 .line 584 const-string v4, "" invoke-interface {v2, v3, v4}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v2 .line 583 invoke-static {v2}, Landroid/hardware/usb/UsbManager;->usbFunctionsFromString(Ljava/lang/String;)J move-result-wide v2 iput-wide v2, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mScreenUnlockedFunctions:J .line 591 :goto_54 invoke-static {p2}, Landroid/os/storage/StorageManager;->from(Landroid/content/Context;)Landroid/os/storage/StorageManager; move-result-object v2 .line 593 .local v2, "storageManager":Landroid/os/storage/StorageManager; if-eqz v2, :cond_5f invoke-virtual {v2}, Landroid/os/storage/StorageManager;->getPrimaryVolume()Landroid/os/storage/StorageVolume; move-result-object v3 goto :goto_60 :cond_5f const/4 v3, 0x0 .line 595 .local v3, "primary":Landroid/os/storage/StorageVolume; :goto_60 if-eqz v3, :cond_6a invoke-virtual {v3}, Landroid/os/storage/StorageVolume;->allowMassStorage()Z move-result v4 if-eqz v4, :cond_6a move v4, v1 goto :goto_6b :cond_6a move v4, v0 .line 596 .local v4, "massStorageSupported":Z :goto_6b if-nez v4, :cond_7b invoke-virtual {p2}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; move-result-object v5 const v6, 0x11101dd invoke-virtual {v5, v6}, Landroid/content/res/Resources;->getBoolean(I)Z move-result v5 if-eqz v5, :cond_7b move v0, v1 :cond_7b iput-boolean v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mUseUsbNotification:Z .line 598 return-void .end method .method private broadcastUsbAccessoryHandshake()V .registers 5 .line 783 new-instance v0, Landroid/content/Intent; const-string v1, "android.hardware.usb.action.USB_ACCESSORY_HANDSHAKE" invoke-direct {v0, v1}, Landroid/content/Intent;->(Ljava/lang/String;)V .line 784 const/high16 v1, 0x11000000 invoke-virtual {v0, v1}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent; move-result-object v0 iget-wide v1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mAccessoryConnectionStartTime:J .line 786 const-string v3, "android.hardware.usb.extra.ACCESSORY_UEVENT_TIME" invoke-virtual {v0, v3, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;J)Landroid/content/Intent; move-result-object v0 iget v1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mSendStringCount:I .line 788 const-string v2, "android.hardware.usb.extra.ACCESSORY_STRING_COUNT" invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent; move-result-object v0 iget-boolean v1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mStartAccessory:Z .line 790 const-string v2, "android.hardware.usb.extra.ACCESSORY_START" invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Z)Landroid/content/Intent; move-result-object v0 .line 793 invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J move-result-wide v1 .line 792 const-string v3, "android.hardware.usb.extra.ACCESSORY_HANDSHAKE_END" invoke-virtual {v0, v3, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;J)Landroid/content/Intent; move-result-object v0 .line 799 .local v0, "intent":Landroid/content/Intent; invoke-virtual {p0, v0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->sendStickyBroadcast(Landroid/content/Intent;)V .line 800 invoke-virtual {p0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->resetUsbAccessoryHandshakeDebuggingInfo()V .line 801 return-void .end method .method private dumpFunctions(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;JJ)V .registers 17 .param p1, "dump" # Lcom/android/internal/util/dump/DualDumpOutputStream; .param p2, "idName" # Ljava/lang/String; .param p3, "id" # J .param p5, "functions" # J .line 1424 const/4 v0, 0x0 .local v0, "i":I :goto_1 const/16 v1, 0x3f if-ge v0, v1, :cond_34 .line 1425 const-wide/16 v1, 0x1 shl-long v3, v1, v0 and-long/2addr v3, p5 const-wide/16 v5, 0x0 cmp-long v3, v3, v5 if-eqz v3, :cond_2e .line 1426 invoke-virtual {p1}, Lcom/android/internal/util/dump/DualDumpOutputStream;->isProto()Z move-result v3 if-eqz v3, :cond_22 .line 1427 shl-long v8, v1, v0 move-object v4, p1 move-object v5, p2 move-wide v6, p3 invoke-virtual/range {v4 .. v9}, Lcom/android/internal/util/dump/DualDumpOutputStream;->write(Ljava/lang/String;JJ)V move-object v2, p1 move-object v3, p2 move-wide v4, p3 goto :goto_31 .line 1429 :cond_22 shl-long/2addr v1, v0 invoke-static {v1, v2}, Landroid/hardware/usb/gadget/V1_0/GadgetFunction;->toString(J)Ljava/lang/String; move-result-object v1 move-object v2, p1 move-object v3, p2 move-wide v4, p3 invoke-virtual {p1, p2, p3, p4, v1}, Lcom/android/internal/util/dump/DualDumpOutputStream;->write(Ljava/lang/String;JLjava/lang/String;)V goto :goto_31 .line 1425 :cond_2e move-object v2, p1 move-object v3, p2 move-wide v4, p3 .line 1424 :goto_31 add-int/lit8 v0, v0, 0x1 goto :goto_1 :cond_34 move-object v2, p1 move-object v3, p2 move-wide v4, p3 .line 1433 .end local v0 # "i":I return-void .end method .method private isTv()Z .registers 3 .line 1376 iget-object v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mContext:Landroid/content/Context; invoke-virtual {v0}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager; move-result-object v0 const-string v1, "android.software.leanback" invoke-virtual {v0, v1}, Landroid/content/pm/PackageManager;->hasSystemFeature(Ljava/lang/String;)Z move-result v0 return v0 .end method .method private isUsbStateChanged(Landroid/content/Intent;)Z .registers 9 .param p1, "intent" # Landroid/content/Intent; .line 760 invoke-virtual {p1}, Landroid/content/Intent;->getExtras()Landroid/os/Bundle; move-result-object v0 invoke-virtual {v0}, Landroid/os/Bundle;->keySet()Ljava/util/Set; move-result-object v0 .line 761 .local v0, "keySet":Ljava/util/Set;, "Ljava/util/Set;" iget-object v1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mBroadcastedIntent:Landroid/content/Intent; const/4 v2, 0x1 const/4 v3, 0x0 if-nez v1, :cond_27 .line 762 invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object v1 :goto_12 invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z move-result v4 if-eqz v4, :cond_26 invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v4 check-cast v4, Ljava/lang/String; .line 763 .local v4, "key":Ljava/lang/String; invoke-virtual {p1, v4, v3}, Landroid/content/Intent;->getBooleanExtra(Ljava/lang/String;Z)Z move-result v5 if-eqz v5, :cond_25 .line 764 return v2 .line 766 .end local v4 # "key":Ljava/lang/String; :cond_25 goto :goto_12 :cond_26 goto :goto_54 .line 768 :cond_27 invoke-virtual {v1}, Landroid/content/Intent;->getExtras()Landroid/os/Bundle; move-result-object v1 invoke-virtual {v1}, Landroid/os/Bundle;->keySet()Ljava/util/Set; move-result-object v1 invoke-interface {v0, v1}, Ljava/util/Set;->equals(Ljava/lang/Object;)Z move-result v1 if-nez v1, :cond_36 .line 769 return v2 .line 771 :cond_36 invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object v1 :goto_3a invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z move-result v4 if-eqz v4, :cond_54 invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v4 check-cast v4, Ljava/lang/String; .line 772 .restart local v4 # "key":Ljava/lang/String; invoke-virtual {p1, v4, v3}, Landroid/content/Intent;->getBooleanExtra(Ljava/lang/String;Z)Z move-result v5 iget-object v6, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mBroadcastedIntent:Landroid/content/Intent; .line 773 invoke-virtual {v6, v4, v3}, Landroid/content/Intent;->getBooleanExtra(Ljava/lang/String;Z)Z move-result v6 if-eq v5, v6, :cond_53 .line 774 return v2 .line 776 .end local v4 # "key":Ljava/lang/String; :cond_53 goto :goto_3a .line 778 :cond_54 :goto_54 return v3 .end method .method private notifyAccessoryModeExit()V .registers 4 .line 741 invoke-static {}, Lcom/android/server/usb/UsbDeviceManager;->-$$Nest$sfgetTAG()Ljava/lang/String; move-result-object v0 const-string v1, "exited USB accessory mode" invoke-static {v0, v1}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I .line 742 const-wide/16 v0, 0x0 const/4 v2, 0x0 invoke-virtual {p0, v0, v1, v2}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->setEnabledFunctions(JZ)V .line 744 iget-object v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentAccessory:Landroid/hardware/usb/UsbAccessory; if-eqz v0, :cond_1f .line 745 iget-boolean v1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mBootCompleted:Z if-eqz v1, :cond_1c .line 746 iget-object v1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mPermissionManager:Lcom/android/server/usb/UsbPermissionManager; invoke-virtual {v1, v0}, Lcom/android/server/usb/UsbPermissionManager;->usbAccessoryRemoved(Landroid/hardware/usb/UsbAccessory;)V .line 748 :cond_1c const/4 v0, 0x0 iput-object v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentAccessory:Landroid/hardware/usb/UsbAccessory; .line 750 :cond_1f return-void .end method .method private setAdbEnabled(Z)V .registers 5 .param p1, "enable" # Z const/4 p1, 0x0 .line 682 const-string/jumbo v0, "persist.sys.usb.config" if-eqz p1, :cond_c .line 683 const-string v1, "adb" invoke-virtual {p0, v0, v1}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->setSystemProperty(Ljava/lang/String;Ljava/lang/String;)V goto :goto_11 .line 685 :cond_c const-string v1, "mtp" invoke-virtual {p0, v0, v1}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->setSystemProperty(Ljava/lang/String;Ljava/lang/String;)V .line 688 :goto_11 iget-wide v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentFunctions:J const/4 v2, 0x1 invoke-virtual {p0, v0, v1, v2}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->setEnabledFunctions(JZ)V .line 689 const/4 v0, 0x0 invoke-virtual {p0, v0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateAdbNotification(Z)V .line 690 return-void .end method .method private setScreenUnlockedFunctions()V .registers 4 .line 869 iget-wide v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mScreenUnlockedFunctions:J const/4 v2, 0x0 invoke-virtual {p0, v0, v1, v2}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->setEnabledFunctions(JZ)V .line 870 return-void .end method .method private updateCurrentAccessory()V .registers 14 .line 700 const/16 v0, 0x8 invoke-virtual {p0, v0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->hasMessages(I)Z move-result v0 .line 702 .local v0, "enteringAccessoryMode":Z iget-boolean v1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mConfigured:Z if-eqz v1, :cond_79 if-eqz v0, :cond_79 .line 704 iget-object v1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mUsbDeviceManager:Lcom/android/server/usb/UsbDeviceManager; invoke-virtual {v1}, Lcom/android/server/usb/UsbDeviceManager;->getAccessoryStrings()[Ljava/lang/String; move-result-object v1 .line 705 .local v1, "accessoryStrings":[Ljava/lang/String; if-eqz v1, :cond_6f .line 706 new-instance v2, Lcom/android/server/usb/UsbSerialReader; iget-object v3, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mContext:Landroid/content/Context; iget-object v4, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mPermissionManager:Lcom/android/server/usb/UsbPermissionManager; const/4 v5, 0x5 aget-object v5, v1, v5 invoke-direct {v2, v3, v4, v5}, Lcom/android/server/usb/UsbSerialReader;->(Landroid/content/Context;Lcom/android/server/usb/UsbPermissionManager;Ljava/lang/String;)V .line 709 .local v2, "serialReader":Lcom/android/server/usb/UsbSerialReader; new-instance v3, Landroid/hardware/usb/UsbAccessory; const/4 v4, 0x0 aget-object v7, v1, v4 const/4 v4, 0x1 aget-object v8, v1, v4 const/4 v4, 0x2 aget-object v9, v1, v4 const/4 v4, 0x3 aget-object v10, v1, v4 const/4 v4, 0x4 aget-object v11, v1, v4 move-object v6, v3 move-object v12, v2 invoke-direct/range {v6 .. v12}, Landroid/hardware/usb/UsbAccessory;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/hardware/usb/IUsbSerialReader;)V iput-object v3, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentAccessory:Landroid/hardware/usb/UsbAccessory; .line 717 invoke-virtual {v2, v3}, Lcom/android/server/usb/UsbSerialReader;->setDevice(Ljava/lang/Object;)V .line 719 invoke-static {}, Lcom/android/server/usb/UsbDeviceManager;->-$$Nest$sfgetTAG()Ljava/lang/String; move-result-object v3 new-instance v4, Ljava/lang/StringBuilder; invoke-direct {v4}, Ljava/lang/StringBuilder;->()V const-string v5, "entering USB accessory mode: " invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v4 iget-object v5, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentAccessory:Landroid/hardware/usb/UsbAccessory; invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v4 invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v4 invoke-static {v3, v4}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I .line 721 iget-boolean v3, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mBootCompleted:Z if-eqz v3, :cond_6e .line 722 iget-object v3, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mUsbDeviceManager:Lcom/android/server/usb/UsbDeviceManager; invoke-virtual {v3}, Lcom/android/server/usb/UsbDeviceManager;->getCurrentSettings()Lcom/android/server/usb/UsbProfileGroupSettingsManager; move-result-object v3 iget-object v4, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentAccessory:Landroid/hardware/usb/UsbAccessory; invoke-virtual {v3, v4}, Lcom/android/server/usb/UsbProfileGroupSettingsManager;->accessoryAttached(Landroid/hardware/usb/UsbAccessory;)V .line 723 const/16 v3, 0x14 invoke-virtual {p0, v3}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->removeMessages(I)V .line 724 invoke-direct {p0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->broadcastUsbAccessoryHandshake()V .line 726 .end local v2 # "serialReader":Lcom/android/server/usb/UsbSerialReader; :cond_6e goto :goto_78 .line 727 :cond_6f invoke-static {}, Lcom/android/server/usb/UsbDeviceManager;->-$$Nest$sfgetTAG()Ljava/lang/String; move-result-object v2 const-string v3, "nativeGetAccessoryStrings failed" invoke-static {v2, v3}, Landroid/util/Slog;->e(Ljava/lang/String;Ljava/lang/String;)I .line 729 .end local v1 # "accessoryStrings":[Ljava/lang/String; :goto_78 goto :goto_7e .line 730 :cond_79 if-nez v0, :cond_7e .line 731 invoke-direct {p0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->notifyAccessoryModeExit()V .line 736 :cond_7e :goto_7e return-void .end method .method private updateMidiFunction()V .registers 8 .line 845 iget-wide v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentFunctions:J const-wide/16 v2, 0x8 and-long/2addr v0, v2 const-wide/16 v2, 0x0 cmp-long v0, v0, v2 const/4 v1, 0x1 const/4 v2, 0x0 if-eqz v0, :cond_f move v0, v1 goto :goto_10 :cond_f move v0, v2 .line 846 .local v0, "enabled":Z :goto_10 iget-boolean v3, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mMidiEnabled:Z if-eq v0, v3, :cond_4c .line 847 if-eqz v0, :cond_4a .line 848 const/4 v3, 0x0 .line 850 .local v3, "scanner":Ljava/util/Scanner; :try_start_17 new-instance v4, Ljava/util/Scanner; new-instance v5, Ljava/io/File; const-string v6, "/sys/class/android_usb/android0/f_midi/alsa" invoke-direct {v5, v6}, Ljava/io/File;->(Ljava/lang/String;)V invoke-direct {v4, v5}, Ljava/util/Scanner;->(Ljava/io/File;)V move-object v3, v4 .line 851 invoke-virtual {v3}, Ljava/util/Scanner;->nextInt()I move-result v4 iput v4, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mMidiCard:I .line 852 invoke-virtual {v3}, Ljava/util/Scanner;->nextInt()I move-result v4 iput v4, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mMidiDevice:I :try_end_30 .catch Ljava/io/FileNotFoundException; {:try_start_17 .. :try_end_30} :catch_33 .catchall {:try_start_17 .. :try_end_30} :catchall_31 .line 857 goto :goto_40 :catchall_31 move-exception v1 goto :goto_44 .line 853 :catch_33 move-exception v4 .line 854 .local v4, "e":Ljava/io/FileNotFoundException; :try_start_34 invoke-static {}, Lcom/android/server/usb/UsbDeviceManager;->-$$Nest$sfgetTAG()Ljava/lang/String; move-result-object v5 const-string v6, "could not open MIDI file" invoke-static {v5, v6, v4}, Landroid/util/Slog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I :try_end_3d .catchall {:try_start_34 .. :try_end_3d} :catchall_31 .line 855 const/4 v0, 0x0 .line 857 .end local v4 # "e":Ljava/io/FileNotFoundException; if-eqz v3, :cond_4a .line 858 :goto_40 invoke-virtual {v3}, Ljava/util/Scanner;->close()V goto :goto_4a .line 857 :goto_44 if-eqz v3, :cond_49 .line 858 invoke-virtual {v3}, Ljava/util/Scanner;->close()V .line 860 :cond_49 throw v1 .line 862 .end local v3 # "scanner":Ljava/util/Scanner; :cond_4a :goto_4a iput-boolean v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mMidiEnabled:Z .line 864 :cond_4c iget-object v3, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mUsbAlsaManager:Lcom/android/server/usb/UsbAlsaManager; iget-boolean v4, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mMidiEnabled:Z if-eqz v4, :cond_57 iget-boolean v4, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mConfigured:Z if-eqz v4, :cond_57 goto :goto_58 :cond_57 move v1, v2 :goto_58 iget v2, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mMidiCard:I iget v4, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mMidiDevice:I invoke-virtual {v3, v1, v2, v4}, Lcom/android/server/usb/UsbAlsaManager;->setPeripheralMidiState(ZII)V .line 866 return-void .end method .method private updateUsbFunctions()V .registers 1 .line 841 invoke-direct {p0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateMidiFunction()V .line 842 return-void .end method # virtual methods .method public dump(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;J)V .registers 17 .param p1, "dump" # Lcom/android/internal/util/dump/DualDumpOutputStream; .param p2, "idName" # Ljava/lang/String; .param p3, "id" # J .line 1436 move-object v8, p0 move-object v9, p1 invoke-virtual/range {p1 .. p4}, Lcom/android/internal/util/dump/DualDumpOutputStream;->start(Ljava/lang/String;J)J move-result-wide v10 .line 1438 .local v10, "token":J iget-wide v6, v8, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentFunctions:J const-string v3, "current_functions" const-wide v4, 0x20e00000001L move-object v1, p0 move-object v2, p1 invoke-direct/range {v1 .. v7}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->dumpFunctions(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;JJ)V .line 1440 iget-boolean v0, v8, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentFunctionsApplied:Z const-string v1, "current_functions_applied" const-wide v2, 0x10800000002L invoke-virtual {p1, v1, v2, v3, v0}, Lcom/android/internal/util/dump/DualDumpOutputStream;->write(Ljava/lang/String;JZ)V .line 1442 iget-wide v6, v8, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mScreenUnlockedFunctions:J const-string/jumbo v3, "screen_unlocked_functions" const-wide v4, 0x20e00000003L move-object v1, p0 move-object v2, p1 invoke-direct/range {v1 .. v7}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->dumpFunctions(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;JJ)V .line 1444 iget-boolean v0, v8, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mScreenLocked:Z const-string/jumbo v1, "screen_locked" const-wide v2, 0x10800000004L invoke-virtual {p1, v1, v2, v3, v0}, Lcom/android/internal/util/dump/DualDumpOutputStream;->write(Ljava/lang/String;JZ)V .line 1445 iget-boolean v0, v8, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mConnected:Z const-string v1, "connected" const-wide v2, 0x10800000005L invoke-virtual {p1, v1, v2, v3, v0}, Lcom/android/internal/util/dump/DualDumpOutputStream;->write(Ljava/lang/String;JZ)V .line 1446 iget-boolean v0, v8, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mConfigured:Z const-string v1, "configured" const-wide v2, 0x10800000006L invoke-virtual {p1, v1, v2, v3, v0}, Lcom/android/internal/util/dump/DualDumpOutputStream;->write(Ljava/lang/String;JZ)V .line 1447 iget-object v0, v8, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentAccessory:Landroid/hardware/usb/UsbAccessory; if-eqz v0, :cond_62 .line 1448 const-wide v1, 0x10b00000007L const-string v3, "current_accessory" invoke-static {p1, v3, v1, v2, v0}, Lcom/android/internal/usb/DumpUtils;->writeAccessory(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;JLandroid/hardware/usb/UsbAccessory;)V .line 1451 :cond_62 const-wide v0, 0x10800000008L iget-boolean v2, v8, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mHostConnected:Z const-string v3, "host_connected" invoke-virtual {p1, v3, v0, v1, v2}, Lcom/android/internal/util/dump/DualDumpOutputStream;->write(Ljava/lang/String;JZ)V .line 1452 const-wide v0, 0x10800000009L iget-boolean v2, v8, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mSourcePower:Z const-string/jumbo v3, "source_power" invoke-virtual {p1, v3, v0, v1, v2}, Lcom/android/internal/util/dump/DualDumpOutputStream;->write(Ljava/lang/String;JZ)V .line 1453 const-wide v0, 0x1080000000aL iget-boolean v2, v8, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mSinkPower:Z const-string/jumbo v3, "sink_power" invoke-virtual {p1, v3, v0, v1, v2}, Lcom/android/internal/util/dump/DualDumpOutputStream;->write(Ljava/lang/String;JZ)V .line 1454 const-wide v0, 0x1080000000bL iget-boolean v2, v8, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mUsbCharging:Z const-string/jumbo v3, "usb_charging" invoke-virtual {p1, v3, v0, v1, v2}, Lcom/android/internal/util/dump/DualDumpOutputStream;->write(Ljava/lang/String;JZ)V .line 1455 const-wide v0, 0x1080000000cL iget-boolean v2, v8, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mHideUsbNotification:Z const-string v3, "hide_usb_notification" invoke-virtual {p1, v3, v0, v1, v2}, Lcom/android/internal/util/dump/DualDumpOutputStream;->write(Ljava/lang/String;JZ)V .line 1457 const-wide v0, 0x1080000000dL iget-boolean v2, v8, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mAudioAccessoryConnected:Z const-string v3, "audio_accessory_connected" invoke-virtual {p1, v3, v0, v1, v2}, Lcom/android/internal/util/dump/DualDumpOutputStream;->write(Ljava/lang/String;JZ)V .line 1461 const/4 v1, 0x0 const/4 v2, 0x0 :try_start_af const-string v0, "kernel_state" const-wide v3, 0x1090000000fL new-instance v5, Ljava/io/File; const-string v6, "/sys/class/android_usb/android0/state" invoke-direct {v5, v6}, Ljava/io/File;->(Ljava/lang/String;)V .line 1462 invoke-static {v5, v2, v1}, Landroid/os/FileUtils;->readTextFile(Ljava/io/File;ILjava/lang/String;)Ljava/lang/String; move-result-object v5 invoke-virtual {v5}, Ljava/lang/String;->trim()Ljava/lang/String; move-result-object v5 .line 1461 invoke-static {p1, v0, v3, v4, v5}, Lcom/android/internal/util/dump/DumpUtils;->writeStringIfNotNull(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;JLjava/lang/String;)V :try_end_c8 .catch Ljava/io/FileNotFoundException; {:try_start_af .. :try_end_c8} :catch_d4 .catch Ljava/lang/Exception; {:try_start_af .. :try_end_c8} :catch_c9 goto :goto_de .line 1466 :catch_c9 move-exception v0 .line 1467 .local v0, "e":Ljava/lang/Exception; invoke-static {}, Lcom/android/server/usb/UsbDeviceManager;->-$$Nest$sfgetTAG()Ljava/lang/String; move-result-object v3 const-string v4, "Could not read kernel state" invoke-static {v3, v4, v0}, Landroid/util/Slog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I goto :goto_df .line 1463 .end local v0 # "e":Ljava/lang/Exception; :catch_d4 move-exception v0 .line 1464 .local v0, "exNotFound":Ljava/io/FileNotFoundException; invoke-static {}, Lcom/android/server/usb/UsbDeviceManager;->-$$Nest$sfgetTAG()Ljava/lang/String; move-result-object v3 const-string v4, "Ignore missing legacy kernel path in bugreport dump: kernel state:/sys/class/android_usb/android0/state" invoke-static {v3, v4}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I .line 1468 .end local v0 # "exNotFound":Ljava/io/FileNotFoundException; :goto_de nop .line 1471 :goto_df :try_start_df const-string v0, "kernel_function_list" const-wide v3, 0x10900000010L new-instance v5, Ljava/io/File; const-string v6, "/sys/class/android_usb/android0/functions" invoke-direct {v5, v6}, Ljava/io/File;->(Ljava/lang/String;)V .line 1473 invoke-static {v5, v2, v1}, Landroid/os/FileUtils;->readTextFile(Ljava/io/File;ILjava/lang/String;)Ljava/lang/String; move-result-object v1 invoke-virtual {v1}, Ljava/lang/String;->trim()Ljava/lang/String; move-result-object v1 .line 1471 invoke-static {p1, v0, v3, v4, v1}, Lcom/android/internal/util/dump/DumpUtils;->writeStringIfNotNull(Lcom/android/internal/util/dump/DualDumpOutputStream;Ljava/lang/String;JLjava/lang/String;)V :try_end_f8 .catch Ljava/io/FileNotFoundException; {:try_start_df .. :try_end_f8} :catch_104 .catch Ljava/lang/Exception; {:try_start_df .. :try_end_f8} :catch_f9 goto :goto_10e .line 1477 :catch_f9 move-exception v0 .line 1478 .local v0, "e":Ljava/lang/Exception; invoke-static {}, Lcom/android/server/usb/UsbDeviceManager;->-$$Nest$sfgetTAG()Ljava/lang/String; move-result-object v1 const-string v2, "Could not read kernel function list" invoke-static {v1, v2, v0}, Landroid/util/Slog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I goto :goto_10f .line 1474 .end local v0 # "e":Ljava/lang/Exception; :catch_104 move-exception v0 .line 1475 .local v0, "exNotFound":Ljava/io/FileNotFoundException; invoke-static {}, Lcom/android/server/usb/UsbDeviceManager;->-$$Nest$sfgetTAG()Ljava/lang/String; move-result-object v1 const-string v2, "Ignore missing legacy kernel path in bugreport dump: kernel function list:/sys/class/android_usb/android0/functions" invoke-static {v1, v2}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I .line 1479 .end local v0 # "exNotFound":Ljava/io/FileNotFoundException; :goto_10e nop .line 1481 :goto_10f invoke-virtual {p1, v10, v11}, Lcom/android/internal/util/dump/DualDumpOutputStream;->end(J)V .line 1482 return-void .end method .method protected finishBoot()V .registers 5 .line 1139 iget-boolean v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mBootCompleted:Z if-eqz v0, :cond_4a iget-boolean v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentUsbFunctionsReceived:Z if-eqz v0, :cond_4a iget-boolean v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mSystemReady:Z if-eqz v0, :cond_4a .line 1140 iget-boolean v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mPendingBootBroadcast:Z const/4 v1, 0x0 if-eqz v0, :cond_1c .line 1141 iget-wide v2, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentFunctions:J invoke-virtual {p0, v2, v3}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->getAppliedFunctions(J)J move-result-wide v2 invoke-virtual {p0, v2, v3}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateUsbStateBroadcastIfNeeded(J)V .line 1142 iput-boolean v1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mPendingBootBroadcast:Z .line 1153 :cond_1c const-wide/16 v2, 0x4 invoke-virtual {p0, v2, v3, v1}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->setEnabledFunctions(JZ)V .line 1155 const/4 v0, 0x0 invoke-direct {p0, v0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->setAdbEnabled(Z)V .line 1156 iget-object v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentAccessory:Landroid/hardware/usb/UsbAccessory; if-eqz v0, :cond_38 .line 1157 iget-object v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mUsbDeviceManager:Lcom/android/server/usb/UsbDeviceManager; invoke-virtual {v0}, Lcom/android/server/usb/UsbDeviceManager;->getCurrentSettings()Lcom/android/server/usb/UsbProfileGroupSettingsManager; move-result-object v0 iget-object v2, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentAccessory:Landroid/hardware/usb/UsbAccessory; invoke-virtual {v0, v2}, Lcom/android/server/usb/UsbProfileGroupSettingsManager;->accessoryAttached(Landroid/hardware/usb/UsbAccessory;)V .line 1158 invoke-direct {p0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->broadcastUsbAccessoryHandshake()V goto :goto_3f .line 1159 :cond_38 iget-boolean v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mPendingBootAccessoryHandshakeBroadcast:Z if-eqz v0, :cond_3f .line 1160 invoke-direct {p0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->broadcastUsbAccessoryHandshake()V .line 1163 :cond_3f :goto_3f iput-boolean v1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mPendingBootAccessoryHandshakeBroadcast:Z .line 1164 invoke-virtual {p0, v1}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateUsbNotification(Z)V .line 1165 invoke-virtual {p0, v1}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateAdbNotification(Z)V .line 1166 invoke-direct {p0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateUsbFunctions()V .line 1168 :cond_4a return-void .end method .method getAppliedFunctions(J)J .registers 5 .param p1, "functions" # J .line 892 const-wide/16 v0, 0x0 cmp-long v0, p1, v0 if-nez v0, :cond_b .line 893 invoke-virtual {p0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->getChargingFunctions()J move-result-wide v0 return-wide v0 .line 895 :cond_b invoke-virtual {p0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->isAdbEnabled()Z move-result v0 if-eqz v0, :cond_15 .line 896 const-wide/16 v0, 0x1 or-long/2addr v0, p1 return-wide v0 .line 898 :cond_15 return-wide p1 .end method .method protected getChargingFunctions()J .registers 3 .line 1382 invoke-virtual {p0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->isAdbEnabled()Z move-result v0 if-eqz v0, :cond_9 .line 1383 const-wide/16 v0, 0x1 return-wide v0 .line 1385 :cond_9 const-wide/16 v0, 0x4 return-wide v0 .end method .method public getCurrentAccessory()Landroid/hardware/usb/UsbAccessory; .registers 2 .line 1176 iget-object v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentAccessory:Landroid/hardware/usb/UsbAccessory; return-object v0 .end method .method public getEnabledFunctions()J .registers 3 .line 1402 iget-wide v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentFunctions:J return-wide v0 .end method .method public getGadgetHalVersion()I .registers 2 .line 1414 iget v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentGadgetHalVersion:I return v0 .end method .method protected getPinnedSharedPrefs(Landroid/content/Context;)Landroid/content/SharedPreferences; .registers 6 .param p1, "context" # Landroid/content/Context; .line 753 new-instance v0, Ljava/io/File; .line 754 const/4 v1, 0x0 invoke-static {v1}, Landroid/os/Environment;->getDataSystemDeDirectory(I)Ljava/io/File; move-result-object v2 const-string v3, "UsbDeviceManagerPrefs.xml" invoke-direct {v0, v2, v3}, Ljava/io/File;->(Ljava/io/File;Ljava/lang/String;)V .line 755 .local v0, "prefsFile":Ljava/io/File; invoke-virtual {p1}, Landroid/content/Context;->createDeviceProtectedStorageContext()Landroid/content/Context; move-result-object v2 .line 756 invoke-virtual {v2, v0, v1}, Landroid/content/Context;->getSharedPreferences(Ljava/io/File;I)Landroid/content/SharedPreferences; move-result-object v1 .line 755 return-object v1 .end method .method public getScreenUnlockedFunctions()J .registers 3 .line 1406 iget-wide v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mScreenUnlockedFunctions:J return-wide v0 .end method .method protected getSystemProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; .registers 4 .param p1, "prop" # Ljava/lang/String; .param p2, "def" # Ljava/lang/String; .line 1394 invoke-static {p1, p2}, Landroid/os/SystemProperties;->get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v0 return-object v0 .end method .method public getUsbSpeed()I .registers 2 .line 1410 iget v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mUsbSpeed:I return v0 .end method .method public handleMessage(Landroid/os/Message;)V .registers 13 .param p1, "msg" # Landroid/os/Message; .line 903 iget v0, p1, Landroid/os/Message;->what:I const-string/jumbo v1, "usb-screen-unlocked-config-%d" const-wide/16 v2, 0x2 const/4 v4, 0x4 const-wide/16 v5, 0x0 const/4 v7, 0x0 const/4 v8, 0x1 packed-switch v0, :pswitch_data_2a2 :pswitch_f #0xe, 0xf, 0x10, 0x11, 0x12, 0x13 goto/16 :goto_2a0 .line 1133 :pswitch_11 #0x15 iget v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mSendStringCount:I add-int/2addr v0, v8 iput v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mSendStringCount:I goto/16 :goto_2a0 .line 1123 :pswitch_18 #0x14 iget-boolean v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mBootCompleted:Z if-eqz v0, :cond_21 .line 1124 invoke-direct {p0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->broadcastUsbAccessoryHandshake()V goto/16 :goto_2a0 .line 1128 :cond_21 iput-boolean v8, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mPendingBootAccessoryHandshakeBroadcast:Z .line 1130 goto/16 :goto_2a0 .line 1040 :pswitch_25 #0xd iget v0, p1, Landroid/os/Message;->arg1:I if-ne v0, v8, :cond_2b move v0, v8 goto :goto_2c :cond_2b move v0, v7 :goto_2c iget-boolean v1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mScreenLocked:Z if-ne v0, v1, :cond_32 .line 1041 goto/16 :goto_2a0 .line 1043 :cond_32 iget v0, p1, Landroid/os/Message;->arg1:I if-ne v0, v8, :cond_37 goto :goto_38 :cond_37 move v8, v7 :goto_38 iput-boolean v8, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mScreenLocked:Z .line 1044 iget-boolean v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mBootCompleted:Z if-nez v0, :cond_40 .line 1045 goto/16 :goto_2a0 .line 1047 :cond_40 if-eqz v8, :cond_4b .line 1048 iget-boolean v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mConnected:Z if-nez v0, :cond_2a0 .line 1049 invoke-virtual {p0, v5, v6, v7}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->setEnabledFunctions(JZ)V goto/16 :goto_2a0 .line 1052 :cond_4b iget-wide v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mScreenUnlockedFunctions:J cmp-long v0, v0, v5 if-eqz v0, :cond_2a0 iget-wide v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentFunctions:J cmp-long v0, v0, v5 if-nez v0, :cond_2a0 .line 1055 invoke-direct {p0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->setScreenUnlockedFunctions()V goto/16 :goto_2a0 .line 1024 :pswitch_5c #0xc iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object; check-cast v0, Ljava/lang/Long; invoke-virtual {v0}, Ljava/lang/Long;->longValue()J move-result-wide v2 iput-wide v2, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mScreenUnlockedFunctions:J .line 1025 iget-object v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mSettings:Landroid/content/SharedPreferences; if-eqz v0, :cond_8a .line 1026 invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor; move-result-object v0 .line 1027 .local v0, "editor":Landroid/content/SharedPreferences$Editor; sget-object v2, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; new-array v3, v8, [Ljava/lang/Object; iget v4, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentUser:I .line 1028 invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v4 aput-object v4, v3, v7 .line 1027 invoke-static {v2, v1, v3}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; move-result-object v1 iget-wide v2, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mScreenUnlockedFunctions:J .line 1029 invoke-static {v2, v3}, Landroid/hardware/usb/UsbManager;->usbFunctionsToString(J)Ljava/lang/String; move-result-object v2 .line 1027 invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences$Editor;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor; .line 1030 invoke-interface {v0}, Landroid/content/SharedPreferences$Editor;->commit()Z .line 1032 .end local v0 # "editor":Landroid/content/SharedPreferences$Editor; :cond_8a iget-boolean v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mScreenLocked:Z if-nez v0, :cond_99 iget-wide v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mScreenUnlockedFunctions:J cmp-long v0, v0, v5 if-eqz v0, :cond_99 .line 1034 invoke-direct {p0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->setScreenUnlockedFunctions()V goto/16 :goto_2a0 .line 1036 :cond_99 invoke-virtual {p0, v5, v6, v7}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->setEnabledFunctions(JZ)V .line 1038 goto/16 :goto_2a0 .line 1086 :pswitch_9e #0xb invoke-virtual {p0, v8}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateAdbNotification(Z)V .line 1087 invoke-virtual {p0, v8}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateUsbNotification(Z)V .line 1088 goto/16 :goto_2a0 .line 985 :pswitch_a6 #0xa iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object; check-cast v0, Ljava/util/Iterator; .line 986 .local v0, "devices":Ljava/util/Iterator; iget v1, p1, Landroid/os/Message;->arg1:I if-ne v1, v8, :cond_b0 move v1, v8 goto :goto_b1 :cond_b0 move v1, v7 :goto_b1 iput-boolean v1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mUsbAccessoryConnected:Z .line 992 iput-boolean v7, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mHideUsbNotification:Z .line 993 :goto_b5 invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_f9 .line 994 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Ljava/util/Map$Entry; .line 998 .local v1, "pair":Ljava/util/Map$Entry; invoke-interface {v1}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; move-result-object v2 check-cast v2, Landroid/hardware/usb/UsbDevice; .line 999 .local v2, "device":Landroid/hardware/usb/UsbDevice; invoke-virtual {v2}, Landroid/hardware/usb/UsbDevice;->getConfigurationCount()I move-result v3 sub-int/2addr v3, v8 .line 1000 .local v3, "configurationCount":I :goto_cc if-ltz v3, :cond_f8 .line 1001 invoke-virtual {v2, v3}, Landroid/hardware/usb/UsbDevice;->getConfiguration(I)Landroid/hardware/usb/UsbConfiguration; move-result-object v4 .line 1002 .local v4, "config":Landroid/hardware/usb/UsbConfiguration; add-int/lit8 v3, v3, -0x1 .line 1003 invoke-virtual {v4}, Landroid/hardware/usb/UsbConfiguration;->getInterfaceCount()I move-result v5 sub-int/2addr v5, v8 .line 1004 .local v5, "interfaceCount":I :goto_d9 if-ltz v5, :cond_f7 .line 1005 invoke-virtual {v4, v5}, Landroid/hardware/usb/UsbConfiguration;->getInterface(I)Landroid/hardware/usb/UsbInterface; move-result-object v6 .line 1006 .local v6, "intrface":Landroid/hardware/usb/UsbInterface; add-int/lit8 v5, v5, -0x1 .line 1007 invoke-static {}, Lcom/android/server/usb/UsbDeviceManager;->-$$Nest$sfgetsDenyInterfaces()Ljava/util/Set; move-result-object v9 invoke-virtual {v6}, Landroid/hardware/usb/UsbInterface;->getInterfaceClass()I move-result v10 invoke-static {v10}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v10 invoke-interface {v9, v10}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z move-result v9 if-eqz v9, :cond_f6 .line 1008 iput-boolean v8, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mHideUsbNotification:Z .line 1009 goto :goto_f7 .line 1011 .end local v6 # "intrface":Landroid/hardware/usb/UsbInterface; :cond_f6 goto :goto_d9 .line 1012 .end local v4 # "config":Landroid/hardware/usb/UsbConfiguration; .end local v5 # "interfaceCount":I :cond_f7 :goto_f7 goto :goto_cc .line 1013 .end local v1 # "pair":Ljava/util/Map$Entry; .end local v2 # "device":Landroid/hardware/usb/UsbDevice; .end local v3 # "configurationCount":I :cond_f8 goto :goto_b5 .line 1014 :cond_f9 invoke-virtual {p0, v7}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateUsbNotification(Z)V .line 1015 goto/16 :goto_2a0 .line 981 .end local v0 # "devices":Ljava/util/Iterator; :pswitch_fe #0x9 iget v0, p1, Landroid/os/Message;->arg1:I if-ne v0, v8, :cond_103 goto :goto_104 :cond_103 move v8, v7 :goto_104 iput-boolean v8, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mUsbCharging:Z .line 982 invoke-virtual {p0, v7}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateUsbNotification(Z)V .line 983 goto/16 :goto_2a0 .line 1114 :pswitch_10b #0x8 iget-boolean v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mConnected:Z if-eqz v0, :cond_116 iget-wide v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentFunctions:J and-long/2addr v0, v2 cmp-long v0, v0, v5 if-nez v0, :cond_2a0 .line 1115 :cond_116 invoke-direct {p0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->notifyAccessoryModeExit()V goto/16 :goto_2a0 .line 940 :pswitch_11b #0x7 iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object; check-cast v0, Lcom/android/internal/os/SomeArgs; .line 941 .local v0, "args":Lcom/android/internal/os/SomeArgs; iget-boolean v1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mHostConnected:Z .line 942 .local v1, "prevHostConnected":Z iget-object v2, v0, Lcom/android/internal/os/SomeArgs;->arg1:Ljava/lang/Object; check-cast v2, Landroid/hardware/usb/UsbPort; .line 943 .local v2, "port":Landroid/hardware/usb/UsbPort; iget-object v3, v0, Lcom/android/internal/os/SomeArgs;->arg2:Ljava/lang/Object; check-cast v3, Landroid/hardware/usb/UsbPortStatus; .line 945 .local v3, "status":Landroid/hardware/usb/UsbPortStatus; if-eqz v3, :cond_176 .line 946 invoke-virtual {v3}, Landroid/hardware/usb/UsbPortStatus;->getCurrentDataRole()I move-result v5 if-ne v5, v8, :cond_133 move v5, v8 goto :goto_134 :cond_133 move v5, v7 :goto_134 iput-boolean v5, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mHostConnected:Z .line 947 invoke-virtual {v3}, Landroid/hardware/usb/UsbPortStatus;->getCurrentPowerRole()I move-result v5 if-ne v5, v8, :cond_13e move v5, v8 goto :goto_13f :cond_13e move v5, v7 :goto_13f iput-boolean v5, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mSourcePower:Z .line 948 invoke-virtual {v3}, Landroid/hardware/usb/UsbPortStatus;->getCurrentPowerRole()I move-result v5 const/4 v6, 0x2 if-ne v5, v6, :cond_14a move v5, v8 goto :goto_14b :cond_14a move v5, v7 :goto_14b iput-boolean v5, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mSinkPower:Z .line 949 invoke-virtual {v3}, Landroid/hardware/usb/UsbPortStatus;->getCurrentMode()I move-result v5 if-ne v5, v4, :cond_155 move v5, v8 goto :goto_156 :cond_155 move v5, v7 :goto_156 iput-boolean v5, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mAudioAccessoryConnected:Z .line 954 invoke-virtual {v3, v8, v8}, Landroid/hardware/usb/UsbPortStatus;->isRoleCombinationSupported(II)Z move-result v5 if-eqz v5, :cond_172 .line 956 invoke-virtual {v3, v6, v8}, Landroid/hardware/usb/UsbPortStatus;->isRoleCombinationSupported(II)Z move-result v5 if-eqz v5, :cond_172 .line 957 invoke-virtual {v3, v8, v6}, Landroid/hardware/usb/UsbPortStatus;->isRoleCombinationSupported(II)Z move-result v5 if-eqz v5, :cond_172 .line 959 invoke-virtual {v3, v6, v6}, Landroid/hardware/usb/UsbPortStatus;->isRoleCombinationSupported(II)Z move-result v5 if-eqz v5, :cond_172 move v5, v8 goto :goto_173 :cond_172 move v5, v7 :goto_173 iput-boolean v5, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mSupportsAllCombinations:Z goto :goto_180 .line 961 :cond_176 iput-boolean v7, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mHostConnected:Z .line 962 iput-boolean v7, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mSourcePower:Z .line 963 iput-boolean v7, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mSinkPower:Z .line 964 iput-boolean v7, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mAudioAccessoryConnected:Z .line 965 iput-boolean v7, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mSupportsAllCombinations:Z .line 968 :goto_180 invoke-virtual {v2, v4}, Landroid/hardware/usb/UsbPort;->isModeSupported(I)Z move-result v4 iput-boolean v4, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mAudioAccessorySupported:Z .line 970 invoke-virtual {v0}, Lcom/android/internal/os/SomeArgs;->recycle()V .line 971 invoke-virtual {p0, v7}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateUsbNotification(Z)V .line 972 iget-boolean v4, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mBootCompleted:Z if-eqz v4, :cond_1a1 .line 973 iget-boolean v4, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mHostConnected:Z if-nez v4, :cond_196 if-eqz v1, :cond_2a0 .line 974 :cond_196 iget-wide v4, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentFunctions:J invoke-virtual {p0, v4, v5}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->getAppliedFunctions(J)J move-result-wide v4 invoke-virtual {p0, v4, v5}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateUsbStateBroadcastIfNeeded(J)V goto/16 :goto_2a0 .line 977 :cond_1a1 iput-boolean v8, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mPendingBootBroadcast:Z .line 979 goto/16 :goto_2a0 .line 1061 .end local v0 # "args":Lcom/android/internal/os/SomeArgs; .end local v1 # "prevHostConnected":Z .end local v2 # "port":Landroid/hardware/usb/UsbPort; .end local v3 # "status":Landroid/hardware/usb/UsbPortStatus; :pswitch_1a5 #0x6 iget-wide v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentFunctions:J invoke-virtual {p0, v0, v1}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->isUsbDataTransferActive(J)Z move-result v0 if-eqz v0, :cond_2a0 invoke-virtual {p0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->isUsbTransferAllowed()Z move-result v0 if-nez v0, :cond_2a0 .line 1062 invoke-virtual {p0, v5, v6, v8}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->setEnabledFunctions(JZ)V goto/16 :goto_2a0 .line 1094 :pswitch_1b8 #0x5 iget v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentUser:I iget v2, p1, Landroid/os/Message;->arg1:I if-eq v0, v2, :cond_2a0 .line 1098 iget v0, p1, Landroid/os/Message;->arg1:I iput v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentUser:I .line 1099 iput-boolean v8, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mScreenLocked:Z .line 1100 iput-wide v5, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mScreenUnlockedFunctions:J .line 1101 iget-object v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mSettings:Landroid/content/SharedPreferences; if-eqz v0, :cond_1e6 .line 1102 sget-object v2, Ljava/util/Locale;->ENGLISH:Ljava/util/Locale; new-array v3, v8, [Ljava/lang/Object; iget v4, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentUser:I .line 1104 invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v4 aput-object v4, v3, v7 .line 1103 invoke-static {v2, v1, v3}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; move-result-object v1 const-string v2, "" invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v0 .line 1102 invoke-static {v0}, Landroid/hardware/usb/UsbManager;->usbFunctionsFromString(Ljava/lang/String;)J move-result-wide v0 iput-wide v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mScreenUnlockedFunctions:J .line 1106 :cond_1e6 invoke-virtual {p0, v5, v6, v7}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->setEnabledFunctions(JZ)V goto/16 :goto_2a0 .line 1090 :pswitch_1eb #0x4 iput-boolean v8, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mBootCompleted:Z .line 1091 invoke-virtual {p0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->finishBoot()V .line 1092 goto/16 :goto_2a0 .line 1066 :pswitch_1f2 #0x3 iget-object v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mContext:Landroid/content/Context; .line 1067 const-string v1, "notification" invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; move-result-object v0 check-cast v0, Landroid/app/NotificationManager; iput-object v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mNotificationManager:Landroid/app/NotificationManager; .line 1069 const-class v0, Landroid/debug/AdbManagerInternal; invoke-static {v0}, Lcom/android/server/LocalServices;->getService(Ljava/lang/Class;)Ljava/lang/Object; move-result-object v0 check-cast v0, Landroid/debug/AdbManagerInternal; new-instance v1, Lcom/android/server/usb/UsbDeviceManager$UsbHandler$AdbTransport; invoke-direct {v1, p0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler$AdbTransport;->(Lcom/android/server/usb/UsbDeviceManager$UsbHandler;)V .line 1070 invoke-virtual {v0, v1}, Landroid/debug/AdbManagerInternal;->registerTransport(Landroid/debug/IAdbTransport;)V .line 1073 invoke-direct {p0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->isTv()Z move-result v0 if-eqz v0, :cond_22a .line 1075 iget-object v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mNotificationManager:Landroid/app/NotificationManager; new-instance v1, Landroid/app/NotificationChannel; iget-object v2, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mContext:Landroid/content/Context; const v3, 0x1040117 .line 1077 invoke-virtual {v2, v3}, Landroid/content/Context;->getString(I)Ljava/lang/String; move-result-object v2 const-string/jumbo v3, "usbdevicemanager.adb.tv" invoke-direct {v1, v3, v2, v4}, Landroid/app/NotificationChannel;->(Ljava/lang/String;Ljava/lang/CharSequence;I)V .line 1075 invoke-virtual {v0, v1}, Landroid/app/NotificationManager;->createNotificationChannel(Landroid/app/NotificationChannel;)V .line 1082 :cond_22a iput-boolean v8, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mSystemReady:Z .line 1083 invoke-virtual {p0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->finishBoot()V .line 1084 goto/16 :goto_2a0 .line 1020 :pswitch_231 #0x2 iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object; check-cast v0, Ljava/lang/Long; invoke-virtual {v0}, Ljava/lang/Long;->longValue()J move-result-wide v0 .line 1021 .local v0, "functions":J invoke-virtual {p0, v0, v1, v7}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->setEnabledFunctions(JZ)V .line 1022 goto/16 :goto_2a0 .line 1017 .end local v0 # "functions":J :pswitch_23e #0x1 iget v0, p1, Landroid/os/Message;->arg1:I if-ne v0, v8, :cond_243 move v7, v8 :cond_243 invoke-direct {p0, v7}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->setAdbEnabled(Z)V .line 1018 goto :goto_2a0 .line 905 :pswitch_247 #0x0 iget v0, p1, Landroid/os/Message;->arg1:I if-ne v0, v8, :cond_24d move v0, v8 goto :goto_24e :cond_24d move v0, v7 :goto_24e iput-boolean v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mConnected:Z .line 906 iget v0, p1, Landroid/os/Message;->arg2:I if-ne v0, v8, :cond_256 move v0, v8 goto :goto_257 :cond_256 move v0, v7 :goto_257 iput-boolean v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mConfigured:Z .line 908 invoke-virtual {p0, v7}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateUsbNotification(Z)V .line 909 invoke-virtual {p0, v7}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateAdbNotification(Z)V .line 910 iget-boolean v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mBootCompleted:Z if-eqz v0, :cond_26c .line 911 iget-wide v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentFunctions:J invoke-virtual {p0, v0, v1}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->getAppliedFunctions(J)J move-result-wide v0 invoke-virtual {p0, v0, v1}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateUsbStateBroadcastIfNeeded(J)V .line 913 :cond_26c iget-wide v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentFunctions:J and-long/2addr v0, v2 cmp-long v0, v0, v5 if-eqz v0, :cond_276 .line 914 invoke-direct {p0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateCurrentAccessory()V .line 916 :cond_276 iget-boolean v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mBootCompleted:Z if-eqz v0, :cond_29a .line 917 iget-boolean v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mConnected:Z if-nez v0, :cond_296 const/16 v0, 0x8 invoke-virtual {p0, v0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->hasMessages(I)Z move-result v0 if-nez v0, :cond_296 const/16 v0, 0x11 .line 918 invoke-virtual {p0, v0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->hasMessages(I)Z move-result v0 if-nez v0, :cond_296 .line 929 const-wide/16 v0, 0x4 invoke-virtual {p0, v0, v1, v7}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->setEnabledFunctions(JZ)V .line 931 invoke-direct {p0, v7}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->setAdbEnabled(Z)V .line 933 :cond_296 invoke-direct {p0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateUsbFunctions()V goto :goto_29c .line 935 :cond_29a iput-boolean v8, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mPendingBootBroadcast:Z .line 937 :goto_29c invoke-virtual {p0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->updateUsbSpeed()V .line 938 nop .line 1136 :cond_2a0 :goto_2a0 return-void nop :pswitch_data_2a2 .packed-switch 0x0 :pswitch_247 #00000000 :pswitch_23e #00000001 :pswitch_231 #00000002 :pswitch_1f2 #00000003 :pswitch_1eb #00000004 :pswitch_1b8 #00000005 :pswitch_1a5 #00000006 :pswitch_11b #00000007 :pswitch_10b #00000008 :pswitch_fe #00000009 :pswitch_a6 #0000000a :pswitch_9e #0000000b :pswitch_5c #0000000c :pswitch_25 #0000000d :pswitch_f #0000000e :pswitch_f #0000000f :pswitch_f #00000010 :pswitch_f #00000011 :pswitch_f #00000012 :pswitch_f #00000013 :pswitch_18 #00000014 :pswitch_11 #00000015 .end packed-switch .end method .method protected isAdbEnabled()Z .registers 3 .line 1347 const-class v0, Landroid/debug/AdbManagerInternal; invoke-static {v0}, Lcom/android/server/LocalServices;->getService(Ljava/lang/Class;)Ljava/lang/Object; move-result-object v0 check-cast v0, Landroid/debug/AdbManagerInternal; .line 1348 const/4 v1, 0x0 invoke-virtual {v0, v1}, Landroid/debug/AdbManagerInternal;->isAdbEnabled(B)Z move-result v0 .line 1347 return v0 .end method .method protected isUsbDataTransferActive(J)Z .registers 7 .param p1, "functions" # J .line 1171 const-wide/16 v0, 0x4 and-long/2addr v0, p1 const-wide/16 v2, 0x0 cmp-long v0, v0, v2 if-nez v0, :cond_13 const-wide/16 v0, 0x10 and-long/2addr v0, p1 cmp-long v0, v0, v2 if-eqz v0, :cond_11 goto :goto_13 :cond_11 const/4 v0, 0x0 goto :goto_14 :cond_13 :goto_13 const/4 v0, 0x1 :goto_14 return v0 .end method .method protected isUsbTransferAllowed()Z .registers 3 .line 693 iget-object v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mContext:Landroid/content/Context; const-string/jumbo v1, "user" invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; move-result-object v0 check-cast v0, Landroid/os/UserManager; .line 694 .local v0, "userManager":Landroid/os/UserManager; const-string v1, "no_usb_file_transfer" invoke-virtual {v0, v1}, Landroid/os/UserManager;->hasUserRestriction(Ljava/lang/String;)Z move-result v1 xor-int/lit8 v1, v1, 0x1 return v1 .end method .method protected putGlobalSettings(Landroid/content/ContentResolver;Ljava/lang/String;I)V .registers 4 .param p1, "contentResolver" # Landroid/content/ContentResolver; .param p2, "setting" # Ljava/lang/String; .param p3, "val" # I .line 1398 invoke-static {p1, p2, p3}, Landroid/provider/Settings$Global;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z .line 1399 return-void .end method .method public resetUsbAccessoryHandshakeDebuggingInfo()V .registers 3 .line 1498 const-wide/16 v0, 0x0 iput-wide v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mAccessoryConnectionStartTime:J .line 1499 const/4 v0, 0x0 iput v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mSendStringCount:I .line 1500 iput-boolean v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mStartAccessory:Z .line 1501 return-void .end method .method public sendMessage(ILjava/lang/Object;)V .registers 4 .param p1, "what" # I .param p2, "arg" # Ljava/lang/Object; .line 608 invoke-virtual {p0, p1}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->removeMessages(I)V .line 609 invoke-static {p0, p1}, Landroid/os/Message;->obtain(Landroid/os/Handler;I)Landroid/os/Message; move-result-object v0 .line 610 .local v0, "m":Landroid/os/Message; iput-object p2, v0, Landroid/os/Message;->obj:Ljava/lang/Object; .line 611 invoke-virtual {p0, v0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->sendMessage(Landroid/os/Message;)Z .line 612 return-void .end method .method public sendMessage(ILjava/lang/Object;Z)V .registers 5 .param p1, "what" # I .param p2, "arg" # Ljava/lang/Object; .param p3, "arg1" # Z .line 615 invoke-virtual {p0, p1}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->removeMessages(I)V .line 616 invoke-static {p0, p1}, Landroid/os/Message;->obtain(Landroid/os/Handler;I)Landroid/os/Message; move-result-object v0 .line 617 .local v0, "m":Landroid/os/Message; iput-object p2, v0, Landroid/os/Message;->obj:Ljava/lang/Object; .line 618 iput p3, v0, Landroid/os/Message;->arg1:I .line 619 invoke-virtual {p0, v0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->sendMessage(Landroid/os/Message;)Z .line 620 return-void .end method .method public sendMessage(IZ)V .registers 4 .param p1, "what" # I .param p2, "arg" # Z .line 601 invoke-virtual {p0, p1}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->removeMessages(I)V .line 602 invoke-static {p0, p1}, Landroid/os/Message;->obtain(Landroid/os/Handler;I)Landroid/os/Message; move-result-object v0 .line 603 .local v0, "m":Landroid/os/Message; iput p2, v0, Landroid/os/Message;->arg1:I .line 604 invoke-virtual {p0, v0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->sendMessage(Landroid/os/Message;)Z .line 605 return-void .end method .method public sendMessage(IZZ)V .registers 5 .param p1, "what" # I .param p2, "arg1" # Z .param p3, "arg2" # Z .line 623 invoke-virtual {p0, p1}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->removeMessages(I)V .line 624 invoke-static {p0, p1}, Landroid/os/Message;->obtain(Landroid/os/Handler;I)Landroid/os/Message; move-result-object v0 .line 625 .local v0, "m":Landroid/os/Message; iput p2, v0, Landroid/os/Message;->arg1:I .line 626 iput p3, v0, Landroid/os/Message;->arg2:I .line 627 invoke-virtual {p0, v0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->sendMessage(Landroid/os/Message;)Z .line 628 return-void .end method .method public sendMessageDelayed(IZJ)V .registers 6 .param p1, "what" # I .param p2, "arg" # Z .param p3, "delayMillis" # J .line 631 invoke-virtual {p0, p1}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->removeMessages(I)V .line 632 invoke-static {p0, p1}, Landroid/os/Message;->obtain(Landroid/os/Handler;I)Landroid/os/Message; move-result-object v0 .line 633 .local v0, "m":Landroid/os/Message; iput p2, v0, Landroid/os/Message;->arg1:I .line 634 invoke-virtual {p0, v0, p3, p4}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->sendMessageDelayed(Landroid/os/Message;J)Z .line 635 return-void .end method .method protected sendStickyBroadcast(Landroid/content/Intent;)V .registers 6 .param p1, "intent" # Landroid/content/Intent; .line 836 iget-object v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mContext:Landroid/content/Context; sget-object v1, Landroid/os/UserHandle;->ALL:Landroid/os/UserHandle; invoke-virtual {v0, p1, v1}, Landroid/content/Context;->sendStickyBroadcastAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)V .line 837 invoke-static {}, Lcom/android/server/usb/UsbDeviceManager;->-$$Nest$sfgetsEventLogger()Lcom/android/server/usb/UsbDeviceLogger; move-result-object v0 new-instance v1, Lcom/android/server/usb/UsbDeviceLogger$StringEvent; new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V const-string v3, "USB intent: " invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-direct {v1, v2}, Lcom/android/server/usb/UsbDeviceLogger$StringEvent;->(Ljava/lang/String;)V invoke-virtual {v0, v1}, Lcom/android/server/usb/UsbDeviceLogger;->log(Lcom/android/server/usb/UsbDeviceLogger$Event;)V .line 838 return-void .end method .method public setAccessoryUEventTime(J)V .registers 3 .param p1, "accessoryConnectionStartTime" # J .line 1490 iput-wide p1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mAccessoryConnectionStartTime:J .line 1491 return-void .end method .method protected abstract setEnabledFunctions(JZ)V .end method .method public setStartAccessoryTrue()V .registers 2 .line 1494 const/4 v0, 0x1 iput-boolean v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mStartAccessory:Z .line 1495 return-void .end method .method protected setSystemProperty(Ljava/lang/String;Ljava/lang/String;)V .registers 3 .param p1, "prop" # Ljava/lang/String; .param p2, "val" # Ljava/lang/String; .line 1390 invoke-static {p1, p2}, Landroid/os/SystemProperties;->set(Ljava/lang/String;Ljava/lang/String;)V .line 1391 return-void .end method .method protected updateAdbNotification(Z)V .registers 8 .param p1, "force" # Z .line 1352 iget-object v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mNotificationManager:Landroid/app/NotificationManager; if-nez v0, :cond_5 return-void .line 1353 :cond_5 const/16 v0, 0x1a .line 1355 .local v0, "id":I invoke-virtual {p0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->isAdbEnabled()Z move-result v1 const/16 v2, 0x1a const/4 v3, 0x0 const/4 v4, 0x0 if-eqz v1, :cond_4b iget-boolean v1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mConnected:Z if-eqz v1, :cond_4b .line 1356 const-string/jumbo v1, "persist.adb.notify" const-string v5, "" invoke-virtual {p0, v1, v5}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->getSystemProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v1 const-string v5, "0" invoke-virtual {v5, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v1 if-eqz v1, :cond_27 return-void .line 1358 :cond_27 if-eqz p1, :cond_36 iget-boolean v1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mAdbNotificationShown:Z if-eqz v1, :cond_36 .line 1359 iput-boolean v4, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mAdbNotificationShown:Z .line 1360 iget-object v1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mNotificationManager:Landroid/app/NotificationManager; sget-object v5, Landroid/os/UserHandle;->ALL:Landroid/os/UserHandle; invoke-virtual {v1, v3, v2, v5}, Landroid/app/NotificationManager;->cancelAsUser(Ljava/lang/String;ILandroid/os/UserHandle;)V .line 1363 :cond_36 iget-boolean v1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mAdbNotificationShown:Z if-nez v1, :cond_58 .line 1364 iget-object v1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mContext:Landroid/content/Context; invoke-static {v1, v4}, Landroid/debug/AdbNotifications;->createNotification(Landroid/content/Context;B)Landroid/app/Notification; move-result-object v1 .line 1366 .local v1, "notification":Landroid/app/Notification; const/4 v4, 0x1 iput-boolean v4, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mAdbNotificationShown:Z .line 1367 iget-object v4, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mNotificationManager:Landroid/app/NotificationManager; sget-object v5, Landroid/os/UserHandle;->ALL:Landroid/os/UserHandle; invoke-virtual {v4, v3, v2, v1, v5}, Landroid/app/NotificationManager;->notifyAsUser(Ljava/lang/String;ILandroid/app/Notification;Landroid/os/UserHandle;)V .line 1368 .end local v1 # "notification":Landroid/app/Notification; goto :goto_58 .line 1369 :cond_4b iget-boolean v1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mAdbNotificationShown:Z if-eqz v1, :cond_58 .line 1370 iput-boolean v4, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mAdbNotificationShown:Z .line 1371 iget-object v1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mNotificationManager:Landroid/app/NotificationManager; sget-object v4, Landroid/os/UserHandle;->ALL:Landroid/os/UserHandle; invoke-virtual {v1, v3, v2, v4}, Landroid/app/NotificationManager;->cancelAsUser(Ljava/lang/String;ILandroid/os/UserHandle;)V .line 1373 :cond_58 :goto_58 return-void .end method .method public updateHostState(Landroid/hardware/usb/UsbPort;Landroid/hardware/usb/UsbPortStatus;)V .registers 7 .param p1, "port" # Landroid/hardware/usb/UsbPort; .param p2, "status" # Landroid/hardware/usb/UsbPortStatus; .line 669 invoke-static {}, Lcom/android/internal/os/SomeArgs;->obtain()Lcom/android/internal/os/SomeArgs; move-result-object v0 .line 670 .local v0, "args":Lcom/android/internal/os/SomeArgs; iput-object p1, v0, Lcom/android/internal/os/SomeArgs;->arg1:Ljava/lang/Object; .line 671 iput-object p2, v0, Lcom/android/internal/os/SomeArgs;->arg2:Ljava/lang/Object; .line 673 const/4 v1, 0x7 invoke-virtual {p0, v1}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->removeMessages(I)V .line 674 invoke-virtual {p0, v1, v0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message; move-result-object v1 .line 676 .local v1, "msg":Landroid/os/Message; const-wide/16 v2, 0x3e8 invoke-virtual {p0, v1, v2, v3}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->sendMessageDelayed(Landroid/os/Message;J)Z .line 677 return-void .end method .method public updateState(Ljava/lang/String;)V .registers 7 .param p1, "state" # Ljava/lang/String; .line 640 const-string v0, "DISCONNECTED" invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_b .line 641 const/4 v0, 0x0 .line 642 .local v0, "connected":I const/4 v1, 0x0 .local v1, "configured":I goto :goto_20 .line 643 .end local v0 # "connected":I .end local v1 # "configured":I :cond_b const-string v0, "CONNECTED" invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_16 .line 644 const/4 v0, 0x1 .line 645 .restart local v0 # "connected":I const/4 v1, 0x0 .restart local v1 # "configured":I goto :goto_20 .line 646 .end local v0 # "connected":I .end local v1 # "configured":I :cond_16 const-string v0, "CONFIGURED" invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_4a .line 647 const/4 v0, 0x1 .line 648 .restart local v0 # "connected":I const/4 v1, 0x1 .line 653 .restart local v1 # "configured":I :goto_20 const/4 v2, 0x0 if-nez v1, :cond_26 invoke-virtual {p0, v2}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->removeMessages(I)V .line 654 :cond_26 const/4 v3, 0x1 if-ne v0, v3, :cond_2e const/16 v3, 0x11 invoke-virtual {p0, v3}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->removeMessages(I)V .line 655 :cond_2e invoke-static {p0, v2}, Landroid/os/Message;->obtain(Landroid/os/Handler;I)Landroid/os/Message; move-result-object v2 .line 656 .local v2, "msg":Landroid/os/Message; iput v0, v2, Landroid/os/Message;->arg1:I .line 657 iput v1, v2, Landroid/os/Message;->arg2:I .line 659 nop .line 660 if-nez v0, :cond_44 iget-boolean v3, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mScreenLocked:Z if-eqz v3, :cond_40 const/16 v3, 0x3e8 goto :goto_42 .line 661 :cond_40 const/16 v3, 0xbb8 :goto_42 int-to-long v3, v3 goto :goto_46 :cond_44 const-wide/16 v3, 0x0 .line 659 :goto_46 invoke-virtual {p0, v2, v3, v4}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->sendMessageDelayed(Landroid/os/Message;J)Z .line 662 return-void .line 650 .end local v0 # "connected":I .end local v1 # "configured":I .end local v2 # "msg":Landroid/os/Message; :cond_4a invoke-static {}, Lcom/android/server/usb/UsbDeviceManager;->-$$Nest$sfgetTAG()Ljava/lang/String; move-result-object v0 new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V const-string/jumbo v2, "unknown state " invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 invoke-static {v0, v1}, Landroid/util/Slog;->e(Ljava/lang/String;Ljava/lang/String;)I .line 651 return-void .end method .method protected updateUsbGadgetHalVersion()V .registers 3 .line 1180 const/16 v0, 0x17 const/4 v1, 0x0 invoke-virtual {p0, v0, v1}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->sendMessage(ILjava/lang/Object;)V .line 1181 return-void .end method .method protected updateUsbNotification(Z)V .registers 20 .param p1, "force" # Z .line 1200 move-object/from16 v0, p0 iget-object v1, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mNotificationManager:Landroid/app/NotificationManager; if-eqz v1, :cond_1ea iget-boolean v1, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mUseUsbNotification:Z if-eqz v1, :cond_1ea .line 1201 const-string/jumbo v1, "persist.charging.notify" const-string v2, "" invoke-virtual {v0, v1, v2}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->getSystemProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object v1 const-string v2, "0" invoke-virtual {v2, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v1 if-eqz v1, :cond_1d goto/16 :goto_1ea .line 1207 :cond_1d iget-boolean v1, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mHideUsbNotification:Z const-string v2, "Clear notification" const/4 v3, 0x0 const/4 v4, 0x0 if-eqz v1, :cond_3e iget-boolean v1, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mSupportsAllCombinations:Z if-nez v1, :cond_3e .line 1208 iget v1, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mUsbNotificationId:I if-eqz v1, :cond_3d .line 1209 iget-object v5, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mNotificationManager:Landroid/app/NotificationManager; sget-object v6, Landroid/os/UserHandle;->ALL:Landroid/os/UserHandle; invoke-virtual {v5, v3, v1, v6}, Landroid/app/NotificationManager;->cancelAsUser(Ljava/lang/String;ILandroid/os/UserHandle;)V .line 1211 iput v4, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mUsbNotificationId:I .line 1212 invoke-static {}, Lcom/android/server/usb/UsbDeviceManager;->-$$Nest$sfgetTAG()Ljava/lang/String; move-result-object v1 invoke-static {v1, v2}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I .line 1214 :cond_3d return-void .line 1217 :cond_3e const/4 v1, 0x0 .line 1218 .local v1, "id":I const/4 v5, 0x0 .line 1219 .local v5, "titleRes":I iget-object v6, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mContext:Landroid/content/Context; invoke-virtual {v6}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; move-result-object v6 .line 1220 .local v6, "r":Landroid/content/res/Resources; const v7, 0x1040906 invoke-virtual {v6, v7}, Landroid/content/res/Resources;->getText(I)Ljava/lang/CharSequence; move-result-object v7 .line 1222 .local v7, "message":Ljava/lang/CharSequence; iget-boolean v8, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mAudioAccessoryConnected:Z if-eqz v8, :cond_5c iget-boolean v8, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mAudioAccessorySupported:Z if-nez v8, :cond_5c .line 1223 const v5, 0x104090c .line 1224 const/16 v1, 0x29 goto/16 :goto_df .line 1225 :cond_5c iget-boolean v8, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mConnected:Z if-eqz v8, :cond_c0 .line 1226 iget-wide v8, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentFunctions:J const-wide/16 v10, 0x4 cmp-long v10, v8, v10 if-nez v10, :cond_6e .line 1227 const v5, 0x1040905 .line 1228 const/16 v1, 0x1b goto :goto_a4 .line 1229 :cond_6e const-wide/16 v10, 0x10 cmp-long v10, v8, v10 if-nez v10, :cond_7a .line 1230 const v5, 0x1040908 .line 1231 const/16 v1, 0x1c goto :goto_a4 .line 1232 :cond_7a const-wide/16 v10, 0x8 cmp-long v10, v8, v10 if-nez v10, :cond_86 .line 1233 const v5, 0x10408ff .line 1234 const/16 v1, 0x1d goto :goto_a4 .line 1235 :cond_86 const-wide/16 v10, 0x20 cmp-long v10, v8, v10 if-eqz v10, :cond_9f const-wide/16 v10, 0x400 cmp-long v10, v8, v10 if-nez v10, :cond_93 goto :goto_9f .line 1239 :cond_93 const-wide/16 v10, 0x2 cmp-long v8, v8, v10 if-nez v8, :cond_a4 .line 1240 const v5, 0x10408f8 .line 1241 const/16 v1, 0x1e goto :goto_a4 .line 1237 :cond_9f :goto_9f const v5, 0x104090a .line 1238 const/16 v1, 0x2f .line 1243 :cond_a4 :goto_a4 iget-boolean v8, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mSourcePower:Z if-eqz v8, :cond_b8 .line 1244 if-eqz v5, :cond_b2 .line 1245 const v8, 0x1040907 invoke-virtual {v6, v8}, Landroid/content/res/Resources;->getText(I)Ljava/lang/CharSequence; move-result-object v7 goto :goto_df .line 1248 :cond_b2 const v5, 0x1040909 .line 1249 const/16 v1, 0x1f goto :goto_df .line 1251 :cond_b8 if-nez v5, :cond_df .line 1252 const v5, 0x10408f9 .line 1253 const/16 v1, 0x20 goto :goto_df .line 1255 :cond_c0 iget-boolean v8, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mSourcePower:Z if-eqz v8, :cond_ca .line 1256 const v5, 0x1040909 .line 1257 const/16 v1, 0x1f goto :goto_df .line 1258 :cond_ca iget-boolean v8, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mHostConnected:Z if-eqz v8, :cond_df iget-boolean v8, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mSinkPower:Z if-eqz v8, :cond_df iget-boolean v8, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mUsbCharging:Z if-nez v8, :cond_da iget-boolean v8, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mUsbAccessoryConnected:Z if-eqz v8, :cond_df .line 1259 :cond_da const v5, 0x10408f9 .line 1260 const/16 v1, 0x20 .line 1262 :cond_df :goto_df iget v8, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mUsbNotificationId:I if-ne v1, v8, :cond_e5 if-eqz p1, :cond_1e9 .line 1264 :cond_e5 if-eqz v8, :cond_f7 .line 1265 iget-object v9, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mNotificationManager:Landroid/app/NotificationManager; sget-object v10, Landroid/os/UserHandle;->ALL:Landroid/os/UserHandle; invoke-virtual {v9, v3, v8, v10}, Landroid/app/NotificationManager;->cancelAsUser(Ljava/lang/String;ILandroid/os/UserHandle;)V .line 1267 invoke-static {}, Lcom/android/server/usb/UsbDeviceManager;->-$$Nest$sfgetTAG()Ljava/lang/String; move-result-object v8 invoke-static {v8, v2}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I .line 1268 iput v4, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mUsbNotificationId:I .line 1271 :cond_f7 iget-object v2, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mContext:Landroid/content/Context; invoke-virtual {v2}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager; move-result-object v2 const-string v8, "android.hardware.type.automotive" invoke-virtual {v2, v8}, Landroid/content/pm/PackageManager;->hasSystemFeature(Ljava/lang/String;)Z move-result v2 if-nez v2, :cond_113 iget-object v2, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mContext:Landroid/content/Context; .line 1273 invoke-virtual {v2}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager; move-result-object v2 const-string v8, "android.hardware.type.watch" invoke-virtual {v2, v8}, Landroid/content/pm/PackageManager;->hasSystemFeature(Ljava/lang/String;)Z move-result v2 if-eqz v2, :cond_11a :cond_113 const/16 v2, 0x20 if-ne v1, v2, :cond_11a .line 1276 iput v4, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mUsbNotificationId:I .line 1277 return-void .line 1280 :cond_11a if-eqz v1, :cond_1e9 .line 1281 invoke-virtual {v6, v5}, Landroid/content/res/Resources;->getText(I)Ljava/lang/CharSequence; move-result-object v2 .line 1285 .local v2, "title":Ljava/lang/CharSequence; const-string v8, "com.android.settings" const v9, 0x104090c if-eq v5, v9, :cond_143 .line 1288 new-instance v10, Landroid/content/ComponentName; const-string v11, "com.android.settings.Settings$UsbDetailsActivity" invoke-direct {v10, v8, v11}, Landroid/content/ComponentName;->(Ljava/lang/String;Ljava/lang/String;)V invoke-static {v10}, Landroid/content/Intent;->makeRestartActivityTask(Landroid/content/ComponentName;)Landroid/content/Intent; move-result-object v8 .line 1292 .local v8, "intent":Landroid/content/Intent; iget-object v12, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mContext:Landroid/content/Context; const/4 v13, 0x0 const/high16 v15, 0x4000000 const/16 v16, 0x0 sget-object v17, Landroid/os/UserHandle;->CURRENT:Landroid/os/UserHandle; move-object v14, v8 invoke-static/range {v12 .. v17}, Landroid/app/PendingIntent;->getActivityAsUser(Landroid/content/Context;ILandroid/content/Intent;ILandroid/os/Bundle;Landroid/os/UserHandle;)Landroid/app/PendingIntent; move-result-object v10 .line 1294 .local v10, "pi":Landroid/app/PendingIntent; sget-object v8, Lcom/android/internal/notification/SystemNotificationChannels;->USB:Ljava/lang/String; .line 1295 .local v8, "channel":Ljava/lang/String; goto :goto_175 .line 1296 .end local v8 # "channel":Ljava/lang/String; .end local v10 # "pi":Landroid/app/PendingIntent; :cond_143 new-instance v10, Landroid/content/Intent; invoke-direct {v10}, Landroid/content/Intent;->()V .line 1297 .local v10, "intent":Landroid/content/Intent; const-string v11, "com.android.settings.HelpTrampoline" invoke-virtual {v10, v8, v11}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent; .line 1299 const-string v8, "android.intent.extra.TEXT" const-string v11, "help_url_audio_accessory_not_supported" invoke-virtual {v10, v8, v11}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent; .line 1302 iget-object v8, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mContext:Landroid/content/Context; invoke-virtual {v8}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager; move-result-object v8 invoke-virtual {v8, v10, v4}, Landroid/content/pm/PackageManager;->resolveActivity(Landroid/content/Intent;I)Landroid/content/pm/ResolveInfo; move-result-object v8 if-eqz v8, :cond_169 .line 1304 iget-object v8, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mContext:Landroid/content/Context; const/high16 v11, 0x4000000 invoke-static {v8, v4, v10, v11}, Landroid/app/PendingIntent;->getActivity(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent; move-result-object v8 .local v8, "pi":Landroid/app/PendingIntent; goto :goto_16a .line 1307 .end local v8 # "pi":Landroid/app/PendingIntent; :cond_169 const/4 v8, 0x0 .line 1310 .restart local v8 # "pi":Landroid/app/PendingIntent; :goto_16a sget-object v11, Lcom/android/internal/notification/SystemNotificationChannels;->ALERTS:Ljava/lang/String; .line 1311 .local v11, "channel":Ljava/lang/String; const v12, 0x104090b invoke-virtual {v6, v12}, Landroid/content/res/Resources;->getText(I)Ljava/lang/CharSequence; move-result-object v7 move-object v10, v8 move-object v8, v11 .line 1316 .end local v11 # "channel":Ljava/lang/String; .local v8, "channel":Ljava/lang/String; .local v10, "pi":Landroid/app/PendingIntent; :goto_175 new-instance v11, Landroid/app/Notification$Builder; iget-object v12, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mContext:Landroid/content/Context; invoke-direct {v11, v12, v8}, Landroid/app/Notification$Builder;->(Landroid/content/Context;Ljava/lang/String;)V const v12, 0x108081e .line 1317 invoke-virtual {v11, v12}, Landroid/app/Notification$Builder;->setSmallIcon(I)Landroid/app/Notification$Builder; move-result-object v11 const-wide/16 v12, 0x0 .line 1318 invoke-virtual {v11, v12, v13}, Landroid/app/Notification$Builder;->setWhen(J)Landroid/app/Notification$Builder; move-result-object v11 .line 1319 const/4 v12, 0x1 invoke-virtual {v11, v12}, Landroid/app/Notification$Builder;->setOngoing(Z)Landroid/app/Notification$Builder; move-result-object v11 .line 1320 invoke-virtual {v11, v2}, Landroid/app/Notification$Builder;->setTicker(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; move-result-object v11 .line 1321 invoke-virtual {v11, v4}, Landroid/app/Notification$Builder;->setDefaults(I)Landroid/app/Notification$Builder; move-result-object v4 iget-object v11, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mContext:Landroid/content/Context; const v13, 0x106001c .line 1322 invoke-virtual {v11, v13}, Landroid/content/Context;->getColor(I)I move-result v11 invoke-virtual {v4, v11}, Landroid/app/Notification$Builder;->setColor(I)Landroid/app/Notification$Builder; move-result-object v4 .line 1325 invoke-virtual {v4, v2}, Landroid/app/Notification$Builder;->setContentTitle(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; move-result-object v4 .line 1326 invoke-virtual {v4, v7}, Landroid/app/Notification$Builder;->setContentText(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder; move-result-object v4 .line 1327 invoke-virtual {v4, v10}, Landroid/app/Notification$Builder;->setContentIntent(Landroid/app/PendingIntent;)Landroid/app/Notification$Builder; move-result-object v4 .line 1328 invoke-virtual {v4, v12}, Landroid/app/Notification$Builder;->setVisibility(I)Landroid/app/Notification$Builder; move-result-object v4 .line 1330 .local v4, "builder":Landroid/app/Notification$Builder; if-ne v5, v9, :cond_1c1 .line 1333 new-instance v9, Landroid/app/Notification$BigTextStyle; invoke-direct {v9}, Landroid/app/Notification$BigTextStyle;->()V .line 1334 invoke-virtual {v9, v7}, Landroid/app/Notification$BigTextStyle;->bigText(Ljava/lang/CharSequence;)Landroid/app/Notification$BigTextStyle; move-result-object v9 .line 1333 invoke-virtual {v4, v9}, Landroid/app/Notification$Builder;->setStyle(Landroid/app/Notification$Style;)Landroid/app/Notification$Builder; .line 1336 :cond_1c1 invoke-virtual {v4}, Landroid/app/Notification$Builder;->build()Landroid/app/Notification; move-result-object v9 .line 1338 .local v9, "notification":Landroid/app/Notification; iget-object v11, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mNotificationManager:Landroid/app/NotificationManager; sget-object v12, Landroid/os/UserHandle;->ALL:Landroid/os/UserHandle; invoke-virtual {v11, v3, v1, v9, v12}, Landroid/app/NotificationManager;->notifyAsUser(Ljava/lang/String;ILandroid/app/Notification;Landroid/os/UserHandle;)V .line 1340 invoke-static {}, Lcom/android/server/usb/UsbDeviceManager;->-$$Nest$sfgetTAG()Ljava/lang/String; move-result-object v3 new-instance v11, Ljava/lang/StringBuilder; invoke-direct {v11}, Ljava/lang/StringBuilder;->()V const-string/jumbo v12, "push notification:" invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v11 invoke-virtual {v11, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v11 invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v11 invoke-static {v3, v11}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I .line 1341 iput v1, v0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mUsbNotificationId:I .line 1344 .end local v2 # "title":Ljava/lang/CharSequence; .end local v4 # "builder":Landroid/app/Notification$Builder; .end local v8 # "channel":Ljava/lang/String; .end local v9 # "notification":Landroid/app/Notification; .end local v10 # "pi":Landroid/app/PendingIntent; :cond_1e9 return-void .line 1202 .end local v1 # "id":I .end local v5 # "titleRes":I .end local v6 # "r":Landroid/content/res/Resources; .end local v7 # "message":Ljava/lang/CharSequence; :cond_1ea :goto_1ea return-void .end method .method protected updateUsbSpeed()V .registers 4 .line 1184 iget v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentGadgetHalVersion:I const/4 v1, -0x1 const/16 v2, 0xa if-ge v0, v2, :cond_a .line 1185 iput v1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mUsbSpeed:I .line 1186 return-void .line 1189 :cond_a iget-boolean v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mConnected:Z if-eqz v0, :cond_19 iget-boolean v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mConfigured:Z if-eqz v0, :cond_19 .line 1190 const/16 v0, 0x16 const/4 v1, 0x0 invoke-virtual {p0, v0, v1}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->sendMessage(ILjava/lang/Object;)V goto :goto_1b .line 1193 :cond_19 iput v1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mUsbSpeed:I .line 1196 :goto_1b return-void .end method .method protected updateUsbStateBroadcastIfNeeded(J)V .registers 10 .param p1, "functions" # J .line 805 new-instance v0, Landroid/content/Intent; const-string v1, "android.hardware.usb.action.USB_STATE" invoke-direct {v0, v1}, Landroid/content/Intent;->(Ljava/lang/String;)V .line 806 .local v0, "intent":Landroid/content/Intent; const/high16 v1, 0x31000000 invoke-virtual {v0, v1}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent; .line 809 iget-boolean v1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mConnected:Z const-string v2, "connected" invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Z)Landroid/content/Intent; .line 810 iget-boolean v1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mHostConnected:Z const-string v2, "host_connected" invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Z)Landroid/content/Intent; .line 811 iget-boolean v1, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mConfigured:Z const-string v2, "configured" invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Z)Landroid/content/Intent; .line 812 nop .line 813 invoke-virtual {p0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->isUsbTransferAllowed()Z move-result v1 const/4 v2, 0x1 if-eqz v1, :cond_33 iget-wide v3, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mCurrentFunctions:J invoke-virtual {p0, v3, v4}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->isUsbDataTransferActive(J)Z move-result v1 if-eqz v1, :cond_33 move v1, v2 goto :goto_34 :cond_33 const/4 v1, 0x0 .line 812 :goto_34 const-string/jumbo v3, "unlocked" invoke-virtual {v0, v3, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Z)Landroid/content/Intent; .line 815 move-wide v3, p1 .line 816 .local v3, "remainingFunctions":J :goto_3b const-wide/16 v5, 0x0 cmp-long v1, v3, v5 if-eqz v1, :cond_53 .line 817 nop .line 818 invoke-static {v3, v4}, Ljava/lang/Long;->highestOneBit(J)J move-result-wide v5 .line 817 invoke-static {v5, v6}, Landroid/hardware/usb/UsbManager;->usbFunctionsToString(J)Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Z)Landroid/content/Intent; .line 819 invoke-static {v3, v4}, Ljava/lang/Long;->highestOneBit(J)J move-result-wide v5 sub-long/2addr v3, v5 goto :goto_3b .line 823 :cond_53 invoke-direct {p0, v0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->isUsbStateChanged(Landroid/content/Intent;)Z move-result v1 if-nez v1, :cond_5a .line 827 return-void .line 831 :cond_5a invoke-virtual {p0, v0}, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->sendStickyBroadcast(Landroid/content/Intent;)V .line 832 iput-object v0, p0, Lcom/android/server/usb/UsbDeviceManager$UsbHandler;->mBroadcastedIntent:Landroid/content/Intent; .line 833 return-void .end method