ROMs y desarrollo Motorola Defy ROMs y desarrollo Motorola Defy

Respuesta
 
Herramientas
  #1  
Viejo 23/03/15, 22:16:26
Array

[xs_avatar]
RIgodonius RIgodonius no está en línea
Usuario poco activo
 
Fecha de registro: ago 2013
Mensajes: 5
Modelo de smartphone: Aquaris U Plus, Sk17i (Palmò) y Defy+ para pruebas
Tu operador: Vodafone
Ayuda!!!! sobre mod [tono contactos] de settings.apk Que no puedo meterle mano al smali.

Saludos

Estoy intentando realizar un mod de 'tono para contactos' de la agenda. La idea es poder seleccionar un tono para cuando recibes una llamada de un contacto de la agenda. Si esta opcion esta activada y el tono seleccionado lo use como tono de contacto si dicho contacto no tiene tono asignado

Sobre la ROM cm 10.2 en un defy+

Modifico el settings pero el smali se me resiste, aun a pesar de hacer copy & paste.

Me baje del repositorio android_packages_apps_Settings-cm-10.2.zip pero al importarlo en android studio me da error de strings duplicadas.

Si uso un proyecto nuevo y pongo las instrucciones java que quiero, y uso el plugin java2smali me da errores porque le faltan definiciones.

Uso Apktool 2.0.0-RC4

Asi q estoy un poco perdido porque ya no se q mas intentar.

Aqui pongo una imagen del mod que estoy intentando hacer.

Ver Imagen: http://s2.subirimagenes.com/imagen/previo/thump_9333891screenshot2015032321.png

Estoy basandome en el código 'sonido al conectar cargador' del mismo archivo settings.apk

Gracias haber si alguien me orienta de alguna manera como 'atacar' este mod.

Debajo de initDockSettings(); es donde estoy intentando atacar.

En principio este codigo es
Código:
this.mRingtoneContacts = ((CheckBoxPreference)findPreference("ringtone_contacts"));
        CheckBoxPreference localCheckBoxPreference1 = this.mRingtoneContacts;
        boolean bool1;
        label773:
        String str;

#ESTA SE ME RESISTE

        if (Settings.Global.getInt(localContentResolver, "ringtone_contacts_enabled", 0) != 0)
        {
            bool1 = true;
            localCheckBoxPreference1.setChecked(bool1);

            this.mRingtoneContactsRingtone = findPreference("ringtone_contacts_ringtone");
            String str = Global.getString(localContentResolver, "ringtone_contacts_ringtone");
            if (str == null) {
                str = Settings.System.DEFAULT_NOTIFICATION_URI.toString();
                Settings.Global.putString(getContentResolver(), "ringtone_contacts_ringtone", str);
            }
            if (!str.equals("silent")) {
                break label884;
            }
            this.mRingtoneContacts.setSummary(getString(2131231436));
        }
        label878:
        label884:

Última edición por RIgodonius Día 26/03/15 a las 21:00:46.
Responder Con Cita


  #2  
Viejo 02/04/15, 14:06:45
Array

[xs_avatar]
RIgodonius RIgodonius no está en línea
Usuario poco activo
 
Fecha de registro: ago 2013
Mensajes: 5
Modelo de smartphone: Aquaris U Plus, Sk17i (Palmò) y Defy+ para pruebas
Tu operador: Vodafone
arg La primera parte del mod conseguida va asi:

Este invalida al primer post

Modificaciones de la Primera parte visual y seleccion de tono.

SoundSettings.smali

Buscar:


Código:

# static fields
.field private static final NEED_VOICE_CAPABILITY:[Ljava/lang/String;

Cambiar a:


Código:

# static fields
.field private static final NEED_VOICE_CAPABILITY:[Ljava/lang/String;
.field private static final KEY_RINGTONE_CONTACTS:Ljava/lang/String; = "ringtone_contacts"
.field private static final RINGTONE_CONTACTS_ENABLED:Ljava/lang/String; = "ringtone_contacts_enabled"
.field private static final TAG:Ljava/lang/String; = "RIgodonius"

Buscar:


Código:

.field private mVolumeOverlay:Landroid/preference/ListPreference;

Cambiar a:


Código:

.field private mVolumeOverlay:Landroid/preference/ListPreference;
.field private mRingtoneContacts:Landroid/preference/CheckBoxPreference;
.field private mRingtoneContactsRingtone:Landroid/preference/Preference;

Añadir:


Código:

#########ABAJO
.method private launchRingtoneContactsSoundPicker(ILjava/lang/String;)V
    .locals 4
    .param p1, "code"    # I
    .param p2, "currentRingtoneContactsPath"    # Ljava/lang/String;

    .prologue
    .line 583
    new-instance v0, Landroid/content/Intent;
    const-string v2, "android.intent.action.RINGTONE_PICKER"
    invoke-direct {v0, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
    .line 585
    .local v0, "intent":Landroid/content/Intent;
    const-string v2, "android.intent.extra.ringtone.TITLE"
    const v3, 0x7f080a80
    invoke-virtual {p0, v3}, Lcom/android/settings/SoundSettings;->getString(I)Ljava/lang/String;
    move-result-object v3
    invoke-virtual {v0, v2, v3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
    .line 587
    const-string v2, "android.intent.extra.ringtone.TYPE"
    const/4 v3, 0x1
    invoke-virtual {v0, v2, v3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
    .line 589
    const-string v2, "android.intent.extra.ringtone.DEFAULT_URI"
    sget-object v3, Landroid/provider/Settings$System;->DEFAULT_RINGTONE_URI:Landroid/net/Uri;
    invoke-virtual {v0, v2, v3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Landroid/os/Parcelable;)Landroid/content/Intent;

    .line 591
    if-eqz p2, :cond_0
    const-string v2, "silent"
    invoke-virtual {p2, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
    move-result v2
    if-nez v2, :cond_0

    .line 593
    invoke-static {p2}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;
    move-result-object v1
    .line 594
    .local v1, "uri":Landroid/net/Uri;
    if-eqz v1, :cond_0

    .line 595
    const-string v2, "android.intent.extra.ringtone.EXISTING_URI"
    invoke-virtual {v0, v2, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Landroid/os/Parcelable;)Landroid/content/Intent;
    .line 598
    .end local v1    # "uri":Landroid/net/Uri;
    :cond_0
    invoke-virtual {p0, v0, p1}, Lcom/android/settings/SoundSettings;->startActivityForResult(Landroid/content/Intent;I)V
    .line 599
    return-void
.end method

.method private setRingtoneContactsRingtone(Landroid/content/Intent;)V
    .locals 6
    .param p1, "intent"    # Landroid/content/Intent;

    .prologue
    .line 602
    const-string v4, "android.intent.extra.ringtone.PICKED_URI"

    invoke-virtual {p1, v4}, Landroid/content/Intent;->getParcelableExtra(Ljava/lang/String;)Landroid/os/Parcelable;

    move-result-object v3

    check-cast v3, Landroid/net/Uri;

    .line 607
    .local v3, "uri":Landroid/net/Uri;
    if-eqz v3, :cond_0

    .line 608
    invoke-virtual {p0}, Lcom/android/settings/SoundSettings;->getActivity()Landroid/app/Activity;

    move-result-object v4

    invoke-static {v4, v3}, Landroid/media/RingtoneManager;->getRingtone(Landroid/content/Context;Landroid/net/Uri;)Landroid/media/Ringtone;

    move-result-object v0

    .line 609
    .local v0, "ringtone":Landroid/media/Ringtone;
    invoke-virtual {p0}, Lcom/android/settings/SoundSettings;->getActivity()Landroid/app/Activity;

    move-result-object v4

    invoke-virtual {v0, v4}, Landroid/media/Ringtone;->getTitle(Landroid/content/Context;)Ljava/lang/String;

    move-result-object v1

    .line 610
    .local v1, "toneName":Ljava/lang/String;
    invoke-virtual {v3}, Landroid/net/Uri;->toString()Ljava/lang/String;

    move-result-object v2

    .line 617
    .end local v0    # "ringtone":Landroid/media/Ringtone;
    .local v2, "toneUriPath":Ljava/lang/String;
    :goto_0
    iget-object v4, p0, Lcom/android/settings/SoundSettings;->mRingtoneContactsRingtone:Landroid/preference/Preference;

    invoke-virtual {v4, v1}, Landroid/preference/Preference;->setSummary(Ljava/lang/CharSequence;)V

    .line 618
    invoke-virtual {p0}, Lcom/android/settings/SoundSettings;->getContentResolver()Landroid/content/ContentResolver;

    move-result-object v4

    const-string v5, "ringtone_contacts_ringtone"

    invoke-static {v4, v5, v2}, Landroid/provider/Settings$Global;->putString(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;)Z

    .line 620
    return-void

    .line 613
    .end local v1    # "toneName":Ljava/lang/String;
    .end local v2    # "toneUriPath":Ljava/lang/String;
    :cond_0
    const v4, 0x7f080a81 ######

    invoke-virtual {p0, v4}, Lcom/android/settings/SoundSettings;->getString(I)Ljava/lang/String;

    move-result-object v1

    .line 614
    .restart local v1    # "toneName":Ljava/lang/String;
    const-string v2, "silent"

    .restart local v2    # "toneUriPath":Ljava/lang/String;
    goto :goto_0
.end method
########ARRIBA

Modificar:


Código:

.method public onActivityResult(IILandroid/content/Intent;)V
    .locals 1
    .param p1, "requestCode"    # I
    .param p2, "resultCode"    # I
    .param p3, "data"    # Landroid/content/Intent;

    .prologue
    .line 624
    packed-switch p1, :pswitch_data_0

    .line 631
    invoke-super {p0, p1, p2, p3}, Lcom/android/settings/SettingsPreferenceFragment;->onActivityResult(IILandroid/content/Intent;)V

    .line 634
    :cond_0
    :goto_0
    return-void

    .line 626
    :pswitch_0
    const/4 v0, -0x1

    if-ne p2, v0, :cond_0

    .line 627
    invoke-direct {p0, p3}, Lcom/android/settings/SoundSettings;->setPowerNotificationRingtone(Landroid/content/Intent;)V

    goto :goto_0

    .line 624
    :pswitch_data_0
    .packed-switch 0x1
        :pswitch_0
    .end packed-switch
.end method

a:


Código:

# virtual methods
.method public onActivityResult(IILandroid/content/Intent;)V
    .registers 8
    .param p1, "requestCode"    # I
    .param p2, "resultCode"    # I
    .param p3, "data"    # Landroid/content/Intent;

    .prologue
    const/4 v3, -0x1
    .line 79
    const-string v0, "RIgodonius"
    new-instance v1, Ljava/lang/StringBuilder;
    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
    const-string v2, "requestCode="
    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    move-result-object v1
    invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
    move-result-object v1
    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v1
    invoke-static {v0, v1}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I
    .line 80
    const-string v0, "RIgodonius"
    new-instance v1, Ljava/lang/StringBuilder;
    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
    const-string v2, "resultCode="
    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    move-result-object v1
    invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
    move-result-object v1
    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v1
    invoke-static {v0, v1}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I
    .line 81
    const-string v0, "RIgodonius"
    new-instance v1, Ljava/lang/StringBuilder;
    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
    const-string v2, "Intent="
    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    move-result-object v1
    invoke-virtual {v1, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    move-result-object v1
    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v1
    invoke-static {v0, v1}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I

    packed-switch p1, :pswitch_data_0
	
    invoke-super {p0, p1, p2, p3}, Landroid/preference/PreferenceActivity;->onActivityResult(IILandroid/content/Intent;)V
   
    :cond_0
    :goto_0
 .line 97
    return-void

    :pswitch_0
    if-ne p2, v3, :cond_0
	invoke-direct {p0, p3}, Lcom/android/settings/SoundSettings;->setRingtoneContactsRingtone(Landroid/content/Intent;)V
	#invoke-direct {p0, p3}, Lcom/android/settings/SoundSettings;->setPowerNotificationRingtone(Landroid/content/Intent;)V	
    goto :goto_0
	
    :pswitch_1
    if-ne p2, v3, :cond_0
	invoke-direct {p0, p3}, Lcom/android/settings/SoundSettings;->setRingtoneContactsRingtone(Landroid/content/Intent;)V
    goto :goto_0

    :pswitch_data_0
    .packed-switch 0x1
        :pswitch_0
        :pswitch_1
    .end packed-switch
.end method

En:


Código:

 .method public onCreate(Landroid/os/Bundle;)V

Buscar:


Código:

invoke-direct/range {p0 .. p0}, Lcom/android/settings/SoundSettings;->initDockSettings()V

y añadir despues:


Código:

		invoke-direct/range {p0 .. p0}, Lcom/android/settings/SoundSettings;->initRingtoneContacts()V

En:


Código:

 .method public onPreferenceTreeClick(Landroid/preference/PreferenceScreen;Landroid/preference/Preference;)Z

modificar a:


Código:

    .locals 8

    .prologue
    const/4 v1, 0x0
    const/4 v2, 0x1
	const/4 v7, 0x2

Bajar y despues de:


Código:
	


	const-string v3, "power_notifications_enabled"
    iget-object v4, p0, Lcom/android/settings/SoundSettings;->mPowerSounds:Landroid/preference/CheckBoxPreference;
    invoke-virtual {v4}, Landroid/preference/CheckBoxPreference;->isChecked()Z
    move-result v4
    if-eqz v4, :cond_d
    move v1, v2
    :cond_d
    invoke-static {v0, v3, v1}, Landroid/provider/Settings$Global;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
    goto/16 :goto_0
    .line 453
    :cond_e

Añadir:


Código:

iget-object v0, p0, Lcom/android/settings/SoundSettings;->mRingtoneContacts:Landroid/preference/CheckBoxPreference;
    if-ne p2, v0, :cond_e1	#:cond_10
    .line 454
    invoke-virtual {p0}, Lcom/android/settings/SoundSettings;->getContentResolver()Landroid/content/ContentResolver;
    move-result-object v0
	##############	abajo añadido
    const-string v3, "ringtone_contacts_enabled"
    iget-object v4, p0, Lcom/android/settings/SoundSettings;->mRingtoneContacts:Landroid/preference/CheckBoxPreference;
    invoke-virtual {v4}, Landroid/preference/CheckBoxPreference;->isChecked()Z
    move-result v4
    if-eqz v4, :cond_d1
    move v1, v2
    :cond_d1
    invoke-static {v0, v3, v1}, Landroid/provider/Settings$Global;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
    goto/16 :goto_0
    .line 453

    :cond_e1

Bajar y despues de:


Código:
	


	const-string v3, "power_notifications_vibrate"
    iget-object v4, p0, Lcom/android/settings/SoundSettings;->mPowerSoundsVibrate:Landroid/preference/CheckBoxPreference;
    invoke-virtual {v4}, Landroid/preference/CheckBoxPreference;->isChecked()Z
    move-result v4
    if-eqz v4, :cond_f
    move v1, v2
    :cond_f
    invoke-static {v0, v3, v1}, Landroid/provider/Settings$Global;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
    goto/16 :goto_0
    .line 458
    :cond_10

Añadir hasta el final del metodo:


Código:

		#	I_N_S_T_R_U_C_C_I_O_N
	#if (preference == this.mPowerSoundsRingtone) {
	#
    iget-object v0, p0, Lcom/android/settings/SoundSettings;->mPowerSoundsRingtone:Landroid/preference/Preference;

    if-ne p2, v0, :cond_210 #cambiado ne -> eq

    .line 459
	#	I_N_S_T_R_U_C_C_I_O_N
	#	launchNotificationSoundPicker(1, Global.getString(getContentResolver(), "power_notifications_ringtone"));
	#
	
    invoke-virtual {p0}, Lcom/android/settings/SoundSettings;->getContentResolver()Landroid/content/ContentResolver;
    move-result-object v0
    const-string v1, "power_notifications_ringtone"
    invoke-static {v0, v1}, Landroid/provider/Settings$Global;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;
    move-result-object v0
	invoke-direct {p0, v2, v0}, Lcom/android/settings/SoundSettings;->launchNotificationSoundPicker(ILjava/lang/String;)V
    goto/16 :goto_0

	:cond_210
	#	I_N_S_T_R_U_C_C_I_O_N
	#if (preference == this.mRingtoneContactsRingtone) {
	#
    iget-object v0, p0, Lcom/android/settings/SoundSettings;->mRingtoneContactsRingtone:Landroid/preference/Preference;

    if-ne p2,v0, :cond_211 #cambiado ne -> eq
	
	
	#	I_N_S_T_R_U_C_C_I_O_N
	#	launchRingtoneContactsSoundPicker(1, Global.getString(getContentResolver(), "ringtone_contacts_ringtone"));
	#

    invoke-virtual {p0}, Lcom/android/settings/SoundSettings;->getContentResolver()Landroid/content/ContentResolver;
    move-result-object v0
    const-string v1, "ringtone_contacts_ringtone"
    invoke-static {v0, v1}, Landroid/provider/Settings$Global;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;
    move-result-object v0
	# ABAJO CAMBIO v7
    invoke-direct {p0, v7, v0}, Lcom/android/settings/SoundSettings;->launchRingtoneContactsSoundPicker(ILjava/lang/String;)V
    goto/16 :goto_0

    .line 464
    :cond_211  
	#	I_N_S_T_R_U_C_C_I_O_N
	#	return super.onPreferenceTreeClick(preferenceScreen, preference);
	#

    invoke-super {p0, p1, p2}, Lcom/android/settings/SettingsPreferenceFragment;->onPreferenceTreeClick(Landroid/preference/PreferenceScreen;Landroid/preference/Preference;)Z
    move-result v1
    goto/16 :goto_1
	
.end method


########################################################################################################################################

.method private initRingtoneContacts()V
    .locals 6

    .prologue
    const/4 v4, 0x0

    .line 44
    invoke-virtual {p0}, Lcom/android/settings/SoundSettings;->getContentResolver()Landroid/content/ContentResolver;
    move-result-object v1

    .line 47
    .local v1, "resolver":Landroid/content/ContentResolver;
    const-string v3, "ringtone_contacts"
    invoke-virtual {p0, v3}, Lcom/android/settings/SoundSettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
    move-result-object v3
    check-cast v3, Landroid/preference/CheckBoxPreference;
    iput-object v3, p0, Lcom/android/settings/SoundSettings;->mRingtoneContacts:Landroid/preference/CheckBoxPreference;

    .line 49
    iget-object v5, p0, Lcom/android/settings/SoundSettings;->mRingtoneContacts:Landroid/preference/CheckBoxPreference;
    const-string v3, "ringtone_contacts_enabled"
    invoke-static {v1, v3, v4}, Landroid/provider/Settings$Global;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
    move-result v3

    if-eqz v3, :cond_2

    const/4 v3, 0x1
    :goto_0
    invoke-virtual {v5, v3}, Landroid/preference/CheckBoxPreference;->setChecked(Z)V

    .line 51
    const-string v3, "ringtone_contacts_ringtone"
    invoke-virtual {p0, v3}, Lcom/android/settings/SoundSettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
    move-result-object v3
    iput-object v3, p0, Lcom/android/settings/SoundSettings;->mRingtoneContactsRingtone:Landroid/preference/Preference;

    .line 52
    const-string v3, "ringtone_contacts_ringtone"
    invoke-static {v1, v3}, Landroid/provider/Settings$Global;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;
    move-result-object v0

    .line 54
    .local v0, "currentRingtoneContactsPath":Ljava/lang/String;
    const-string v3, "RIgodonius"
    new-instance v4, Ljava/lang/StringBuilder;
    const-string v5, "currentRingtoneContactsPath1 "
    invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
    invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    move-result-object v4
    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v4
    invoke-static {v3, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 55
    const-string v3, "RIgodonius"
    new-instance v4, Ljava/lang/StringBuilder;
    const-string v5, "mRingtoneContactsRingtone1 "
    invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
    iget-object v5, p0, Lcom/android/settings/SoundSettings;->mRingtoneContactsRingtone:Landroid/preference/Preference;
    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    move-result-object v4
    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v4
    invoke-static {v3, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 57
    if-nez v0, :cond_0

    .line 58
    sget-object v3, Landroid/provider/Settings$System;->DEFAULT_RINGTONE_URI:Landroid/net/Uri;
    invoke-virtual {v3}, Landroid/net/Uri;->toString()Ljava/lang/String;
    move-result-object v0

    .line 59
    invoke-virtual {p0}, Lcom/android/settings/SoundSettings;->getContentResolver()Landroid/content/ContentResolver;
    move-result-object v3
    const-string v4, "ringtone_contacts_ringtone"
    invoke-static {v3, v4, v0}, Landroid/provider/Settings$System;->putString(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;)Z

    .line 62
    :cond_0
    const-string v3, "RIgodonius"
    new-instance v4, Ljava/lang/StringBuilder;
    const-string v5, "currentRingtoneContactsPath2 "
    invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
    invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    move-result-object v4
    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v4
    invoke-static {v3, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 63
    const-string v3, "RIgodonius"
    new-instance v4, Ljava/lang/StringBuilder;
    const-string v5, "mRingtoneContactsRingtone2 "
    invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
    iget-object v5, p0, Lcom/android/settings/SoundSettings;->mRingtoneContactsRingtone:Landroid/preference/Preference;
    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    move-result-object v4
    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v4
    invoke-static {v3, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 65
    invoke-static {v0}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;
    move-result-object v3
	########
	invoke-virtual {p0}, Lcom/android/settings/SoundSettings;->getActivity()Landroid/app/Activity;

    move-result-object v5
	#########
    invoke-static {v5, v3}, Landroid/media/RingtoneManager;->getRingtone(Landroid/content/Context;Landroid/net/Uri;)Landroid/media/Ringtone;
    move-result-object v2

    .line 66
    .local v2, "ringtone2":Landroid/media/Ringtone;
    const-string v3, "RIgodonius"
    new-instance v4, Ljava/lang/StringBuilder;
    const-string v5, "Ringtone1 "
    invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
    invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    move-result-object v4
    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v4
    invoke-static {v3, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 68
    if-eqz v2, :cond_1

    .line 69
    iget-object v3, p0, Lcom/android/settings/SoundSettings;->mRingtoneContactsRingtone:Landroid/preference/Preference;
	
	##############	
	invoke-virtual {p0}, Lcom/android/settings/SoundSettings;->getActivity()Landroid/app/Activity;
    move-result-object v4
	
    invoke-virtual {v2, v4}, Landroid/media/Ringtone;->getTitle(Landroid/content/Context;)Ljava/lang/String;
	##############
	
    move-result-object v4
    invoke-virtual {v3, v4}, Landroid/preference/Preference;->setSummary(Ljava/lang/CharSequence;)V

    .line 70
    const-string v3, "RIgodonius"
    new-instance v4, Ljava/lang/StringBuilder;
    const-string v5, "Ringtone2 "
    invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
    invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    move-result-object v4
    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v4
    invoke-static {v3, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

    .line 81
    :cond_1
    return-void

    .end local v0    # "currentRingtoneContactsPath":Ljava/lang/String;
    .end local v2    # "ringtone":Landroid/media/Ringtone;
    :cond_2
    move v3, v4 # de v4 a v3

    .line 49
    goto/16 :goto_0
.end method

En el archivo res\values-es\strings.xml
añadir:


Código:

	<string name="ringtone_contacts_category_title">Tono de los contactos</string>
    <string name="ringtone_contacts_enable_title">Tono</string>
    <string name="ringtone_contacts_enable_summary">Reproducir un tono cuando llama un contacto</string>
    <string name="ringtone_contacts_ringtone_title">Sonido de contacto</string>
    <string name="ringtone_contacts_ringtone_silent">Ninguno</string>

En el archivo res\xml\sound_settings.xml

Despues de:


Código:

<com.android.settings.IncreasingRingPreference android:persistent="false" android:title="@string/increasing_ring_title" android:key="increasing_ring" android:dialogTitle="@string/increasing_ring_title" android:streamType="ring" />

Añadir:


Código:

    <PreferenceCategory 
		android:title="@string/ringtone_contacts_category_title" />
		
	<CheckBoxPreference
		android:persistent="false" 
		android:title="@string/ringtone_contacts_enable_title" 
		android:key="ringtone_contacts" 
		android:summary="@string/ringtone_contacts_enable_summary" 
		android:defaultValue="false" />
		
    <Preference 
		android:persistent="false" 
		android:title="@string/ringtone_contacts_ringtone_title" 
		android:key="ringtone_contacts_ringtone" 
		android:dependency="ringtone_contacts" />

Fin Primera Parte.

[RESIZE=100][/RESIZE]

Ahora estoy en la segunda parte que es interceptar una llamada y ver cuando se asigna el tono que es mas lioso de lo que pensaba en el phone.apk, asi q si alguien controla el smali del phone.apk y me puede orientar se lo agradeceria.

Un saludo y a ver smali y java......

Última edición por RIgodonius Día 07/04/15 a las 11:26:23.
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Foros Motorola > Otros smartphones antiguos de Motorola > Motorola Defy > ROMs y desarrollo Motorola Defy



Hora actual: 13:48:56 (GMT +2)



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

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