[GUIDE] Smali coding guide for beginners

djdarkknight96

Recognized Themer
Nov 2, 2009
16,838
46,956
263
Springfield
www.designrifts.com
hai mate i have few question hope you can help me.

i try to mod my system ui for that i have to modified my phone statusbar smali but i get confuse when some line i search can.t be found on my phone statusbar smali. here the code im looking for.

method private setpile layer

) iput-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mMediaEjectBroadcastReceiver:Landroid/content/BroadcastReceiver;

.method private showAlwaysAskOrInternetCall(J)V
.method private setIntruderAlertVisibility(Z)V


anyway im on cm11 .maybe its override by new code. but i can.t find it please help which code is override that code on cm11.
Status bar code was moved, you trying to get a translucent one?

There are styles attributes in kitkat you can enable.

Look here:

http://www.doubleencore.com/2013/11/expand-your-brand-with-translucent-system-ui/
 
  • Like
Reactions: kingdj

kingdj

Senior Member
Mar 18, 2013
398
220
0
sweet city,pangkalanbun
Status bar code was moved, you trying to get a translucent one?

There are styles attributes in kitkat you can enable.

Look here:

http://www.doubleencore.com/2013/11/expand-your-brand-with-translucent-system-ui/
hmmm not what im looking exactly mate but thanks for response. what im asking is the code above is on cm10.1 and cm10.2 i try to apply some mod from cm10.1 and cm10.2 and can.t find the line above. so its must be override by new code but same function as code above but i can.t find the new code on cm11 that have same function like code above
 

djdarkknight96

Recognized Themer
Nov 2, 2009
16,838
46,956
263
Springfield
www.designrifts.com
hmmm not what im looking exactly mate but thanks for response. what im asking is the code above is on cm10.1 and cm10.2 i try to apply some mod from cm10.1 and cm10.2 and can.t find the line above. so its must be override by new code but same function as code above but i can.t find the new code on cm11 that have same function like code above
A far as i know it's changed dramatically, so I would say that mod needs to be reworked.
 

SirHydarnes

Senior Member
Nov 13, 2013
1,980
2,259
153
22
Hi. I'm actually stuck. I made an app with an online service now I've been trying to edit it and customize it more. Today I've done all but one. I even changed the package name. It works but one thing. The server removed my files and I have two Picture buttons called "Button2" and "Button5" and I tried doing everything to change both their height and width from 30 pxls to 70pxls. Now I tried searching, converting smali to java and etc but I didn't succeed. And it doesn't have no layout folder in /res so that I could change it from there...

Any Suggestions?
All I see is this nonesense. I tried finding these buttons but it only has got their names and actions and I'm sure there's no other place that it could be because of some reasons....
Now I know that it is in either Screen1.smali or Screen1$frame.smali.

Anyone knows anything? I developed it with MIT App inventor.
 

josephpatrick

Senior Member
Jan 24, 2012
1,165
232
83
Bangalore
error?

hi, what does this following error actually mean....there is no line number

06-09 07:04:33.970 2648 2660 I am_crash: [10329,0,com.android.contacts,1083752133,java.lang.VerifyError,com/android/contacts/activities/PeopleActivity,Class.java,-2]
 
Last edited:

TheDriller

Senior Member
Jan 31, 2012
4,299
6,681
0
Augusta, GA
hi, what does this following error actually mean....there is no line number

06-09 07:04:33.970 2648 2660 I am_crash: [10329,0,com.android.contacts,1083752133,java.lang.VerifyError,com/android/contacts/activities/PeopleActivity,Class.java,-2]
Verify errors are hard to run down. But in the apk you modified you probably messed up a register somewhere or tried to reuse one that can't be reused. Or you forgot to add new locals if you added new registers. Or it could be that you have too many registers for a simple const. You may need a const/4 if your registers are high enough
 

Rick1684

Senior Member
Sep 25, 2012
604
469
63
37
New Carlisle
Hello Im trying to learn smali editing for theming purposes. I have read many guides and have gotten a few simple edits done successfully, but one in particular still having trouble with is the volume sliders in systemui. Ive tracked down the smali file that controls it. I dont understand how the color is set so I was hoping someone could help me. Thanks in advance
Im on 5.0.1 TouchWiz stock deodexed. The issue Im trying to cure is that when headphones are plugged in the volume slider changes to dual color mode and half red half blue, When active it also overlays the blue color to all sliders in the panel. I have the xml themed the way I want but this smali overlays them.

Code:
.method private setDualColorMediaSlider()V
    .locals 2

    .prologue
    .line 3237
    iget-object v0, p0, Lcom/android/systemui/volume/VolumePanel;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v0}, Landroid/media/AudioManager;->isWiredHeadsetOn()Z

    move-result v0

    if-nez v0, :cond_0

    iget-object v0, p0, Lcom/android/systemui/volume/VolumePanel;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v0}, Landroid/media/AudioManager;->isBluetoothA2dpOn()Z

    move-result v0

    if-eqz v0, :cond_1

    invoke-direct {p0}, Lcom/android/systemui/volume/VolumePanel;->isDeviceOutSpeaker()Z

    move-result v0

    if-nez v0, :cond_1

    .line 3239
    :cond_0
    iget-object v0, p0, Lcom/android/systemui/volume/VolumePanel;->mMediaSlider:Landroid/widget/SeekBar;

    const/4 v1, 0x0

    invoke-virtual {v0, v1}, Landroid/widget/SeekBar;->setMode(I)V

    .line 3244
    iget-object v0, p0, Lcom/android/systemui/volume/VolumePanel;->mMediaSlider:Landroid/widget/SeekBar;

    iget v1, p0, Lcom/android/systemui/volume/VolumePanel;->mSafetyValue:I

    invoke-virtual {v0, v1}, Landroid/widget/SeekBar;->setOverlapPointForDualColor(I)V

    .line 3250
    :goto_0
    iget-object v0, p0, Lcom/android/systemui/volume/VolumePanel;->mMediaSlider:Landroid/widget/SeekBar;

    invoke-virtual {v0}, Landroid/widget/SeekBar;->invalidate()V

    .line 3251
    return-void

    .line 3247
    :cond_1
    iget-object v0, p0, Lcom/android/systemui/volume/VolumePanel;->mMediaSlider:Landroid/widget/SeekBar;

    const/4 v1, -0x1

    invoke-virtual {v0, v1}, Landroid/widget/SeekBar;->setOverlapPointForDualColor(I)V

    goto :goto_0
.end method

.method private setDualColorSeekbar(ILcom/android/systemui/volume/VolumePanel$StreamControl;)V
    .locals 3
    .param p1, "streamType"    # I
    .param p2, "sc"    # Lcom/android/systemui/volume/VolumePanel$StreamControl;

    .prologue
    const/4 v2, 0x3

    .line 3217
    if-eq p1, v2, :cond_0

    const/16 v0, 0xa

    if-ne p1, v0, :cond_3

    .line 3218
    :cond_0
    iget-object v0, p0, Lcom/android/systemui/volume/VolumePanel;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v0}, Landroid/media/AudioManager;->isWiredHeadsetOn()Z

    move-result v0

    if-nez v0, :cond_1

    iget-object v0, p0, Lcom/android/systemui/volume/VolumePanel;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v0}, Landroid/media/AudioManager;->isBluetoothA2dpOn()Z

    move-result v0

    if-eqz v0, :cond_4

    invoke-direct {p0}, Lcom/android/systemui/volume/VolumePanel;->isDeviceOutSpeaker()Z

    move-result v0

    if-nez v0, :cond_4

    .line 3220
    :cond_1
    iget-object v0, p2, Lcom/android/systemui/volume/VolumePanel$StreamControl;->seekbarView:Landroid/widget/SeekBar;

    const/4 v1, 0x0

    invoke-virtual {v0, v1}, Landroid/widget/SeekBar;->setMode(I)V

    .line 3222
    iget v0, p2, Lcom/android/systemui/volume/VolumePanel$StreamControl;->streamType:I

    if-ne v0, v2, :cond_2

    .line 3226
    :cond_2
    iget-object v0, p2, Lcom/android/systemui/volume/VolumePanel$StreamControl;->seekbarView:Landroid/widget/SeekBar;

    iget-object v1, p0, Lcom/android/systemui/volume/VolumePanel;->mAudioManager:Landroid/media/AudioManager;

    invoke-static {}, Landroid/media/AudioManager;->getEarProtectLimitIndex()I

    move-result v1

    add-int/lit8 v1, v1, -0x1

    invoke-virtual {v0, v1}, Landroid/widget/SeekBar;->setOverlapPointForDualColor(I)V

    .line 3233
    :cond_3
    :goto_0
    iget-object v0, p2, Lcom/android/systemui/volume/VolumePanel$StreamControl;->seekbarView:Landroid/widget/SeekBar;

    invoke-virtual {v0}, Landroid/widget/SeekBar;->invalidate()V

    .line 3234
    return-void

    .line 3230
    :cond_4
    iget-object v0, p2, Lcom/android/systemui/volume/VolumePanel$StreamControl;->seekbarView:Landroid/widget/SeekBar;

    const/4 v1, -0x1

    invoke-virtual {v0, v1}, Landroid/widget/SeekBar;->setOverlapPointForDualColor(I)V

    goto :goto_0
.end method

.method private setLayoutDirection(I)V]
 
Last edited:

djdarkknight96

Recognized Themer
Nov 2, 2009
16,838
46,956
263
Springfield
www.designrifts.com
Hello Im trying to learn smali editing for theming purposes. I have read many guides and have gotten a few simple edits done successfully, but one in particular still having trouble with is the volume sliders in systemui. Ive tracked down the smali file that controls it. I dont understand how the color is set so I was hoping someone could help me. Thanks in advance
Im on 5.0.1 TouchWiz stock deodexed. The issue Im trying to cure is that when headphones are plugged in the volume slider changes to dual color mode and half red half blue, When active it also overlays the blue color to all sliders in the panel. I have the xml themed the way I want but this smali overlays them.

Code:
.method private setDualColorMediaSlider()V
    .locals 2

    .prologue
    .line 3237
    iget-object v0, p0, Lcom/android/systemui/volume/VolumePanel;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v0}, Landroid/media/AudioManager;->isWiredHeadsetOn()Z

    move-result v0

    if-nez v0, :cond_0

    iget-object v0, p0, Lcom/android/systemui/volume/VolumePanel;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v0}, Landroid/media/AudioManager;->isBluetoothA2dpOn()Z

    move-result v0

    if-eqz v0, :cond_1

    invoke-direct {p0}, Lcom/android/systemui/volume/VolumePanel;->isDeviceOutSpeaker()Z

    move-result v0

    if-nez v0, :cond_1

    .line 3239
    :cond_0
    iget-object v0, p0, Lcom/android/systemui/volume/VolumePanel;->mMediaSlider:Landroid/widget/SeekBar;

    const/4 v1, 0x0

    invoke-virtual {v0, v1}, Landroid/widget/SeekBar;->setMode(I)V

    .line 3244
    iget-object v0, p0, Lcom/android/systemui/volume/VolumePanel;->mMediaSlider:Landroid/widget/SeekBar;

    iget v1, p0, Lcom/android/systemui/volume/VolumePanel;->mSafetyValue:I

    invoke-virtual {v0, v1}, Landroid/widget/SeekBar;->setOverlapPointForDualColor(I)V

    .line 3250
    :goto_0
    iget-object v0, p0, Lcom/android/systemui/volume/VolumePanel;->mMediaSlider:Landroid/widget/SeekBar;

    invoke-virtual {v0}, Landroid/widget/SeekBar;->invalidate()V

    .line 3251
    return-void

    .line 3247
    :cond_1
    iget-object v0, p0, Lcom/android/systemui/volume/VolumePanel;->mMediaSlider:Landroid/widget/SeekBar;

    const/4 v1, -0x1

    invoke-virtual {v0, v1}, Landroid/widget/SeekBar;->setOverlapPointForDualColor(I)V

    goto :goto_0
.end method

.method private setDualColorSeekbar(ILcom/android/systemui/volume/VolumePanel$StreamControl;)V
    .locals 3
    .param p1, "streamType"    # I
    .param p2, "sc"    # Lcom/android/systemui/volume/VolumePanel$StreamControl;

    .prologue
    const/4 v2, 0x3

    .line 3217
    if-eq p1, v2, :cond_0

    const/16 v0, 0xa

    if-ne p1, v0, :cond_3

    .line 3218
    :cond_0
    iget-object v0, p0, Lcom/android/systemui/volume/VolumePanel;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v0}, Landroid/media/AudioManager;->isWiredHeadsetOn()Z

    move-result v0

    if-nez v0, :cond_1

    iget-object v0, p0, Lcom/android/systemui/volume/VolumePanel;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v0}, Landroid/media/AudioManager;->isBluetoothA2dpOn()Z

    move-result v0

    if-eqz v0, :cond_4

    invoke-direct {p0}, Lcom/android/systemui/volume/VolumePanel;->isDeviceOutSpeaker()Z

    move-result v0

    if-nez v0, :cond_4

    .line 3220
    :cond_1
    iget-object v0, p2, Lcom/android/systemui/volume/VolumePanel$StreamControl;->seekbarView:Landroid/widget/SeekBar;

    const/4 v1, 0x0

    invoke-virtual {v0, v1}, Landroid/widget/SeekBar;->setMode(I)V

    .line 3222
    iget v0, p2, Lcom/android/systemui/volume/VolumePanel$StreamControl;->streamType:I

    if-ne v0, v2, :cond_2

    .line 3226
    :cond_2
    iget-object v0, p2, Lcom/android/systemui/volume/VolumePanel$StreamControl;->seekbarView:Landroid/widget/SeekBar;

    iget-object v1, p0, Lcom/android/systemui/volume/VolumePanel;->mAudioManager:Landroid/media/AudioManager;

    invoke-static {}, Landroid/media/AudioManager;->getEarProtectLimitIndex()I

    move-result v1

    add-int/lit8 v1, v1, -0x1

    invoke-virtual {v0, v1}, Landroid/widget/SeekBar;->setOverlapPointForDualColor(I)V

    .line 3233
    :cond_3
    :goto_0
    iget-object v0, p2, Lcom/android/systemui/volume/VolumePanel$StreamControl;->seekbarView:Landroid/widget/SeekBar;

    invoke-virtual {v0}, Landroid/widget/SeekBar;->invalidate()V

    .line 3234
    return-void

    .line 3230
    :cond_4
    iget-object v0, p2, Lcom/android/systemui/volume/VolumePanel$StreamControl;->seekbarView:Landroid/widget/SeekBar;

    const/4 v1, -0x1

    invoke-virtual {v0, v1}, Landroid/widget/SeekBar;->setOverlapPointForDualColor(I)V

    goto :goto_0
.end method

.method private setLayoutDirection(I)V]
The volume sliders are set in Drawable folder with a tint added...that's why there's no reference in smali.

Sent from my Nexus 5 using Tapatalk
 
  • Like
Reactions: Rick1684

Rick1684

Senior Member
Sep 25, 2012
604
469
63
37
New Carlisle
Yes it is controlled by drawables and I have that themed but when headphones are plugged in it gets overlayed back to stock blue with a red high volume area. Unplug them and back to normal. Do you have any ideas on where this tint could be added. I have looked through xmls and drawables. Then seen this in smali about setdualcolorseekbar. Thanks for the help.
Edit.. I would be happy simply disabling this method if thats possible.
 
Last edited:

djdarkknight96

Recognized Themer
Nov 2, 2009
16,838
46,956
263
Springfield
www.designrifts.com
Yes it is controlled by drawables and I have that themed but when headphones are plugged in it gets overlayed back to stock blue with a red high volume area. Unplug them and back to normal. Do you have any ideas on where this tint could be added. I have looked through xmls and drawables. Then seen this in smali about setdualcolorseekbar. Thanks for the help.
Oh then it's a possible color map or overlay, try searching the color code for those colors in smali hex. There's a few converters out there, I'm on CM so they must have it disabled. Never seen that before.

Sent from my Nexus 5 using Tapatalk
 
  • Like
Reactions: Rick1684

Rick1684

Senior Member
Sep 25, 2012
604
469
63
37
New Carlisle
Oh then it's a possible color map or overlay, try searching the color code for those colors in smali hex. There's a few converters out there, I'm on CM so they must have it disabled. Never seen that before.

Sent from my Nexus 5 using Tapatalk
Ive tried that too unfortunatly nothing. I loaded up all smalis in the com/android/systemui folder and did a search all for
-0x16b0ee, -0xff5f32, and -0xb4f6a. Those are the three colors being used.
Im wondering if it could be set in rgb or something. Are there any other places to look?
 

Attachments

djdarkknight96

Recognized Themer
Nov 2, 2009
16,838
46,956
263
Springfield
www.designrifts.com
Ive tried that too unfortunatly nothing. I loaded up all smalis in the com/android/systemui folder and did a search all for
-0x16b0ee, -0xff5f32, and -0xb4f6a. Those are the three colors being used.
Im wondering if it could be set in rgb or something. Are there any other places to look?
Hmm, try looking in arrays? Google been hiding colors there too. I suppose monitor.bat gave you the smali you're looking in..so I'm thinking you've tried most common searches. It can be rgb coded with three entries for each. Worth a shot.

Sent from my Nexus 5 using Tapatalk
 
  • Like
Reactions: Dzepar and Rick1684

Rick1684

Senior Member
Sep 25, 2012
604
469
63
37
New Carlisle
Hmm, try looking in arrays? Google been hiding colors there too. I suppose monitor.bat gave you the smali you're looking in..so I'm thinking you've tried most common searches. It can be rgb coded with three entries for each. Worth a shot.

Sent from my Nexus 5 using Tapatalk
Yea I learnt the hard way about the arrays and also seen some in integers. Spend all day blacking out an app and see is_black_mode>0 in arrays. Thats a duh moment. But anyway am I correct to search for -0x16 in rgb for example -0x16b0ee and then the other digits the same way? Or is it numbers like 266, 238, 112.
 

djdarkknight96

Recognized Themer
Nov 2, 2009
16,838
46,956
263
Springfield
www.designrifts.com
Yea I learnt the hard way about the arrays and also seen some in integers. Spend all day blacking out an app and see is_black_mode>0 in arrays. Thats a duh moment. But anyway am I correct to search for -0x16 in rgb for example -0x16b0ee and then the other digits the same way? Or is it numbers like 266, 238, 112.
Usually it's -0x16 then right below -0xB0 then -0xEE unless it's argb with the alpha defined too.

Sent from my Nexus 5 using Tapatalk
 
  • Like
Reactions: Rick1684

Rick1684

Senior Member
Sep 25, 2012
604
469
63
37
New Carlisle
Ok Im loading up every smali in the apk now. Thanks for the help. Just to be clear that smali in my first post doesnt have any thing to do with colors?
Edit.. No luck on the rgb either. I think theres a reason no ones done this mod.
Dont worry about it. Merry Christmas and thanks for all you do.
 
Last edited:
  • Like
Reactions: djdarkknight96

Rick1684

Senior Member
Sep 25, 2012
604
469
63
37
New Carlisle
@djdarkknight96 I was able to disable the slider turning red. Now I am looking for the media slider handle. It has a tint set somewhere that I cannot find Ive seached most everything. My question to you is is there a way to make a png not accept a tint. Or a different image format that will not accept tints.
BTW the edit was to the smali i posted, had to change if eqz v0, cond_1 to if nez v0, cond_4 Under setdualcolormediaslider. Basically just disabled it.
 

djdarkknight96

Recognized Themer
Nov 2, 2009
16,838
46,956
263
Springfield
www.designrifts.com
@djdarkknight96 I was able to disable the slider turning red. Now I am looking for the media slider handle. It has a tint set somewhere that I cannot find Ive seached most everything. My question to you is is there a way to make a png not accept a tint. Or a different image format that will not accept tints.
BTW the edit was to the smali i posted, had to change if eqz v0, cond_1 to if nez v0, cond_4 Under setdualcolormediaslider. Basically just disabled it.
Ah very good, smali is a pain. The tint should be in the same smali. Try disabling it, I hate they added tint to smali. Look to see if it has touch states. Pressed selected..etc then look for those values too.

Sent from my Nexus 5 using Tapatalk
 
  • Like
Reactions: Rick1684

remuntada78

Senior Member
Jun 2, 2013
903
964
0
Hello Im trying to learn smali editing for theming purposes. I have read many guides and have gotten a few simple edits done successfully, but one in particular still having trouble with is the volume sliders in systemui. Ive tracked down the smali file that controls it. I dont understand how the color is set so I was hoping someone could help me. Thanks in advance
Im on 5.0.1 TouchWiz stock deodexed. The issue Im trying to cure is that when headphones are plugged in the volume slider changes to dual color mode and half red half blue, When active it also overlays the blue color to all sliders in the panel. I have the xml themed the way I want but this smali overlays them.

Code:
.method private setDualColorMediaSlider()V
    .locals 2

    .prologue
    .line 3237
    iget-object v0, p0, Lcom/android/systemui/volume/VolumePanel;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v0}, Landroid/media/AudioManager;->isWiredHeadsetOn()Z

    move-result v0

    if-nez v0, :cond_0

    iget-object v0, p0, Lcom/android/systemui/volume/VolumePanel;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v0}, Landroid/media/AudioManager;->isBluetoothA2dpOn()Z

    move-result v0

    if-eqz v0, :cond_1

    invoke-direct {p0}, Lcom/android/systemui/volume/VolumePanel;->isDeviceOutSpeaker()Z

    move-result v0

    if-nez v0, :cond_1

    .line 3239
    :cond_0
    iget-object v0, p0, Lcom/android/systemui/volume/VolumePanel;->mMediaSlider:Landroid/widget/SeekBar;

    const/4 v1, 0x0

    invoke-virtual {v0, v1}, Landroid/widget/SeekBar;->setMode(I)V

    .line 3244
    iget-object v0, p0, Lcom/android/systemui/volume/VolumePanel;->mMediaSlider:Landroid/widget/SeekBar;

    iget v1, p0, Lcom/android/systemui/volume/VolumePanel;->mSafetyValue:I

    invoke-virtual {v0, v1}, Landroid/widget/SeekBar;->setOverlapPointForDualColor(I)V

    .line 3250
    :goto_0
    iget-object v0, p0, Lcom/android/systemui/volume/VolumePanel;->mMediaSlider:Landroid/widget/SeekBar;

    invoke-virtual {v0}, Landroid/widget/SeekBar;->invalidate()V

    .line 3251
    return-void

    .line 3247
    :cond_1
    iget-object v0, p0, Lcom/android/systemui/volume/VolumePanel;->mMediaSlider:Landroid/widget/SeekBar;

    const/4 v1, -0x1

    invoke-virtual {v0, v1}, Landroid/widget/SeekBar;->setOverlapPointForDualColor(I)V

    goto :goto_0
.end method

.method private setDualColorSeekbar(ILcom/android/systemui/volume/VolumePanel$StreamControl;)V
    .locals 3
    .param p1, "streamType"    # I
    .param p2, "sc"    # Lcom/android/systemui/volume/VolumePanel$StreamControl;

    .prologue
    const/4 v2, 0x3

    .line 3217
    if-eq p1, v2, :cond_0

    const/16 v0, 0xa

    if-ne p1, v0, :cond_3

    .line 3218
    :cond_0
    iget-object v0, p0, Lcom/android/systemui/volume/VolumePanel;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v0}, Landroid/media/AudioManager;->isWiredHeadsetOn()Z

    move-result v0

    if-nez v0, :cond_1

    iget-object v0, p0, Lcom/android/systemui/volume/VolumePanel;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v0}, Landroid/media/AudioManager;->isBluetoothA2dpOn()Z

    move-result v0

    if-eqz v0, :cond_4

    invoke-direct {p0}, Lcom/android/systemui/volume/VolumePanel;->isDeviceOutSpeaker()Z

    move-result v0

    if-nez v0, :cond_4

    .line 3220
    :cond_1
    iget-object v0, p2, Lcom/android/systemui/volume/VolumePanel$StreamControl;->seekbarView:Landroid/widget/SeekBar;

    const/4 v1, 0x0

    invoke-virtual {v0, v1}, Landroid/widget/SeekBar;->setMode(I)V

    .line 3222
    iget v0, p2, Lcom/android/systemui/volume/VolumePanel$StreamControl;->streamType:I

    if-ne v0, v2, :cond_2

    .line 3226
    :cond_2
    iget-object v0, p2, Lcom/android/systemui/volume/VolumePanel$StreamControl;->seekbarView:Landroid/widget/SeekBar;

    iget-object v1, p0, Lcom/android/systemui/volume/VolumePanel;->mAudioManager:Landroid/media/AudioManager;

    invoke-static {}, Landroid/media/AudioManager;->getEarProtectLimitIndex()I

    move-result v1

    add-int/lit8 v1, v1, -0x1

    invoke-virtual {v0, v1}, Landroid/widget/SeekBar;->setOverlapPointForDualColor(I)V

    .line 3233
    :cond_3
    :goto_0
    iget-object v0, p2, Lcom/android/systemui/volume/VolumePanel$StreamControl;->seekbarView:Landroid/widget/SeekBar;

    invoke-virtual {v0}, Landroid/widget/SeekBar;->invalidate()V

    .line 3234
    return-void

    .line 3230
    :cond_4
    iget-object v0, p2, Lcom/android/systemui/volume/VolumePanel$StreamControl;->seekbarView:Landroid/widget/SeekBar;

    const/4 v1, -0x1

    invoke-virtual {v0, v1}, Landroid/widget/SeekBar;->setOverlapPointForDualColor(I)V

    goto :goto_0
.end method

.method private setLayoutDirection(I)V]
try to remove the following line from both methods
Code:
    invoke-virtual {v0, v1}, Landroid/widget/SeekBar;->setOverlapPointForDualColor(I)V