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

Thảo luận trong 'LG Optimus LTE 1' bắt đầu bởi chakcoralvine, 2 Tháng sáu 2014.

  1. chakcoralvine

    chakcoralvine Well-Known Member

    Tham gia ngày:
    5 Tháng chín 2013
    Bài viết:
    5,108
    Đã được thích:
    1,624
    - 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:background="@drawable/ic_notify_toggle_qslide_normal" 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:
    1/ (tìm dòng này và thêm code đỏ ở bên dưới nó).
    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]:

    Mã:
        iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mLightsOnAnimation:Landroid/animation/AnimatorSet;
    
        goto :goto_1
    .end method

    (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 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ả:
    2014-06-02-22-23-14.jpg


    - 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:
     
    Last edited: 6 Tháng sáu 2014
  2. chakcoralvine

    chakcoralvine Well-Known Member

    Tham gia ngày:
    5 Tháng chín 2013
    Bài viết:
    5,108
    Đã được thích:
    1,624
  3. jay sơn

    jay sơn Well-Known Member

    Tham gia ngày:
    13 Tháng sáu 2013
    Bài viết:
    5,368
    Đã được thích:
    1,395
    Đặ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
     
    chakcoralvine thích bài này.
  4. chakcoralvine

    chakcoralvine Well-Known Member

    Tham gia ngày:
    5 Tháng chín 2013
    Bài viết:
    5,108
    Đã được thích:
    1,624
    keke :laugh: ngủ dậy r à :laugh:
     
  5. jay sơn

    jay sơn Well-Known Member

    Tham gia ngày:
    13 Tháng sáu 2013
    Bài viết:
    5,368
    Đã được thích:
    1,395
    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. chakcoralvine

    chakcoralvine Well-Known Member

    Tham gia ngày:
    5 Tháng chín 2013
    Bài viết:
    5,108
    Đã được thích:
    1,624
    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. chakcoralvine

    chakcoralvine Well-Known Member

    Tham gia ngày:
    5 Tháng chín 2013
    Bài viết:
    5,108
    Đã được thích:
    1,624
    à 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. gts8003

    gts8003 Quản lý là phụ - chém gió là chính Staff Member

    Tham gia ngày:
    10 Tháng sáu 2013
    Bài viết:
    8,057
    Đã được thích:
    3,851
    Cứ lập đi, có khi lại hót:D
    Mà thế đổi luôn cái topic UI sang cho đỡ loạn
     
    chakcoralvine thích bài này.
  9. gts8003

    gts8003 Quản lý là phụ - chém gió là chính Staff Member

    Tham gia ngày:
    10 Tháng sáu 2013
    Bài viết:
    8,057
    Đã được thích:
    3,851
    Mà cái topic này để ở mục thủ thuật thì hay hơn nhể
     
    chakcoralvine thích bài này.
  10. chakcoralvine

    chakcoralvine Well-Known Member

    Tham gia ngày:
    5 Tháng chín 2013
    Bài viết:
    5,108
    Đã được thích:
    1,624
    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:
     
  11. like_android

    like_android LGVIET.com Staff Member

    Tham gia ngày:
    8 Tháng sáu 2013
    Bài viết:
    5,119
    Đã được thích:
    1,699
  12. chakcoralvine

    chakcoralvine Well-Known Member

    Tham gia ngày:
    5 Tháng chín 2013
    Bài viết:
    5,108
    Đã được thích:
    1,624
    smali mà a :D trong ib của a cũng dai thế mà :laugh:
     
  13. Kim Chính

    Kim Chính Active Member

    Tham gia ngày:
    10 Tháng tư 2014
    Bài viết:
    274
    Đã được thích:
    52
    thanks anh cái này được làm trong v2 rồi
     
  14. chakcoralvine

    chakcoralvine Well-Known Member

    Tham gia ngày:
    5 Tháng chín 2013
    Bài viết:
    5,108
    Đã được thích:
    1,624
    cái này chủ yếu cho những người nào chưa có e ạ :D
     
  15. gts8003

    gts8003 Quản lý là phụ - chém gió là chính Staff Member

    Tham gia ngày:
    10 Tháng sáu 2013
    Bài viết:
    8,057
    Đã được thích:
    3,851
    Thêm tut gỡ nó ra cho đủ bộ :D
     
    chakcoralvine thích bài này.
  16. chakcoralvine

    chakcoralvine Well-Known Member

    Tham gia ngày:
    5 Tháng chín 2013
    Bài viết:
    5,108
    Đã được thích:
    1,624
    v h e lập 1 topic mới tại box Lu r đăng link lên a chuyển link đó tới bài này nhé a, tut đó sẽ là tut 1, từ đó trở đi mod miếc đều ở trong topic mới đó hết
     
  17. chakcoralvine

    chakcoralvine Well-Known Member

    Tham gia ngày:
    5 Tháng chín 2013
    Bài viết:
    5,108
    Đã được thích:
    1,624
    vs a chỉ em cách làm sao từ 1 link dài của 1 cmt mà mình rút gọn nó thanh #123 ví dụ v mà vẫn dẫn tới cmt đó v a?
     
  18. aladin.huy1

    aladin.huy1 Well-Known Member

    Tham gia ngày:
    23 Tháng tám 2013
    Bài viết:
    3,169
    Đã được thích:
    1,099
    @gts8003 move hộ vào box thủ thuật cho ae còn dễ tìm chứ để box này lỡ chìm là kiếm mệt nghĩ :laugh:
     
    gts8003 and chakcoralvine like this.
  19. chakcoralvine

    chakcoralvine Well-Known Member

    Tham gia ngày:
    5 Tháng chín 2013
    Bài viết:
    5,108
    Đã được thích:
    1,624
    k a ạ, sẽ có topic của Lu, bài này sẽ đc dẫn link tới topic đó, và từ h trở đi chỉ hd mod trong đó thôi ạ :laugh: e muốn dành riêng cho Lu hihi
     
    aladin.huy1 thích bài này.
  20. Hai HS

    Hai HS Well-Known Member

    Tham gia ngày:
    3 Tháng mười một 2013
    Bài viết:
    3,561
    Đã được thích:
    4,906
    Mình nghĩ topic chắc chắn sẽ sôi nổi :D vì có những người đã lựa chọn cho mình 1 bản rom phù hợp vs nhu cầu mà còn thiếu 1 vài tùy chỉnh, k lẽ đành up cả bản rom mới để lấy 1 vài tùy chỉnh. Chúc topic phát triển ngày càng mạnh, liên tục cập nhật phong cách ms đến với ae :D
     
    aladin.huy1 and chakcoralvine like this.

Chia sẻ trang này