Compare commits

..

27 Commits

Author SHA1 Message Date
basketballcantho 64fcaca6be Merge branch 'dev01' of ssh://git.victorphan.net:2225/basketballcantho/botAffilate into dev01 2026-07-23 13:50:29 +07:00
basketballcantho 173dd2c60e result 1349 2026-07-23 13:50:00 +07:00
Victor Phan 43b3d00930 Merge branch 'dev01' of ssh://git.victorphan.net:2225/basketballcantho/botAffilate into dev01 2026-07-23 13:44:23 +07:00
Victor Phan 8faa6ba898 feat: create FacebookBot class for automating group comments using uiautomator2 2026-07-23 13:44:20 +07:00
basketballcantho ef996427cb result 1343 2026-07-23 13:43:16 +07:00
Victor Phan 7207afe50f feat: implement FacebookBot class for automated group commenting using uiautomator2 2026-07-23 13:38:06 +07:00
Victor Phan 78bd883d3c feat: initialize FastAPI server with Shopee and Facebook bot orchestration endpoints 2026-07-23 13:32:38 +07:00
Victor Phan 1f2248351d feat: add script to extract and log unique Facebook group names and IDs from DOM elements 2026-07-23 12:25:01 +07:00
Victor Phan 2bd6cfef55 feat: implement FastAPI service with device-locked automation for Shopee commissions and Facebook commenting 2026-07-23 12:22:15 +07:00
Victor Phan 3d00741e7b feat: add install_services.sh script to configure and restart the shopeebot systemd service 2026-07-21 15:31:34 +07:00
Victor Phan 685019aed5 feat: add systemd service configuration for shopeebot automation 2026-07-21 15:30:08 +07:00
Victor Phan 1e9cbef708 Please provide the changes or file diffs you would like me to summarize. 2026-07-21 15:26:21 +07:00
Victor Phan 2a9dc1f736 chore: add systemd service configuration for shopeebot automation 2026-07-21 15:26:00 +07:00
Victor Phan f7de593ab1 feat: create services directory for modularizing backend logic 2026-07-21 15:25:00 +07:00
Victor Phan dde8ac0337 feat: add automation module for background task handling 2026-07-21 11:14:42 +07:00
Victor Phan 502a215167 feat: add scripts to enable and disable screen sessions 2026-07-21 10:47:25 +07:00
Victor Phan 0c587685a5 feat: implement FastAPI service with structured logging and automated script modification utility 2026-07-21 10:16:15 +07:00
Victor Phan adbfb43a48 feat: implement FastAPI service to expose Shopee commission scraping automation via REST API 2026-07-21 10:02:51 +07:00
Victor Phan 6156bc7bb3 feat: add automation module for background task handling 2026-07-21 09:58:34 +07:00
Victor Phan 97ddcd2699 feat: add automation scripts, XML parsing logic for UI element identification, and supplementary asset images 2026-07-21 09:56:12 +07:00
Victor Phan 749a30735e feat: add output files for text and UTF-8 data dumps 2026-07-21 09:39:40 +07:00
Victor Phan fdb734e148 feat: add test script for Shopee API integration 2026-07-21 09:33:27 +07:00
basketballcantho 196fe1ce0c ui_dump.xml 2026-07-21 09:30:24 +07:00
Victor Phan 7eadcc67f1 feat: add deployment documentation and Shopee API test script 2026-07-21 09:28:04 +07:00
Victor Phan 58b1dcd170 update lại thư mục cấu trúc mới của server nodejs và python 2026-07-21 09:13:52 +07:00
Victor Phan 7625bdd37b init server python để điều khiển adb 2026-07-21 08:54:30 +07:00
Victor Phan d36007d989 chore: initialize dependencies and zca-js project files 2026-07-17 20:35:17 +07:00
32 changed files with 4561 additions and 53 deletions
BIN
View File
Binary file not shown.
+58
View File
@@ -0,0 +1,58 @@
Màn hình khóa
Mở cài đặt Wi-Fi.
Mở rộng
33 phút trước
CS_VOUCHER HỜI TRÊN LiVeSM802
Bật
Tắt tiếng
VPN bật.
Máy quét
Wifi-Khach
Xóa tất cả thông báo.
2755.0
Mở cài đặt Bluetooth.
Chụp ảnh màn hình
Shopee
1 phút trước
Đèn flash
Chế độ máy bay
Quay lại
Tín hiệu Wi-Fi đầy.
Đang sạc pin, 98 phần trăm.
Wi-Fi,Bật,Tín hiệu Wi-Fi đầy.,Wifi-Khach
Vẫn còn 4 thông báo.
Chuông báo rung.
Khóa hướng màn hình
Tắt tiếng,Bật
Độ sáng màn hình
VOUCHER 25% ĐỘC QUYỀN Ở ĐÂY!
Dữ liệu di động
Th 3, 21 Thg 7
+4
Đang đến gần bạn!
✨Tại Live Tựu Trường Hết Ý ..Thời trang giảm đến 50% ..Freeship tận tay không tốn phí ..Vào Live săn ngay!
NGÀY HỘI THÀNH VIÊN SẮP HẠ MÀN
9:28
Bluetooth
Đèn flash,Tắt
Báo cáo vị trí bật.
Chế độ Chế độ chân dung,Tự động xoay màn hình
98
Bluetooth,Tắt
..Loạt deal giảm đến 50% đang vơi ..Hoàn xu đến 800K vẫn sẵn sàng ..Mã giảm đến 700K, Freeship đợi bạn ..Vài tiếng sale cuối - Tận hưởng tối đa!
Độ sáng tự động
Chế độ máy bay,Tắt
Vị trí
Tắt
Tận hưởng dịch vụ giao hàng tận nơi độc quyền!
4G Tín hiệu điện thoại đầy.
Dữ liệu di động,Bật,Tín hiệu điện thoại đầy.
Thiết bị đã kết nối WireGuard
Trang 1/3
Tổng quan
Xem Bụi leather - Đồ da cao cấp live ngay nào!
Cài đặt
Trang chính
Độ sáng tự động,Bật
Hôm nay: 499,4KBTháng này: 57,1MB
+16
View File
@@ -0,0 +1,16 @@
let groups = [];
let links = document.querySelectorAll('a[href*="/groups/"]');
links.forEach(a => {
let url = a.href.split('?')[0];
let name = a.innerText.trim();
let match = url.match(/\/groups\/([^\/]+)\/?$/);
if(name && !name.includes("Joined") && match) {
let groupId = match[1];
groups.push(name + "\t" + groupId);
}
});
let uniqueGroups = [...new Set(groups)];
console.log("TÊN NHÓM \t GROUP ID (Hoặc Tên Tùy Chỉnh)");
console.log(uniqueGroups.join('\n'));
@@ -0,0 +1 @@
{"web":{"client_id":"745351236177-ibrcl3j2d9oi2malj3fpatfu6il2290b.apps.googleusercontent.com","project_id":"affilatebot","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"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","redirect_uris":["https://affiliate.victorphan.net/rest/oauth2-credential/callback"]}}
+95
View File
@@ -0,0 +1,95 @@
Ăn vặt vũng tàu 24/25, 1497333118553115
Cần Thơ măm măm 24h., 572825778143458
Thanh lý mua bán đồ, 629660232000071
CHỢ ĐỒ CŨ-HÀNG, 5116351588414894
Chợ Cà Mau, 3421649678115956
ĂN VẶT CẦN THƠ 24H, 173706033367028
Ăn Vặt Sóc Trăng, 848035632341282
Cần Thơ Măm Măm 24/24, 2370776542951057
Chợ mua bán đồ cũ 430296077181226
Chợ Cà Mau, 338006706614899
Tôi Dân Cà Mau, 3110438062542965
Chợ Cà Mau, 596173160452194
Cộng Đồng Affiliate Shopee Lớn Nhất Tại Việt Nam, 242605124320242
Affiliate Shopee - Nơi rải link Tiếp Thị Shopee, 421826749413367
Affiliate Shopee Nhập Môn, 473456827330829
Kinh Nghiệm Du Lịch Đà Nẵng - Review Đà Nẵng Ăn gì, Ở Đâu, reviewdanang2025
RẠCH GIÁ TẤT TẦN TẬT, rachgiatattantat
CHỢ CAO LÃNH - ĐỒNG THÁP, 655766718454442
Ăn vặt uy tín Long Xuyên, anvatuytinlongxuyenreal
Review Đà Lạt - Homestay, Khách Sạn, Villa Đà Lạt Đẹp View Đồi Núi Săn Mây, reviewdalat.homestaydalat
Hóng Hớt Cần Thơ, honghotcantho123
ĂN UỐNG TÂN AN - LONG AN 🥑🎂🍓🍔🥭🍰, 1749573821890252
Ăn Vặt Online Trà Vinh 962731445405177
Tâm Sự, Tư Vấn Tình Yêu, Hôn Nhân & Gia Đình 🇻🇳, 328562636360308
Tôi Dân Cà Mau, 3110438062542965
Đăkmil Quê Ta, dakmilquetoi
Khách Sạn giá rẻ Vũng Tàu, 1207619936588032
Săn Sale Link kiện PC Shopee và Lazada, 1014900549635958
Ăn Vặt Châu Đốc, 1359322700819562
RẢI LINK SHOPEE AFFILIATE, 7782475288460301
Review Đà Nẵng, 597569737344033
Tâm Sự Ngành Nail, 370491764306206
VŨNG TÀU REVIEW TẤT TẦN TẬT ✅, 195799853355650
REVIEW DU LỊCH ĐÀ NẴNG, 181607847304285
CỘNG ĐỒNG RẠCH GIÁ AN GIANG KIÊN GIANG, 3736501113143492
CHỢ CAO LÃNH, 426831766836573
ĂN VẶT KCN LONG HẬU-THỦ THỪA-LONG AN, 3710883445705693
Chợ Trà Vinh, 511803968893402
Review Đà Lạt - Homestay Đà Lạt, Khách Sạn, Villa Đà Lạt Nguyên Căn Giá Rẻ reviewdalathomestaygiareviewdep
Ăn Vặt Uy Tín Long Xuyên, 862910935508907
Ăn Vặt Sóc Trăng, 417603265861589
Ăn Vặt Uy Tín Long Xuyên, 228858165051760
ăn vặt kcn giao long, 644273129041924
Affiliate Shopee - Rải Link Tiếp Thị Liên Kết Shopee Free, 707398030832550
Học Nails , Nơi Dạy Nail Uy Tín ✅, 1880877502165058
ĂN VẶT VŨNG TÀU ( SHIP LIỀN ), anvatvungtau1
Ăn vặt Cao Lãnh, 135165835217887
ĂN VẶT VĨNH LONG (CÓ SHIP), 805246494950207
Chợ Rạch Sỏi - Tỉnh Kiên Giang, chominhluong
Thanh lý đồ Cà Mau ✅, 332839668362355
Đà Lạt Review Tất Tần Tật DALATREVIEW
Hội Kiếm Tiền Shopee Affiliate, 392859729845376
Tâm Sự Hôn Nhân Và Gia Đình, 866588296869197
TÂM SỰ EVA- TƯ VẤN TÂM LÝ, HÔN NHÂN , GIA ĐÌNH, 7079703495475311
Ăn Vặt Online Trà Vinh, 615659449448127
Review Đà Lạt - Homestay, Khách Sạn, Villa Đà Lạt Đẹp View Đồi Núi Săn Mây, 959914531041743
CỘNG ĐỒNG RẠCH GIÁ AN GIANG KIÊN GIANG, 3736501113143492
CHỢ ĐỒ CŨ-HÀNG THANH LÝ CẦN THƠ, 5116351588414894
CHỢ CẦN THƠ, 1876611229179972
Chợ Cần Thơ - Mua Bán Online chocanthoofficial
Chợ Tốt Cần Thơ ✅ chtotcantho
Chợ Ăn Vặt Đại Lãnh, 283033250258962
Chợ Cao Lãnh - Tỉnh Đồng Tháp, 1187789018470634
CHỢ ONLINE ĐỒNG THÁP, 1054187581389446
ăn vặt Sa Đéc, 136406967016411
CHỢ CAO LÃNH - ĐỒNG THÁP, 2348431725348493
Ăn Uống Đồng Tháp, 353231975532723
Ăn Vặt Lai Vung Đồng Tháp, 2261761367369455
Ăn Vặt Online Cái Tàu Hạ, Đồng Tháp — Vĩnh Long, 166024604043987
RAO VẶT LẤP VÒ - ĐỒNG THÁP, raovatlapvodongthap
Ăn Uống Cao Lãnh, anvatcaolanh1
Cộng Đồng Rao Vặt Đồng Tháp, cdrvdongthap
Ăn Vặt Cao Lãnh, hongbiendongthap
ĂN VẶT CHỢ GẠO MỸ THO ĐỒNG THÁP ✅, anvatdongthapshiplien
Chợ Đồng Tháp ✅( Chợ Đồng Tháp Online ), 772470474858678
Ăn Vặt Cao Lãnh, 704426995252185
CHỢ ĐỒNG THÁP, 1154424565221508
Chợ Tháp Mười - Đồng Tháp, 1663373727229050
Ăn Vặt Cao Lãnh, anvatcaolanh2
Ăn Vặt Cao Lãnh, 271029338343387
ĂN VẶT TRÀM CHIM - ĐỔNG THÁP, 232330018803497
ĂN VẶT TP CAO LÃNH, 956409425224117
CHỢ MỸ AN THÁP MƯỜI ĐỒNG THÁP, 1461095211123439
Ăn Vặt. Đồng Tháp (KV Cao Lãnh_Sa Đéc), 883127661805353
ĂN VẶT MỸ AN-THÁP MƯỜI, 309392377707744
Đồ Ăn Vặt Phú Hựu (Châu Thành - Đồng Tháp), 998378524283834
Ăn Vặt Sa Đéc, 2771740649687097
Ăn Uống Vặt Sa Đéc, 1678311673584109
Review ăn uống Cao Lãnh - Đồng Tháp, 999963175131213
Ăn Vặt - Nha Mân- Châu thành, Đồng tháp, 222119523220787
Ăn Vặt Tân Hồng Đồng Tháp, 1962459277563519
Ăn Vặt - Đồ Uống 🍪🌮🍔 SA ĐÉC, ĐỒNG THÁP, 2839443379519183
Ăn & Uống Mỹ An - Tháp Mười - Đồng Tháp, 910566953378204
ĂN VẶT ĐỒNG THÁP - ship đồ ăn Đồng Tháp, 423801127771828
ĂN SẬP ĐỒNG THÁP, ansapdongthap
Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 323 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

+99
View File
@@ -0,0 +1,99 @@
# Bot Affiliate & Auto Comment - N8N Integration API
Đây là máy chủ API viết bằng Python (FastAPI + UIAutomator2) dùng để điều khiển điện thoại Android tự động thực hiện các thao tác:
1. **Shopee Affiliate**: Nhận link sản phẩm, tự động mở Shopee, chuyển đổi link lấy hoa hồng và trả về n8n.
2. **Facebook Auto Comment**: Mở Group Facebook, tự động tìm bài viết, comment nội dung kèm hình ảnh động từ n8n.
## 1. Cài đặt và Khởi động
Dự án yêu cầu cài đặt môi trường ảo (venv) và các thư viện trong `requirements.txt`.
**Khởi động Server:**
Máy chủ đã được cài đặt như một Systemd Service (chạy ngầm tự động).
- Bắt đầu service: `systemctl start shopeebot`
- Xem trạng thái: `systemctl status shopeebot`
- Khởi động lại khi sửa code: `systemctl restart shopeebot`
- Xem log hoạt động: `journalctl -u shopeebot -f` hoặc xem file `shopee_bot.log`
---
## 2. Các API Endpoints cho N8N
### 2.1. API Lấy link Shopee Affiliate
- **URL**: `POST /get_commission`
- **Body (JSON)**:
```json
{
"link": "https://s.shopee.vn/...",
"device_ip": "10.160.138.2:5555"
}
```
*(Lưu ý: `device_ip` là tùy chọn, nếu bỏ trống Bot sẽ tự lấy IP mặc định)*
- **Kết quả trả về**:
```json
{
"status": "success",
"commission": "10.5%",
"affiliate_link": "https://s.shopee.vn/xyz...",
"price": "đ90.000",
"message": "Trích xuất thành công"
}
```
### 2.2. API Tự động Comment Facebook
- **URL**: `POST /post_facebook_comment`
- **Body (JSON)**:
```json
{
"device_ip": "10.160.138.2:5555",
"group_id": "123456789",
"content": "Nội dung comment mà bạn muốn gõ...",
"image_url": "https://example.com/anh.jpg"
}
```
*(Lưu ý: `image_url` là tùy chọn, nếu bài nào không cần ảnh thì không cần gửi trường này).*
- **Luồng hoạt động**:
1. Python tải ảnh về và đẩy vào thư viện Android.
2. Dùng Deep Link mở thẳng vào Group.
3. Bấm "Bình luận" ở bài viết đầu tiên.
4. Gõ Text, chọn ảnh vừa tải và bấm "Gửi".
5. Xóa ảnh tạm để dọn dẹp bộ nhớ.
---
## 3. Quản lý Màn Hình Điện Thoại (Chống chạm nhầm)
Để điện thoại chạy Auto mượt mà 24/7 mà không bị ai chạm nhầm vào màn hình và không tốn pin, hãy dùng 2 script có sẵn:
1. **Tắt đen màn hình & Khóa cảm ứng**:
Chạy lệnh: `./disable_screen.sh`
*(Màn hình vật lý sẽ đen thui, không thể bấm, nhưng Bot vẫn chạy ngầm bên trong)*
2. **Bật lại màn hình bình thường**:
Chạy lệnh: `./enable_screen.sh`
3. **Chống điện thoại tự khóa (Sleep/Lock screen)**:
Chạy lệnh ADB sau để ép điện thoại thức vĩnh viễn:
```bash
adb -s 10.160.138.2:5555 shell svc power stayon true
```
*(Muốn tắt chức năng này thì đổi chữ `true` thành `false`).*
💡 Mẹo thiết lập trên n8n: Thay vì phải nhớ từng ID, bạn nên lập một file Google Sheet.
Google Sheet: https://docs.google.com/spreadsheets/d/1Oje_uRqSd3pKf0hrE5M10Aqq9gEp-qHvGmtIkrq86fU/edit?usp=sharing
(Tên Group Group ID Content Link hình đính kèm)
Cột A: Tên Group (Để bạn tự nhớ).
Cột B: Group ID (Dãy số).
Cột C: Link bài viết (Nếu cần lưu). Sau đó cho n8n đọc Google Sheet này, lấy giá trị ở Cột B rồi bắn sang cho Python Bot. Chạy vòng lặp (Loop) là Bot sẽ tự động nhảy hết từ Group này sang Group khác để rải Comment!
Client ID: 745351236177-ibrcl3j2d9oi2malj3fpatfu6il2290b.apps.googleusercontent.com
Client secret: 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
( C:\Users\NASPC\Documents\botAffilate\facebook\client_secret_745351236177-ibrcl3j2d9oi2malj3fpatfu6il2290b.apps.googleusercontent.com.json )
Binary file not shown.
Binary file not shown.
+148
View File
@@ -0,0 +1,148 @@
import logging
import uiautomator2 as u2
import time
import re
class ShopeeBot:
def __init__(self, device_ip: str):
logging.info(f"Đang kết nối tới thiết bị {device_ip}...")
self.d = u2.connect(device_ip)
logging.info("Kết nối thành công!")
def get_commission_rate(self, url: str) -> str:
try:
# 1. Đảm bảo màn hình sáng
self.d.screen_on()
# 2. Khởi động lại Shopee từ đầu để tránh lỗi luồng cũ
logging.info("Khởi động Shopee...")
self.d.app_start("com.shopee.vn", stop=True)
time.sleep(6) # Chờ app khởi động hoàn toàn
# Tắt popup quảng cáo nếu có (nhấn phím Back hoặc tìm nút Tắt)
# Dùng thử phím Back 1 lần nếu có popup che màn hình
self.d.press("back")
time.sleep(1)
# 3. Chuyển sang tab "Tôi"
logging.info("Vào tab Tôi...")
if self.d(text="Tôi").exists:
self.d(text="Tôi").click()
else:
return "Lỗi: Không tìm thấy tab 'Tôi'"
time.sleep(2)
# 4. Tìm và ấn "Shopee Tiếp Thị Liên Kết"
logging.info("Tìm mục Shopee Tiếp Thị Liên Kết...")
# Cuộn xuống cho đến khi thấy chữ này
self.d(scrollable=True).scroll.to(textContains="Tiếp Thị Liên Kết")
if self.d(textContains="Tiếp Thị Liên Kết").exists:
self.d(textContains="Tiếp Thị Liên Kết").click()
else:
return "Lỗi: Không tìm thấy mục Tiếp Thị Liên Kết"
time.sleep(6) # Mục này có thể tải hơi lâu vì gọi API
# 5. Ấn tab "Tài khoản" ở thanh menu dưới cùng của Affiliate
logging.info("Vào tab Tài khoản...")
if self.d(text="Tài khoản").exists:
self.d(text="Tài khoản").click()
else:
return "Lỗi: Không tìm thấy tab Tài khoản"
time.sleep(2)
# 5.1. Bấm vào "Chuyển đổi liên kết" trong danh sách
logging.info("Bấm vào mục Chuyển đổi liên kết...")
if self.d(text="Chuyển đổi liên kết").exists:
self.d(text="Chuyển đổi liên kết").click()
else:
return "Lỗi: Không tìm thấy mục Chuyển đổi liên kết"
time.sleep(2)
# 6. Nhập link vào ô Text
logging.info("Nhập link sản phẩm...")
# Nếu có nút "Xóa tất cả" link cũ thì xóa trước
if self.d(text="Xóa tất cả").exists:
self.d(text="Xóa tất cả").click()
time.sleep(0.5)
# Tìm ô nhập liệu (thường là EditText)
edit_text = self.d(className="android.widget.EditText")
if edit_text.exists:
edit_text.set_text(url)
else:
return "Lỗi: Không tìm thấy ô nhập link"
time.sleep(1)
# 7. Bấm nút Chuyển Đổi màu cam
logging.info("Bấm nút Chuyển Đổi...")
if self.d(text="Chuyển Đổi").exists:
self.d(text="Chuyển Đổi").click()
else:
return "Lỗi: Không tìm thấy nút Chuyển Đổi"
time.sleep(4) # Chờ Shopee convert link và hiện kết quả
# 8. Lấy tỷ lệ hoa hồng, link mới và giá
logging.info("Đang đọc kết quả trên màn hình...")
import json
import re
result_data = {
"status": "success",
"commission": "",
"affiliate_link": "",
"price": "",
"message": "Trích xuất thành công"
}
# Quét toàn bộ text trên màn hình để tìm các thông tin
# Lấy tất cả các thành phần có text
all_texts = []
for elem in self.d(textMatches="(?s).*"):
t = elem.get_text()
if t and t not in all_texts:
all_texts.append(t)
for t in all_texts:
# 1. Tìm Tỷ lệ hoa hồng
if "Tỷ lệ hoa hồng" in t:
# Rút gọn lấy mỗi số (VD: "Tỷ lệ hoa hồng 10,5%" -> "10,5%")
match = re.search(r'Tỷ lệ hoa hồng\s*([\d,.]+%?)', t)
if match:
result_data["commission"] = match.group(1)
else:
result_data["commission"] = t.replace("Tỷ lệ hoa hồng", "").strip()
# 2. Tìm Affiliate Link (thường có s.shopee.vn)
if "s.shopee.vn" in t or "shp.ee" in t:
# Trích xuất phần URL, bỏ số thứ tự ví dụ "1. https://s.shopee.vn/..."
match = re.search(r'(https?://[^\s]+)', t)
if match:
result_data["affiliate_link"] = match.group(1)
# 3. Tìm Giá bán
# Thường có chữ "đ" ở đầu: đ192.000 hoặc đ90.000
if t.startswith("đ") or t.startswith(""):
result_data["price"] = t
if not result_data["commission"]:
# Nếu không tìm thấy, dump UI ra để debug
xml_dump = self.d.dump_hierarchy()
with open("error_dump.xml", "w", encoding="utf-8") as f:
f.write(xml_dump)
result_data["status"] = "error"
result_data["message"] = "Không thấy Tỷ lệ hoa hồng (Đã lưu error_dump.xml)"
# Trả về dạng Dictionary (FastAPI sẽ tự chuyển thành JSON cho n8n)
return result_data
except Exception as e:
return {"status": "error", "message": f"Lỗi không xác định: {str(e)}"}
finally:
# Luôn thoát ra màn hình chính (Homescreen) sau khi lấy xong (hoặc lỗi)
logging.info("Thoát ra màn hình chính (Homescreen)...")
self.d.press("home")
+67
View File
@@ -0,0 +1,67 @@
# Hướng dẫn đưa API lên Armbian (Sử dụng Wireless ADB)
Vì bạn sử dụng Wireless ADB, **server Armbian và điện thoại phải kết nối cùng chung một mạng nội bộ** (cùng kết nối vào một bộ định tuyến/WiFi).
### Bước 1: Cài đặt công cụ trên Armbian
Mở Terminal (hoặc SSH) vào Armbian và chạy lệnh:
```bash
sudo apt update
# Cài đặt Python 3, pip và công cụ nền tảng ADB
sudo apt install python3 python3-pip adb -y
```
### Bước 2: Bật và Kết nối ADB không dây
1. Trên điện thoại: Bật "Gỡ lỗi không dây" (Wireless Debugging) trong mục Tùy chọn nhà phát triển. Ghi lại IP và Port (ví dụ `192.168.1.55:5555`).
2. Trên Armbian, kiểm tra kết nối mạng:
```bash
ping -c 3 192.168.1.55
```
3. Kết nối ADB từ Armbian tới điện thoại:
```bash
adb connect 192.168.1.55:5555
```
*(Bạn có thể phải nhìn vào màn hình điện thoại để bấm "Cho phép" cho lần kết nối đầu tiên).*
### Bước 3: Triển khai Code
Copy toàn bộ thư mục `botAffilate` từ Windows sang Armbian (có thể dùng FileZilla, WinSCP). Di chuyển vào thư mục đó:
```bash
cd /path/to/botAffilate
pip3 install -r requirements.txt
```
*Lưu ý: Đừng quên cập nhật biến `DEVICE_IP` trong file `main.py` thành IP chính xác của điện thoại.*
### Bước 4: Chạy API ngầm bằng Systemd
Để API luôn chạy kể cả khi khởi động lại server Armbian, tạo một file cấu hình service:
```bash
sudo nano /etc/systemd/system/bot_shopee.service
```
Dán nội dung sau vào (Nhớ sửa lại `WorkingDirectory` bằng đường dẫn thực tế):
```ini
[Unit]
Description=Shopee Affiliate API cho n8n
After=network.target
[Service]
User=root
# Thay đổi đường dẫn tới thư mục code của bạn
WorkingDirectory=/root/botAffilate
ExecStart=/usr/local/bin/uvicorn main:app --host 0.0.0.0 --port 8000
Restart=always
[Install]
WantedBy=multi-user.target
```
Kích hoạt và khởi động service:
```bash
sudo systemctl daemon-reload
sudo systemctl enable bot_shopee
sudo systemctl start bot_shopee
```
Để xem log xem có lỗi không, bạn dùng lệnh: `sudo journalctl -u bot_shopee -f`
Bây giờ từ n8n, bạn chỉ cần tạo Webhook/HTTP Request bắn tới địa chỉ `http://<IP_Armbian>:8000/get_commission` là xong!
Kích hoạt môi trường ảosource venv/bin/activate
source venv/bin/activate
+10
View File
@@ -0,0 +1,10 @@
#!/bin/bash
DEVICE_IP="10.160.138.2:5555"
# Dọn dẹp tiến trình cũ nếu có
pkill -f scrcpy
echo "Đang tắt màn hình và khóa cảm ứng trên thiết bị $DEVICE_IP..."
# Chạy scrcpy ẩn dưới nền (nohup)
nohup scrcpy -s $DEVICE_IP --turn-screen-off --no-window > /dev/null 2>&1 &
echo "✅ Thành công! Màn hình đã tối đen, Bot vẫn hoạt động ẩn."
+7
View File
@@ -0,0 +1,7 @@
#!/bin/bash
echo "Đang khôi phục màn hình sáng và cảm ứng..."
# Chỉ cần Kill tiến trình scrcpy, màn hình sẽ tự động sáng lại
pkill -f scrcpy
echo "✅ Thành công! Điện thoại đã sáng đèn và có thể chạm lại bình thường."
+199
View File
@@ -0,0 +1,199 @@
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<hierarchy rotation="0">
<node index="0" text="" resource-id="" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,2270][1080,2400]" drawing-order="0" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/rot0" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,2270][1080,2400]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/deadzone" class="android.view.View" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,2270][1080,2400]" drawing-order="3" hint="" />
<node index="1" text="" resource-id="com.android.systemui:id/nav_buttons" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,2270][1080,2400]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/start_padding" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,2270][233,2400]" drawing-order="1" hint="" />
<node index="1" text="" resource-id="com.android.systemui:id/recent_apps" class="android.widget.ImageView" package="com.android.systemui" content-desc="Tổng quan" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[233,2270][398,2400]" drawing-order="2" hint="" />
<node index="2" text="" resource-id="com.android.systemui:id/home" class="android.widget.ImageView" package="com.android.systemui" content-desc="Trang chính" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[457,2270][622,2400]" drawing-order="4" hint="" />
<node index="3" text="" resource-id="com.android.systemui:id/back" class="android.widget.ImageView" package="com.android.systemui" content-desc="Quay lại" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[681,2270][846,2400]" drawing-order="6" hint="" />
<node index="4" text="" resource-id="com.android.systemui:id/side_padding" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[846,2270][1080,2400]" drawing-order="7" hint="" />
</node>
</node>
</node>
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,0][1080,102]" drawing-order="0" hint="">
<node index="1" text="" resource-id="com.android.systemui:id/scrim_behind" class="android.view.View" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,0][1080,102]" drawing-order="2" hint="" />
<node index="2" text="" resource-id="com.android.systemui:id/scrim_in_front" class="android.view.View" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,0][1080,102]" drawing-order="9" hint="" />
<node index="3" text="" resource-id="" class="android.view.View" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,0][1080,102]" drawing-order="11" hint="" />
<node index="4" text="" resource-id="com.android.systemui:id/status_bar_container" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,0][1080,102]" drawing-order="4" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/status_bar" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,0][1080,102]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/phone_status_bar_contents_container" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[19,0][1061,102]" drawing-order="3" hint="">
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[42,27][540,102]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/clock_container" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[42,27][504,102]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/leftside" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[42,27][504,102]" drawing-order="1" hint="">
<node index="0" text="13:49" resource-id="com.android.systemui:id/clock" class="android.widget.TextView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[42,27][148,102]" drawing-order="10" hint="" />
<node index="2" text="" resource-id="com.android.systemui:id/drip_leftear_super_container" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[148,27][504,102]" drawing-order="11" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notch_leftear_icons" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[148,27][195,102]" drawing-order="3" hint="">
<node index="0" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[148,31][195,97]" drawing-order="1" hint="" />
</node>
<node index="1" text="" resource-id="com.android.systemui:id/notification_icon_area" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="4" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="1" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="2" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="2" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="3" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="3" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="4" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="4" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="5" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="5" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="6" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="6" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="7" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="7" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="8" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="8" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="9" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="9" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="10" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="10" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="11" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="11" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="12" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="12" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="13" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="13" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="14" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="14" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="15" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="15" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="16" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="16" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="17" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="17" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="18" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="18" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="19" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="19" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="20" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="20" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="21" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="21" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="22" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="22" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="23" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="">
<node index="0" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Khung dịch vụ Xiaomi: QUAN TRỌNG: Chúng tôi đã điều chỉnh phạm vi điều khoản và điều kiện" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="24" hint="" />
<node index="1" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo App vault: " checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="14" hint="" />
<node index="2" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Zalo: Lời mời kết bạn" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="22" hint="" />
<node index="3" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Gmail: 7 thư mới" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="23" hint="" />
<node index="4" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Tin nhắn: " checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="19" hint="" />
<node index="5" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Bảo mật: Bảo vệ ứng dụng bằng Khóa ứng dụng" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="21" hint="" />
<node index="6" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Zalo: Mây rải rác" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="20" hint="" />
<node index="7" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Google: TechRadar" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="18" hint="" />
<node index="8" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo msa: Sắp đến rồi" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="17" hint="" />
<node index="9" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Bảo mật: Thử Khóa ứng dụng" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="16" hint="" />
<node index="10" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo msa: Đang đến gần bạn!" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="15" hint="" />
<node index="11" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Facebook: Chào mừng bạn đến với Review Đà Nẵng - Chia sẻ kinh nghiệm du lịch Đà Nẵng Hội An" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="13" hint="" />
<node index="12" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Facebook: Chào mừng bạn đến với Review Đà Lạt Tất Tần Tật ❤️" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="12" hint="" />
<node index="13" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Facebook: Chào mừng bạn đến với Ăn &amp; Uống Mỹ An - Tháp Mười - Đồng Tháp" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="11" hint="" />
<node index="14" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Facebook: Chào mừng bạn đến với Ăn Vặt Lai Vung Đồng Tháp" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="10" hint="" />
<node index="15" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Facebook: Chào mừng bạn đến với ✅ KÊNH REVIEW DU LỊCH VŨNG TÀU ( 500k Followers )" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="9" hint="" />
<node index="16" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Facebook: Chào mừng bạn đến với Review Đà Nẵng - Hội An Tất Tầt Tật" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="8" hint="" />
<node index="17" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Facebook: Chào mừng bạn đến với Đồ Ăn Vặt Phú Hựu (Châu Thành - Đồng Tháp)" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="7" hint="" />
<node index="18" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Facebook: Chào mừng bạn đến với Chợ Ăn Vặt Đại Lãnh. Quản trị viên đã phê duyệt yêu cầu tham gia của bạn." checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[373,46][423,82]" drawing-order="6" hint="" />
<node index="19" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Shopee: " checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,46][245,82]" drawing-order="1" hint="" />
<node index="20" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Facebook: Chào mừng bạn đến với CHỢ CẦN THƠ" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[359,46][409,82]" drawing-order="5" hint="" />
<node index="21" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Facebook: Chào mừng bạn đến với Chợ Tốt Cần Thơ ✅" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[345,46][395,82]" drawing-order="4" hint="" />
<node index="22" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Facebook: Chào mừng bạn đến với CHỢ CẦN THƠ" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[295,46][345,82]" drawing-order="3" hint="" />
<node index="23" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Facebook: Chào mừng bạn đến với Chợ Đầu Mối Tân An Cần Thơ 24h" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[245,46][295,82]" drawing-order="2" hint="" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node index="1" text="" resource-id="com.android.systemui:id/system_icon_area" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[540,27][1043,102]" drawing-order="2" hint="">
<node index="0" text="" resource-id="" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[784,27][1043,102]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/system_icons" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[784,34][1043,94]" drawing-order="3" hint="">
<node index="1" text="" resource-id="com.android.systemui:id/signal_cluster_view" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[784,36][959,92]" drawing-order="5" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/signal_cluster" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[784,36][959,92]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/vpn" class="android.widget.ImageView" package="com.android.systemui" content-desc="VPN bật." checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[784,36][847,92]" drawing-order="1" hint="" />
<node index="1" text="" resource-id="com.android.systemui:id/mobile_signal_group_1" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[847,36][901,92]" drawing-order="6" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/mobile_combo" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="4G Tín hiệu điện thoại đầy." checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[847,36][901,92]" drawing-order="1" hint="">
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[847,36][901,92]" drawing-order="6" hint="">
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[847,36][901,92]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/mobile_signal" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[847,36][901,92]" drawing-order="4" hint="" />
</node>
</node>
</node>
</node>
<node index="3" text="" resource-id="com.android.systemui:id/wifi_combo" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="Tín hiệu Wi-Fi đầy." checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[901,36][959,92]" drawing-order="14" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/wifi_signal" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[901,36][959,92]" drawing-order="1" hint="" />
<node index="1" text="" resource-id="com.android.systemui:id/wifi_inout" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[933,36][959,92]" drawing-order="3" hint="" />
</node>
</node>
</node>
<node index="2" text="" resource-id="com.android.systemui:id/battery" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[959,34][1043,94]" drawing-order="6" hint="">
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[959,36][1043,92]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/battery_image" class="android.widget.ImageView" package="com.android.systemui" content-desc="Pin 62 phần trăm." checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[959,36][1043,92]" drawing-order="1" hint="" />
<node index="1" text="62" resource-id="com.android.systemui:id/battery_digit" class="android.widget.TextView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[985,36][1011,92]" drawing-order="3" hint="" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.facebook.katana" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,0][1080,2400]" drawing-order="0" hint="">
<node index="0" text="" resource-id="" class="android.widget.LinearLayout" package="com.facebook.katana" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,0][1080,2270]" drawing-order="1" hint="">
<node index="0" text="" resource-id="android:id/content" class="android.widget.FrameLayout" package="com.facebook.katana" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,102][1080,2270]" drawing-order="2" hint="">
<node index="0" text="" resource-id="com.facebook.katana:id/(name removed)" class="android.widget.FrameLayout" package="com.facebook.katana" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,102][1080,2270]" drawing-order="7" hint="">
<node index="0" text="" resource-id="com.facebook.katana:id/(name removed)" class="android.widget.FrameLayout" package="com.facebook.katana" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,102][1080,2270]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.facebook.katana:id/(name removed)" class="android.view.ViewGroup" package="com.facebook.katana" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,223][1080,2270]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.facebook.katana:id/(name removed)" class="android.widget.FrameLayout" package="com.facebook.katana" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,223][1080,2270]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.facebook.katana:id/(name removed)" class="android.view.ViewGroup" package="com.facebook.katana" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,223][1080,2270]" drawing-order="1" hint="">
<node index="0" text="" resource-id="" class="android.view.ViewGroup" package="com.facebook.katana" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[66,1262][1014,1441]" drawing-order="1" hint="">
<node index="0" text="Nội dung này không hiển thị" resource-id="" class="android.view.ViewGroup" package="com.facebook.katana" content-desc="Nội dung này không hiển thị" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[66,1262][1014,1315]" drawing-order="1" hint="" />
<node index="1" text="Nội dung này chỉ hiển thị với một số người nhất định hoặc có thể đã bị gỡ." resource-id="" class="android.view.ViewGroup" package="com.facebook.katana" content-desc="Nội dung này chỉ hiển thị với một số người nhất định hoặc có thể đã bị gỡ." checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[66,1325][1014,1441]" drawing-order="2" hint="" />
</node>
<node index="1" text="" resource-id="" class="android.widget.Button" package="com.facebook.katana" content-desc="Làm mới" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[416,1485][665,1595]" drawing-order="2" hint="">
<node index="0" text="Làm mới" resource-id="" class="android.view.ViewGroup" package="com.facebook.katana" content-desc="Làm mới" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[449,1513][632,1568]" drawing-order="1" hint="" />
</node>
</node>
</node>
</node>
</node>
<node index="1" text="" resource-id="com.facebook.katana:id/(name removed)" class="android.widget.LinearLayout" package="com.facebook.katana" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,102][1080,223]" drawing-order="2" hint="">
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.facebook.katana" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,102][1080,223]" drawing-order="1" hint="">
<node index="0" text="" resource-id="" class="android.widget.LinearLayout" package="com.facebook.katana" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,102][1080,223]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.facebook.katana:id/(name removed)" class="android.widget.ImageView" package="com.facebook.katana" content-desc="Quay lại" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,102][132,223]" drawing-order="1" hint="" />
<node index="1" text="" resource-id="com.facebook.katana:id/(name removed)" class="android.widget.FrameLayout" package="com.facebook.katana" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[132,102][937,223]" drawing-order="3" hint="" />
<node index="2" text="" resource-id="com.facebook.katana:id/(name removed)" class="android.widget.LinearLayout" package="com.facebook.katana" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[937,102][1080,223]" drawing-order="4" hint="">
<node index="0" text="" resource-id="com.facebook.katana:id/(name removed)" class="android.widget.ImageView" package="com.facebook.katana" content-desc="Tìm kiếm" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" visible-to-user="true" bounds="[937,102][1080,223]" drawing-order="1" hint="" />
</node>
</node>
<node index="1" text="" resource-id="com.facebook.katana:id/(name removed)" class="android.view.View" package="com.facebook.katana" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,221][1080,223]" drawing-order="2" hint="" />
</node>
</node>
</node>
</node>
</node>
</node>
</hierarchy>
+164
View File
@@ -0,0 +1,164 @@
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<hierarchy rotation="0">
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,0][1080,102]" drawing-order="0" hint="">
<node index="1" text="" resource-id="com.android.systemui:id/scrim_behind" class="android.view.View" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,0][1080,102]" drawing-order="2" hint="" />
<node index="2" text="" resource-id="com.android.systemui:id/scrim_in_front" class="android.view.View" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,0][1080,102]" drawing-order="9" hint="" />
<node index="3" text="" resource-id="" class="android.view.View" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,0][1080,102]" drawing-order="11" hint="" />
<node index="4" text="" resource-id="com.android.systemui:id/status_bar_container" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,0][1080,102]" drawing-order="4" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/status_bar" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,0][1080,102]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/phone_status_bar_contents_container" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[19,0][1061,102]" drawing-order="3" hint="">
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[42,27][540,102]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/clock_container" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[42,27][504,102]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/leftside" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[42,27][504,102]" drawing-order="1" hint="">
<node index="0" text="13:39" resource-id="com.android.systemui:id/clock" class="android.widget.TextView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[42,27][148,102]" drawing-order="10" hint="" />
<node index="2" text="" resource-id="com.android.systemui:id/drip_leftear_super_container" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[148,27][504,102]" drawing-order="11" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notch_leftear_icons" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[148,27][195,102]" drawing-order="3" hint="">
<node index="0" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[148,31][195,97]" drawing-order="1" hint="" />
</node>
<node index="1" text="" resource-id="com.android.systemui:id/notification_icon_area" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="4" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="1" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="2" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="2" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="3" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="3" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="4" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="4" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="5" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="5" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="6" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="6" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="7" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="7" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="8" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="8" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="9" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="9" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="10" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="10" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="11" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="11" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="12" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="12" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="13" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="13" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="14" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="14" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="15" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="15" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="16" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="16" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="17" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="17" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="18" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="18" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="19" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="19" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="20" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="20" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="21" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="21" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="22" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="" />
</node>
<node index="22" text="" resource-id="com.android.systemui:id/notification_icon_area_inner" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="23" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notificationIcons" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,27][504,102]" drawing-order="1" hint="">
<node index="0" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Khung dịch vụ Xiaomi: QUAN TRỌNG: Chúng tôi đã điều chỉnh phạm vi điều khoản và điều kiện" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="24" hint="" />
<node index="1" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo App vault: " checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="14" hint="" />
<node index="2" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Zalo: Lời mời kết bạn" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="22" hint="" />
<node index="3" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Gmail: 7 thư mới" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="23" hint="" />
<node index="4" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Tin nhắn: " checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="19" hint="" />
<node index="5" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Bảo mật: Bảo vệ ứng dụng bằng Khóa ứng dụng" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="21" hint="" />
<node index="6" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Zalo: Mây rải rác" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="20" hint="" />
<node index="7" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Google: TechRadar" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="18" hint="" />
<node index="8" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo msa: Sắp đến rồi" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="17" hint="" />
<node index="9" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Bảo mật: Thử Khóa ứng dụng" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="16" hint="" />
<node index="10" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo msa: Đang đến gần bạn!" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="15" hint="" />
<node index="11" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Facebook: Chào mừng bạn đến với Review Đà Nẵng - Chia sẻ kinh nghiệm du lịch Đà Nẵng Hội An" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="13" hint="" />
<node index="12" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Facebook: Chào mừng bạn đến với Review Đà Lạt Tất Tần Tật ❤️" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="12" hint="" />
<node index="13" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Facebook: Chào mừng bạn đến với Ăn &amp; Uống Mỹ An - Tháp Mười - Đồng Tháp" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="11" hint="" />
<node index="14" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Facebook: Chào mừng bạn đến với Ăn Vặt Lai Vung Đồng Tháp" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="10" hint="" />
<node index="15" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Facebook: Chào mừng bạn đến với ✅ KÊNH REVIEW DU LỊCH VŨNG TÀU ( 500k Followers )" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="9" hint="" />
<node index="16" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Facebook: Chào mừng bạn đến với Review Đà Nẵng - Hội An Tất Tầt Tật" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="8" hint="" />
<node index="17" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Facebook: Chào mừng bạn đến với Đồ Ăn Vặt Phú Hựu (Châu Thành - Đồng Tháp)" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[415,46][465,82]" drawing-order="7" hint="" />
<node index="18" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Facebook: Chào mừng bạn đến với Chợ Ăn Vặt Đại Lãnh. Quản trị viên đã phê duyệt yêu cầu tham gia của bạn." checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[373,46][423,82]" drawing-order="6" hint="" />
<node index="19" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Shopee: " checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[195,46][245,82]" drawing-order="1" hint="" />
<node index="20" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Facebook: Chào mừng bạn đến với CHỢ CẦN THƠ" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[359,46][409,82]" drawing-order="5" hint="" />
<node index="21" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Facebook: Chào mừng bạn đến với Chợ Tốt Cần Thơ ✅" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[345,46][395,82]" drawing-order="4" hint="" />
<node index="22" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Facebook: Chào mừng bạn đến với CHỢ CẦN THƠ" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[295,46][345,82]" drawing-order="3" hint="" />
<node index="23" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Thông báo Facebook: Chào mừng bạn đến với Chợ Đầu Mối Tân An Cần Thơ 24h" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[245,46][295,82]" drawing-order="2" hint="" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node index="1" text="" resource-id="com.android.systemui:id/system_icon_area" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[540,27][1043,102]" drawing-order="2" hint="">
<node index="0" text="" resource-id="" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[784,27][1043,102]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/system_icons" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[784,34][1043,94]" drawing-order="3" hint="">
<node index="1" text="" resource-id="com.android.systemui:id/signal_cluster_view" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[784,36][959,92]" drawing-order="5" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/signal_cluster" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[784,36][959,92]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/vpn" class="android.widget.ImageView" package="com.android.systemui" content-desc="VPN bật." checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[784,36][847,92]" drawing-order="1" hint="" />
<node index="1" text="" resource-id="com.android.systemui:id/mobile_signal_group_1" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[847,36][901,92]" drawing-order="6" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/mobile_combo" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="4G Tín hiệu điện thoại đầy." checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[847,36][901,92]" drawing-order="1" hint="">
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[847,36][901,92]" drawing-order="6" hint="">
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[847,36][901,92]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/mobile_signal" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[847,36][901,92]" drawing-order="4" hint="" />
</node>
</node>
</node>
</node>
<node index="3" text="" resource-id="com.android.systemui:id/wifi_combo" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="Tín hiệu Wi-Fi đầy." checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[901,36][959,92]" drawing-order="14" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/wifi_signal" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[901,36][959,92]" drawing-order="1" hint="" />
<node index="1" text="" resource-id="com.android.systemui:id/wifi_inout" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[933,36][959,92]" drawing-order="3" hint="" />
</node>
</node>
</node>
<node index="2" text="" resource-id="com.android.systemui:id/battery" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[959,34][1043,94]" drawing-order="6" hint="">
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[959,36][1043,92]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/battery_image" class="android.widget.ImageView" package="com.android.systemui" content-desc="Pin 63 phần trăm." checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[959,36][1043,92]" drawing-order="1" hint="" />
<node index="1" text="63" resource-id="com.android.systemui:id/battery_digit" class="android.widget.TextView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[985,36][1011,92]" drawing-order="3" hint="" />
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node index="0" text="" resource-id="" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,2270][1080,2400]" drawing-order="0" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/rot0" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,2270][1080,2400]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/deadzone" class="android.view.View" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,2270][1080,2400]" drawing-order="3" hint="" />
<node index="1" text="" resource-id="com.android.systemui:id/nav_buttons" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,2270][1080,2400]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/start_padding" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,2270][233,2400]" drawing-order="1" hint="" />
<node index="1" text="" resource-id="com.android.systemui:id/recent_apps" class="android.widget.ImageView" package="com.android.systemui" content-desc="Tổng quan" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[233,2270][398,2400]" drawing-order="2" hint="" />
<node index="2" text="" resource-id="com.android.systemui:id/home" class="android.widget.ImageView" package="com.android.systemui" content-desc="Trang chính" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[457,2270][622,2400]" drawing-order="4" hint="" />
<node index="3" text="" resource-id="com.android.systemui:id/back" class="android.widget.ImageView" package="com.android.systemui" content-desc="Quay lại" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[681,2270][846,2400]" drawing-order="6" hint="" />
<node index="4" text="" resource-id="com.android.systemui:id/side_padding" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[846,2270][1080,2400]" drawing-order="7" hint="" />
</node>
</node>
</node>
</hierarchy>
+140
View File
@@ -0,0 +1,140 @@
import logging
import uiautomator2 as u2
import time
import os
class FacebookBot:
def __init__(self, device_ip: str):
logging.info(f"Đang kết nối tới thiết bị {device_ip} để chạy Facebook...")
self.d = u2.connect(device_ip)
logging.info("Kết nối thành công!")
def push_image_to_gallery(self, local_image_path: str):
if not local_image_path or not os.path.exists(local_image_path):
logging.warning("Không có file ảnh cục bộ để đẩy lên điện thoại.")
return False
logging.info(f"Đang đẩy ảnh {local_image_path} vào điện thoại...")
# Đẩy ảnh vào thư mục Pictures
remote_path = "/sdcard/Pictures/n8n_fb_comment.jpg"
self.d.push(local_image_path, remote_path)
# Gọi Media Scanner để Thư viện ảnh nhận diện ngay lập tức
logging.info("Đang cập nhật thư viện ảnh...")
self.d.shell(f'am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d file://{remote_path}')
time.sleep(2)
return True
def post_comment(self, group_id: str, content: str, local_image_path: str = None) -> dict:
try:
self.d.screen_on()
# Đẩy ảnh vào điện thoại nếu có
has_image = False
if local_image_path:
has_image = self.push_image_to_gallery(local_image_path)
logging.info(f"Khởi động Facebook và vào Group ID: {group_id}...")
# Dùng lệnh ADB shell để mở thẳng Deep Link của Group
self.d.shell(f'am start -a android.intent.action.VIEW -d "fb://group/{group_id}"')
time.sleep(8) # Đợi load giao diện group
self.dump_ui_for_debug("fb_step1_open_group.xml")
# Quét nút Bình luận, nếu không thấy thì vuốt xuống (vì ảnh bìa group che mất)
logging.info("Tìm nút Bình luận của bài viết đầu tiên...")
comment_btn = None
for _ in range(7): # Thử vuốt tối đa 7 lần
# Thử quét bằng Regex (Không phân biệt hoa thường) ở cả description và text
c_desc_vn = self.d(descriptionMatches="(?i).*bình luận.*")
c_text_vn = self.d(textMatches="(?i).*bình luận.*")
c_desc_en = self.d(descriptionMatches="(?i).*comment.*")
c_text_en = self.d(textMatches="(?i).*comment.*")
if c_desc_vn.exists: comment_btn = c_desc_vn; break
if c_text_vn.exists: comment_btn = c_text_vn; break
if c_desc_en.exists: comment_btn = c_desc_en; break
if c_text_en.exists: comment_btn = c_text_en; break
# Vuốt lên một chút
self.d.swipe_ext("up", scale=0.5)
time.sleep(1.5)
self.dump_ui_for_debug("fb_step2_scrolling.xml")
if comment_btn and comment_btn.exists:
comment_btn[0].click() # Click vào bài đầu tiên tìm thấy
self.dump_ui_for_debug("fb_step3_clicked_comment.xml")
else:
self.dump_ui_for_debug("error_fb_no_comment_btn.xml")
return {"status": "error", "message": "Không tìm thấy nút Bình luận. Đã lưu dump UI."}
time.sleep(4)
# Gõ nội dung
logging.info("Đang nhập nội dung comment...")
edit_box = self.d(className="android.widget.EditText")
if edit_box.exists:
edit_box.set_text(content)
time.sleep(1)
else:
self.dump_ui_for_debug("error_fb_no_edittext.xml")
return {"status": "error", "message": "Không tìm thấy ô nhập chữ."}
# Chọn ảnh nếu có
if has_image:
logging.info("Đang chọn ảnh đính kèm...")
# Nút chọn ảnh thường có chữ Camera hoặc Ảnh/Video
photo_btn = self.d(descriptionContains="ảnh")
if not photo_btn.exists:
photo_btn = self.d(descriptionContains="photo")
if photo_btn.exists:
photo_btn.click()
time.sleep(3)
self.dump_ui_for_debug("fb_step5_camera_opened.xml")
# Chọn ảnh đầu tiên trong thư viện (vừa mới push vào)
# Facebook gallery thường có checkbox hoặc chỉ cần click vào vùng ảnh
gallery_images = self.d(className="android.widget.ImageView")
if gallery_images.count >= 2:
gallery_images[1].click() # Bỏ qua icon đầu tiên thường là icon camera
time.sleep(1)
self.dump_ui_for_debug("fb_step6_image_selected.xml")
# Nút Xong / Done
done_btn = self.d(textContains="Xong")
if not done_btn.exists:
done_btn = self.d(textContains="Done")
if done_btn.exists:
done_btn.click()
time.sleep(1)
else:
logging.warning("Không tìm thấy nút đính kèm ảnh, sẽ chỉ gửi text.")
# Bấm gửi
logging.info("Bấm nút Gửi (Send)...")
send_btn = self.d(descriptionContains="Gửi")
if not send_btn.exists:
send_btn = self.d(descriptionContains="Send")
if send_btn.exists:
send_btn.click()
time.sleep(3)
return {"status": "success", "message": "Đã comment thành công!"}
else:
self.dump_ui_for_debug("error_fb_no_send_btn.xml")
return {"status": "error", "message": "Không tìm thấy nút Gửi."}
except Exception as e:
logging.error(f"Lỗi Facebook Bot: {str(e)}")
return {"status": "error", "message": f"Lỗi không xác định: {str(e)}"}
finally:
logging.info("Thoát ra màn hình chính (Homescreen)...")
self.d.press("home")
def dump_ui_for_debug(self, filename: str):
xml_dump = self.d.dump_hierarchy()
with open(filename, "w", encoding="utf-8") as f:
f.write(xml_dump)
logging.error(f"Đã lưu giao diện lỗi vào file {filename}")
+19
View File
@@ -0,0 +1,19 @@
cat << 'EOF' > /etc/systemd/system/shopeebot.service
[Unit]
Description=Shopee Affiliate Bot API
After=network.target
[Service]
User=root
WorkingDirectory=/root/botAffilate/serverPython
ExecStart=/root/botAffilate/venv/bin/python main.py
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl restart shopeebot
systemctl status shopeebot
+109
View File
@@ -0,0 +1,109 @@
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel, Field
from automation import ShopeeBot
from typing import Optional
import logging
import os
import sys
import urllib.request
import uuid
import threading
from collections import defaultdict
from facebook_bot import FacebookBot
# Quản lý hàng đợi (Lock) cho từng thiết bị
device_locks = defaultdict(threading.Lock)
# Cấu hình logging: ghi log ra cả màn hình (console) và file (shopee_bot.log)
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s',
handlers=[
logging.FileHandler("shopee_bot.log", encoding="utf-8"),
logging.StreamHandler(sys.stdout)
]
)
app = FastAPI(title="n8n Shopee Bridge API")
class CommissionRequest(BaseModel):
link: str
# Cho phép truyền IP linh hoạt từ n8n.
device_ip: Optional[str] = Field(default=None, description="IP:Port của điện thoại, ví dụ 192.168.1.100:5555 (WiFi) hoặc 10.8.0.5:5555 (VPN)")
from typing import Optional, Any
class FacebookCommentRequest(BaseModel):
device_ip: Optional[str] = Field(default=None, description="IP:Port của điện thoại (Cấu hình trên n8n)")
group_id: Any
content: str
image_url: Optional[str] = None
@app.post("/get_commission")
def get_commission_endpoint(req: CommissionRequest):
if not req.link:
raise HTTPException(status_code=400, detail="Thiếu link sản phẩm")
try:
# Lấy IP theo độ ưu tiên
raw_ip = req.device_ip or os.environ.get("DEVICE_IP") or ""
lock_key = raw_ip if raw_ip else "default_device"
# Dùng Lock để xếp hàng: Nếu điện thoại đang bận, request sau phải chờ
with device_locks[lock_key]:
logging.info(f"Đã khóa thiết bị {lock_key} để chạy tác vụ Shopee.")
bot = ShopeeBot(device_ip=raw_ip)
result = bot.get_commission_rate(req.link)
# Nếu đã có status thì gộp thẳng các thuộc tính của result vào JSON trả về
if isinstance(result, dict) and "status" in result:
return result
return {
"status": "success",
"commission": result
}
except Exception as e:
logging.error(f"Lỗi API: {str(e)}")
raise HTTPException(status_code=500, detail=str(e))
@app.post("/post_facebook_comment")
def post_facebook_comment(req: FacebookCommentRequest):
try:
raw_ip = req.device_ip or os.environ.get("DEVICE_IP") or ""
lock_key = raw_ip if raw_ip else "default_device"
with device_locks[lock_key]:
logging.info(f"Đã khóa thiết bị {lock_key} để chạy tác vụ Facebook.")
bot = FacebookBot(device_ip=raw_ip)
local_image_path = None
if req.image_url:
# Tải ảnh về máy chủ Python tạm thời
local_image_path = f"temp_fb_{uuid.uuid4().hex}.jpg"
urllib.request.urlretrieve(str(req.image_url), local_image_path)
logging.info(f"Đã tải ảnh tạm thời: {local_image_path}")
result = bot.post_comment(str(req.group_id), str(req.content), local_image_path)
# Dọn dẹp ảnh tạm sau khi xong
if local_image_path and os.path.exists(local_image_path):
os.remove(local_image_path)
logging.info(f"Đã xóa ảnh tạm: {local_image_path}")
if isinstance(result, dict) and "status" in result:
if result["status"] == "error":
raise HTTPException(status_code=500, detail=result.get("message"))
return result
return {"status": "success", "message": "Hoàn tất"}
except Exception as e:
logging.error(f"Lỗi API Facebook: {str(e)}")
raise HTTPException(status_code=500, detail=str(e))
if __name__ == "__main__":
import uvicorn
# Chạy server API ở cổng 8000
uvicorn.run(app, host="0.0.0.0", port=8000)
+11
View File
@@ -0,0 +1,11 @@
import xml.etree.ElementTree as ET
tree = ET.parse('ui_dump.xml')
for node in tree.iter():
if node.attrib.get('clickable') == 'true' and node.attrib.get('package') == 'com.shopee.vn':
clazz = node.attrib.get('class', '')
res_id = node.attrib.get('resource-id', '')
text = node.attrib.get('text', '')
desc = node.attrib.get('content-desc', '')
bounds = node.attrib.get('bounds', '')
print(f"{clazz} | {res_id} | text:{text} | desc:{desc} | bounds:{bounds}")
+4
View File
@@ -0,0 +1,4 @@
fastapi
uvicorn
uiautomator2
pydantic
File diff suppressed because it is too large Load Diff
+20
View File
@@ -0,0 +1,20 @@
import time
from automation import ShopeeBot
if __name__ == "__main__":
# Thay thế bằng IP của điện thoại trong mạng (lấy từ lệnh adb devices)
DEVICE_IP = '10.160.138.2:5555'
bot = ShopeeBot(DEVICE_IP)
test_url = "https://vn.shp.ee/tZVnqovi"
print(f"\n[BẮT ĐẦU] Lấy hoa hồng cho link: {test_url}")
# Đoạn này sẽ chạy đúng quy trình: Mở Shopee -> Tôi -> Tiếp Thị Liên Kết -> Chuyển Đổi
result = bot.get_commission_rate(test_url)
import json
print("\n===============================")
print("🎯 KẾT QUẢ TỪ BOT:")
print(json.dumps(result, indent=2, ensure_ascii=False))
print("===============================\n")
+338
View File
@@ -0,0 +1,338 @@
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<hierarchy rotation="0">
<node index="0" text="" resource-id="" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,2270][1080,2400]" drawing-order="0" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/rot0" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,2270][1080,2400]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/deadzone" class="android.view.View" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,2270][1080,2400]" drawing-order="3" hint="" />
<node index="1" text="" resource-id="com.android.systemui:id/nav_buttons" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,2270][1080,2400]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/start_padding" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,2270][233,2400]" drawing-order="1" hint="" />
<node index="1" text="" resource-id="com.android.systemui:id/recent_apps" class="android.widget.ImageView" package="com.android.systemui" content-desc="Tổng quan" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[233,2270][398,2400]" drawing-order="2" hint="" />
<node index="2" text="" resource-id="com.android.systemui:id/home" class="android.widget.ImageView" package="com.android.systemui" content-desc="Trang chính" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[457,2270][622,2400]" drawing-order="4" hint="" />
<node index="3" text="" resource-id="com.android.systemui:id/back" class="android.widget.ImageView" package="com.android.systemui" content-desc="Quay lại" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[681,2270][846,2400]" drawing-order="6" hint="" />
<node index="4" text="" resource-id="com.android.systemui:id/side_padding" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[846,2270][1080,2400]" drawing-order="7" hint="" />
</node>
</node>
</node>
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,0][1080,2400]" drawing-order="0" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/scrim_behind" class="android.view.View" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,0][1080,2400]" drawing-order="2" hint="" />
<node index="1" text="" resource-id="com.android.systemui:id/scrim_in_front" class="android.view.View" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,0][1080,2400]" drawing-order="9" hint="" />
<node index="2" text="" resource-id="" class="android.view.View" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,0][1080,2400]" drawing-order="11" hint="" />
<node index="3" text="" resource-id="com.android.systemui:id/notification_panel" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,0][1080,2400]" drawing-order="6" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/theme_background" class="android.view.View" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,0][1080,2400]" drawing-order="2" hint="" />
<node index="1" text="" resource-id="com.android.systemui:id/notification_container_parent" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,0][1080,2400]" drawing-order="10" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notification_stack_scroller" class="android.widget.ScrollView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="true" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,0][1044,2400]" drawing-order="5" hint="">
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,1634][1044,1890]" drawing-order="5" hint="">
<node index="1" text="" resource-id="com.android.systemui:id/backgroundNormal" class="android.view.View" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,1634][1044,1890]" drawing-order="1" hint="" />
<node index="2" text="" resource-id="com.android.systemui:id/expanded" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,1634][1044,1890]" drawing-order="3" hint="">
<node index="0" text="" resource-id="android:id/status_bar_latest_event_content" class="android.widget.FrameLayout" package="com.miui.msa.global" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,1634][1044,1890]" drawing-order="1" hint="">
<node index="0" text="" resource-id="android:id/notification_header" class="android.view.ViewGroup" package="com.miui.msa.global" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,1634][1044,1754]" drawing-order="1" hint="">
<node index="0" text="" resource-id="android:id/icon" class="android.widget.ImageView" package="com.miui.msa.global" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[80,1668][130,1718]" drawing-order="1" hint="" />
<node index="1" text="Shopee" resource-id="android:id/app_name_text" class="android.widget.TextView" package="com.miui.msa.global" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[146,1672][247,1713]" drawing-order="2" hint="" />
<node index="2" text="•" resource-id="android:id/time_divider" class="android.widget.TextView" package="com.miui.msa.global" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[259,1672][269,1713]" drawing-order="8" hint="" />
<node index="3" text="1 phút trước" resource-id="android:id/time" class="android.widget.TextView" package="com.miui.msa.global" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[281,1672][376,1713]" drawing-order="9" hint="" />
</node>
<node index="1" text="" resource-id="" class="android.widget.LinearLayout" package="com.miui.msa.global" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[80,1722][1000,1846]" drawing-order="3" hint="">
<node index="0" text="" resource-id="android:id/notification_main_column" class="android.widget.LinearLayout" package="com.miui.msa.global" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[80,1722][1000,1846]" drawing-order="1" hint="">
<node index="0" text="" resource-id="android:id/line1" class="android.widget.LinearLayout" package="com.miui.msa.global" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[80,1722][1000,1781]" drawing-order="1" hint="">
<node index="0" text="Đang đến gần bạn!" resource-id="android:id/title" class="android.widget.TextView" package="com.miui.msa.global" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[80,1722][1000,1781]" drawing-order="1" hint="" />
</node>
<node index="1" text="Tận hưởng dịch vụ giao hàng tận nơi độc quyền!" resource-id="android:id/text" class="android.widget.TextView" package="com.miui.msa.global" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[80,1792][1000,1846]" drawing-order="2" hint="" />
</node>
</node>
</node>
</node>
<node index="3" text="" resource-id="com.android.systemui:id/fake_shadow" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,1634][1044,1890]" drawing-order="8" hint="" />
</node>
<node index="1" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,1907][1044,2210]" drawing-order="6" hint="">
<node index="1" text="" resource-id="com.android.systemui:id/backgroundNormal" class="android.view.View" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,1907][1044,2400]" drawing-order="1" hint="" />
<node index="2" text="" resource-id="com.android.systemui:id/notification_children_container" class="android.view.ViewGroup" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,1907][1044,2400]" drawing-order="6" hint="">
<node index="0" text="" resource-id="android:id/notification_header" class="android.view.ViewGroup" package="com.shopee.vn" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,1907][1044,2053]" drawing-order="1" hint="">
<node index="0" text="" resource-id="android:id/icon" class="android.widget.ImageView" package="com.shopee.vn" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[80,1954][130,2004]" drawing-order="1" hint="" />
<node index="1" text="Shopee" resource-id="android:id/app_name_text" class="android.widget.TextView" package="com.shopee.vn" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[146,1958][247,1999]" drawing-order="2" hint="" />
<node index="2" text="•" resource-id="android:id/time_divider" class="android.widget.TextView" package="com.shopee.vn" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[259,1958][269,1999]" drawing-order="8" hint="" />
<node index="3" text="33 phút trước" resource-id="android:id/time" class="android.widget.TextView" package="com.shopee.vn" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[281,1958][349,1999]" drawing-order="9" hint="" />
<node index="4" text="" resource-id="android:id/expand_button" class="android.widget.Button" package="com.shopee.vn" content-desc="Mở rộng" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[308,1913][440,2045]" drawing-order="11" hint="" />
</node>
<node index="1" text="+4" resource-id="com.android.systemui:id/notification_text" class="android.widget.TextView" package="com.android.systemui" content-desc="Vẫn còn 4 thông báo." checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[905,2119][994,2171]" drawing-order="3" hint="" />
<node index="2" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,1995][1044,2054]" drawing-order="10" hint="">
<node index="2" text="" resource-id="com.android.systemui:id/fake_shadow" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,1995][1044,2400]" drawing-order="8" hint="" />
<node index="3" text="" resource-id="com.android.systemui:id/expanded" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,1995][1044,2400]" drawing-order="3" hint="">
<node index="0" text="" resource-id="" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,1995][1044,2054]" drawing-order="4" hint="">
<node index="0" text="VOUCHER 25% ĐỘC QUYỀN Ở ĐÂY!" resource-id="com.android.systemui:id/notification_title" class="android.widget.TextView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[80,1995][781,2054]" drawing-order="1" hint="" />
<node index="1" text="✨Tại Live Tựu Trường Hết Ý ..Thời trang giảm đến 50% ..Freeship tận tay không tốn phí ..Vào Live săn ngay!" resource-id="com.android.systemui:id/notification_text" class="android.widget.TextView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[781,1999][1000,2053]" drawing-order="2" hint="" />
</node>
</node>
</node>
<node index="3" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,2054][1044,2113]" drawing-order="9" hint="">
<node index="2" text="" resource-id="com.android.systemui:id/fake_shadow" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,2054][1044,2310]" drawing-order="8" hint="" />
<node index="3" text="" resource-id="com.android.systemui:id/expanded" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,2054][1044,2310]" drawing-order="3" hint="">
<node index="0" text="" resource-id="" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,2054][1044,2113]" drawing-order="4" hint="">
<node index="0" text="Xem Bụi leather - Đồ da cao cấp live ngay nào!" resource-id="com.android.systemui:id/notification_title" class="android.widget.TextView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[80,2054][998,2113]" drawing-order="1" hint="" />
<node index="1" text="CS_VOUCHER HỜI TRÊN LiVeSM802" resource-id="com.android.systemui:id/notification_text" class="android.widget.TextView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[998,2058][1000,2112]" drawing-order="2" hint="" />
</node>
</node>
</node>
<node index="4" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,2113][1044,2172]" drawing-order="8" hint="">
<node index="2" text="" resource-id="com.android.systemui:id/fake_shadow" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,2113][1044,2400]" drawing-order="8" hint="" />
<node index="3" text="" resource-id="com.android.systemui:id/expanded" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,2113][1044,2400]" drawing-order="3" hint="">
<node index="0" text="" resource-id="" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,2113][949,2172]" drawing-order="4" hint="">
<node index="0" text="NGÀY HỘI THÀNH VIÊN SẮP HẠ MÀN" resource-id="com.android.systemui:id/notification_title" class="android.widget.TextView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[80,2113][832,2172]" drawing-order="1" hint="" />
<node index="1" text="..Loạt deal giảm đến 50% đang vơi ..Hoàn xu đến 800K vẫn sẵn sàng ..Mã giảm đến 700K, Freeship đợi bạn ..Vài tiếng sale cuối - Tận hưởng tối đa!" resource-id="com.android.systemui:id/notification_text" class="android.widget.TextView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[832,2117][905,2171]" drawing-order="2" hint="" />
</node>
</node>
</node>
</node>
<node index="3" text="" resource-id="com.android.systemui:id/fake_shadow" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,1907][1044,2400]" drawing-order="8" hint="" />
</node>
<node index="2" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,2227][1044,2400]" drawing-order="7" hint="">
<node index="1" text="" resource-id="com.android.systemui:id/backgroundNormal" class="android.view.View" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,2227][1044,2400]" drawing-order="1" hint="" />
<node index="2" text="" resource-id="com.android.systemui:id/expanded" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,2227][1044,2400]" drawing-order="3" hint="">
<node index="0" text="" resource-id="android:id/status_bar_latest_event_content" class="android.widget.FrameLayout" package="com.miui.msa.global" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,2227][1044,2400]" drawing-order="1" hint="">
<node index="0" text="" resource-id="android:id/notification_header" class="android.view.ViewGroup" package="com.miui.msa.global" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,2227][1044,2347]" drawing-order="1" hint="">
<node index="0" text="" resource-id="android:id/icon" class="android.widget.ImageView" package="com.miui.msa.global" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[80,2261][130,2311]" drawing-order="1" hint="" />
<node index="1" text="Shopee" resource-id="android:id/app_name_text" class="android.widget.TextView" package="com.miui.msa.global" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[146,2265][247,2306]" drawing-order="2" hint="" />
<node index="2" text="•" resource-id="android:id/time_divider" class="android.widget.TextView" package="com.miui.msa.global" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[259,2265][269,2306]" drawing-order="8" hint="" />
<node index="3" text="33 phút trước" resource-id="android:id/time" class="android.widget.TextView" package="com.miui.msa.global" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[281,2265][349,2306]" drawing-order="9" hint="" />
</node>
</node>
</node>
<node index="3" text="" resource-id="com.android.systemui:id/fake_shadow" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,2227][1044,2400]" drawing-order="8" hint="" />
</node>
</node>
<node index="1" text="" resource-id="com.android.systemui:id/qs_frame" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,0][1044,2400]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/quick_settings_container" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,0][1044,1634]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/qs_content" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,0][1044,1634]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/header" class="android.widget.RelativeLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,0][1044,320]" drawing-order="2" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/header_content" class="android.widget.RelativeLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[45,0][1044,294]" drawing-order="1" hint="">
<node index="0" text="9:28" resource-id="com.android.systemui:id/big_time" class="android.widget.TextView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[45,112][266,234]" drawing-order="5" hint="" />
<node index="1" text="" resource-id="" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[947,137][1044,234]" drawing-order="6" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/notification_shade_shortcut" class="android.widget.ImageView" package="com.android.systemui" content-desc="Cài đặt" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[966,137][1044,215]" drawing-order="1" hint="" />
</node>
<node index="2" text="Th 3, 21 Thg 7" resource-id="com.android.systemui:id/date_time" class="android.widget.TextView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[47,234][270,294]" drawing-order="1" hint="" />
<node index="3" text="" resource-id="com.android.systemui:id/system_icon_area" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[270,234][1044,294]" drawing-order="4" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/system_icons" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[717,234][1044,294]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/statusIcons" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[717,234][767,294]" drawing-order="3" hint="">
<node index="0" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="Chuông báo rung." checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[717,234][767,294]" drawing-order="11" hint="" />
</node>
<node index="1" text="" resource-id="com.android.systemui:id/signal_cluster_view" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[767,236][942,292]" drawing-order="5" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/signal_cluster" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[767,236][942,292]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/vpn" class="android.widget.ImageView" package="com.android.systemui" content-desc="VPN bật." checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[767,236][830,292]" drawing-order="1" hint="" />
<node index="1" text="" resource-id="com.android.systemui:id/mobile_signal_group_1" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[830,236][884,292]" drawing-order="6" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/mobile_combo" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="4G Tín hiệu điện thoại đầy." checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[830,236][884,292]" drawing-order="1" hint="">
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[830,236][884,292]" drawing-order="6" hint="">
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[830,236][884,292]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/mobile_signal" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[830,236][884,292]" drawing-order="4" hint="" />
</node>
</node>
</node>
</node>
<node index="3" text="" resource-id="com.android.systemui:id/wifi_combo" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="Tín hiệu Wi-Fi đầy." checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[884,236][942,292]" drawing-order="14" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/wifi_signal" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[884,236][942,292]" drawing-order="1" hint="" />
<node index="1" text="" resource-id="com.android.systemui:id/wifi_inout" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[916,236][942,292]" drawing-order="3" hint="" />
</node>
</node>
</node>
<node index="2" text="" resource-id="com.android.systemui:id/battery" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[942,234][1044,294]" drawing-order="6" hint="">
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[942,236][1026,292]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/battery_image" class="android.widget.ImageView" package="com.android.systemui" content-desc="Đang sạc pin, 98 phần trăm." checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[942,236][1026,292]" drawing-order="1" hint="" />
<node index="1" text="98" resource-id="com.android.systemui:id/battery_digit" class="android.widget.TextView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[968,236][994,292]" drawing-order="3" hint="" />
</node>
<node index="1" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[1026,234][1044,294]" drawing-order="2" hint="" />
</node>
</node>
</node>
</node>
</node>
<node index="1" text="" resource-id="com.android.systemui:id/qs_container" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,320][1044,1634]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/qs_background" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,320][1044,1400]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/quick_settings_panel" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,320][1044,1300]" drawing-order="2" hint="">
<node index="0" text="" resource-id="" class="androidx.viewpager.widget.ViewPager" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="true" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,320][1044,1172]" drawing-order="1" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/tile_page" class="android.view.ViewGroup" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,320][1044,1172]" drawing-order="1" hint="">
<node index="0" text="Bật" resource-id="" class="android.widget.Switch" package="com.android.systemui" content-desc="" checkable="true" checked="true" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[48,350][294,614]" drawing-order="1" hint="">
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" visible-to-user="true" bounds="[102,383][240,521]" drawing-order="1" hint="">
<node index="0" text="" resource-id="" class="android.view.ViewGroup" package="com.android.systemui" content-desc="Dữ liệu di động,Bật,Tín hiệu điện thoại đầy." checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[102,383][240,521]" drawing-order="1" hint="">
<node index="0" text="" resource-id="android:id/icon" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[102,383][240,521]" drawing-order="1" hint="" />
</node>
</node>
<node index="1" text="" resource-id="" class="android.widget.Button" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[48,521][294,580]" drawing-order="2" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/label_group" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[54,537][288,580]" drawing-order="1" hint="">
<node index="0" text="Dữ liệu di động" resource-id="com.android.systemui:id/tile_label" class="android.widget.TextView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="true" scrollable="false" long-clickable="false" password="false" selected="true" visible-to-user="true" bounds="[63,537][278,580]" drawing-order="2" hint="" />
</node>
</node>
</node>
<node index="1" text="Bật" resource-id="" class="android.widget.Switch" package="com.android.systemui" content-desc="" checkable="true" checked="true" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[294,350][540,614]" drawing-order="2" hint="">
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" visible-to-user="true" bounds="[348,383][486,521]" drawing-order="1" hint="">
<node index="0" text="" resource-id="" class="android.view.ViewGroup" package="com.android.systemui" content-desc="Wi-Fi,Bật,Tín hiệu Wi-Fi đầy.,Wifi-Khach" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[348,383][486,521]" drawing-order="1" hint="">
<node index="0" text="" resource-id="android:id/icon" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[348,383][486,521]" drawing-order="1" hint="" />
</node>
</node>
<node index="1" text="" resource-id="" class="android.widget.Button" package="com.android.systemui" content-desc="Mở cài đặt Wi-Fi." checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" visible-to-user="true" bounds="[294,521][540,580]" drawing-order="2" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/label_group" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[300,537][534,580]" drawing-order="1" hint="">
<node index="1" text="Wifi-Khach" resource-id="com.android.systemui:id/tile_label" class="android.widget.TextView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="true" scrollable="false" long-clickable="false" password="false" selected="true" visible-to-user="true" bounds="[342,537][495,580]" drawing-order="2" hint="" />
<node index="2" text="" resource-id="com.android.systemui:id/expand_indicator" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[495,537][534,579]" drawing-order="4" hint="" />
</node>
</node>
</node>
<node index="2" text="Tắt" resource-id="" class="android.widget.Switch" package="com.android.systemui" content-desc="" checkable="true" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[540,350][786,614]" drawing-order="3" hint="">
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" visible-to-user="true" bounds="[594,383][732,521]" drawing-order="1" hint="">
<node index="0" text="" resource-id="" class="android.view.ViewGroup" package="com.android.systemui" content-desc="Đèn flash,Tắt" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[594,383][732,521]" drawing-order="1" hint="">
<node index="0" text="" resource-id="android:id/icon" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[594,383][732,521]" drawing-order="1" hint="" />
</node>
</node>
<node index="1" text="" resource-id="" class="android.widget.Button" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[540,521][786,580]" drawing-order="2" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/label_group" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[546,537][780,580]" drawing-order="1" hint="">
<node index="0" text="Đèn flash" resource-id="com.android.systemui:id/tile_label" class="android.widget.TextView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="true" scrollable="false" long-clickable="false" password="false" selected="true" visible-to-user="true" bounds="[596,537][730,580]" drawing-order="2" hint="" />
</node>
</node>
</node>
<node index="3" text="Bật" resource-id="" class="android.widget.Switch" package="com.android.systemui" content-desc="" checkable="true" checked="true" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[786,350][1032,614]" drawing-order="4" hint="">
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" visible-to-user="true" bounds="[840,383][978,521]" drawing-order="1" hint="">
<node index="0" text="" resource-id="" class="android.view.ViewGroup" package="com.android.systemui" content-desc="Tắt tiếng,Bật" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[840,383][978,521]" drawing-order="1" hint="">
<node index="0" text="" resource-id="android:id/icon" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[840,383][978,521]" drawing-order="1" hint="" />
</node>
</node>
<node index="1" text="" resource-id="" class="android.widget.Button" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[786,521][1032,580]" drawing-order="2" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/label_group" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[792,537][1026,580]" drawing-order="1" hint="">
<node index="0" text="Tắt tiếng" resource-id="com.android.systemui:id/tile_label" class="android.widget.TextView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="true" scrollable="false" long-clickable="false" password="false" selected="true" visible-to-user="true" bounds="[847,537][970,580]" drawing-order="2" hint="" />
</node>
</node>
</node>
<node index="4" text="Tắt" resource-id="" class="android.widget.Switch" package="com.android.systemui" content-desc="" checkable="true" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[48,614][294,878]" drawing-order="5" hint="">
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" visible-to-user="true" bounds="[102,647][240,785]" drawing-order="1" hint="">
<node index="0" text="" resource-id="" class="android.view.ViewGroup" package="com.android.systemui" content-desc="Chụp ảnh màn hình" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[102,647][240,785]" drawing-order="1" hint="">
<node index="0" text="" resource-id="android:id/icon" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[102,647][240,785]" drawing-order="1" hint="" />
</node>
</node>
<node index="1" text="" resource-id="" class="android.widget.Button" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[48,785][294,844]" drawing-order="2" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/label_group" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[54,801][288,844]" drawing-order="1" hint="">
<node index="0" text="Chụp ảnh màn hình" resource-id="com.android.systemui:id/tile_label" class="android.widget.TextView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="true" scrollable="false" long-clickable="false" password="false" selected="true" visible-to-user="true" bounds="[54,801][288,844]" drawing-order="2" hint="" />
</node>
</node>
</node>
<node index="5" text="Tắt" resource-id="" class="android.widget.Switch" package="com.android.systemui" content-desc="" checkable="true" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[294,614][540,878]" drawing-order="6" hint="">
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" visible-to-user="true" bounds="[348,647][486,785]" drawing-order="1" hint="">
<node index="0" text="" resource-id="" class="android.view.ViewGroup" package="com.android.systemui" content-desc="Bluetooth,Tắt" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[348,647][486,785]" drawing-order="1" hint="">
<node index="0" text="" resource-id="android:id/icon" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[348,647][486,785]" drawing-order="1" hint="" />
</node>
</node>
<node index="1" text="" resource-id="" class="android.widget.Button" package="com.android.systemui" content-desc="Mở cài đặt Bluetooth." checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" visible-to-user="true" bounds="[294,785][540,844]" drawing-order="2" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/label_group" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[300,801][534,844]" drawing-order="1" hint="">
<node index="1" text="Bluetooth" resource-id="com.android.systemui:id/tile_label" class="android.widget.TextView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="true" scrollable="false" long-clickable="false" password="false" selected="true" visible-to-user="true" bounds="[349,801][486,844]" drawing-order="2" hint="" />
<node index="2" text="" resource-id="com.android.systemui:id/expand_indicator" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[486,801][528,843]" drawing-order="4" hint="" />
</node>
</node>
</node>
<node index="6" text="Bật" resource-id="" class="android.widget.Switch" package="com.android.systemui" content-desc="" checkable="true" checked="true" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[540,614][786,878]" drawing-order="7" hint="">
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" visible-to-user="true" bounds="[594,647][732,785]" drawing-order="1" hint="">
<node index="0" text="" resource-id="" class="android.view.ViewGroup" package="com.android.systemui" content-desc="Độ sáng tự động,Bật" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[594,647][732,785]" drawing-order="1" hint="">
<node index="0" text="" resource-id="android:id/icon" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[594,647][732,785]" drawing-order="1" hint="" />
</node>
</node>
<node index="1" text="" resource-id="" class="android.widget.Button" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[540,785][786,844]" drawing-order="2" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/label_group" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[546,801][780,844]" drawing-order="1" hint="">
<node index="0" text="Độ sáng tự động" resource-id="com.android.systemui:id/tile_label" class="android.widget.TextView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="true" scrollable="false" long-clickable="false" password="false" selected="true" visible-to-user="true" bounds="[546,801][780,844]" drawing-order="2" hint="" />
</node>
</node>
</node>
<node index="7" text="Tắt" resource-id="" class="android.widget.Switch" package="com.android.systemui" content-desc="" checkable="true" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[786,614][1032,878]" drawing-order="8" hint="">
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" visible-to-user="true" bounds="[840,647][978,785]" drawing-order="1" hint="">
<node index="0" text="" resource-id="" class="android.view.ViewGroup" package="com.android.systemui" content-desc="Chế độ máy bay,Tắt" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[840,647][978,785]" drawing-order="1" hint="">
<node index="0" text="" resource-id="android:id/icon" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[840,647][978,785]" drawing-order="1" hint="" />
</node>
</node>
<node index="1" text="" resource-id="" class="android.widget.Button" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[786,785][1032,844]" drawing-order="2" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/label_group" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[792,801][1026,844]" drawing-order="1" hint="">
<node index="0" text="Chế độ máy bay" resource-id="com.android.systemui:id/tile_label" class="android.widget.TextView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="true" scrollable="false" long-clickable="false" password="false" selected="true" visible-to-user="true" bounds="[795,801][1022,844]" drawing-order="2" hint="" />
</node>
</node>
</node>
<node index="8" text="Tắt" resource-id="" class="android.widget.Switch" package="com.android.systemui" content-desc="" checkable="true" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[48,878][294,1142]" drawing-order="9" hint="">
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" visible-to-user="true" bounds="[102,911][240,1049]" drawing-order="1" hint="">
<node index="0" text="" resource-id="" class="android.view.ViewGroup" package="com.android.systemui" content-desc="Màn hình khóa" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[102,911][240,1049]" drawing-order="1" hint="">
<node index="0" text="" resource-id="android:id/icon" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[102,911][240,1049]" drawing-order="1" hint="" />
</node>
</node>
<node index="1" text="" resource-id="" class="android.widget.Button" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[48,1049][294,1108]" drawing-order="2" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/label_group" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[54,1065][288,1108]" drawing-order="1" hint="">
<node index="0" text="Màn hình khóa" resource-id="com.android.systemui:id/tile_label" class="android.widget.TextView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="true" scrollable="false" long-clickable="false" password="false" selected="true" visible-to-user="true" bounds="[66,1065][276,1108]" drawing-order="2" hint="" />
</node>
</node>
</node>
<node index="9" text="Bật" resource-id="" class="android.widget.Switch" package="com.android.systemui" content-desc="" checkable="true" checked="true" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[294,878][540,1142]" drawing-order="10" hint="">
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" visible-to-user="true" bounds="[348,911][486,1049]" drawing-order="1" hint="">
<node index="0" text="" resource-id="" class="android.view.ViewGroup" package="com.android.systemui" content-desc="Báo cáo vị trí bật." checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[348,911][486,1049]" drawing-order="1" hint="">
<node index="0" text="" resource-id="android:id/icon" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[348,911][486,1049]" drawing-order="1" hint="" />
</node>
</node>
<node index="1" text="" resource-id="" class="android.widget.Button" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[294,1049][540,1108]" drawing-order="2" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/label_group" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[300,1065][534,1108]" drawing-order="1" hint="">
<node index="0" text="Vị trí" resource-id="com.android.systemui:id/tile_label" class="android.widget.TextView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="true" scrollable="false" long-clickable="false" password="false" selected="true" visible-to-user="true" bounds="[384,1065][449,1108]" drawing-order="2" hint="" />
</node>
</node>
</node>
<node index="10" text="Bật" resource-id="" class="android.widget.Switch" package="com.android.systemui" content-desc="" checkable="true" checked="true" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[540,878][786,1142]" drawing-order="11" hint="">
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" visible-to-user="true" bounds="[594,911][732,1049]" drawing-order="1" hint="">
<node index="0" text="" resource-id="" class="android.view.ViewGroup" package="com.android.systemui" content-desc="Chế độ Chế độ chân dung,Tự động xoay màn hình" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[594,911][732,1049]" drawing-order="1" hint="">
<node index="0" text="" resource-id="android:id/icon" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[594,911][732,1049]" drawing-order="1" hint="" />
</node>
</node>
<node index="1" text="" resource-id="" class="android.widget.Button" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[540,1049][786,1108]" drawing-order="2" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/label_group" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[546,1065][780,1108]" drawing-order="1" hint="">
<node index="0" text="Khóa hướng màn hình" resource-id="com.android.systemui:id/tile_label" class="android.widget.TextView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="true" scrollable="false" long-clickable="false" password="false" selected="true" visible-to-user="true" bounds="[546,1065][780,1108]" drawing-order="2" hint="" />
</node>
</node>
</node>
<node index="11" text="Tắt" resource-id="" class="android.widget.Switch" package="com.android.systemui" content-desc="" checkable="true" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[786,878][1032,1142]" drawing-order="12" hint="">
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" visible-to-user="true" bounds="[840,911][978,1049]" drawing-order="1" hint="">
<node index="0" text="" resource-id="" class="android.view.ViewGroup" package="com.android.systemui" content-desc="Máy quét" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[840,911][978,1049]" drawing-order="1" hint="">
<node index="0" text="" resource-id="android:id/icon" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[840,911][978,1049]" drawing-order="1" hint="" />
</node>
</node>
<node index="1" text="" resource-id="" class="android.widget.Button" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[786,1049][1032,1108]" drawing-order="2" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/label_group" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[792,1065][1026,1108]" drawing-order="1" hint="">
<node index="0" text="Máy quét" resource-id="com.android.systemui:id/tile_label" class="android.widget.TextView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="true" scrollable="false" long-clickable="false" password="false" selected="true" visible-to-user="true" bounds="[843,1065][974,1108]" drawing-order="2" hint="" />
</node>
</node>
</node>
</node>
</node>
<node index="1" text="" resource-id="com.android.systemui:id/page_indicator" class="android.view.ViewGroup" package="com.android.systemui" content-desc="Trang 1/3" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[492,1172][588,1188]" drawing-order="2" hint="">
<node index="0" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[492,1172][508,1188]" drawing-order="1" hint="" />
<node index="1" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[532,1172][548,1188]" drawing-order="2" hint="" />
<node index="2" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[572,1172][588,1188]" drawing-order="3" hint="" />
</node>
<node index="2" text="" resource-id="" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[88,1200][992,1300]" drawing-order="3" hint="">
<node index="0" text="" resource-id="" class="android.view.View" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[88,1200][992,1202]" drawing-order="1" hint="" />
<node index="1" text="" resource-id="" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[88,1202][992,1300]" drawing-order="2" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/footer_icon" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[88,1224][142,1278]" drawing-order="1" hint="" />
<node index="1" text="Thiết bị đã kết nối WireGuard" resource-id="com.android.systemui:id/footer_text" class="android.widget.TextView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[154,1229][992,1272]" drawing-order="2" hint="" />
</node>
</node>
</node>
</node>
<node index="1" text="" resource-id="com.android.systemui:id/qs_footer_container" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,1300][1044,1400]" drawing-order="2" hint="">
<node index="0" text="" resource-id="" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[74,1300][1006,1400]" drawing-order="1" hint="">
<node index="0" text="" resource-id="" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[74,1300][1006,1400]" drawing-order="2" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/pie" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[74,1323][128,1377]" drawing-order="1" hint="" />
<node index="1" text="Hôm nay: 499,4KBTháng này: 57,1MB" resource-id="com.android.systemui:id/data_usage" class="android.widget.TextView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[140,1300][1006,1400]" drawing-order="2" hint="" />
</node>
<node index="1" text="" resource-id="" class="android.view.View" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[74,1300][1006,1302]" drawing-order="1" hint="" />
</node>
</node>
<node index="2" text="" resource-id="com.android.systemui:id/qs_footer_bundle" class="android.widget.LinearLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,1400][1044,1634]" drawing-order="3" hint="">
<node index="0" text="" resource-id="com.android.systemui:id/qs_brightness" class="android.widget.RelativeLayout" package="com.android.systemui" content-desc="Độ sáng màn hình" checkable="false" checked="false" clickable="false" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,1428][1044,1548]" drawing-order="1" hint="">
<node index="0" text="2755.0" resource-id="com.android.systemui:id/slider" class="android.widget.SeekBar" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[36,1428][1044,1548]" drawing-order="1" hint="" />
<node index="1" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[66,1458][126,1518]" drawing-order="2" hint="" />
<node index="2" text="" resource-id="" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[954,1458][1014,1518]" drawing-order="3" hint="" />
</node>
<node index="1" text="" resource-id="com.android.systemui:id/qs_expand_indicator" class="android.widget.ImageView" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[486,1548][594,1634]" drawing-order="2" hint="" />
</node>
</node>
</node>
</node>
</node>
<node index="2" text="" resource-id="com.android.systemui:id/dismiss_view" class="android.view.View" package="com.android.systemui" content-desc="Xóa tất cả thông báo." checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[420,1975][660,2215]" drawing-order="6" hint="" />
</node>
</node>
<node index="5" text="" resource-id="com.android.systemui:id/status_bar_container" class="android.widget.FrameLayout" package="com.android.systemui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,0][1080,102]" drawing-order="4" hint="" />
</node>
</hierarchy>
+12
View File
@@ -0,0 +1,12 @@
import os
file_path = r"c:\Users\NASPC\Documents\botAffilate\serverPython\automation.py"
with open(file_path, "r", encoding="utf-8") as f:
content = f.read()
content = "import logging\n" + content.replace("print(", "logging.info(")
with open(file_path, "w", encoding="utf-8") as f:
f.write(content)
print("Đã thay thế print thành logging.info trong automation.py")
+139
View File
@@ -0,0 +1,139 @@
const { exec } = require('child_process');
const fs = require('fs');
const path = require('path');
// Lưu ý: Cần cài đặt thư viện fast-xml-parser để phân tích XML dễ dàng hơn: npm install fast-xml-parser
const { XMLParser } = require('fast-xml-parser');
// Hàm chạy lệnh shell/adb
function runCommand(cmd) {
return new Promise((resolve, reject) => {
exec(cmd, (error, stdout, stderr) => {
if (error) {
reject(error);
} else {
resolve(stdout.trim());
}
});
});
}
// 1. Chụp màn hình và lấy cấu trúc giao diện XML từ điện thoại
async function dumpScreenUI() {
try {
console.log("Đang quét màn hình điện thoại...");
// Dump giao diện hiện tại thành file XML trên điện thoại
await runCommand('adb shell uiautomator dump /sdcard/window_dump.xml');
// Tải file XML đó về thư mục trên Armbian/máy tính
const localPath = path.join(__dirname, 'window_dump.xml');
await runCommand(`adb pull /sdcard/window_dump.xml "${localPath}"`);
console.log(`Đã tải cấu trúc màn hình về: ${localPath}`);
return localPath;
} catch (error) {
console.error("Lỗi khi dump màn hình:", error.message);
throw error;
}
}
// 2. Đọc và phân tích file XML để tìm tọa độ của chữ/nút trên màn hình
function findElementCoordinates(xmlFilePath, targetText) {
const xmlData = fs.readFileSync(xmlFilePath, 'utf8');
const parser = new XMLParser({ ignoreAttributes: false });
const jsonObj = parser.parse(xmlData);
let foundBounds = null;
// Hàm đệ quy duyệt qua toàn bộ các node XML để tìm text trùng khớp
function traverse(node) {
if (!node) return;
// Kiểm tra node hiện tại có chứa text mục tiêu không
const textAttr = node['@_text'] || '';
const descAttr = node['@_content-desc'] || '';
if (textAttr.toLowerCase().includes(targetText.toLowerCase()) ||
descAttr.toLowerCase().includes(targetText.toLowerCase())) {
foundBounds = node['@_bounds'];
return;
}
// Nếu node có các node con (node có thể là mảng hoặc object đơn lẻ)
const children = node.node;
if (children) {
if (Array.isArray(children)) {
for (let child of children) {
traverse(child);
if (foundBounds) break;
}
} else {
traverse(children);
}
}
}
// Bắt đầu duyệt từ node gốc hierarchy
if (jsonObj.hierarchy && jsonObj.hierarchy.node) {
traverse(jsonObj.hierarchy.node);
}
if (foundBounds) {
// bounds có định dạng: "[x1,y1][x2,y2]" (Ví dụ: "[100,200][300,400]")
const matches = foundBounds.match(/\[(\d+),(\d+)\]\[(\d+),(\d+)\]/);
if (matches) {
const x1 = parseInt(matches[1]);
const y1 = parseInt(matches[2]);
const x2 = parseInt(matches[3]);
const y2 = parseInt(matches[4]);
// Tính tọa độ trung tâm của phần tử để click
const centerX = Math.floor((x1 + x2) / 2);
const centerY = Math.floor((y1 + y2) / 2);
return { x: centerX, y: centerY };
}
}
return null;
}
// 3. Điều khiển điện thoại bằng ADB
async function clickAt(x, y) {
console.log(`Đang click vào tọa độ: X=${x}, Y=${y}`);
await runCommand(`adb shell input tap ${x} ${y}`);
}
async function swipe(x1, y1, x2, y2, duration = 300) {
console.log(`Đang cuộn màn hình từ (${x1}, ${y1}) tới (${x2}, ${y2})`);
await runCommand(`adb shell input swipe ${x1} ${y1} ${x2} ${y2} ${duration}`);
}
async function inputText(text) {
console.log(`Đang nhập văn bản: "${text}"`);
// Gửi text qua ADB shell (Lưu ý: ADB mặc định không hỗ trợ tiếng Việt có dấu tốt)
await runCommand(`adb shell input text "${text}"`);
}
// 4. Kịch bản chạy mẫu (Ví dụ: Tìm nút "Mua ngay" trên Shopee và click vào)
async function startAutomation() {
try {
// Bước 1: Dump giao diện hiện tại
const xmlFile = await dumpScreenUI();
// Bước 2: Tìm tọa độ của nút có chữ "Mua ngay" hoặc "Mua Với Voucher"
const coords = findElementCoordinates(xmlFile, "Mua ngay");
if (coords) {
console.log(`Đã tìm thấy phần tử tại tọa độ:`, coords);
// Bước 3: Click vào phần tử đó
await clickAt(coords.x, coords.y);
} else {
console.log("Không tìm thấy chữ 'Mua ngay' trên màn hình hiện tại.");
// Thử cuộn màn hình xuống nếu không thấy
await swipe(500, 1500, 500, 500);
}
} catch (error) {
console.error("Lỗi kịch bản:", error);
}
}
// Chạy thử nghiệm
startAutomation();
Binary file not shown.

After

Width:  |  Height:  |  Size: 337 KiB

-53
View File
@@ -1,53 +0,0 @@
[
{
"message": {
"type": 1,
"data": {
"actionId": "13593331124451",
"msgId": "8053568045365",
"cliMsgId": "1784291715396",
"msgType": "chat.recommended",
"uidFrom": "1934774705109471677",
"idTo": "1435552796197334408",
"dName": "Hiển Phan",
"ts": "1784291715456",
"status": 1,
"content": {
"title": "https://vn.shp.ee/rv4j1m3f?smtt=0.0.9",
"description": "Thùng Máy Fujitsu SFF Đồng Bộ Zin Tháo Máy -Chỉ Main Case Nguồn Không CPU RAM SSD - Bảo Hành 3 Tháng | 0 likes , watch @ext20vi1bj's video in Shopee Video",
"href": "https://vn.shp.ee/rv4j1m3f?smtt=0.0.9",
"thumb": "",
"childnumber": 0,
"action": "recommened.link",
"params": "{\"redirect_url\":\"\",\"src\":\"vn.shp.ee\",\"mediaTitle\":\"ext20vi1bj on Shopee Video\",\"streamUrl\":\"\",\"type\":0,\"linkType\":0,\"artist\":\"\",\"count\":\"\",\"stream_icon\":\"\",\"mediaId\":\"\",\"video_duration\":0,\"arid\":0,\"href\":\"https:\\/\\/vn.shp.ee\\/rv4j1m3f?smtt=0.0.9\",\"tType\":1,\"tWidth\":0,\"tHeight\":0,\"icon\":\"https:\\/\\/deo.shopeemobile.com\\/shopee\\/shopee-pcmall-live-sg\\/assets\\/icon_favicon_1_96.wI1aMs.png\",\"thumb_src_type\":1}",
"type": ""
},
"notify": "1",
"ttl": 0,
"userId": "0",
"uin": "0",
"topOut": "0",
"topOutTimeOut": "0",
"topOutImprTimeOut": "0",
"propertyExt": {
"color": -1,
"size": -1,
"type": -1,
"subType": 0,
"ext": "{\"sSrcType\":-1,\"sSrcStr\":\"\",\"msg_warning_type\":0,\"emoji\":{\"content\":0,\"num\":0,\"uniq\":0,\"first\":\"\",\"last\":\"\",\"most\":\"\",\"text\":1}}"
},
"paramsExt": {
"countUnread": 1,
"containType": 0,
"platformType": 0
},
"cmd": 521,
"st": 3,
"at": 0,
"realMsgId": "0"
},
"threadId": "1435552796197334408",
"isSelf": true
}
}
]