Ver Mensaje Individual
  #1  
Viejo 05/07/15, 16:10:18
Avatar de MorSerNa
MorSerNa MorSerNa no está en línea
Miembro del foro
Mensajes: 478
 
Fecha de registro: feb 2015
Mensajes: 478
Modelo de smartphone: Huawei G510
Versión de ROM: SlimLP+
Tu operador: Yoigo
Mencionado: 6 comentarios
Tagged: 2 hilos
Modificar SystemUI al estilo Lollipop



¡ Hola HTCManíacos !
En éste tutorial, de manera eficiente, conseguiremos una apariencia al mas puro estilo android 5.0 lollipop modificando una tira de archivos en la aplicación " SystemUI " .

.: F.A.Q ( Frequent asked questions ) :.

. ¿ En que versiones de Android funciona ?

- Funciona en las siguientes versiones de Android :
- Android 4.1.X - 4.3.X Jelly Bean .
- Android 4.4.X Kit Kat ( Aún por confirmar ) [Confirmado por el compi JBC_Dev]

. ¿ Que teléfono se debe tener para realizar la guía ?

- No es una guía para un modelo en concreto, pero
recomiendo encarecidamente éstos modelos :
Un modelo dotado de procesador MediaTek .
Un modelo dotado de la skin TouchWiz ( Samsung's ) .
Un modelo dotado de Android puro ( AOSP ) .
O en su defecto, usted puede probar en otros OS's
Por ejemplo : EMUI ( Huawei ) o MIUI ( XIAOMI ) .

. ¿ Puede brickear ésto mi teléfono ?

- No necesariamente si se hace todo correctamente,
Recomendamos encarecidamente, tener un backup por si algo falla .

.: PreRequisitos :.
. SystemUI.apk ( Localizado en /system/priv-app o /system/app ) de nuestra ROM ¡ ATENCIÓN ! : Nuestra ROM debe ser deodexada, si en /system/app, observamos archivos .odex, deberás deodexearlo con alguna herramienta como dxidsa
. Si realizamos la guía para un dispositivo con procesador MediaTek, necesitaremos los archivos framework-res.apk y mediatek-res.apk localizados en /system/framework . ¡ ATENCIÓN ! Si falta alguno de los archivos previamente mencionados, no pasa nada, prosiga con la guía .
. Si realizamos la guía para un dispositivo dotado de TouchWiz ( Véase dispositivos Samsung ) necesitaremos los archivos tw-framework-res.apk y el archivo framework-res.apk localizados en /system/framework . ¡ ATENCIÓN ! Si falta alguno de los archivos previamente mencionados, no pasa nada, prosiga con la guía .
. APK_Tool 1.5.2 ( Versiones mas nuevas, dan errores con los archivos " .smali ", este es el que yo use http://foro.root4ever.com/Tema-Tutor...-s-WINDOWS-307 )
. Archivos encontrados en el post .
. SentidoComún.apk y Cerebro.jar, no, ¡ Solo bromeaba ! .

Resultado

(Click para mostrar/ocultar)




Una vez tengamos el Apk Tool configurado ya podemos empezar a editar el SystemUI.
Para ello, debemos descompilar el SystemUI de nuestro terminal (El enlace del Apk Tool os lo explica perfectamente, pero bueno, cualquier cosa avisadme)

Una vez que tengamos el SystemUI descompilado, empezaremos a editarlo.


Ahora nos dirigimos a la carpeta values y buscamos el archivo colors.xml
Justo debajo de <resources> añadimos los siguientes colores:
Código:
<color name="ani_quickpanel_text_color_ing">#ff75899b</color>
<color name="ani_quickpanel_text_color_off">#ff999fa4</color>
<color name="ani_quickpanel_text_color_on">#ffffffff</color>
En esta misma carpeta buscamos el archivo ids.xml y justo debajo de <resources> pegamos el siguiente codigo:
Código:
<item type="id" name="ani_quickpanel_wifi_btn_icon">false</item>
<item type="id" name="ani_quickpanel_bluetooth_btn_icon">false</item>
<item type="id" name="ani_quickpanel_gps_btn_icon">false</item>
<item type="id" name="ani_quickpanel_data_btn_icon">false</item>
<item type="id" name="ani_quickpanel_sync_btn_icon">false</item>
<item type="id" name="ani_quickpanel_rotate_btn_icon">false</item>
<item type="id" name="ani_quickpanel_sound_btn_icon">false</item>
<item type="id" name="ani_quickpanel_vibrate_btn_icon">false</item>
<item type="id"  name="ani_quickpanel_quick_settings">false</item>
Por ultimo buscamos el archivo strings.xml y justo debajo de <resources> pegamos el siguiente código:
Código:
<string name="ani_quickpanel_wifi_text">Wi-Fi</string>
<string name="ani_quickpanel_bluetooth_text">Bluetooth</string>
<string name="ani_quickpanel_gps_text">GPS</string>
<string name="ani_quickpanel_data_text">Data</string>
<string name="ani_quickpanel_sync_text">Auto\nSync</string>
<string name="ani_quickpanel_rotate_text">Auto\nRotation</string>
<string name="ani_quickpanel_sound_text">Sound</string>
<string  name="ani_quickpanel_vibrate_text">Vibration</string>
Ahora necesitamos meter en estas carpetas algunos archivos:
http://www.mediafire.com/download/5k...raLollipop.rar
Meted cada archivo en su respectiva carpeta.

Ahora compilamos y si todo ha funcionado correctamente volvemos a descompilar.
Esta parte es la más aburrida de todas, pero bueno, tendrá su recompensa

Debemos dirigirnos a la carpeta values y abrir el archivo public.xml.
También nos dirigimos a smali\com\mda\Ltoggle\AutoRotationSetting Button.smali.
Abrimos estos dos archivos y comparamos las ids públicas.
Código:
Line 98:     const v3, 0x7f090168<public type="id" name="ani_quickpanel_rotate_btn_icon"  
Line 130:    const v1, 0x7f02026b<public type="drawable" name="ani_quickpanel_icon_rotate_on"   
Line 133:    const v4, 0x7f0a0010<public type="color" name="ani_quickpanel_text_color_on"   
Line 139:    const v1, 0x7f02026a<public type="drawable" name="ani_quickpanel_icon_rotate_off"   
Line 142:    const v4, 0x7f0a000f<public type="color" name="ani_quickpanel_text_color_off"   
Line 312:    const v0, 0x7f0c01bb<public type="string"  name="ani_quickpanel_rotate_text"
¿Cómo se hace esto? Muy fácil pero muy largo.
Buscamos en el archivo public.xml <public type="id" name="ani_quickpanel_rotate_btn_icon". Justo al lado aparecerá : id="0x000000"
Debemos copiar esa ID, una vez copiada nos dirigimos al archivo .smali y en la linea que nos indica, cambiamos ese "0x00000" por el nuevo "0x00000".

Una vez hecho con todas las lineas, toca hacerlo con los demás smiles.
Abrimos smali\com\mda\Ltoggle\BluetoothSettingButton.smali y comparamos las ids:
Código:
Line 146:     const v3, 0x7f090164<public type="id" name="ani_quickpanel_bluetooth_btn_icon"   
Line 178:     const v1, 0x7f020263<public type="drawable" name="ani_quickpanel_icon_bluetooth_on"   
Line 181:     const v4, 0x7f0a0010<public type="color" name="ani_quickpanel_text_color_on"   
Line 187:     const v1, 0x7f020262<public type="drawable" name="ani_quickpanel_icon_bluetooth_off"   
Line 190:     const v4, 0x7f0a000f<public type="color" name="ani_quickpanel_text_color_off"   
Line 196:     const v1, 0x7f020261<public type="drawable" name="ani_quickpanel_icon_bluetooth_ing"   
Line 199:     const v4, 0x7f0a000e<public type="color" name="ani_quickpanel_text_color_ing"   
Line 477:     const v0, 0x7f0c011e<public type="string" name="ani_quickpanel_bluetooth_text"
Abrimos SystemUI\smali\com\mda\Ltoggle\GpsSettingButton.sm ali y comparamos.

Código:
Line 98:     const v3, 0x7f090165<public type="id" name="ani_quickpanel_gps_btn_icon"   
Line 130:    const v1, 0x7f020267<public type="drawable" name="ani_quickpanel_icon_gps_on"   
Line 133:    const v4, 0x7f0a0010<public type="color" name="ani_quickpanel_text_color_on"   
Line 139:    const v1, 0x7f020266<public type="drawable" name="ani_quickpanel_icon_gps_off"   
Line 142:    const v4, 0x7f0a000f<public type="color" name="ani_quickpanel_text_color_off"   
Line 312:    const v0, 0x7f0c011f<public type="string" name="ani_quickpanel_gps_text"
Abrimos SystemUI\smali\com\mda\Ltoggle\MobileDataSettingBu tton.smali y comparamos:

Código:
Line 142:     const v3, 0x7f090166<public type="id" name="ani_quickpanel_data_btn_icon"   
Line 174:     const v1, 0x7f020265<public type="drawable" name="ani_quickpanel_icon_data_on"   
Line 177:     const v4, 0x7f0a0010<public type="color" name="ani_quickpanel_text_color_on"   
Line 183:     const v1, 0x7f020264<public type="drawable" name="ani_quickpanel_icon_data_off"   
Line 186:     const v4, 0x7f0a000f<public type="color" name="ani_quickpanel_text_color_off"   
Line 433:     const v0, 0x7f0c01ba<public type="string" name="ani_quickpanel_data_text"
Abrimos SystemUI\smali\com\mda\Ltoggle\SoundSettingButton. smali y comparamos:

Código:
Line 127:     const v3, 0x7f090169<public type="id" name="ani_quickpanel_sound_btn_icon"   
Line 159:     const v1, 0x7f02026d<public type="drawable" name="ani_quickpanel_icon_sound_on"   
Line 162:     const v4, 0x7f0a0010<public type="color" name="ani_quickpanel_text_color_on"   
Line 168:     const v1, 0x7f02026c<public type="drawable" name="ani_quickpanel_icon_sound_off"   
Line 171:     const v4, 0x7f0a000f<public type="color" name="ani_quickpanel_text_color_off"   
Line 478:     const v0, 0x7f0c01bc<public type="string" name="ani_quickpanel_sound_text"
Abrimos SystemUI\smali\com\mda\Ltoggle\SyncSettingButton.s mali y comparamos:

Line 103: const v3, 0x7f090167<public type="id" name="ani_quickpanel_sync_btn_icon"
Line 135: const v1, 0x7f02026f<public type="drawable" name="ani_quickpanel_icon_sync_on"
Line 138: const v4, 0x7f0a0010<public type="color" name="ani_quickpanel_text_color_on"
Line 144: const v1, 0x7f02026e<public type="drawable" name="ani_quickpanel_icon_sync_off"
Line 147: const v4, 0x7f0a000f<public type="color" name="ani_quickpanel_text_color_off"
Line 315: const v0, 0x7f0c0129<public type="string" name="ani_quickpanel_sync_text"

Abrimos SystemUI\smali\com\mda\Ltoggle\VibrateSettingButto n.smali y comparamos:

Line 157: const v3, 0x7f09016a<public type="id" name="ani_quickpanel_vibrate_btn_icon"
Line 189: const v1, 0x7f020271<public type="drawable" name="ani_quickpanel_icon_vibrate_on"
Line 192: const v4, 0x7f0a0010<public type="color" name="ani_quickpanel_text_color_on"
Line 198: const v1, 0x7f020270<public type="drawable" name="ani_quickpanel_icon_vibrate_off"
Line 201: const v4, 0x7f0a000f<public type="color" name="ani_quickpanel_text_color_off"
Line 330: const v0, 0x7f0c01bd<public type="string" name="ani_quickpanel_vibrate_text"

Abrimos SystemUI\smali\com\mda\Ltoggle\WifiSettingButton.s mali y comparamos.

Código:
Line 90:     const v3, 0x7f090163<public type="id" name="ani_quickpanel_wifi_btn_icon"   
Line 122:     const v1, 0x7f020274<public type="drawable" name="ani_quickpanel_icon_wifi_on"   
Line 125:     const v4, 0x7f0a0010<public type="color" name="ani_quickpanel_text_color_on"   
Line 131:     const v1, 0x7f020273<public type="drawable" name="ani_quickpanel_icon_wifi_off"   
Line 134:     const v4, 0x7f0a000f<public type="color" name="ani_quickpanel_text_color_off"   
Line 140:     const v1, 0x7f020272<public type="drawable" name="ani_quickpanel_icon_wifi_ing"   
Line 143:     const v4, 0x7f0a000e<public type="color" name="ani_quickpanel_text_color_ing"   
Line 415:     const v0, 0x7f0c011d<public type="string"  name="ani_quickpanel_wifi_text"
Una vez aqui, lo más largo ya esta hecho !!!!
Ahora debemos guardar todo y recompilar.
Si ahora lo probais obtendreis algo así, pero el tutorial continua:
(Click para mostrar/ocultar)

Ya se parece bastante, pero faltan muchas cosas ¿verdad?
Pues vamos a ello.

Lo siguiente será añadir el control de brillo, para hacer esto es muy fácil:
Descargamos los siguientes archivos: http://www.mediafire.com/download/a5...Brightness.zip

Pasamos cada archivo a su respectiva carpeta. (EASY)
Debemos dirigirnos a la carpeta values y abrir el archivo public.xml.
Buscamos el siguiente código y copiamos su id. (Podeis copiarla en un bloc de notas)
Código:
name="progress_horizontal
Buscamos el siguiente código y copiamos su id. (Podeis copiarla en un bloc de notas)
Código:
name="thumb
Ahora nos dijirmos a smali/in/jmkl/dcsms/statusbargreper y abrimos SlideBrightness.smali
Una vez aquí, buscamos el código 0x7f0200e9 y lo remplazamos por la id del progress_horizontal.
Tambien buscamos el código 0x7f0200ea y lo remplazamos por el de thumb.
Guardamos el smali.
Ahora vamos a res>layout>ani_toggle_mda.xml
Buscamos esta línea:
Código:
<LinearLayout android:gravity="center_vertical"  android:orientation="horizontal" android:layout_width="fill_parent"  android:layout_height="100.0dip">
Y justo encima pegamos esta otra:
Código:
<LinearLayout android:gravity="center"  android:orientation="horizontal" android:background="#ff243137"  android:paddingLeft="15.0dip" android:paddingTop="1.0dip"  android:paddingRight="15.0dip" android:paddingBottom="1.0dip"  android:layout_width="fill_parent" android:layout_height="45.0dip">
            <in.jmkl.dcsms.statusbargreper.SlideBrightness  android:gravity="center" android:layout_width="fill_parent"  android:layout_height="wrap_content" />
        </LinearLayout>
Con esto y un bizcocho ya tenemos la barra de control de brillo.
Compilamos y para seguir sin errores volvemos a descompilar
Ahora nos falta esto:
(Click para mostrar/ocultar)


Asi que vamos a ello.
Descargamos el siguiente zip http://www.mediafire.com/download/u9...r.9%282%29.zip
Dentro se encuentra una imagen, la arrastramos hasta resdrawable-hdpi drawable-mdpi o drawable-xxhdpi (Mi carpeta por defecto es resdrawable-hdpi).
Nos dirijimos a status_bar_expanded_header.xml
En la segunda linea de este .xml buscamos:
Código:
android:background="blablabla"
Y lo cambiamos por:
Código:
android:background="@drawable/l_header"
Buscamos el resto de los android:background="blalblablal" y los cambiamos por android:background="#00000000", obviamente si cambiar el de la segunda linea.

Y ahora en res>values>dimens.xml buscamos:
Código:
<dimen name="notification_panel_header_height">48.0dip</dimen>
y el 48.00dip lo cambiamos por 96.00dip.

PD: El siguiente paso solo lo pueden hacer algunos, pero si no lo podeis hacer no pasa nada.

Nos dirigimos a res>layout>flip_settings.xml buscamos esta línea:
Código:
<com.android.systemui.statusbar.phone.QuickSettingsContainerView  android:id="@id/quick_settings_container"  android:layout_width="fill_parent" android:layout_height="wrap_content"  android:animateLayoutChanges="true"  android:columnCount="@integer/quick_settings_num_columns" />
y la cambiamos por esta otra:
Código:
<include layout="@layout/ani_toggle_mda" />
Nos dirigimos a la carpeta res>layout y buscamos el archivo status_bar_expanded.xml / tw_status_bar_expanded.xml

Buscamos la línea:
Código:
<include layout="@layout/ani_toggle_mda" />
y la eliminamos.
Y ahora si, compilamos, firmamos y probamos en el móvil con permisos 644.

Cualquier error, adjuntar el log que os genera el APK Tool

Graaacias por leer ^^

Créditos:
Aniruddha_Pathak (XDA Forum)
http://themerspoint.blogspot.in (Blog)
Todos los miembros de esPCializados ( http://www.espcializados.es )
Subham Kumar (Amigo)
A todos los compañeros de DarkSideTeam, que me ayudaron hasta el final ^^
JBC_Dev, haciendo así, que la guía sea más entendible

PARTE II. Añadir iconos en el header

(Click para mostrar/ocultar)


Para ello descargaremos los siguientes archivos:
~~ http://www.mediafire.com/download/qt...lis%282%29.zip
~~ http://www.mediafire.com/download/z9.../Resources.rar

Buscamos la siguiente linea en status_bar_expanded_header.xml[MTK] / tw_status_bar_expanded_header.xml[TouchWiz]

<Space android:layout_width="0.0dip" android:layout_height="0.0dip" android:layout_weight="1.0" />
Y justo debajo copiamos esto:

Código:
<LinearLayout android:gravity="right|center" android:orientation="horizontal" android:paddingLeft="30.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1.0" android:layout_alignParentRight="true">
        <com.fmd.icons.BluetoothIcon android:paddingRight="5.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" />
        <com.fmd.icons.AlarmIcon android:paddingRight="5.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" />
        <com.fmd.icons.WifiIcon android:paddingRight="5.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" />
        <com.fmd.btn.LBatteryBar android:layout_width="wrap_content" android:layout_height="wrap_content" />
        <ImageView android:paddingLeft="5.0dip" android:layout_width="32.0dip" android:layout_height="32.0dip" android:src="@drawable/user_tamvan" />
        <FrameLayout android:id="@id/settings_button_holder" android:paddingTop="10.0dip" android:layout_width="50.0dip" android:layout_height="50.0dip" android:layout_marginLeft="12.0dip">
            <ImageView android:id="@id/settings_button" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_notify_settings" android:scaleType="center" android:contentDescription="@string/accessibility_desc_quick_settings" />
            <ImageView android:id="@id/notification_button" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_notify_settings" android:scaleType="center" android:contentDescription="@string/accessibility_notifications_button" />
        </FrameLayout>
Debemos de eliminar las siguientes lineas :
(Click para mostrar/ocultar)


Es decir, el ultimo grupo de FrameLayout.
Añadimos los archivos descargados en cada una de las carpetas que se indican.
Compilamos y volvemos a compilar.

Ahora vamos a res/values/public.xml
Buscamos
<public type="drawable" name="stat_sys_battery_charge"y copiamos su id.
Nos dirigimos a res/smali/com/fmd/btn/LBatteryBar$1.smali
Buscamos por:
0x7f020145
y lo remplazamos por la id de public.xml.

Ahora hacemos lo mismo pero con:
<public type="drawable" name="stat_sys_battery"

0x7f02013c
Guardamos, compilamos y probamos.

PARTE III. Añadir márgenes [TW][MTK]

Los margenes a los que me refiero son estos:
(Click para mostrar/ocultar)


Resultado:
(Click para mostrar/ocultar)


Si tu archivo .xml del es tw_status_bar_expanded.xml:

Vamos a abrir el archivo res/layout/tw_status_bar_expanded.xml, y en la segunda linea buscamos esto:
Código:
android:paddingTop="@dimen/notification_panel_padding_top"
Lo remplazamos por el siguiente código:
Código:
android:paddingLeft="0.0dip" android:paddingTop="0.0dip" android:paddingBottom="0.0dip" android:paddingRight="0.0dip"
Donde pone 0.0dip debemos elegir cuanto de largo será el margen (creo que medida estandar son 4.5)

Si tu archivo .xml es status_bar_expanded.xml :
Vamos a abrir el archivo res/layout/status_bar_expanded.xml, y en la segunda linea buscamos esto:
Código:
<com.android.systemui.statusbar.phone.NotificationPanelView android:id="@id/notification_panel"
De seguido pegamos el siguiente código:
Código:
android:paddingLeft="5.0dip" android:paddingRight="5.0dip" android:layout_marginStart="5.0dip" android:layout_marginEnd="5.0dip"
En el mismo .xml buscamos:
Código:
<LinearLayout android:orientation="vertical"
De seguido pegamos el siguiente código:
Código:
 android:layout_marginStart="5.0dip" android:layout_marginEnd="5.0dip"
En mi móvil (HUAWEI G510), se ve mejor con 6.5dip en vez de 5.0dip. A vuestro gusto ^^

PARTE IV. Añadir funcion a los iconos del header

Hoy veremos cómo añadir función a los iconos añadidos en la Parte II.

Para esto nos dirijimos a status_bar_expanded_header.xml y buscamos esta linea:

Código:
<com.fmd.icons.WifiIcon android:paddingRight="5.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content"
Justo después añadimos este código:

Código:
android:onClick="FMDWifi"
¿Qué significa esto? Que al dar click se ejecute la funcion FMDWifi. ¿Dónde programamos la función? En smali\com\android\systemui
\SystemUIService.smali
Vamos a este smali y buscamos por:
Código:
# virtual methods
Justo debajo añadimos este código:


Código:
     .method public FMDWifi(Landroid/view/View;)V
     .locals 3
     .parameter "v"

     .prologue
     .line 2431
     new-instance v0, Landroid/content/Intent;

     invoke-direct {v0}, Landroid/content/Intent;-><init>()V

     .line 2432
     const-string v1, "com.android.settings"

     const-string v2, "com.android.settings.wifi.WifiSettings"

     invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;

     const/high16 v2, 0x1000

     invoke-virtual {v0, v2}, Landroid/content/Intent;->setFlags(I)Landroid/content/Intent;

     move-result-object v0

     .line 2433
     invoke-virtual {p0, v0}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V

     const-string v1, "statusbar"

     invoke-virtual {p0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;

     move-result-object v0

     check-cast v0, Landroid/app/StatusBarManager;

     invoke-virtual {v0}, Landroid/app/StatusBarManager;->collapsePanels()V

     .line 1720
     return-void
 .end method
DEBEIS DE DEJAR UN ESPACIO ENTRE EL ULTIMO .end method Y SIGUIENTE .method public, dejandolo así:

(Click para mostrar/ocultar)


Como veis, al principio del código invocamos la funcion FMDWifi.
Si bajamos en este codigo veremos const-string v1 y const-string v2
const-string v1 es la aplicacion que hay que abrir y const-string v2 es el intent, en este caso el apartado de WiFi.

Ya tenemos el del Wifi, hagamos el de la batería.

Para esto nos dirijimos a status_bar_expanded_header.xml y buscamos esta linea:
Código:
<com.fmd.btn.LBatteryBar android:layout_width="wrap_content" android:layout_height="wrap_content"
De seguido añadimos
Código:
android:onClick="FMDBateria"


Vamos a smali\com\android\systemui\SystemUIService.smali y buscamos por:
Código:
# virtual methods
Justo debajo añadimos este código:


Código:
.method public FMDBateria(Landroid/view/View;)V
     .locals 3
     .parameter "v"

     .prologue
     .line 2431
     new-instance v0, Landroid/content/Intent;

     invoke-direct {v0}, Landroid/content/Intent;-><init>()V

     .line 2432
     const-string v1, "com.android.settings"

     const-string v2, "com.android.settings.fuelgauge.PowerUsageSummary"

     invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;

     const/high16 v2, 0x1000

     invoke-virtual {v0, v2}, Landroid/content/Intent;->setFlags(I)Landroid/content/Intent;

     move-result-object v0

     .line 2433
     invoke-virtual {p0, v0}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V

     const-string v1, "statusbar"

     invoke-virtual {p0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;

     move-result-object v0

     check-cast v0, Landroid/app/StatusBarManager;

     invoke-virtual {v0}, Landroid/app/StatusBarManager;->collapsePanels()V

     .line 1720
     return-void
 .end method
¡¡DEJANDO EL RESPECTIVO ESPACIO ENTRE METODOS!!

Se guarda, se compila y listo. Si quereis añadir alguno más, ya sabeis como se hace.


PARTE V. Cambiar iconos de QS
Esta parte esta dirijida a lo estetico, para que se parezca aún más a Lolipop
Descargamos el siguiente zip y lo descomprimimos en drawable-hdpi (Donde todos los iconos).
http://www.mediafire.com/download/hw...nsLollipop.rar
Remplazamos todos los iconos y ya está, ya tenemos una apariencia más lolliponiana
Se compila y listo.
Nos vemos !
PARTE VI. Añadir nombre Wi-Fi
Para añadir el nombre de la wifi a la que estamos conectada debemos descargar los siguientes smali y guardarlo en su respectiva carpeta
http://www.mediafire.com/download/39...w/WifiName.rar
Una vez colocado en cada sitio nos dirijimos a /res/layout/ani_toggle_mda.xml
Buscamos la siguiente línea
Código:
<com.mda.Ltoggle.WifiSettingButton android:textSize="12.0dip" android:gravity="bottom|center" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginBottom="20.0px" android:text="@string/ani_quickpanel_wifi_text" />
Y eliminamos la ultima parte (
android:text="@string/ani_quickpanel_wifi_text")
Justo debajo de esa linea, añadimos esta otra:
Código:
<com.fmd.str.getWifiName android:gravity="center" android:layout_gravity="center" android:paddingTop="50.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/TextAppearance.QuickSettings.Toggle" />
Y como siempre, guardamos, compilamos y listo
Saludos :^^



Última edición por MorSerNa Día 21/07/15 a las 15:14:13
Responder Con Cita
Los siguientes 6 usuarios han agradecido a MorSerNa su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]