[Sony Cross-Device Development Themes and Apps] venkat kamesh:
SystemUI part 2

Continuation

1. Open SystemUI.apk/smali/com/android/systemui/statusbar/phone/PhoneStatusBar.smali

look for this code

# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/android/systemui/statusbar/phone/PhoneStatusBar$DozeServiceHost;,

After this line

Lcom/android/systemui/statusbar/phone/PhoneStatusBar$DozeServiceHost;,

Add this Annotation

Lcom/android/systemui/statusbar/phone/PhoneStatusBar$100000023;,

Find this

# static fields

Below that add this

.field public static mExpandedVisible:Z

Find this line and Delete

.field mExpandedVisible:Z

Find this

# instance fields

Below add these lines

.field private mOverrideIconColor:I

.field private mPreviousOverrideIconColor:I

1.2. Now Find this method

.method public constructor <init>()V

find this line (v3 may vary)

iput v3, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mNaturalBarHeight:I

Below add these lines

iput v1, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPreviousOverrideIconColor:I

iput v1, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mOverrideIconColor:I

1.3 Find this method

.method private addNavigationBar()V

Before that method add these methods

.method static synthetic access$L1000016(Lcom/android/systemui/statusbar/phone/PhoneStatusBar;)I
.locals 1

iget v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPreviousOverrideIconColor:I

return v0
.end method

.method static synthetic access$L1000017(Lcom/android/systemui/statusbar/phone/PhoneStatusBar;)I
.locals 1

iget v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mOverrideIconColor:I

return v0
.end method

.method static synthetic access$S1000016(Lcom/android/systemui/statusbar/phone/PhoneStatusBar;I)V
.locals 0

iput p1, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPreviousOverrideIconColor:I

return-void
.end method

.method static synthetic access$S1000017(Lcom/android/systemui/statusbar/phone/PhoneStatusBar;I)V
.locals 0

iput p1, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mOverrideIconColor:I

return-void
.end method

1.4 now you need to change Instance to Static

Using Notepad++ find this mExpandedVisible:Z

so you get similar lines like this

[COLOR="red"]i[/COLOR]get-boolean v0, [COLOR="Blue"]p0,[/COLOR] Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->[COLOR="red"]mExpandedVisible:Z[/COLOR]

In the above line do changes

Replace iget-boolean to sget-boolean and delete blue p0,

and it look like this after Edit

[COLOR="Red"]s[/COLOR]get-boolean v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;-[COLOR="red"]>mExpandedVisible:Z[/COLOR]

So like this you need to change them (Around 8 need to be changed )

Comparing files are available below

1.5 Find this method

.method protected makeStatusBarView()Lcom/android/systemui/statusbar/phone/PhoneStatusBarView;

at the end of that method find this line

invoke-static {v4, v5}, Landroid/view/ThreadedRenderer;->overrideProperty(Ljava/lang/String;Ljava/lang/String;)V

After that line add these lines

const/4 v2, 0x1

new-array v2, v2, [Lcom/android/systemui/statusbar/phone/BarBackgroundUpdater$UpdateListener;

const/4 v3, 0x0

new-instance v4, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$100000023;

move-object/from16 v0, p0

move-object/from16 v1, p0

invoke-direct {v4, v0, v1}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$100000023;-><init>(Lcom/android/systemui/statusbar/phone/PhoneStatusBar;Ljava/lang/Object;)V

aput-object v4, v2, v3

invoke-static {v2}, Lcom/android/systemui/statusbar/phone/BarBackgroundUpdater;->addListener([Lcom/android/systemui/statusbar/phone/BarBackgroundUpdater$UpdateListener;)V

Now find this method

.method public setSystemUiVisibility(II)V

in that find this lines

move-object/from16 v0, p0

iget-object v5, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mIconController:Lcom/android/systemui/statusbar/phone/StatusBarIconController;

above move-object/from16 v0, p0

Add this line

sget-boolean v5, Lcom/android/systemui/statusbar/phone/BarBackgroundUpdater;->mStatusEnabled:Z

save and close PhoneStatusBar.smali

2. Search for this mExpandedVisible:Z in child files of PhoneStatusBar$xx.smali

in Sony i found in PhoneStatusBar$11.smali

so same

from

[COLOR="Red"]i[/COLOR]get-boolean v0, [COLOR="Blue"]v0,[/COLOR] Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->[COLOR="red"]mExpandedVisible:Z[/COLOR]

to

[COLOR="red"]s[/COLOR]get-boolean v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->[COLOR="red"]mExpandedVisible:Z[/COLOR]

3. Now open SystemUI.apk/smali/com/android/systemui/statusbar/phone/StatusBarIconController.smali

find this line

.field private final mHandler:Landroid/os/Handler;

Replace that line to this

.field public final mHandler:Landroid/os/Handler;

Now save and Close all

Complie and replace

For compare Download this files View attachment 3940773

Now you need to place the Lib to you SystemUI.apk

Merge this lib to system/priv-app ( use any root explorer )

For 64 bit devices :- View attachment 3940775

For ARM / 32 bit devices :- View attachment 3940774

For x86_x64 devices :- View attachment 3940776

After Placing lib replace systemUI.apk and reboot tada

Video soon available

For settings Look for next post