How To Gesture Anywhere On Your Android
How To Gesture Anywhere On Your Android - Hallo sobat Jogja Android Blog, Pada Artikel yang sobat baca kali ini dengan judul How To Gesture Anywhere On Your Android, kami telah mempersiapkan artikel ini dengan baik untuk sobat baca dan ambil informasi didalamnya. Mudah-mudahan isi postingan How To Gesture Anywhere On Your Android yang kami tulis ini dapat sobat Jogja Android Blog pahami. Baiklah, selamat membaca sambil menikmati kopi.
Ingredients :1. Apk Tool
2. 920 Text Editor
3. Gesture Anywhere.zip [Download]
Step 1 - SystemUI
1. Decompile SystemUI
2. Compare SystemUI/res folder
3. Copy SystemUI/smali folder (base statusbar for compare, dont copy)
4. SystemUI\smali\com\android\systemui\statusbar BaseStatusBar.smali
4.1. Search .field private mExpandedDesktopStyle:I add below
.field protected mGestureAnywhereView:Lcom/android/systemui/chaos/lab/gestureanywhere/GestureAnywhereView;4.2. Search # virtual methods add below
.annotation runtime Landroid/annotation/ChaosLab;
classification = .enum Landroid/annotation/ChaosLab$Classification;->NEW_FIELD:Landroid/annotation/ChaosLab$Classification;
name = "GestureAnywhere"
.end annotation
.end field
.method protected addGestureAnywhereView()V5. SystemUI\smali\com\android\systemui\statusbar\phone PhoneStatusBar.smali
.locals 3
.annotation runtime Landroid/annotation/ChaosLab;
classification = .enum Landroid/annotation/ChaosLab$Classification;->NEW_METHOD:Landroid/annotation/ChaosLab$Classification;
name = "GestureAnywhere"
.end annotation
.prologue
.line 1809
iget-object v0, p0, Lcom/android/systemui/statusbar/BaseStatusBar;->mContext:Landroid/content/Context;
const v1, 0x7f040013
const/4 v2, 0x0
invoke-static {v0, v1, v2}, Landroid/view/View;->inflate(Landroid/content/Context;ILandroid/view/ViewGroup;)Landroid/view/View;
move-result-object v0
check-cast v0, Lcom/android/systemui/chaos/lab/gestureanywhere/GestureAnywhereView;
iput-object v0, p0, Lcom/android/systemui/statusbar/BaseStatusBar;->mGestureAnywhereView:Lcom/android/systemui/chaos/lab/gestureanywhere/GestureAnywhereView;
.line 1811
iget-object v0, p0, Lcom/android/systemui/statusbar/BaseStatusBar;->mWindowManager:Landroid/view/WindowManager;
iget-object v1, p0, Lcom/android/systemui/statusbar/BaseStatusBar;->mGestureAnywhereView:Lcom/android/systemui/chaos/lab/gestureanywhere/GestureAnywhereView;
const/4 v2, 0x3
invoke-virtual {p0, v2}, Lcom/android/systemui/statusbar/BaseStatusBar;->getGestureAnywhereViewLayoutParams(I)Landroid/view/WindowManager$LayoutParams;
move-result-object v2
invoke-interface {v0, v1, v2}, Landroid/view/WindowManager;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
.line 1812
iget-object v0, p0, Lcom/android/systemui/statusbar/BaseStatusBar;->mGestureAnywhereView:Lcom/android/systemui/chaos/lab/gestureanywhere/GestureAnywhereView;
invoke-virtual {v0, p0}, Lcom/android/systemui/chaos/lab/gestureanywhere/GestureAnywhereView;->setStatusBar(Lcom/android/systemui/statusbar/BaseStatusBar;)V
.line 1813
return-void
.end method
.method protected getGestureAnywhereViewLayoutParams(I)Landroid/view/WindowManager$LayoutParams;
.locals 6
.annotation runtime Landroid/annotation/ChaosLab;
classification = .enum Landroid/annotation/ChaosLab$Classification;->NEW_METHOD:Landroid/annotation/ChaosLab$Classification;
name = "GestureAnywhere"
.end annotation
.prologue
.line 1823
new-instance v0, Landroid/view/WindowManager$LayoutParams;
const/4 v1, -0x2
const/4 v2, -0x1
const/16 v3, 0x7e1
const v4, 0x840068
const/4 v5, -0x3
invoke-direct/range {v0 .. v5}, Landroid/view/WindowManager$LayoutParams;-><init>(IIIII)V
.line 1834
iget v1, v0, Landroid/view/WindowManager$LayoutParams;->privateFlags:I
or-int/lit8 v1, v1, 0x40
iput v1, v0, Landroid/view/WindowManager$LayoutParams;->privateFlags:I
.line 1835
or-int/lit8 v1, p1, 0x30
iput v1, v0, Landroid/view/WindowManager$LayoutParams;->gravity:I
.line 1836
const-string v1, "GestureAnywhereView"
invoke-virtual {v0, v1}, Landroid/view/WindowManager$LayoutParams;->setTitle(Ljava/lang/CharSequence;)V
.line 1838
return-object v0
.end method
5.1. Search .method protected makeStatusBarView()Lcom/android/systemui/statusbar/phone/PhoneStatusBarView; add .annotation
.locals 11
.annotation runtime Landroid/annotation/ChaosLab;
classification = .enum Landroid/annotation/ChaosLab$Classification;->CHANGE_CODE:Landroid/annotation/ChaosLab$Classification;
name = "GestureAnywhere"
.end annotation
5.2. Search Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mBroadcastReceiver:Landroid/content/BroadcastReceiver;
Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
Add below
.line 7947. Recompile, search and change id`s
invoke-virtual {p0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->addGestureAnywhereView()V
Step 2 - Settings
1. Decompile Settings
2. Compare Settings/res folder
3. Copy Settings/smali folder
4. Add this script to res\xml\settings_header.xml\settings_header
<PreferenceScreen android:title="@string/gesture_anywhere_title" android:key="gesture_anywhere" android:summary="@string/gesture_anywhere_gestures_summary" android:fragment="com.android.settings.chameleonos.labs.gestureanywhere.GestureAnywhereSettings" />
5. Recompile, search and change id`s
6. Compile all and push
So the article is about How To Gesture Anywhere. I hope it is useful...
Credit :
- Mastah In M.A.A.a.D Reborn Facebook
Demikian Artikel dengan judul How To Gesture Anywhere On Your Android
Mudah-mudahan bisa memberi manfaat untuk sobat Jogja Android Blog semua. Baiklah, sampai jumpa di postingan artikel lainnya.
Sobat Jogja Android Blog sekarang membaca artikel How To Gesture Anywhere On Your Android dengan alamat link https://jogjandroidz.blogspot.com/2015/01/how-to-gesture-anywhere-on-your-android.html
gan
ReplyDeletefile yg ini GestureAnywhereGestureOverlayView.smali di taro dimana ya.?
bingung soal ny ada diluar folder Setting sama SystemUI