[TUTORIAL][MANUAL][DEODEX] Transparan Statusbar & Lockscreen di Android 4.2.x
Wednesday, April 9, 2014
Edit
Silahkan yang mau download dlm format txt..https://www.dropbox.com/s/2bgbphavujfc0t1/Transparan%20Statusbar%20%26%20Lockscreen.txt
Sebelumnya mohon maaf buat yang bikin doc, ane edit dikit biar rapi ya :p
[ttd GZ]
[TUTORIAL][MANUAL][DEODEX] Transparan Statusbar & Lockscreen di Android 4.2.x
SYARAT
- ROM Deodex (Stock maupun Custom)
- android.policy.jar
- services.jar
- framework-res.apk
- SystemUI.apk
- Mengerti Cara decompile/recompile APK
(Ikuti tutorial disini klo blom mengerti : http://allwinasepuluh.blogspot.com/2013/07/tutorial-decompile-compile-apk.html?m=1)
LANGKAH-LANGKAH
1. Decompile android.policy.jar
2. Buka android.policy.jar.out\com\android\internal\policy\impl\PhoneWindowManager.smali
cari line :
.method public getSystemDecorRectLw(Landroid/graphics/Rect;)I
DELETE/HAPUS code line tersebut sampai .end method & replace/ganti dengan :
.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 3063
const/4 v0, 0x0
return v0
.end method
3. Recompile android.policy.jar.out
4. Decompile SystemUI.apk
5. Buka SystemUI\res\values\drawables.xml
Cari code line berikut ini :
#ff000000
ganti "ff000000" dengan code transparan berikut :
100% >>> "00000000"
80% >>> "88000000"
6. Recompile SystemUI
7. DONE.
TRANSPARAN LOCKSCREEN
LANGKAH-LANGKAH
1. Decompile android.policy.jar
2. Buka android.policy.jar.out\com\android\internal\policy\impl\keyguard\KeyguardViewManager.smali
cari line :
.method private maybeCreateKeyguardLocked(ZZLandroid/os/Bundle;)V
DELETE/HAPUS code line tersebut sampai .end method & replace/ganti dengan :
.method private maybeCreateKeyguardLocked(ZZLandroid/os/Bundle;)V
.registers 13
.parameter "enableScreenRotation"
.parameter "force"
.parameter "options"
.prologue
const/high16 v8, 0x100
const/4 v1, -0x1
.line 158
iget-object v2, p0, Lcom/android/internal/policy/impl/keyguard/KeyguardViewManager;->mContext:Landroid/content/Context;
instance-of v6, v2, Landroid/app/Activity;
.line 160
.local v6, isActivity:Z
iget-object v2, p0,
Lcom/android/internal/policy/impl/keyguard/KeyguardViewManager;->mKeyguardHost:Landroid/widget/FrameLayout;
if-eqz v2, :cond_12
.line 161
iget-object v2, p0,
Lcom/android/internal/policy/impl/keyguard/KeyguardViewManager;->mKeyguardHost:Landroid/widget/FrameLayout;
iget-object v5, p0,
Lcom/android/internal/policy/impl/keyguard/KeyguardViewManager;->mStateContainer:Landroid/util/SparseArray;
invoke-virtual {v2, v5}, Landroid/widget/FrameLayout;->saveHierarchyState(Landroid/util/SparseArray;)V
.line 164
:cond_12
iget-object v2, p0,
Lcom/android/internal/policy/impl/keyguard/KeyguardViewManager;->mKeyguardHost:Landroid/widget/FrameLayout;
if-nez v2, :cond_79
.line 167
new-instance v2, Lcom/android/internal/policy/impl/keyguard/KeyguardViewManager$ViewManagerHost;
iget-object v5, p0, Lcom/android/internal/policy/impl/keyguard/KeyguardViewManager;->mContext:Landroid/content/Context;
invoke-direct {v2, p0, v5},
Lcom/android/internal/policy/impl/keyguard/KeyguardViewManager$ViewManagerHost;->(Lcom/android/internal/policy/impl/keyguard/KeyguardViewManager;Landroid/content/Context;)V
iput-object v2, p0,
Lcom/android/internal/policy/impl/keyguard/KeyguardViewManager;->mKeyguardHost:Landroid/widget/FrameLayout;
.line 169
const v4, 0x10900
.line 173
.local v4, flags:I
iget-boolean v2, p0, Lcom/android/internal/policy/impl/keyguard/KeyguardViewManager;->mNeedsInput:Z
if-nez v2, :cond_29
.line 174
const/high16 v2, 0x2
or-int/2addr v4, v2
.line 176
:cond_29
invoke-static {}, Landroid/app/ActivityManager;->isHighEndGfx()Z
move-result v2
if-eqz v2, :cond_30
.line 177
or-int/2addr v4, v8
.line 180
:cond_30
const/4 v7, -0x1
.line 181
.local v7, stretch:I
if-eqz v6, :cond_96
const/4 v3, 0x2
.line 183
.local v3, type:I
:goto_34
new-instance v0, Landroid/view/WindowManager$LayoutParams;
const/4 v5, -0x3
move v2, v1
invoke-direct/range {v0 .. v5}, Landroid/view/WindowManager$LayoutParams;->(IIIII)V
.line 185
.local v0, lp:Landroid/view/WindowManager$LayoutParams;
const/16 v1, 0x10
iput v1, v0, Landroid/view/WindowManager$LayoutParams;->softInputMode:I
.line 186
const v1, 0x10301e2
iput v1, v0, Landroid/view/WindowManager$LayoutParams;->windowAnimations:I
.line 187
invoke-static {}, Landroid/app/ActivityManager;->isHighEndGfx()Z
move-result v1
if-eqz v1, :cond_55
.line 188
iget v1, v0, Landroid/view/WindowManager$LayoutParams;->flags:I
or-int/2addr v1, v8
iput v1, v0, Landroid/view/WindowManager$LayoutParams;->flags:I
.line 189
iget v1, v0, Landroid/view/WindowManager$LayoutParams;->privateFlags:I
or-int/lit8 v1, v1, 0x2
iput v1, v0, Landroid/view/WindowManager$LayoutParams;->privateFlags:I
.line 192
:cond_55
iget v1, v0, Landroid/view/WindowManager$LayoutParams;->privateFlags:I
or-int/lit8 v1, v1, 0x8
iput v1, v0, Landroid/view/WindowManager$LayoutParams;->privateFlags:I
.line 193
if-eqz v6, :cond_63
.line 194
iget v1, v0, Landroid/view/WindowManager$LayoutParams;->privateFlags:I
or-int/lit8 v1, v1, 0x10
iput v1, v0, Landroid/view/WindowManager$LayoutParams;->privateFlags:I
.line 196
:cond_63
iget v1, v0, Landroid/view/WindowManager$LayoutParams;->inputFeatures:I
or-int/lit8 v1, v1, 0x4
iput v1, v0, Landroid/view/WindowManager$LayoutParams;->inputFeatures:I
.line 197
if-eqz v6, :cond_99
const-string v1, "KeyguardMock"
:goto_6d
invoke-virtual {v0, v1}, Landroid/view/WindowManager$LayoutParams;->setTitle(Ljava/lang/CharSequence;)V
.line 198
iput-object v0, p0,
Lcom/android/internal/policy/impl/keyguard/KeyguardViewManager;->mWindowLayoutParams:Landroid/view/WindowManager$LayoutParams;
.line 199
iget-object v1, p0,
Lcom/android/internal/policy/impl/keyguard/KeyguardViewManager;->mViewManager:Landroid/view/ViewManager;
iget-object v2, p0,
Lcom/android/internal/policy/impl/keyguard/KeyguardViewManager;->mKeyguardHost:Landroid/widget/FrameLayout;
invoke-interface {v1, v2, v0},
Landroid/view/ViewManager;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
.line 202
.end local v0 #lp:Landroid/view/WindowManager$LayoutParams;
.end local v3 #type:I
.end local v4 #flags:I
.end local v7 #stretch:I
:cond_79
if-nez p2, :cond_7f
iget-object v1, p0,
Lcom/android/internal/policy/impl/keyguard/KeyguardViewManager;->mKeyguardView:Lcom/android/internal/policy/impl/keyguard/KeyguardHostView;
if-nez v1, :cond_82
.line 203
:cond_7f
invoke-direct {p0, p3},
Lcom/android/internal/policy/impl/keyguard/KeyguardViewManager;->inflateKeyguardView(Landroid/os/Bundle;)V
.line 205
:cond_82
invoke-direct {p0},
Lcom/android/internal/policy/impl/keyguard/KeyguardViewManager;->updateUserActivityTimeoutInWindowLayoutParams()V
.line 206
iget-object v1, p0,
Lcom/android/internal/policy/impl/keyguard/KeyguardViewManager;->mViewManager:Landroid/view/ViewManager;
iget-object v2, p0,
Lcom/android/internal/policy/impl/keyguard/KeyguardViewManager;->mKeyguardHost:Landroid/widget/FrameLayout;
iget-object v5, p0,
Lcom/android/internal/policy/impl/keyguard/KeyguardViewManager;->mWindowLayoutParams:Landroid/view/WindowManager$LayoutParams;
invoke-interface {v1, v2, v5},
Landroid/view/ViewManager;->updateViewLayout(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
.line 208
iget-object v1, p0,
Lcom/android/internal/policy/impl/keyguard/KeyguardViewManager;->mKeyguardHost:Landroid/widget/FrameLayout;
iget-object v2, p0,
Lcom/android/internal/policy/impl/keyguard/KeyguardViewManager;->mStateContainer:Landroid/util/SparseArray;
invoke-virtual {v1, v2}, Landroid/widget/FrameLayout;->restoreHierarchyState(Landroid/util/SparseArray;)V
.line 209
return-void
.line 181
.restart local v4 #flags:I
.restart local v7 #stretch:I
:cond_96
const/16 v3, 0x7d4
goto :goto_34
.line 197
.restart local v0 #lp:Landroid/view/WindowManager$LayoutParams;
.restart local v3 #type:I
:cond_99
const-string v1, "Keyguard"
goto :goto_6d
.end method
3. Recompile android.policy.jar.out
4. Decompile services.jar
5. Buka services\com\android\server\wm\WindowAnimator.smali
cari line :
.method private updateWindowsLocked(I)V
DELETE/HAPUS code line tersebut sampai .end method & replace/ganti dengan :
.method private updateWindowsLocked(I)V
.registers 23
.parameter "displayId"
.prologue
.line 343
move-object/from16 v0, p0
iget v0, v0, Lcom/android/server/wm/WindowAnimator;->mAnimTransactionSequence:I
move/from16 v17, v0
add-int/lit8 v17, v17, 0x1
move/from16 v0, v17
move-object/from16 v1, p0
iput v0, v1, Lcom/android/server/wm/WindowAnimator;->mAnimTransactionSequence:I
.line 345
invoke-direct/range {p0 .. p1},
Lcom/android/server/wm/WindowAnimator;->getDisplayContentsAnimatorLocked(I)Lcom/android/server/wm/WindowAnimator$DisplayContentsAnimator;
move-result-object v17
move-object/from16 v0, v17
iget-object v0, v0,
Lcom/android/server/wm/WindowAnimator$DisplayContentsAnimator;->mWinAnimators:Lcom/android/server/wm/WinAnimatorList;
move-object/from16 v16, v0
.line 347
.local v16, winAnimatorList:Lcom/android/server/wm/WinAnimatorList;
const/4 v11, 0x0
.line 348
.local v11, unForceHiding:Ljava/util/ArrayList;,"Ljava/util/ArrayList;"
const/4 v12, 0x0
.line 349
.local v12, wallpaperInUnForceHiding:Z
const/16 v17, 0x0
move/from16 v0, v17
move-object/from16 v1, p0
iput v0, v1, Lcom/android/server/wm/WindowAnimator;->mForceHiding:I
.line 351
invoke-virtual/range {v16 .. v16}, Lcom/android/server/wm/WinAnimatorList;->size()I
move-result v17
add-int/lit8 v9, v17, -0x1
.local v9, i:I
:goto_28
if-ltz v9, :cond_26a
.line 352
move-object/from16 v0, v16
invoke-virtual {v0, v9}, Lcom/android/server/wm/WinAnimatorList;->get(I)Ljava/lang/Object;
move-result-object v15
check-cast v15, Lcom/android/server/wm/WindowStateAnimator;
.line 353
.local v15, winAnimator:Lcom/android/server/wm/WindowStateAnimator;
iget-object v14, v15, Lcom/android/server/wm/WindowStateAnimator;->mWin:Lcom/android/server/wm/WindowState;
.line 354
.local v14, win:Lcom/android/server/wm/WindowState;
iget v7, v15, Lcom/android/server/wm/WindowStateAnimator;->mAttrFlags:I
.line 356
.local v7, flags:I
iget-object v0, v15, Lcom/android/server/wm/WindowStateAnimator;->mSurface:Landroid/view/Surface;
move-object/from16 v17, v0
if-eqz v17, :cond_f4
.line 357
iget-boolean v13, v15, Lcom/android/server/wm/WindowStateAnimator;->mWasAnimating:Z
.line 358
.local v13, wasAnimating:Z
move-object/from16 v0, p0
iget-wide v0, v0, Lcom/android/server/wm/WindowAnimator;->mCurrentTime:J
move-wide/from16 v17, v0
move-wide/from16 v0, v17
invoke-virtual {v15, v0, v1}, Lcom/android/server/wm/WindowStateAnimator;->stepAnimationLocked(J)Z
move-result v10
.line 365
.local v10, nowAnimating:Z
if-eqz v13, :cond_8e
iget-boolean v0, v15, Lcom/android/server/wm/WindowStateAnimator;->mAnimating:Z
move/from16 v17, v0
if-nez v17, :cond_8e
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/server/wm/WindowAnimator;->mWallpaperTarget:Lcom/android/server/wm/WindowState;
move-object/from16 v17, v0
move-object/from16 v0, v17
if-ne v0, v14, :cond_8e
.line 366
move-object/from16 v0, p0
iget v0, v0, Lcom/android/server/wm/WindowAnimator;->mBulkUpdateParams:I
move/from16 v17, v0
or-int/lit8 v17, v17, 0x2
move/from16 v0, v17
move-object/from16 v1, p0
iput v0, v1, Lcom/android/server/wm/WindowAnimator;->mBulkUpdateParams:I
.line 367
const/16 v17, 0x0
const/16 v18, 0x4
move-object/from16 v0, p0
move/from16 v1, v17
move/from16 v2, v18
invoke-virtual {v0, v1, v2}, Lcom/android/server/wm/WindowAnimator;->setPendingLayoutChanges(II)V
.line 370
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/server/wm/WindowAnimator;->mService:Lcom/android/server/wm/WindowManagerService;
move-object/from16 v17, v0
const-string v18, "updateWindowsAndWallpaperLocked 2"
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/server/wm/WindowAnimator;->mPendingLayoutChanges:Landroid/util/SparseIntArray;
move-object/from16 v19, v0
const/16 v20, 0x0
invoke-virtual/range {v19 .. v20}, Landroid/util/SparseIntArray;->get(I)I
move-result v19
invoke-virtual/range {v17 .. v19}, Lcom/android/server/wm/WindowManagerService;->debugLayoutRepeats(Ljava/lang/String;I)V
.line 375
:cond_8e
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/server/wm/WindowAnimator;->mPolicy:Landroid/view/WindowManagerPolicy;
move-object/from16 v17, v0
iget-object v0, v14, Lcom/android/server/wm/WindowState;->mAttrs:Landroid/view/WindowManager$LayoutParams;
move-object/from16 v18, v0
move-object/from16 v0, v17
move-object/from16 v1, v18
invoke-interface {v0, v14, v1},
Landroid/view/WindowManagerPolicy;->doesForceHide(Landroid/view/WindowManagerPolicy$WindowState;Landroid/view/WindowManager$LayoutParams;)Z
move-result v17
if-eqz v17, :cond_17e
.line 376
if-nez v13, :cond_e6
if-eqz v10, :cond_e6
.line 380
move-object/from16 v0, p0
iget v0, v0, Lcom/android/server/wm/WindowAnimator;->mBulkUpdateParams:I
move/from16 v17, v0
or-int/lit8 v17, v17, 0x4
move/from16 v0, v17
move-object/from16 v1, p0
iput v0, v1, Lcom/android/server/wm/WindowAnimator;->mBulkUpdateParams:I
.line 381
const/16 v17, 0x4
move-object/from16 v0, p0
move/from16 v1, p1
move/from16 v2, v17
invoke-virtual {v0, v1, v2}, Lcom/android/server/wm/WindowAnimator;->setPendingLayoutChanges(II)V
.line 384
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/server/wm/WindowAnimator;->mService:Lcom/android/server/wm/WindowManagerService;
move-object/from16 v17, v0
const-string v18, "updateWindowsAndWallpaperLocked 3"
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/server/wm/WindowAnimator;->mPendingLayoutChanges:Landroid/util/SparseIntArray;
move-object/from16 v19, v0
move-object/from16 v0, v19
move/from16 v1, p1
invoke-virtual {v0, v1}, Landroid/util/SparseIntArray;->get(I)I
move-result v19
invoke-virtual/range {v17 .. v19}, Lcom/android/server/wm/WindowManagerService;->debugLayoutRepeats(Ljava/lang/String;I)V
.line 387
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/server/wm/WindowAnimator;->mService:Lcom/android/server/wm/WindowManagerService;
move-object/from16 v17, v0
const/16 v18, 0x1
move/from16 v0, v18
move-object/from16 v1, v17
iput-boolean v0, v1, Lcom/android/server/wm/WindowManagerService;->mFocusMayChange:Z
.line 389
:cond_e6
invoke-virtual {v14}, Lcom/android/server/wm/WindowState;->isReadyForDisplay()Z
move-result v17
if-eqz v17, :cond_f4
.line 390
const/16 v17, 0x0
move/from16 v0, v17
move-object/from16 v1, p0
iput v0, v1, Lcom/android/server/wm/WindowAnimator;->mForceHiding:I
.line 446
.end local v10 #nowAnimating:Z
.end local v13 #wasAnimating:Z
:cond_f4
:goto_f4
iget-object v5, v14, Lcom/android/server/wm/WindowState;->mAppToken:Lcom/android/server/wm/AppWindowToken;
.line 447
.local v5, atoken:Lcom/android/server/wm/AppWindowToken;
iget v0, v15, Lcom/android/server/wm/WindowStateAnimator;->mDrawState:I
move/from16 v17, v0
const/16 v18, 0x3
move/from16 v0, v17
move/from16 v1, v18
if-ne v0, v1, :cond_13a
.line 448
if-eqz v5, :cond_10a
iget-boolean v0, v5, Lcom/android/server/wm/AppWindowToken;->allDrawn:Z
move/from16 v17, v0
if-eqz v17, :cond_13a
.line 449
:cond_10a
invoke-virtual {v15}, Lcom/android/server/wm/WindowStateAnimator;->performShowLocked()Z
move-result v17
if-eqz v17, :cond_13a
.line 450
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/server/wm/WindowAnimator;->mPendingLayoutChanges:Landroid/util/SparseIntArray;
move-object/from16 v17, v0
const/16 v18, 0x8
move-object/from16 v0, v17
move/from16 v1, p1
move/from16 v2, v18
invoke-virtual {v0, v1, v2}, Landroid/util/SparseIntArray;->put(II)V
.line 453
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/server/wm/WindowAnimator;->mService:Lcom/android/server/wm/WindowManagerService;
move-object/from16 v17, v0
const-string v18, "updateWindowsAndWallpaperLocked 5"
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/server/wm/WindowAnimator;->mPendingLayoutChanges:Landroid/util/SparseIntArray;
move-object/from16 v19, v0
move-object/from16 v0, v19
move/from16 v1, p1
invoke-virtual {v0, v1}, Landroid/util/SparseIntArray;->get(I)I
move-result v19
invoke-virtual/range {v17 .. v19}, Lcom/android/server/wm/WindowManagerService;->debugLayoutRepeats(Ljava/lang/String;I)V
.line 459
:cond_13a
iget-object v4, v15, Lcom/android/server/wm/WindowStateAnimator;->mAppAnimator:Lcom/android/server/wm/AppWindowAnimator;
.line 460
.local v4, appAnimator:Lcom/android/server/wm/AppWindowAnimator;
if-eqz v4, :cond_17a
iget-object v0, v4, Lcom/android/server/wm/AppWindowAnimator;->thumbnail:Landroid/view/Surface;
move-object/from16 v17, v0
if-eqz v17, :cond_17a
.line 461
iget v0, v4, Lcom/android/server/wm/AppWindowAnimator;->thumbnailTransactionSeq:I
move/from16 v17, v0
move-object/from16 v0, p0
iget v0, v0, Lcom/android/server/wm/WindowAnimator;->mAnimTransactionSequence:I
move/from16 v18, v0
move/from16 v0, v17
move/from16 v1, v18
if-eq v0, v1, :cond_164
.line 462
move-object/from16 v0, p0
iget v0, v0, Lcom/android/server/wm/WindowAnimator;->mAnimTransactionSequence:I
move/from16 v17, v0
move/from16 v0, v17
iput v0, v4, Lcom/android/server/wm/AppWindowAnimator;->thumbnailTransactionSeq:I
.line 463
const/16 v17, 0x0
move/from16 v0, v17
iput v0, v4, Lcom/android/server/wm/AppWindowAnimator;->thumbnailLayer:I
.line 465
:cond_164
iget v0, v4, Lcom/android/server/wm/AppWindowAnimator;->thumbnailLayer:I
move/from16 v17, v0
iget v0, v15, Lcom/android/server/wm/WindowStateAnimator;->mAnimLayer:I
move/from16 v18, v0
move/from16 v0, v17
move/from16 v1, v18
if-ge v0, v1, :cond_17a
.line 466
iget v0, v15, Lcom/android/server/wm/WindowStateAnimator;->mAnimLayer:I
move/from16 v17, v0
move/from16 v0, v17
iput v0, v4, Lcom/android/server/wm/AppWindowAnimator;->thumbnailLayer:I
.line 351
:cond_17a
add-int/lit8 v9, v9, -0x1
goto/16 :goto_28
.line 401
.end local v4 #appAnimator:Lcom/android/server/wm/AppWindowAnimator;
.end local v5 #atoken:Lcom/android/server/wm/AppWindowToken;
.restart local v10 #nowAnimating:Z
.restart local v13 #wasAnimating:Z
:cond_17e
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/server/wm/WindowAnimator;->mPolicy:Landroid/view/WindowManagerPolicy;
move-object/from16 v17, v0
iget-object v0, v14, Lcom/android/server/wm/WindowState;->mAttrs:Landroid/view/WindowManager$LayoutParams;
move-object/from16 v18, v0
move-object/from16 v0, v17
move-object/from16 v1, v18
invoke-interface {v0, v14, v1},
Landroid/view/WindowManagerPolicy;->canBeForceHidden(Landroid/view/WindowManagerPolicy$WindowState;Landroid/view/WindowManager$LayoutParams;)Z
move-result v17
if-eqz v17, :cond_f4
.line 402
iget v0, v15, Lcom/android/server/wm/WindowStateAnimator;->mAttrFlags:I
move/from16 v17, v0
const/high16 v18, 0x8
and-int v17, v17, v18
if-nez v17, :cond_20b
const/4 v8, 0x1
.line 405
.local v8, hideWhenLocked:Z
:goto_19d
move-object/from16 v0, p0
iget v0, v0, Lcom/android/server/wm/WindowAnimator;->mForceHiding:I
move/from16 v17, v0
const/16 v18, 0x1
move/from16 v0, v17
move/from16 v1, v18
if-ne v0, v1, :cond_1b3
invoke-virtual {v15}, Lcom/android/server/wm/WindowStateAnimator;->isAnimating()Z
move-result v17
if-eqz v17, :cond_1c3
if-nez v8, :cond_1c3
:cond_1b3
move-object/from16 v0, p0
iget v0, v0, Lcom/android/server/wm/WindowAnimator;->mForceHiding:I
move/from16 v17, v0
const/16 v18, 0x2
move/from16 v0, v17
move/from16 v1, v18
if-ne v0, v1, :cond_20d
if-eqz v8, :cond_20d
.line 408
:cond_1c3
const/16 v17, 0x0
const/16 v18, 0x0
move/from16 v0, v17
move/from16 v1, v18
invoke-virtual {v14, v0, v1}, Lcom/android/server/wm/WindowState;->hideLw(ZZ)Z
move-result v6
.line 434
.local v6, changed:Z
:cond_1cf
:goto_1cf
if-eqz v6, :cond_f4
const/high16 v17, 0x10
and-int v17, v17, v7
if-eqz v17, :cond_f4
.line 435
move-object/from16 v0, p0
iget v0, v0, Lcom/android/server/wm/WindowAnimator;->mBulkUpdateParams:I
move/from16 v17, v0
or-int/lit8 v17, v17, 0x2
move/from16 v0, v17
move-object/from16 v1, p0
iput v0, v1, Lcom/android/server/wm/WindowAnimator;->mBulkUpdateParams:I
.line 436
const/16 v17, 0x0
const/16 v18, 0x4
move-object/from16 v0, p0
move/from16 v1, v17
move/from16 v2, v18
invoke-virtual {v0, v1, v2}, Lcom/android/server/wm/WindowAnimator;->setPendingLayoutChanges(II)V
.line 439
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/server/wm/WindowAnimator;->mService:Lcom/android/server/wm/WindowManagerService;
move-object/from16 v17, v0
const-string v18, "updateWindowsAndWallpaperLocked 4"
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/server/wm/WindowAnimator;->mPendingLayoutChanges:Landroid/util/SparseIntArray;
move-object/from16 v19, v0
const/16 v20, 0x0
invoke-virtual/range {v19 .. v20}, Landroid/util/SparseIntArray;->get(I)I
move-result v19
invoke-virtual/range {v17 .. v19}, Lcom/android/server/wm/WindowManagerService;->debugLayoutRepeats(Ljava/lang/String;I)V
goto/16 :goto_f4
.line 402
.end local v6 #changed:Z
.end local v8 #hideWhenLocked:Z
:cond_20b
const/4 v8, 0x0
goto :goto_19d
.line 412
.restart local v8 #hideWhenLocked:Z
:cond_20d
const/16 v17, 0x0
const/16 v18, 0x0
move/from16 v0, v17
move/from16 v1, v18
invoke-virtual {v14, v0, v1}, Lcom/android/server/wm/WindowState;->showLw(ZZ)Z
move-result v6
.line 415
.restart local v6 #changed:Z
if-eqz v6, :cond_1cf
.line 416
move-object/from16 v0, p0
iget v0, v0, Lcom/android/server/wm/WindowAnimator;->mBulkUpdateParams:I
move/from16 v17, v0
and-int/lit8 v17, v17, 0x4
if-eqz v17, :cond_23c
invoke-virtual {v14}, Lcom/android/server/wm/WindowState;->isVisibleNow()Z
move-result v17
if-eqz v17, :cond_23c
.line 418
if-nez v11, :cond_232
.line 419
new-instance v11, Ljava/util/ArrayList;
.end local v11 #unForceHiding:Ljava/util/ArrayList;,"Ljava/util/ArrayList;"
invoke-direct {v11}, Ljava/util/ArrayList;->()V
.line 421
.restart local v11 #unForceHiding:Ljava/util/ArrayList;,"Ljava/util/ArrayList;"
:cond_232
invoke-virtual {v11, v15}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 422
const/high16 v17, 0x10
and-int v17, v17, v7
if-eqz v17, :cond_23c
.line 423
const/4 v12, 0x1
.line 426
:cond_23c
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/server/wm/WindowAnimator;->mCurrentFocus:Lcom/android/server/wm/WindowState;
move-object/from16 v17, v0
if-eqz v17, :cond_25a
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/server/wm/WindowAnimator;->mCurrentFocus:Lcom/android/server/wm/WindowState;
move-object/from16 v17, v0
move-object/from16 v0, v17
iget v0, v0, Lcom/android/server/wm/WindowState;->mLayer:I
move/from16 v17, v0
iget v0, v14, Lcom/android/server/wm/WindowState;->mLayer:I
move/from16 v18, v0
move/from16 v0, v17
move/from16 v1, v18
if-ge v0, v1, :cond_1cf
.line 430
:cond_25a
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/server/wm/WindowAnimator;->mService:Lcom/android/server/wm/WindowManagerService;
move-object/from16 v17, v0
const/16 v18, 0x1
move/from16 v0, v18
move-object/from16 v1, v17
iput-boolean v0, v1, Lcom/android/server/wm/WindowManagerService;->mFocusMayChange:Z
goto/16 :goto_1cf
.line 473
.end local v6 #changed:Z
.end local v7 #flags:I
.end local v8 #hideWhenLocked:Z
.end local v10 #nowAnimating:Z
.end local v13 #wasAnimating:Z
.end local v14 #win:Lcom/android/server/wm/WindowState;
.end local v15 #winAnimator:Lcom/android/server/wm/WindowStateAnimator;
:cond_26a
if-eqz v11, :cond_294
.line 474
invoke-virtual {v11}, Ljava/util/ArrayList;->size()I
move-result v17
add-int/lit8 v9, v17, -0x1
:goto_272
if-ltz v9, :cond_294
.line 475
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/server/wm/WindowAnimator;->mPolicy:Landroid/view/WindowManagerPolicy;
move-object/from16 v17, v0
move-object/from16 v0, v17
invoke-interface {v0, v12},
Landroid/view/WindowManagerPolicy;->createForceHideEnterAnimation(Z)Landroid/view/animation/Animation;
move-result-object v3
.line 476
.local v3, a:Landroid/view/animation/Animation;
if-eqz v3, :cond_291
.line 477
invoke-virtual {v11, v9}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v15
check-cast v15, Lcom/android/server/wm/WindowStateAnimator;
.line 478
.restart local v15 #winAnimator:Lcom/android/server/wm/WindowStateAnimator;
invoke-virtual {v15, v3}, Lcom/android/server/wm/WindowStateAnimator;->setAnimation(Landroid/view/animation/Animation;)V
.line 479
const/16 v17, 0x1
move/from16 v0, v17
iput-boolean v0, v15, Lcom/android/server/wm/WindowStateAnimator;->mAnimationIsEntrance:Z
.line 474
.end local v15 #winAnimator:Lcom/android/server/wm/WindowStateAnimator;
:cond_291
add-int/lit8 v9, v9, -0x1
goto :goto_272
.line 483
.end local v3 #a:Landroid/view/animation/Animation;
:cond_294
return-void
.end method
6. Recompile services.jar.out
7. DONE.
CREDIT : Adi Aishiteru (Thanks atas TUT's nya)
Credit Doc : Dadi Rizaldi