Tuesday, March 25, 2014

[GUIDE] Transparent Statusbar

Requirements
Procedure

Adding Transparency Support to statusbar
  1. Decompile android.policy.jar [guide on how to decompile jar files]
  2. Go to \com\android\internal\policy\impl\PhoneWindowManager.smali
  3. Find this method

  4. .method public getSystemDecorRectLw(Landroid/graphics/Rect;)I
    
  5. Delete Red Code

  6. .method public getSystemDecorRectLw(Landroid/graphics/Rect;)I
        .registers 3
        .parameter "systemRect"
    
        .prologue
        .line 3057
        iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mSystemLeft:I
    
        iput v0, p1, Landroid/graphics/Rect;->left:I
    
        .line 3058
        iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mSystemTop:I
    
        iput v0, p1, Landroid/graphics/Rect;->top:I
    
        .line 3059
        iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mSystemRight:I
    
        iput v0, p1, Landroid/graphics/Rect;->right:I
    
        .line 3060
        iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mSystemBottom:I
    
        iput v0, p1, Landroid/graphics/Rect;->bottom:I
    
        .line 3061
        iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mStatusBar:Landroid/view/WindowManagerPolicy$WindowState;
    
        if-eqz v0, :cond_1b
    
        iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mStatusBar:Landroid/view/WindowManagerPolicy$WindowState;
    
        invoke-interface {v0}, Landroid/view/WindowManagerPolicy$WindowState;->getSurfaceLayer()I
    
        move-result v0
    
        .line 3063
        :goto_1a
        return v0
    
        .line 3062
        :cond_1b
        iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mNavigationBar:Landroid/view/WindowManagerPolicy$WindowState;
    
        if-eqz v0, :cond_26
    
        iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mNavigationBar:Landroid/view/WindowManagerPolicy$WindowState;
    
        invoke-interface {v0}, Landroid/view/WindowManagerPolicy$WindowState;->getSurfaceLayer()I
    
        move-result v0
    
        goto :goto_1a
    
        .line 3063
        :cond_26
        const/4 v0, 0x0
    
        goto :goto_1a
    .end method
    
  7. Add Blue Code

  8.      const/4 v0, 0x0
         return v0
    .end method
    
  9. Save & Compile

Change Transparency to statusbar
  1. Decompile Systemui.apk
  2. Change hex values as to #AARRGGBB. AA is for transparency in hex percentage. Get the hex codes here: Transparency Hex Codes. Generate RGB Codes here: Hex Color Generator

  3. <item type="drawable" name="notification_number_text_color">#ff000000</item>
    <item type="drawable" name="ticker_background_color">#ff1d1d1d</item>
    <item type="drawable" name="status_bar_background">#00000000</item>
    <item type="drawable" name="status_bar_recents_app_thumbnail_background">#88000000</item>
    <item type="drawable" name="status_bar_notification_row_background_color">#ff090909</item>
    <item type="drawable" name="recents_callout_line">#99ffffff</item>
    <item type="drawable" name="notification_item_background_legacy_color">#ffaaaaaa</item>
    <item type="drawable" name="intruder_bg_pressed">#ff33b5e5</item>
    <item type="drawable" name="notification_header_bg">#ff000000</item>
    <item type="drawable" name="system_bar_background">#88000000</item>
    <item type="drawable" name="notification_icon_area_smoke">#88000000</item>
    
  4. Save & Compile

No comments:

Post a Comment