Tuesday, June 3, 2014

Bug - AOSP Volume panel - Wrong volume after rotate.

Root cause :
voice call and bluetooth are not inaudible. So volume and max will +1 in onVolumeChanged. for these 2 streams.  When orientation changed, it doesn't +1 in the seekbar cause this problem.

Solution :  As below call stack, +1 on volume for these 2 streams in updateSlider.

java.lang.Throwable: stack dump
W/System.err(  897): at java.lang.Thread.dumpStack(Thread.java:489)
W/System.err(  897): at android.view.VolumePanel.updateSlider(VolumePanel.java:475)
W/System.err(  897): at android.view.VolumePanel.updateStates(VolumePanel.java:526)
W/System.err(  897): at android.view.VolumePanel.setLayoutDirection(VolumePanel.java:349)
W/System.err(  897): at android.media.AudioService.handleConfigurationChanged(AudioService.java:4427)
W/System.err(  897): at android.media.AudioService.access$8400(AudioService.java:114)
W/System.err(  897): at android.media.AudioService$AudioServiceBroadcastReceiver.onReceive(AudioService.java:4213)
W/System.err(  897): at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:768)
W/System.err(  897): at android.os.Handler.handleCallback(Handler.java:733)
W/System.err(  897): at android.os.Handler.dispatchMessage(Handler.java:95)
W/System.err(  897): at android.os.Looper.loop(Looper.java:136)
W/System.err(  897): at com.android.server.ServerThread.initAndLoop(SystemServer.java:1137)

Note :
the AudioServiceBroadcastReceiver extend BroadcastReceiver to receive intent.


No comments:

Post a Comment