![]() |
|
| ROMs y desarrollo Motorola Defy ROMs y desarrollo Motorola Defy |
«
Tema Anterior
|
Siguiente tema
»
|
|
Herramientas |
|
#1
|
|
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 |
|
|
|
#2
|
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 |
| Respuesta |
Estás aquí
|
||||||
|
||||||
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 12:16:33 (GMT +1)
HTCMania: líderes desde el 2007


La primera parte del mod conseguida va asi:
[/RESIZE]


