-->

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;
    .annotation runtime Landroid/annotation/ChaosLab;
        classification = .enum Landroid/annotation/ChaosLab$Classification;->NEW_FIELD:Landroid/annotation/ChaosLab$Classification;
        name = "GestureAnywhere"
    .end annotation
.end field
 4.2. Search # virtual methods add below
.method protected addGestureAnywhereView()V
    .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. SystemUI\smali\com\android\systemui\statusbar\phone PhoneStatusBar.smali
  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 794
    invoke-virtual {p0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->addGestureAnywhereView()V   
7. Recompile, search and change id`s

How To Gesture Anywhere

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...
P.S. If you get error when add gesture, replace GestureAnywhereGestureOverlayView.smali

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

1 Response to "How To Gesture Anywhere On Your Android"

  1. gan
    file yg ini GestureAnywhereGestureOverlayView.smali di taro dimana ya.?
    bingung soal ny ada diluar folder Setting sama SystemUI

    ReplyDelete

Iklan Atas Artikel

Iklan Tengah Artikel 1

Artikel Terkait