Trang 1 của 10 123 ... CuốiCuối
Kết quả 1 đến 10 của 91
  1. #1
    Ngày tham gia
    Apr 2015
    Bài viết
    0

    [LU6200] Thêm nút qslide mini trên status bar mở rộng

    - thân chào các ae trong diễn đàn, hnay mình xin chia sẻ cách thêm nút qslide mini trên status bar mở rộng với công dụng bật tắt nhanh thanh qslide trong rom không có tùy chỉnh này. cảm ơn a hyunhnhan886 đã mod giúp mình 2 nút mini và a kill_kim78 đã chôm code về share cho mình :laugh:. sau đây là cách tiến hành gồm 2 phần, trong res và trong smali:
    [phần 1]
    - đầu tiên compile lgsystemui.apk.
    - sau đó vào lgsystemui/res/layout/status_bar_expanded_setting_layout.xml mở nó lên tìm code 1, sau đó thêm code 2 dưới code 1 rồi lưu lại.
    code 1:


    Mã:
    <imageview android:gravity="center_vertical" android:id="@id/settings_button" android:paddingleft="0.0dip" android:paddingright="0.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@drawable/ic_notify_quicksettings" android:layout_torightof="@id/settings_divider" android:contentdescription="@string/accessibility_settings_button" />
    code 2:


    Mã:
    <imageview android:gravity="center_vertical" android:id="@id/toggle_qslide_button" android:android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginleft="1.0dip" android:layout_torightof="@id/settings_button" android:layout_centervertical="true" />


    - sau đó vào ids.xml trong res/values/ids.xml thêm 1 ids:


    Mã:
    <item type="id" name="toggle_qslide_button">false</item>
    - sau đó lấy 2 hình ảnh ở link cuối bài viết và bỏ vào res/drawable-xhdpi.
    - decompile lại lgsystemui, xong xuôi vào thư mục dist lấy cái lgsystemui đã chỉnh sửa khi nãy ra mod tiếp (copy đè lgsystemui trong dist đè lên lgsystemui cũ trong apktool xong r xóa thư mục lgsystemui trong apktool) thế thì coi như là xong phần 1 (phần này để thêm code và thêm id trong public.xml).
    - kết thúc phần 1, chúng ta lấy trong dist và bỏ lgsystemui.apk vào máy reboot lại thử xem đã có hình qslide chưa, nếu có đã thanh công tốt đẹp phần 1

    [phần 2]
    - dịch ngược lại ui của các bạn và ui của mình. các bạn nên đổi tên lgsystemui của minh thành ui cho khỏi bị lộn nhé. sau đó các bạn vào ui của mình theo đường dẫn:
    + c:\apktool\
    ui(khoa)\smali\com\android\systemui\statusbar\phone.
    - sau đó copy phonestatusbar$toggleqslidebutton.smali vào
    ui của các bạn.
    - sau đó cũng tại đường dẫn trên ae mở phonestatusbar.smali của mình lên để so sánh dòng và thêm code. mẹo: dùng ctrl+f để tìm code đen và thêm code đỏ vào bên dưới code đen. :laugh:
    - tiến hành:
    [color=rgb(0, 0, 0)] 1/ (tìm dòng này và thêm code đỏ ở bên dưới nó).[/color]


    Mã:
    .field mpostcollapsecleanup:ljava/lang/runnable;


    Mã:
    .field private mqslidevisible:z

    2/ (như trên).


    Mã:
    .field mstarttracing:ljava/lang/runnable;


    Mã:
    .field private mstatusbarbackgroundalpha:i

    3/ (như trên).


    Mã:
    .field mtickingdonelistener:landroid/view/animation/animation$animationlistener;


    Mã:
    .field private mtoggleqslidebutton:landroid/widget/imageview;
    4/ ae bật ui/smali của mình lên tìm dòng này .method private slingcustomization()v rồi ae để ý xem nó nằm dưới dòng (tạm gọi là dòng 1) trong smali xong chỉ cần copy cái dòng 1 đó đem qua tìm bên smali của ae. [bên mình nó nằm dưới đoạn]:

    [color=rgb(0, 0, 0)]

    Mã:
        iget-object v0, p0, lcom/android/systemui/statusbar/phone/phonestatusbar;->mlightsonanimation:landroid/animation/animatorset;
    
        goto :goto_1
    .end method
    [/color]
    (bên mình dòng .end method là dòng 2366, nếu các bạn dùng ui giống mình rc2 thì có thể đến ngay khúc đó).
    - lưu ý: phải tìm iget-object v0, p0, lcom/android/systemui/statusbar/phone/phonestatusbar;->mlightsonanimation:landroid/animation/animatorset; gắn vs goto :goto_1 và .end method nhé.
    - sau đó chúng ta cách 1 dòng và thêm code sau dưới .end method:



    Mã:
    .method private slingcustomization()v
    
        .locals 6
    
        const/16 v0, 0xff
    
        iput v0, p0, lcom/android/systemui/statusbar/phone/phonestatusbar;->mstatusbarbackgroundalpha:i
    
        .line 0
        iget-object v0, p0, lcom/android/systemui/statusbar/phone/phonestatusbar;->mstatusbarwindow:lcom/android/systemui/statusbar/phone/statusbarwindowview;
    
        .line 102
        const v1, 0x7f0c013d
    
        .line 103
        invoke-virtual {v0, v1}, lcom/android/systemui/statusbar/phone/statusbarwindowview;->findviewbyid(i)landroid/view/view;
    
         .line 104
         move-result-object v0
    
         check-cast v0, landroid/widget/imageview;
    
         iput-object v0, p0, lcom/android/systemui/statusbar/phone/phonestatusbar;->mtoggleqslidebutton:landroid/widget/imageview;
    
         new-instance v1, lcom/android/systemui/statusbar/phone/phonestatusbar$toggleqslidebutton;
    
         invoke-direct {v1, p0}, lcom/android/systemui/statusbar/phone/phonestatusbar$toggleqslidebutton;-><init>(lcom/android/systemui/statusbar/phone/phonestatusbar;)v
    
         invoke-virtual {v0, v1}, landroid/view/view;->setonclicklistener(landroid/view/view$onclicklistener;)v
    
         iget-object v0, p0, lcom/android/systemui/statusbar/phone/phonestatusbar;->mstatusbarwindow:lcom/android/systemui/statusbar/phone/statusbarwindowview;
    
         :goto_0
         return-void
    
         move-exception v0
    
        goto :goto_0
    .end method

    5/ (tìm code này và thêm code đỏ phía bên dưới):


    Mã:
    iput-object v0, p0, lcom/android/systemui/statusbar/phone/phonestatusbar;->mkm:landroid/app/keyguardmanager;


    Mã:
    invoke-direct {p0}, lcom/android/systemui/statusbar/phone/phonestatusbar;->slingcustomization()v
    6/ cũng làm như bước 4/ nhưng tìm với đoạn code .method public toggleqslidevisibility()v bên mình và coi nó nằm dưới dòng nào? bên mình là:


    Mã:
        invoke-virtual {v0, p2}, lcom/android/systemui/statusbar/phone/ticker;->addentry(lcom/android/internal/statusbar/statusbarnotification;)v
    
        goto :goto_0
    .end method
    (dòng 9383)
    - sau đó thêm đoạn code này vào bên dưới nhớ cách 1 hàng, ở bước 4/ cũng v, cách 1 hàng dưới .end method:



    Mã:
    .method public toggleqslidevisibility()v
    
        .locals 4
    
        .prologue
        .line 48
        iget-boolean v0, p0, lcom/android/systemui/statusbar/phone/phonestatusbar;->mqslidevisible:z
    
        if-eqz v0, :cond_1
    
        .line 49
        iget-object v0, p0, lcom/android/systemui/statusbar/phone/phonestatusbar;->mstatusbarwindow:lcom/android/systemui/statusbar/phone/statusbarwindowview;
    
        const v1, 0x7f0c0033
    
        invoke-virtual {v0, v1}, lcom/android/systemui/statusbar/phone/statusbarwindowview;->findviewbyid(i)landroid/view/view;
    
        move-result-object v0
    
        if-eqz v0, :cond_0
    
        const/16 v1, 0x8
    
        invoke-virtual {v0, v1}, landroid/view/view;->setvisibility(i)v
    
        iget-object v0, p0, lcom/android/systemui/statusbar/phone/phonestatusbar;->mtoggleqslidebutton:landroid/widget/imageview;
    
        const v1, 0x7f0205fd
    
        invoke-virtual {v0, v1}, landroid/widget/imageview;->setbackgroundresource(i)v
    
        const/4 v0, 0x0
    
        :goto_0
        iput-boolean v0, p0, lcom/android/systemui/statusbar/phone/phonestatusbar;->mqslidevisible:z
    
        .line 56
        :cond_0
        return-void
    
        .line 51
        :cond_1
        iget-object v0, p0, lcom/android/systemui/statusbar/phone/phonestatusbar;->mstatusbarwindow:lcom/android/systemui/statusbar/phone/statusbarwindowview;
    
        const v1, 0x7f0c0033
    
        invoke-virtual {v0, v1}, lcom/android/systemui/statusbar/phone/statusbarwindowview;->findviewbyid(i)landroid/view/view;
    
        move-result-object v0
    
        if-eqz v0, :cond_0
    
        const/16 v1, 0x0
    
        invoke-virtual {v0, v1}, landroid/view/view;->setvisibility(i)v
    
        iget-object v3, p0, lcom/android/systemui/statusbar/phone/phonestatusbar;->mtoggleqslidebutton:landroid/widget/imageview;
    
        const v2, 0x7f0205fe
    
        invoke-virtual {v3, v2}, landroid/widget/imageview;->setbackgroundresource(i)v
    
        const/4 v0, 0x1
    
        goto :goto_0
    .end method

    - bước cuối cùng rất quan trong đó là thay id trong public của các bạn vào các chỗ mình sẽ đề cập. đầu tiên vào ui của các bạn/res/values/public.xml.
    + ctrl+f tìm toggle_qslide_button và copy cái id của nó ở chỗ
    id="..." t thay vào [color=rgb(0, 0, 0)]0x7f0c013d ở phần 4/.
    + tìm floating_launcher_base và copy cái id thay vào 0x7f0c0033 ở phần 6/ (lưu ý là trong phần 6 có 2 cái id của floating_launcher_base lận nên các bạn copy cho đủ nhé).
    + tìm ic_notify_toggle_qslide_normal và copy id thay vào 0x7f0205fd ở phần 6/ luôn.
    + lại thay id của floating_launcher_base như mình đã đề cập ở trên thay vào 0x7f0c0033 dưới ic_notify_toggle_qslide_normal luôn.
    + tìm ic_notify_toggle_qslide_pressed và copy id thay vào 0x7f0205fe ở phần 6/.

    - sau đó save lại và tận hưởng thành quả. bài viết khá chi tiết nên các ae nên đọc kỹ, kiên trì (dễ nản), vì làm theo tính chất tự coi, k am hiểu smali nên có thể nhiều câu hỏi của ae mình sẽ không tl đc, thông cảm hén :d. chúc ae thành công :like:

    - kết quả:




    [/color]

    - link lgsystemui của mình và 2 hình qslide mini:
    lgsystemui.apk và 2 hình qslide mini

    - p/s: ai thấy thích hoặc làm thành công thì để lại cmt + like cho mình để khích lệ nhé, mình sẽ update cách thêm nút mini volume sau nhé. mời ae ly :x3: nhé :laugh:

  2. #2
    Ngày tham gia
    Feb 2015
    Bài viết
    0
    - a sonktqx, hai hs, like_android, hades
    - a gts8003 xem có bị sai sót chỗ nào k nhé :laugh:
    - jay sơn :laugh:

  3. #3
    Ngày tham gia
    Apr 2015
    Bài viết
    0
    đặt gạch đầu tiên sau này tìm hiểu sau. kaka

    gửi từ lg-lu6200 của tôi bằng cách sử dụng tapatalk

  4. #4
    Ngày tham gia
    Feb 2015
    Bài viết
    0
    Trích dẫn Gửi bởi jay sơn
    đặt gạch đầu tiên sau này tìm hiểu sau. kaka

    gửi từ lg-lu6200 của tôi bằng cách sử dụng tapatalk
    keke :laugh: ngủ dậy r à :laugh:

  5. #5
    Ngày tham gia
    Jul 2015
    Bài viết
    0
    Trích dẫn Gửi bởi chakcoralvine
    keke :laugh: ngủ dậy r à :laugh:
    khó chịu trong ng quá ngủ ko đc. đang nhắn tin e iu

    gửi từ lg-lu6200 của tôi bằng cách sử dụng tapatalk

  6. #6
    Ngày tham gia
    Nov 2014
    Bài viết
    0
    Trích dẫn Gửi bởi jay sơn
    khó chịu trong ng quá ngủ ko đc. đang nhắn tin e iu

    gửi từ lg-lu6200 của tôi bằng cách sử dụng tapatalk
    vãi, sướng thế r còn gì, giả bộ nói bị bệnh xem, e ấy có mà cuống cuồng lên ấy chứ :laugh:

  7. #7
    Ngày tham gia
    Jul 2015
    Bài viết
    0
    à a gts8003 ơi em xin phép lập 1 topic tổng hợp mod các thứ cho lu đc k a? ngay tại box lu để ae lu ai có mod đc gì hay thì tích cóp vào ạ.

  8. #8
    Ngày tham gia
    Dec 2014
    Bài viết
    0
    Trích dẫn Gửi bởi chakcoralvine
    à a gts8003 ơi em xin phép lập 1 topic tổng hợp mod các thứ cho lu đc k a? ngay tại box lu để ae lu ai có mod đc gì hay thì tích cóp vào ạ.
    cứ lập đi, có khi lại hót:d
    mà thế đổi luôn cái topic ui sang cho đỡ loạn

  9. #9
    Ngày tham gia
    Jun 2014
    Bài viết
    0
    mà cái topic này để ở mục thủ thuật thì hay hơn nhể

  10. #10
    Ngày tham gia
    Jul 2015
    Bài viết
    12
    Trích dẫn Gửi bởi gts8003
    mà cái topic này để ở mục thủ thuật thì hay hơn nhể
    thì em muốn để ở lu cho ae lu coi thôi ạ :d ai mod đc trên lu sẽ đưa vào cái topic đấy ae sẽ dễ làm hơn, mấy cái hd khác có khi chung chung ạ :laugh:

Trang 1 của 10 123 ... CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •