Este foro usa cookies
Este foro hace uso de cookies para almacenar su información de inicio de sesión si está registrado, y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Por favor, confirme si acepta o rechaza el establecimiento de estas cookies.

Se almacenará una cookie en su navegador, independientemente de su elección, para evitar que le vuelvan a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

josete_1976
(Aprendiz Droid)
*

Fecha de registro: 01-16-2018
Fecha de nacimiento: No especificado
Hora local: 09-23-2018 en 12:35 AM
Estado: Sin conexión

Información sobre josete_1976
Ingresó: 01-16-2018
Última visita: Ayer, 08:47 PM
Mensajes totales: 13 (0.05 mensajes por día | 0.75 % del total)
(Buscar sus mensajes)
Temas totales: 2 (0.01 temas por día | 0.9 % del total)
(Buscar sus temas)
Tiempo en línea: 11 Horas, 27 Minutos, 36 Segundos
Miembros recomendados: 0
Total Gracias Recibidas: 36 (0.14 por día | 1.32 por ciento del total 2736)
(Todos los Temas Agradecidos porTodos los Post Agradecidos por)
Total Gracias Dadas: 38 (0.15 por día | 1.39 por ciento del total 2736)
(Busca todos los Temas con GraciasBusca todos los Post con Gracias)

Detalles de contacto de josete_1976
Email: Envíale un email a josete_1976.
Mensaje privado: Envíale un mensaje privado a josete_1976.
  
Los post mas Agradecido de josete_1976
Asunto del post Número de Gracias
Animación Power Off 10
Tema del hilo Nombre del foro
Animación Power Off Los Fogones de Android
Mensaje del post
Buenas compañeros, por aquí os dejo un mod que hice hace un tiempo para cambiar la animación del apagado de la pantalla.

Tiene un selector con 4 modos de apagado (Fade, Fade Out, Interior Shutter y Outer Shutter) y opción para ajustar la duración de la animación.


En GrxSettings

Añadimos en menu_grx_nav.xml la siguiente preferencia:

Código:
<?xml version="1.0" encoding="utf-8"?>
<menu
  xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
    <Separator />
    <Text android:id="@+id/gp_anim_power_off" android:title="Animation Off Screen" app:showIconSpace="true" />
</menu>


Creamos en la carpeta xml un archivo que se llame gp_anim_power_off.xml y dentro metemos lo siguiente:


Código:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
  xmlns:android="http://schemas.android.com/apk/res/android">
    <GrxPreferenceCategory android:title="Animation Off Screen">
        <GrxSingleSelection android:title="Animation Mode" android:key="joss_anim_power_off" android:summary="%s" android:defaultValue="2" grxA_entries="@array/power_animation_entries" grxA_values="@array/power_animation_values" />
        <GrxSeekBar android:title="Duration Animation" android:key="joss_anim_power_off_time" android:summary="Stock 280 mS" android:defaultValue="280" grxMax="5000" grxInter="10" grxPopup="true" grxMin="0" grxUni=" mS" />
    </GrxPreferenceCategory>
</PreferenceScreen>


Y por último en GrxSettings, dentro de values/arrays.xml añadimos esto al final del todo encima del </resources>


Código:
.
.
    <string-array name="power_animation_entries">
        <item>Fade (Default)</item>
        <item>Fade Out</item>
        <item>Interior Shutter</item>
        <item>Outer Shutter</item>
    </string-array>
    <string-array name="power_animation_values">
        <item>2</item>
        <item>1</item>
        <item>4</item>
        <item>3</item>
    </string-array>
</resources>


Ahora en services.jar, decompilamos el classes.dex y nos vamos a la siguiente ruta com/android/server/display/DisplayPowerController.smali
Dentro de DisplayPowerController.smali debajo de # instance fields añadimos lo siguiente:


Código:
# instance fields
.field private mJossTiempoEfecto:I

.field private mJossTipoEfecto:I
.
.


Ahora buscamos el método .method private animateScreenStateChange(IIZ)V y aumentamos los registers a 16 y añadimos este bloque al principio:


Código:
.method private animateScreenStateChange(IIZ)V
    .registers 16

    iget-object v0, p0, Lcom/android/server/display/DisplayPowerController;->mContext:Landroid/content/Context;

    invoke-virtual {v0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;

    move-result-object v0

    const-string/jumbo v1, "joss_anim_power_off_time"

    const/16 v2, 0x118

    invoke-static {v0, v1, v2}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

    move-result v1

    iput v1, p0, Lcom/android/server/display/DisplayPowerController;->mJossTiempoEfecto:I

    const-string/jumbo v1, "joss_anim_power_off"

    const/4 v2, 0x2

    invoke-static {v0, v1, v2}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

    move-result v1

    iput v1, p0, Lcom/android/server/display/DisplayPowerController;->mJossTipoEfecto:I

    .
    .
    .


En este mismo método, por la mitad encontraremos esto:


Código:
    iget-object v3, p0, Lcom/android/server/display/DisplayPowerController;->mPowerRequest:Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;

    iget-boolean v3, v3, Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->isAlpmMode:Z


Justo encima de esas dos líneas le añadimos esta, dejándolo así:


Código:
        iget v0, p0, Lcom/android/server/display/DisplayPowerController;->mJossTipoEfecto:I

    iget-object v3, p0, Lcom/android/server/display/DisplayPowerController;->mPowerRequest:Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;

    iget-boolean v3, v3, Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->isAlpmMode:Z


Y por último, dentro del mismo método buscaremos esto:


Código:
    check-cast v3, Landroid/animation/ObjectAnimator;

    invoke-virtual {v3}, Landroid/animation/ObjectAnimator;->start()V


Dentro del método hay dos start()V pero lo vamos a hacer en el segundo, el que está casi al final del método, y añadiremos esto entre esas dos líneas:


Código:
    check-cast v3, Landroid/animation/ObjectAnimator;

        iget v10, p0, Lcom/android/server/display/DisplayPowerController;->mJossTiempoEfecto:I

        int-to-long v10, v10

        invoke-virtual {v3, v10, v11}, Landroid/animation/ObjectAnimator;->setDuration(J)Landroid/animation/ObjectAnimator;
  
   invoke-virtual {v3}, Landroid/animation/ObjectAnimator;->start()V


Compilamos el classes.dex y listo


De todas formas, os dejo los fuentes con los smalis originales y los modificados, para que comparando podáis ver los cambios rápidamente.