ROMs y desarrollo Samsung Galaxy Note II GT-N7100 ROMs y desarrollo Samsung Galaxy Note II modelo GT-N7100

Respuesta
 
Herramientas
  #441  
Viejo 30/08/15, 11:20:28
Array

[xs_avatar]
josete_1976 josete_1976 no está en línea
Betatester oficial
 
Fecha de registro: may 2013
Localización: Zaragoza
Mensajes: 1,531
Modelo de smartphone: Samsung NoteII
Tu operador: Movistar
 Cita: Originalmente Escrito por dav88 Ver Mensaje
Buenas,

Josete ya tengo quitada la linea, vi como redondear las esquinas de las notis. Peeeeeeero el separar las notificaciones como que no las pillo tiu.



A ver si esta noche tengo un rato

Salu2

Enviado desde mi SM-N910F mediante Tapatalk
Bueno, pues mirando mirando, ya se el porque jejejej

EL quitar la línea esa separadora de las notificaciones, no había que tocar nada de código, tan solo era un png (notification_bottom_line.png) mira que estaba aparente eh!??

Si pones ese png en trasparente, adios línea. Y la separación de las notis, pues cambias ese png, por el .9.png del systemui lollipop, y ya tienes la separación. Pero aún así sigue sin aparecer la separación.
Y porque no sale la separación? pues por lo mismo de siempre, porque el mod pinta toda la parte de atrás del layout, y ese espacio tambien lo pinta.

Si el mod pones el color en trasparente, y en status_bar_notification_row.xml, le pones el background de un color (quitas el drawable que hay para el selector y le pones directamente un color android:background="#ffff0000" que es rojo), ya te sale la separación entre las notis.



He intentado pintar solo ese background, cambiando el metodo .method private aplica_fondo_notificaciones()V del phoneStatusBar.smalii, que es el que pinta las notis de la cortina.

Antes estaba así:

Código:
.method private aplica_fondo_notificaciones()V
    .locals 3

    iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPile:Lcom/android/systemui/statusbar/policy/NotificationRowLayout;

    sget v1, Lcom/android/systemui/statusbar/GrxAjustes;->mGrxColorFondoNototificaciones:I

    invoke-virtual {v0, v1}, Landroid/view/View;->setBackgroundColor(I)V

    return-void
.end method
Y lo he puesto así:

Código:
.method private aplica_fondo_notificaciones()V
    .locals 4

    iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPile:Lcom/android/systemui/statusbar/policy/NotificationRowLayout;

    const v1, 0x7f080106

    invoke-virtual {v0, v1}, Lcom/android/systemui/statusbar/phone/StatusBarWindowView;->findViewById(I)Landroid/view/View;

    move-result-object v2

    if-eqz v2, :cond_0

    check-cast v2, Landroid/view/ViewGroup;

    sget v3, Lcom/android/systemui/statusbar/GrxAjustes;->mGrxColorFondoNototificaciones:I

    invoke-virtual {v2, v3}, Landroid/view/ViewGroup;->setBackgroundColor(I)V

    :cond_0
    return-void
.end method

Con ésto le digo que pinte el id que tiene ese background, que es el id del android:id="@id/content" del status_bar_notification_row.xml, así que ese background que habíamos puesto antes en rojo (#ffff0000), ahora lo ponemos transparente (android:background="#00000000" )

Pero cuando aparece una notificación no lee ese id, así que no lo pinta



Así que para que pinte ese id cuando aparece una noti, en el metodo .method private loadNotificationShade()V en PhoneStatusBar.smali, le metemos al inicio estas líneas en negrita

Código:
.method private loadNotificationShade()V
    .locals 21

    move-object/from16 v0, p0

    invoke-direct {v0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->aplica_fondo_notificaciones()V

    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPile:Lcom/android/systemui/statusbar/policy/NotificationRowLayout;

    move-object/from16 v19, v0

    if-nez v19, :cond_0

    :goto_0
    return-void
Y ya con eso, primero lee el metodo que pinta el fondo y luego ya lee si hay o no notificación y sale pintada.

Pero no va bien, pinta la primera noti pero la siguiente que sale ya la lee transparente, y cuando eliminas la primera, pinta la otra, y hace cosas raras... no las pinta como debe.



Ya no se si es que no esta bien hecho (que será seguramente eso) y faltará iniciar el metodo en algun otro sitio o de alguna otra forma para que las pinte siempre, o igual no se puede porque solo pinta un id o yo que se... pero esto me supera porque ya no le encuentro más lógica jejeje.

Así que, o entra en acción alguien más, o se queda tal cual lo teníamos.
__________________

Última edición por josete_1976 Día 30/08/15 a las 11:23:58.
Responder Con Cita
Gracias de parte de:


  #442  
Viejo 30/08/15, 11:48:02
Array

[xs_avatar]
dav88 dav88 no está en línea
Betatester oficial
 
Fecha de registro: may 2012
Localización: S/C De Tenerife
Mensajes: 1,879
Modelo de smartphone: GALAXY S7 EDGE
Tu operador: Pepephone
 Cita: Originalmente Escrito por josete_1976 Ver Mensaje
Bueno, pues mirando mirando, ya se el porque jejejej

EL quitar la línea esa separadora de las notificaciones, no había que tocar nada de código, tan solo era un png (notification_bottom_line.png) mira que estaba aparente eh!??

Si pones ese png en trasparente, adios línea. Y la separación de las notis, pues cambias ese png, por el .9.png del systemui lollipop, y ya tienes la separación. Pero aún así sigue sin aparecer la separación.
Y porque no sale la separación? pues por lo mismo de siempre, porque el mod pinta toda la parte de atrás del layout, y ese espacio tambien lo pinta.

Si el mod pones el color en trasparente, y en status_bar_notification_row.xml, le pones el background de un color (quitas el drawable que hay para el selector y le pones directamente un color android:background="#ffff0000" que es rojo), ya te sale la separación entre las notis.



He intentado pintar solo ese background, cambiando el metodo .method private aplica_fondo_notificaciones()V del phoneStatusBar.smalii, que es el que pinta las notis de la cortina.

Antes estaba así:

Código:
.method private aplica_fondo_notificaciones()V
    .locals 3

    iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPile:Lcom/android/systemui/statusbar/policy/NotificationRowLayout;

    sget v1, Lcom/android/systemui/statusbar/GrxAjustes;->mGrxColorFondoNototificaciones:I

    invoke-virtual {v0, v1}, Landroid/view/View;->setBackgroundColor(I)V

    return-void
.end method
Y lo he puesto así:

Código:
.method private aplica_fondo_notificaciones()V
    .locals 4

    iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPile:Lcom/android/systemui/statusbar/policy/NotificationRowLayout;

    const v1, 0x7f080106

    invoke-virtual {v0, v1}, Lcom/android/systemui/statusbar/phone/StatusBarWindowView;->findViewById(I)Landroid/view/View;

    move-result-object v2

    if-eqz v2, :cond_0

    check-cast v2, Landroid/view/ViewGroup;

    sget v3, Lcom/android/systemui/statusbar/GrxAjustes;->mGrxColorFondoNototificaciones:I

    invoke-virtual {v2, v3}, Landroid/view/ViewGroup;->setBackgroundColor(I)V

    :cond_0
    return-void
.end method

Con ésto le digo que pinte el id que tiene ese background, que es el id del android:id="@id/content" del status_bar_notification_row.xml, así que ese background que habíamos puesto antes en rojo (#ffff0000), ahora lo ponemos transparente (android:background="#00000000" )

Pero cuando aparece una notificación no lee ese id, así que no lo pinta



Así que para que pinte ese id cuando aparece una noti, en el metodo .method private loadNotificationShade()V en PhoneStatusBar.smali, le metemos al inicio estas líneas en negrita

Código:
.method private loadNotificationShade()V
    .locals 21

    move-object/from16 v0, p0

    invoke-direct {v0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->aplica_fondo_notificaciones()V

    move-object/from16 v0, p0

    iget-object v0, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPile:Lcom/android/systemui/statusbar/policy/NotificationRowLayout;

    move-object/from16 v19, v0

    if-nez v19, :cond_0

    :goto_0
    return-void
Y ya con eso, primero lee el metodo que pinta el fondo y luego ya lee si hay o no notificación y sale pintada.

Pero no va bien, pinta la primera noti pero la siguiente que sale ya la lee transparente, y cuando eliminas la primera, pinta la otra, y hace cosas raras... no las pinta como debe.



Ya no se si es que no esta bien hecho (que será seguramente eso) y faltará iniciar el metodo en algun otro sitio o de alguna otra forma para que las pinte siempre, o igual no se puede porque solo pinta un id o yo que se... pero esto me supera porque ya no le encuentro más lógica jejeje.

Así que, o entra en acción alguien más, o se queda tal cual lo teníamos.
Joe tiu que crack estas echo macho. Ya lo tienes casi conseguido.

Yo he mirado y requetemirado y que va ( me tengo que estudiar bien el tuto porque buafffff complicado

Quien lo puede dejar fino esta de "vacas" así que a esperar o dejarlo como esta que mola bastante la verdad

Salu2

Enviado desde mi SM-N910F mediante Tapatalk
__________________
Responder Con Cita
Gracias de parte de:
  #443  
Viejo 30/08/15, 12:40:40
Array

[xs_avatar]
josete_1976 josete_1976 no está en línea
Betatester oficial
 
Fecha de registro: may 2013
Localización: Zaragoza
Mensajes: 1,531
Modelo de smartphone: Samsung NoteII
Tu operador: Movistar
 Cita: Originalmente Escrito por dav88 Ver Mensaje
Joe tiu que crack estas echo macho. Ya lo tienes casi conseguido.

Yo he mirado y requetemirado y que va ( me tengo que estudiar bien el tuto porque buafffff complicado

Quien lo puede dejar fino esta de "vacas" así que a esperar o dejarlo como esta que mola bastante la verdad

Salu2

Enviado desde mi SM-N910F mediante Tapatalk
jejjeeje cuando digo que ya no doy para más, voy y lo hago! No hay que rendirse nunca jejeje

Al final era tan sencillo como meterle directamente el color del background en el propio metodo que lee el id del content joerr!!

Así que en BaseStatusBar.smali, en el método .method public inflateViews(Lcom/android/systemui/statusbar/NotificationData$Entry;Landroid/view/ViewGroup;)Z, que es donde lee ese id (0x7f080106), le metemos estas líneas en negrita

Código:
    .
    .
    .
    .
    move-object/from16 v0, v23

    invoke-virtual {v0, v4}, Landroid/view/View;->setContentDescription(Ljava/lang/CharSequence;)V

    const v4, 0x7f080106

    move-object/from16 v0, v21

    invoke-virtual {v0, v4}, Landroid/view/View;->findViewById(I)Landroid/view/View;

    move-result-object v12

    check-cast v12, Landroid/view/ViewGroup;

    sget v3, Lcom/android/systemui/statusbar/GrxAjustes;->mGrxColorFondoNototificaciones:I

    invoke-virtual {v12, v3}, Landroid/view/ViewGroup;->setBackgroundColor(I)V

    const v4, 0x7f080107
    .
    .
    .
    .
Y así ya lee todo correcto jejeje



Pues hala, ya tenemos las notis con el marco al rededor como en lollipop ejjee
__________________
Responder Con Cita
Los siguientes 4 usuarios han agradecido a josete_1976 su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]
  #444  
Viejo 30/08/15, 12:44:47
Array

[xs_avatar]
dav88 dav88 no está en línea
Betatester oficial
 
Fecha de registro: may 2012
Localización: S/C De Tenerife
Mensajes: 1,879
Modelo de smartphone: GALAXY S7 EDGE
Tu operador: Pepephone
 Cita: Originalmente Escrito por josete_1976 Ver Mensaje
jejjeeje cuando digo que ya no doy para más, voy y lo hago! No hay que rendirse nunca jejeje

Al final era tan sencillo como meterle directamente el color del background en el propio metodo que lee el id del content joerr!!

Así que en BaseStatusBar.smali, en el método .method public inflateViews(Lcom/android/systemui/statusbar/NotificationData$Entry;Landroid/view/ViewGroup;)Z, que es donde lee ese id (0x7f080106), le metemos estas líneas en negrita

Código:
    .
    .
    .
    .
    move-object/from16 v0, v23

    invoke-virtual {v0, v4}, Landroid/view/View;->setContentDescription(Ljava/lang/CharSequence;)V

    const v4, 0x7f080106

    move-object/from16 v0, v21

    invoke-virtual {v0, v4}, Landroid/view/View;->findViewById(I)Landroid/view/View;

    move-result-object v12

    check-cast v12, Landroid/view/ViewGroup;

    sget v3, Lcom/android/systemui/statusbar/GrxAjustes;->mGrxColorFondoNototificaciones:I

    invoke-virtual {v12, v3}, Landroid/view/ViewGroup;->setBackgroundColor(I)V

    const v4, 0x7f080107
    .
    .
    .
    .
Y así ya lee todo correcto jejeje



Pues hala, ya tenemos las notis con el marco al rededor como en lollipop ejjee
Crack

Ahora que estas lanzao si le pones para poder redondear las notis cómo las recientes ya te sales del todo

Ahí lo dejo

Enviado desde mi SM-N910F mediante Tapatalk
__________________
Responder Con Cita
Los siguientes 2 usuarios han agradecido a dav88 su comentario:
  #445  
Viejo 30/08/15, 12:46:42
Array

[xs_avatar]
josete_1976 josete_1976 no está en línea
Betatester oficial
 
Fecha de registro: may 2013
Localización: Zaragoza
Mensajes: 1,531
Modelo de smartphone: Samsung NoteII
Tu operador: Movistar
 Cita: Originalmente Escrito por dav88 Ver Mensaje
Crack

Ahora que estas lanzao si le pones para poder redondear las notis cómo las recientes ya te sales del todo

Ahí lo dejo

Enviado desde mi SM-N910F mediante Tapatalk
Me da que ahí si que ya tiene que entrar el master.. jejjee demasiado complicado
__________________
Responder Con Cita
  #446  
Viejo 30/08/15, 12:49:57
Array

[xs_avatar]
dav88 dav88 no está en línea
Betatester oficial
 
Fecha de registro: may 2012
Localización: S/C De Tenerife
Mensajes: 1,879
Modelo de smartphone: GALAXY S7 EDGE
Tu operador: Pepephone
 Cita: Originalmente Escrito por josete_1976 Ver Mensaje
Me da que ahí si que ya tiene que entrar el master.. jejjee demasiado complicado
Cuando dices complicado = luego en un rato lo hago

Enviado desde mi SM-N910F mediante Tapatalk
__________________
Responder Con Cita
Gracias de parte de:
  #447  
Viejo 30/08/15, 12:52:13
Array

[xs_avatar]
josete_1976 josete_1976 no está en línea
Betatester oficial
 
Fecha de registro: may 2013
Localización: Zaragoza
Mensajes: 1,531
Modelo de smartphone: Samsung NoteII
Tu operador: Movistar
Jejejeje
__________________
Responder Con Cita
  #448  
Viejo 30/08/15, 13:54:58
Array

[xs_avatar]
josete_1976 josete_1976 no está en línea
Betatester oficial
 
Fecha de registro: may 2013
Localización: Zaragoza
Mensajes: 1,531
Modelo de smartphone: Samsung NoteII
Tu operador: Movistar
Y ya, para rizar el rizo, las notificaciones Heads Up, las pinto de la misma forma, y vuelven a aparecer mas estrechas y con su sombra de fondo original



Ahora si que está redondo jejeje
__________________
Responder Con Cita
Los siguientes 4 usuarios han agradecido a josete_1976 su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]
  #449  
Viejo 30/08/15, 14:26:16
Array

[xs_avatar]
dav88 dav88 no está en línea
Betatester oficial
 
Fecha de registro: may 2012
Localización: S/C De Tenerife
Mensajes: 1,879
Modelo de smartphone: GALAXY S7 EDGE
Tu operador: Pepephone
 Cita: Originalmente Escrito por josete_1976 Ver Mensaje
Y ya, para rizar el rizo, las notificaciones Heads Up, las pinto de la misma forma, y vuelven a aparecer mas estrechas y con su sombra de fondo original



Ahora si que está redondo jejeje


Una cosa,

Dentro del notificacion_row donde va el contex ( el id) hay se podría adjuntar la línea del redondeo de las esquinas????

Como lo hace la lollipop con el drawable? ????

Venga jajjaja

Enviado desde mi SM-N910F mediante Tapatalk
__________________
Responder Con Cita
  #450  
Viejo 30/08/15, 15:34:06
Array

[xs_avatar]
josete_1976 josete_1976 no está en línea
Betatester oficial
 
Fecha de registro: may 2013
Localización: Zaragoza
Mensajes: 1,531
Modelo de smartphone: Samsung NoteII
Tu operador: Movistar
 Cita: Originalmente Escrito por dav88 Ver Mensaje


Una cosa,

Dentro del notificacion_row donde va el contex ( el id) hay se podría adjuntar la línea del redondeo de las esquinas????

Como lo hace la lollipop con el drawable? ????

Venga jajjaja

Enviado desde mi SM-N910F mediante Tapatalk
Tal cual no, no lo pilla aunque lo pongas. Imagino que por código si se podrá hacer, pero eso también se escapa de mis conocimientos jejejeje
__________________
Responder Con Cita
Gracias de parte de:
  #451  
Viejo 31/08/15, 22:03:29
Array

[xs_avatar]
josete_1976 josete_1976 no está en línea
Betatester oficial
 
Fecha de registro: may 2013
Localización: Zaragoza
Mensajes: 1,531
Modelo de smartphone: Samsung NoteII
Tu operador: Movistar
Añadido también el borrar todas notificaciones debajo de la última notificación y con opción añadida en grx ajustes para cambiar el color de texto



Completito completito... jejejeje
__________________
Responder Con Cita
Los siguientes 7 usuarios han agradecido a josete_1976 su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]
  #452  
Viejo 31/08/15, 22:31:21
Array

[xs_avatar]
tron150 tron150 no está en línea
Usuario muy activo
 
Fecha de registro: mar 2014
Localización: badalona
Mensajes: 716
Modelo de smartphone: Samsung note 10 plus
Tu operador: Vodafone
 Cita: Originalmente Escrito por josete_1976 Ver Mensaje
Añadido también el borrar todas notificaciones debajo de la última notificación y con opción añadida en grx ajustes para cambiar el color de texto



Completito completito... jejejeje
eres un maquina josete

Enviado desde mi SM-N910F mediante Tapatalk
Responder Con Cita
Gracias de parte de:
  #453  
Viejo 31/08/15, 23:14:34
Array

[xs_avatar]
PALMATRON PALMATRON no está en línea
Equipo de HTCMania
· Votos compra/venta: (7)
 
Fecha de registro: ago 2009
Localización: En la Red
Mensajes: 76,890
Tu operador: -

Buenas:

Vais a hacer un update del mod con los cambios?. Algún .zip flasheable quizás?.

Solo pregunto...einn?.

Si no, SIN problema.

Se busca la ruta, se añaden las lineas, y a funcionar.

SalU2.

P.D: Gracias por las mejoras.
__________________
Responder Con Cita
Gracias de parte de:
  #454  
Viejo 31/08/15, 23:46:10
Array

[xs_avatar]
Lhex Lhex no está en línea
Usuario muy activo
 
Fecha de registro: nov 2011
Mensajes: 4,778
Tu operador: Lowi

Vaya cracks! Gracias a todos los que seguís currando para el note2!
__________________
Moto Z Play
Samsung Galaxy Note II

Responder Con Cita
Gracias de parte de:
  #455  
Viejo 01/09/15, 03:39:09
Array

[xs_avatar]
nicoga97 nicoga97 no está en línea
Miembro del foro
 
Fecha de registro: may 2013
Mensajes: 68
Modelo de smartphone: note 2 n7100
Tu operador: Movistar
 Cita: Originalmente Escrito por PALMATRON Ver Mensaje
Buenas:

Vais a hacer un update del mod con los cambios?. Algún .zip flasheable quizás?.

Solo pregunto...einn?.

Si no, SIN problema.

Se busca la ruta, se añaden las lineas, y a funcionar.

SalU2.

P.D: Gracias por las mejoras.
+1

Enviado desde mi SM-N910F mediante Tapatalk
Responder Con Cita
  #456  
Viejo 01/09/15, 14:05:30
Array

[xs_avatar]
mipak mipak no está en línea
Miembro del foro
 
Fecha de registro: mar 2014
Localización: Chiquitistan Jarrr
Mensajes: 224
Modelo de smartphone: Redmi Note 7
Tu operador: Pepephone
instalada y funcionando,todo ok,en algun cosilla se nota como algo lento... por ejemplo para desbloquear la pantalla,cuando recibes algun llamada... y tambien se echa en falta la letra ñ en el teclado xdd por lo demas pinta muy bien la verdad,gracias!

Última edición por mipak Día 01/09/15 a las 14:09:18.
Responder Con Cita
  #457  
Viejo 01/09/15, 14:15:02
Array

[xs_avatar]
ansaavedra ansaavedra no está en línea
Usuario muy activo
 
Fecha de registro: may 2012
Localización: Las Palmas
Mensajes: 1,020
Modelo de smartphone: Huawei P9
Tu operador: Movistar
 Cita: Originalmente Escrito por mipak Ver Mensaje
instalada y funcionando,todo ok,en algun cosilla se nota como algo lento... por ejemplo para desbloquear la pantalla,cuando recibes algun llamada... y tambien se echa en falta la letra ñ en el teclado xdd por lo demas pinta muy bien la verdad,gracias!
Si te vas a ajustes, te descargas el teclado en español y lo pones como predeterminado.

Enviado desde mi SM-N910F mediante Tapatalk
__________________
"Vive y deja vivir"
Responder Con Cita
  #458  
Viejo 01/09/15, 19:25:13
Array

[xs_avatar]
mipak mipak no está en línea
Miembro del foro
 
Fecha de registro: mar 2014
Localización: Chiquitistan Jarrr
Mensajes: 224
Modelo de smartphone: Redmi Note 7
Tu operador: Pepephone
 Cita: Originalmente Escrito por ansaavedra Ver Mensaje
Si te vas a ajustes, te descargas el teclado en español y lo pones como predeterminado.

Enviado desde mi SM-N910F mediante Tapatalk

Gracias! ya lo tengo y todo ok,saludos
Responder Con Cita
  #459  
Viejo 01/09/15, 19:43:15
Array

[xs_avatar]
Zumayo123 Zumayo123 no está en línea
Usuario muy activo
 
Fecha de registro: jun 2013
Localización: León
Mensajes: 1,861
Modelo de smartphone: Samsung Galaxy Note 2
Tu operador: ONO
Os da FC al encender el Bluetooth desde el toggle de la barra de notificaciones? Se me congela el móvil y luego se me reinicia solo.

Enviado desde mi SM-N910F mediante Tapatalk
Responder Con Cita


  #460  
Viejo 01/09/15, 23:34:07
Array

[xs_avatar]
PALMATRON PALMATRON no está en línea
Equipo de HTCMania
· Votos compra/venta: (7)
 
Fecha de registro: ago 2009
Localización: En la Red
Mensajes: 76,890
Tu operador: -

Buenas:

 Cita: Originalmente Escrito por Zumayo123 Ver Mensaje
Os da FC al encender el Bluetooth desde el toggle de la barra de notificaciones? Se me congela el móvil y luego se me reinicia solo.

Enviado desde mi SM-N910F mediante Tapatalk
No. Negativo.

Lo acabo de probar y va bien. Se activa sin FC's.

SalU2.
__________________
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Foros Samsung > Otros smartphones de Samsung antiguos > Samsung Galaxy Note II > ROMs y desarrollo Samsung Galaxy Note II GT-N7100



Hora actual: 00:23:19 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2026 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /