Tuesday, 5 January 2016

Hide Am Pm in Jb 4.1.2 Status Bar And Expanded Header

Requirements:
1) Apktool 1.5.2
2) Notepad ++
3) SystemUI.apk

Procedure;

1) Decompile SystemUI.apk

2) Now goto decompiled folder and navigate to smali/com/android/systemui/statusbar/policy folder.

3) Open clock.smali using notepad++ and search for this method .method final updateClock()V and mark It until .end method

4) Replace it with this method

.method final updateClock()V
    .locals 15

    .prologue
    const/4 v14, 0x0

    .line 191
    iget-object v11, p0, Lcom/android/systemui/statusbar/policy/Clock;->mCalendar:Ljava/util/Calendar;

    invoke-static {}, Ljava/lang/System;->currentTimeMillis()J

    move-result-wide v12

    invoke-virtual {v11, v12, v13}, Ljava/util/Calendar;->setTimeInMillis(J)V

    .line 200
    invoke-virtual {p0}, Lcom/android/systemui/statusbar/policy/Clock;->getContext()Landroid/content/Context;

    move-result-object v3

    .line 201
    .local v3, context:Landroid/content/Context;
    invoke-static {v3}, Landroid/text/format/DateFormat;->is24HourFormat(Landroid/content/Context;)Z

    move-result v2

    .line 202
    .local v2, b24:Z
    const/4 v8, 0x0

    .line 203
    .local v8, res:I
    const-string v1, ""

    .line 205
    .local v1, AM_PM:Ljava/lang/String;
    if-nez v2, :cond_0

    .line 206
    iget-object v11, p0, Lcom/android/systemui/statusbar/policy/Clock;->mCalendar:Ljava/util/Calendar;

    const/16 v12, 0x9

    invoke-virtual {v11, v12}, Ljava/util/Calendar;->get(I)I

    move-result v0

    .line 207
    .local v0, AMPM:I
    if-nez v0, :cond_3

    .line 208
    const v8, 0x104009a

    .line 214
    .end local v0           #AMPM:I
    :cond_0
    :goto_0
    if-eqz v8, :cond_1

    .line 215
    invoke-virtual {v3, v8}, Landroid/content/Context;->getString(I)Ljava/lang/String;

    move-result-object v11

    invoke-virtual {v11}, Ljava/lang/String;->toUpperCase()Ljava/lang/String;

    move-result-object v1

    .line 218
    :cond_1
    const v11, 0x7f0a005c

    const/4 v12, 0x2

    new-array v12, v12, [Ljava/lang/Object;

    invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/Clock;->getSmallTime()Ljava/lang/CharSequence;

    move-result-object v13

    aput-object v13, v12, v14

    const/4 v13, 0x1

    aput-object v1, v12, v13

    invoke-virtual {v3, v11, v12}, Landroid/content/Context;->getString(I[Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v11

    new-array v12, v14, [Ljava/lang/Object;

    invoke-static {v11, v12}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v10

    .line 221
    .local v10, timeText:Ljava/lang/String;
    if-eqz v8, :cond_4

    sget-boolean v11, Lcom/android/systemui/statusbar/BaseStatusBar;->useTouchWizGUI:Z

    if-eqz v11, :cond_4

    sget-boolean v11, Lcom/android/systemui/statusbar/BaseStatusBar;->canStatusBarHide:Z

    if-eqz v11, :cond_2

    iget-boolean v11, p0, Lcom/android/systemui/statusbar/policy/Clock;->mExpandedHeader:Z

    if-eqz v11, :cond_4

    .line 223
    :cond_2
    new-instance v4, Landroid/text/SpannableStringBuilder;

    invoke-direct {v4, v10}, Landroid/text/SpannableStringBuilder;-><init>(Ljava/lang/CharSequence;)V

    .line 224
    .local v4, formatted:Landroid/text/SpannableStringBuilder;
    const/high16 v7, 0x3000

    .line 225
    .local v7, proportion:F
    invoke-virtual {v10, v1}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I

    move-result v5

    .line 226
    .local v5, magic1:I
    invoke-virtual {v1}, Ljava/lang/String;->length()I

    move-result v6

    .line 227
    .local v6, magic2:I
    new-instance v9, Landroid/text/style/RelativeSizeSpan;

    invoke-direct {v9, v7}, Landroid/text/style/RelativeSizeSpan;-><init>(F)V

    .line 228
    .local v9, style:Landroid/text/style/CharacterStyle;
    add-int v11, v5, v6

    const/16 v12, 0x22

    invoke-virtual {v4, v9, v5, v11, v12}, Landroid/text/SpannableStringBuilder;->setSpan(Ljava/lang/Object;III)V

    .line 230
    invoke-virtual {p0, v4}, Lcom/android/systemui/statusbar/policy/Clock;->setText(Ljava/lang/CharSequence;)V

    .line 235
    .end local v4           #formatted:Landroid/text/SpannableStringBuilder;
    .end local v5           #magic1:I
    .end local v6           #magic2:I
    .end local v7           #proportion:F
    .end local v9           #style:Landroid/text/style/CharacterStyle;
    :goto_1
    return-void

    .line 210
    .end local v10           #timeText:Ljava/lang/String;
    .restart local v0       #AMPM:I
    :cond_3
    const v8, 0x104009b

    goto :goto_0

    .line 232
    .end local v0           #AMPM:I
    .restart local v10       #timeText:Ljava/lang/String;
    :cond_4
    invoke-virtual {p0, v10}, Lcom/android/systemui/statusbar/policy/Clock;->setText(Ljava/lang/CharSequence;)V

    goto :goto_1
.end method

5) Now goto res/layout folder.

6) Open tw_status_bar.xml , tw_status_bar_dual.xml and tw_status_bar_expanded_header.xml

7) Search for code <com.android.systemui.statusbar.policy.clock

8) Add this attribute to it android:ampmSmall="true"

9) Save it , recompile it.

10) Sign it and push it to rw--rr

Credit: ShadeSk@xda

No comments:

Post a Comment