Visualizzazione stampabile
Nicola, ho avuto qualche problema con la lidroid. So che tu non la usi, ma vedi, come hai tempo e voglia, se riesci a darmi qualche suggerimento.:p
Ho provato a modificare le classi dei toggles come segue:
WifiButton.smali
codice:
.method protected updateState()V
.locals 7
invoke-virtual {p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v4
const-string v5, "toggles_chooser"
const v6, 0x0
invoke-static {v4, v5, v6}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v4
const v5, 0x1
if-eq v5, v4, :cond_toggles0
const v5, 0x2
if-eq v5, v4, :cond_toggles1
const v5, 0x3
if-eq v5, v4, :cond_toggles2
const v5, 0x4
if-eq v5, v4, :cond_toggles3
const v3, 0x50200b4
const v2, 0x50200b3
goto :goto_new
:cond_toggles0
const v3, 0x5020180
const v2, 0x502017f
goto :goto_new
:cond_toggles1
const v3, 0x50201b7
const v2, 0x50201b6
:goto_new
sget-object v0, Lcom/wanam/systemui/quickpanel/WifiButton;->sWifiState:Lcom/wanam/systemui/quickpanel/StateTracker;
iget-object v1, p0, Lcom/wanam/systemui/quickpanel/WifiButton;->mView:Landroid/view/View;
invoke-virtual {v1}, Landroid/view/View;->getContext()Landroid/content/Context;
Cosi ho ottenuto un Class init failed in newInstance
Ho provato a modificarla come sotto ma ho ottenuto mi pare un NullPoiterException.
Non ho fatto altre prove ultimamente....volevo sentire prima se avevi qualche consiglio.:p
codice:
.field private mContext:Landroid/content/Context;
codice:
.method protected updateState()V
.locals 7
iget-object v4, p0, Lcom/wanam/systemui/quickpanel/WifiButton;->mContext:Landroid/content/Context;
invoke-virtual {v4}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v4
const-string v5, "toggles_chooser"
const v6, 0x0
Edit. Qui se ti servono ci sono i file lidroid e gli sceen di alcuni degli errori che ho incontrato.
Lidroid-files.zip
Quote:
Originariamente inviato da
rattlehead
Nicola, ho avuto qualche problema con la lidroid. So che tu non la usi, ma vedi, come hai tempo e voglia, se riesci a darmi qualche suggerimento.:p
Ho pensato a due modi in cui si può tentare di risolvere il tuo problema
primo modo:
si cambia il nome del metodo da .method protected updateState()V a .method protected updateState(Landroid/content/Context;)V e poi aggiungi il codice come hai fatto la prima volta
codice:
.method protected updateState(Landroid/content/Context;)V
.locals 7
invoke-virtual {p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v4
const-string v5, "toggles_chooser"
const v6, 0x0
invoke-static {v4, v5, v6}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v4
const v5, 0x1
if-eq v5, v4, :cond_toggles0
secondo modo:
prova ad aggiungere le seguenti linee
codice:
.method protected updateState()V
.locals 7
iget-object v1, p0, Lcom/wanam/systemui/quickpanel/WifiButton;->mView:Landroid/view/View;
invoke-virtual {v1}, Landroid/view/View;->getContext()Landroid/content/Context;
move-result-object v1
invoke-virtual {v1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v4
const-string v5, "toggles_chooser"
const v6, 0x0
invoke-static {v4, v5, v6}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v4
Spero che almeno uno dei due funzionirotflrotflrotfl
Quote:
Originariamente inviato da
rattlehead
Nicola, ho avuto qualche problema con la lidroid. So che tu non la usi, ma vedi, come hai tempo e voglia, se riesci a darmi qualche suggerimento.:p
Ho provato a modificare le classi dei toggles come segue:
WifiButton.smali
codice:
.method protected updateState()V
.locals 7
invoke-virtual {p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v4
const-string v5, "toggles_chooser"
const v6, 0x0
invoke-static {v4, v5, v6}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v4
const v5, 0x1
if-eq v5, v4, :cond_toggles0
const v5, 0x2
if-eq v5, v4, :cond_toggles1
const v5, 0x3
if-eq v5, v4, :cond_toggles2
const v5, 0x4
if-eq v5, v4, :cond_toggles3
const v3, 0x50200b4
const v2, 0x50200b3
goto :goto_new
:cond_toggles0
const v3, 0x5020180
const v2, 0x502017f
goto :goto_new
:cond_toggles1
const v3, 0x50201b7
const v2, 0x50201b6
:goto_new
sget-object v0, Lcom/wanam/systemui/quickpanel/WifiButton;->sWifiState:Lcom/wanam/systemui/quickpanel/StateTracker;
iget-object v1, p0, Lcom/wanam/systemui/quickpanel/WifiButton;->mView:Landroid/view/View;
invoke-virtual {v1}, Landroid/view/View;->getContext()Landroid/content/Context;
Cosi ho ottenuto un Class init failed in newInstance
Ho provato a modificarla come sotto ma ho ottenuto mi pare un NullPoiterException.
Non ho fatto altre prove ultimamente....volevo sentire prima se avevi qualche consiglio.:p
codice:
.field private mContext:Landroid/content/Context;
codice:
.method protected updateState()V
.locals 7
iget-object v4, p0, Lcom/wanam/systemui/quickpanel/WifiButton;->mContext:Landroid/content/Context;
invoke-virtual {v4}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v4
const-string v5, "toggles_chooser"
const v6, 0x0
Edit. Qui se ti servono ci sono i file lidroid e gli sceen di alcuni degli errori che ho incontrato.
Lidroid-files.zip
http://tapatalk.imageshack.com/v2/14...f577f6ef0a.jpg
Quote:
Originariamente inviato da
nicola78
Ho pensato a due modi in cui si può tentare di risolvere il tuo problema
primo modo:
si cambia il nome del metodo da .method protected updateState()V a .method protected updateState(Landroid/content/Context;)V e poi aggiungi il codice come hai fatto la prima volta
codice:
.method protected updateState(Landroid/content/Context;)V
.locals 7
invoke-virtual {p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v4
const-string v5, "toggles_chooser"
const v6, 0x0
invoke-static {v4, v5, v6}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v4
const v5, 0x1
if-eq v5, v4, :cond_toggles0
secondo modo:
prova ad aggiungere le seguenti linee
codice:
.method protected updateState()V
.locals 7
iget-object v1, p0, Lcom/wanam/systemui/quickpanel/WifiButton;->mView:Landroid/view/View;
invoke-virtual {v1}, Landroid/view/View;->getContext()Landroid/content/Context;
invoke-virtual {v1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v4
const-string v5, "toggles_chooser"
const v6, 0x0
invoke-static {v4, v5, v6}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v4
Spero che almeno uno dei due funzionirotflrotflrotfl
Siete grandi http://tapatalk.imageshack.com/v2/14...2124204014.jpg
Quote:
Originariamente inviato da
nicola78
Ho pensato a due modi in cui si può tentare di risolvere il tuo problema
primo modo:
si cambia il nome del metodo da .method protected updateState()V a .method protected updateState(Landroid/content/Context;)V e poi aggiungi il codice come hai fatto la prima volta
codice:
.method protected updateState(Landroid/content/Context;)V
.locals 7
invoke-virtual {p1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v4
const-string v5, "toggles_chooser"
const v6, 0x0
invoke-static {v4, v5, v6}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v4
const v5, 0x1
if-eq v5, v4, :cond_toggles0
secondo modo:
prova ad aggiungere le seguenti linee
codice:
.method protected updateState()V
.locals 7
iget-object v1, p0, Lcom/wanam/systemui/quickpanel/WifiButton;->mView:Landroid/view/View;
invoke-virtual {v1}, Landroid/view/View;->getContext()Landroid/content/Context;
move-result-object v1
invoke-virtual {v1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v4
const-string v5, "toggles_chooser"
const v6, 0x0
invoke-static {v4, v5, v6}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v4
Spero che almeno uno dei due funzionirotflrotflrotfl
Nulla di fatto Sir!!!:'(
Col primo metodo ho ottenuto un errore di metodo non implementato
Screenshot_2014-12-21-13-35-13.png
Ho provato a cambiare allo stesso modo il metodo protetto in powerButton.smali ma nulla!!
Col secondo metodo invece mi ha restituito che l'arg Landroid/view/View; non è una istanza di Landroid/content/Context;
Screenshot_2014-12-21-13-39-34.png
Con i colori ho avuto più fortuna...anche se al momento il risultato non è quello sperato. I toggle vengono tutti colorati nello stesso modo!! Devo vedere altrove!
Screenshot_2014-12-21-14-29-44.png
Quote:
Originariamente inviato da
rattlehead
Nulla di fatto Sir!!!:'(
Col primo metodo ho ottenuto un errore di metodo non implementato
Screenshot_2014-12-21-13-35-13.png
Ho provato a cambiare allo stesso modo il metodo protetto in powerButton.smali ma nulla!!
Col secondo metodo invece mi ha restituito che l'arg Landroid/view/View; non è una istanza di Landroid/content/Context;
Screenshot_2014-12-21-13-39-34.png
Con i colori ho avuto più fortuna...anche se al momento il risultato non è quello sperato. I toggle vengono tutti colorati nello stesso modo!! Devo vedere altrove!
Screenshot_2014-12-21-14-29-44.png
Ultima chance , anche perchè non mi viene altro in mente, prova cosi
codice:
.method protected updateState()V
.locals 7
iget-object v1, p0, Lcom/wanam/systemui/quickpanel/WifiButton;->mView:Landroid/view/View;
invoke-virtual {v1}, Landroid/view/View;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v4
const-string v5, "toggles_chooser"
const v6, 0x0
invoke-static {v4, v5, v6}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v4
Quote:
Originariamente inviato da
nicola78
Ultima chance , anche perchè non mi viene altro in mente, prova cosi
codice:
.method protected updateState()V
.locals 7
iget-object v1, p0, Lcom/wanam/systemui/quickpanel/WifiButton;->mView:Landroid/view/View;
invoke-virtual {v1}, Landroid/view/View;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v4
const-string v5, "toggles_chooser"
const v6, 0x0
invoke-static {v4, v5, v6}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v4
Nulla no such method error.:mad:
In compenso ho trovato i colori del led attivo/disattivo. Manca il toggle disattivato e lo sfondo.
@nicola78 ho provato su un altra classe AereoButton dove già era presente la prima parte.
Pare cosi funzioni...ora devo provare sulle altre classi, in particolare quelle uguali a quella precedente del wifiButton.
La parte rossa è quella che ho modificato o aggiunto.
codice:
.method protected updateState()V
.locals 6
iget-object v1 , p0, Lcom/wanam/systemui/quickpanel/AirplaneButton;->mView:Landroid/view/View;
invoke-virtual {v1 }, Landroid/view/View;->getContext()Landroid/content/Context;
move-result-object v1
invoke-static {v1 }, Lcom/wanam/systemui/quickpanel/AirplaneButton;->getState(Landroid/content/Context;)Z
move-result v0
if-eqz v0, :cond_0
invoke-virtual {v1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v1
const-string v2, "toggles_chooser"
const v3, 0x0
invoke-static {v1, v2, v3}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v1
const v2, 0x1
if-eq v2, v1, :cond_toggles0
const v2, 0x2
if-eq v2, v1, :cond_toggles1
const v0, 0x502007b
goto :goto_new
:cond_toggles0
const v0, 0x502017e
goto :goto_new
:cond_toggles1
const v0, 0x5020144
:goto_new
iput v0, p0, Lcom/wanam/systemui/quickpanel/AirplaneButton;->mIcon:I
const/4 v0, 0x1
iput v0, p0, Lcom/wanam/systemui/quickpanel/AirplaneButton;->mState:I
:goto_0
return-void
:cond_0
invoke-virtual {v1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v1
const-string v2, "toggles_chooser"
const v3, 0x0
invoke-static {v1, v2, v3}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v1
const v2, 0x1
if-eq v2, v1, :cond_toggles0a
const v2, 0x2
if-eq v2, v1, :cond_toggles1a
const v0, 0x502007a
goto :goto_new1
:cond_toggles0a
const v0, 0x502017d
goto :goto_new1
:cond_toggles1a
const v0, 0x5020143
:goto_new1
iput v0, p0, Lcom/wanam/systemui/quickpanel/AirplaneButton;->mIcon:I
const/4 v0, 0x2
iput v0, p0, Lcom/wanam/systemui/quickpanel/AirplaneButton;->mState:I
goto :goto_0
.end method
PS. Pensi che da qui sia possibile gestire i colori?? Non riesco a trovare il colore per i toggles_off e lo sfondo!
Edit. Confermo funziona anche con l'altra classe.;)
Un piccolo ot natalizio anche qua http://tapatalk.imageshack.com/v2/14...13bfc83f37.jpg grazie per tutto quello che condividete e buon natale
1 allegato(i)
[Mod][Porting]Guida sul Porting dell' animazione del Toast
Come prima cosa vorrei scusarmi del fatto di non aver trovato l' utente che ha realizzato questa mod ,per potergli girare i ringraziamenti opportuni, comunque questa è una mod che si può trovare nelle rom KitKat AOSP, Linaro e altre, io come riferimento ho preso la Dirty Unicorns.
Testata e funzionante su JellyBean 4.1.2 xms3
Fare un Nandroid Backup prima di effettuare operazioni di modding
Per realizzare questa mod vi serve:
SecSettings.apk
framework-res.apk
framework.jar
framework2.jar
tool per decompilare e compilare come apktool 1.5.2
tool per l'editor di testo come notepad++
Iniziamo con il SecSettings.apk:
Decompilare il SecSettings.apk ,andare in res/xml ,aprire con l'editor di testo il display_settings.xml e aggiungere le linee in rosso
codice:
<ListPreference android:persistent="false" android:entries="@array/touch_key_light_entries" android:title="@string/touch_key_light" android:key="touch_key_light" android:summary="@string/touch_key_light_summary" android:widgetLayout="@layout/round_more_icon" android:entryValues="@array/touch_key_light_values" />
<CheckBoxPreference android:persistent="false" android:title="@string/display_saving" android:key="power_saving_mode" android:summary="@string/display_saving_mode_summary" />
<CheckBoxPreference android:persistent="false" android:title="@string/notification_pulse_title" android:key="notification_pulse" />
<PreferenceCategory android:title="@string/animations">
<ListPreference android:entries="@array/toast_animation_entries" android:title="@string/toast_animation_title" android:key="toast_animation" android:widgetLayout="@layout/round_more_icon" android:entryValues="@array/toast_animation_values" />
</PreferenceCategory>
Andare in res/value aprire strings.xml e aggiungere alla fine le seguenti linee in rosso
codice:
<string name="animations">Animations</string>
<string name="toast_animation_title">Toast Animations</string>
Andare in res/value-it aprire strings.xml e aggiungere alla fine le seguenti linee in rosso
codice:
<string name="animations">Animazioni</string>
<string name="toast_animation_title">Animazione Toast</string>
Andare in res/value e aprire arrays.xml e aggiungere alla fine le seguenti linee in rosso
codice:
<string-array name="toast_animation_entries">
<item>Nessuna Animazione</item>
<item>Animazione Stock</item>
<item>Animazione Fade</item>
<item>Animazione SlideRight</item>
<item>Animazione SlideLeft</item>
<item>Animazione Xylon</item>
<item>Animazione Toko</item>
<item>Animazione Tn</item>
<item>Animazione Honami</item>
<item>Animazione FastFade</item>
<item>Animazione GrowFade</item>
<item>Animazione GrowFadeCenter</item>
<item>Animazione GrowFadeBottom</item>
<item>Animazione Translucent</item>
<item>Animazione SlideLeftRight</item>
<item>Animazione SlideRightLeft</item>
</string-array>
<string-array name="toast_animation_values">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>6</item>
<item>7</item>
<item>8</item>
<item>9</item>
<item>10</item>
<item>11</item>
<item>12</item>
<item>13</item>
<item>14</item>
<item>15</item>
</string-array>
Andare in smali\com\android\settings\DisplaySettings.smal i e aggiungere le seguenti linee in rosso
codice:
.field mSupportFolderType:Z
.field private mToastAnimation:Landroid/preference/ListPreference;
.field private mTouchKeyLight:Landroid/preference/ListPreference;
Nello stesso file trovare .method public onCreate e aggiungere le seguenti linee in rosso
codice:
iput-object v12, p0, Lcom/android/settings/DisplaySettings;->mFontSizePref:Landroid/preference/ListPreference;
.line 424
iget-object v12, p0, Lcom/android/settings/DisplaySettings;->mFontSizePref:Landroid/preference/ListPreference;
invoke-virtual {v12, p0}, Landroid/preference/ListPreference;->setOnPreferenceChangeListener(Landroid/preference/Preference$OnPreferenceChangeListener;)V
const-string v12, "toast_animation"
invoke-virtual {p0, v12}, Lcom/android/settings/DisplaySettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v12
check-cast v12, Landroid/preference/ListPreference;
iput-object v12, p0, Lcom/android/settings/DisplaySettings;->mToastAnimation:Landroid/preference/ListPreference;
const-string v12, "toast_animation"
const/4 v13, 0x0
invoke-static {v8, v12, v13}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v12
iget-object v13, p0, Lcom/android/settings/DisplaySettings;->mToastAnimation:Landroid/preference/ListPreference;
invoke-static {v12}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v12
invoke-virtual {v13, v12}, Landroid/preference/ListPreference;->setValue(Ljava/lang/String;)V
iget-object v13, p0, Lcom/android/settings/DisplaySettings;->mToastAnimation:Landroid/preference/ListPreference;
invoke-virtual {v13, p0}, Landroid/preference/SwitchPreferenceScreen;->setOnPreferenceChangeListener(Landroid/preference/Preference$OnPreferenceChangeListener;)V
.line 426
Nello stesso file trovare .method public onPreferenceChange e aggiungere le linee in rosso, nelle linee in blu qualche spiegazione
codice:
const-string v2, "contextualpage_settings"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_toast_anim qui cambiare da cond_2 a cond_toast_anim
.line 1089
check-cast p2, Ljava/lang/Boolean;
invoke-virtual {p2}, Ljava/lang/Boolean;->booleanValue()Z
move-result v0
if-eqz v0, :cond_e
codice:
.line 1100
const-string v1, "DisplaySettings"
const-string v3, "CONTEXTUALPAGE_SWITCH_CHANGED changed = false"
invoke-static {v1, v3}, Landroid/util/Log;->secD(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_7
:cond_11
move-wide v0, v4
goto/16 :goto_3
:cond_toast_anim
iget-object v1, p0, Lcom/android/settings/DisplaySettings;->mToastAnimation:Landroid/preference/ListPreference;
if-ne p1, v1, :cond_2
check-cast p2, Ljava/lang/String;
invoke-static {p2}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
move-result v0
invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v1
const-string v2, "toast_animation"
invoke-static {v1, v2, v0}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
goto/16 :goto_4
.end method
Salvare tutti i cambiamenti e ricompilare il SecSettings
....continua nel prossimo post
1 allegato(i)
Parte con il framework-res.apk
Decompilare il framework-res.apk e andare in res/value ed aprire il file styles.xml e aggiungere alla fine le seguenti linee:
codice:
<style name="Animation.Toast" parent="@style/Animation">
<item name="windowEnterAnimation">@anim/toast_enter</item>
<item name="windowExitAnimation">@anim/toast_exit</item>
</style>
<style name="Animation.Toast.Fade" parent="@style/Animation.Toast">
<item name="windowEnterAnimation">@anim/fade_in</item>
<item name="windowExitAnimation">@anim/fade_out</item>
</style>
<style name="Animation.Toast.SlideRight" parent="@style/Animation.Toast">
<item name="windowEnterAnimation">@anim/slide_in_right</item>
<item name="windowExitAnimation">@anim/slide_out_right</item>
</style>
<style name="Animation.Toast.SlideLeft" parent="@style/Animation.Toast">
<item name="windowEnterAnimation">@anim/slide_in_left</item>
<item name="windowExitAnimation">@anim/slide_out_left</item>
</style>
<style name="Animation.Toast.Xylon" parent="@style/Animation.Toast">
<item name="windowEnterAnimation">@anim/xylon_toast_enter</item>
<item name="windowExitAnimation">@anim/xylon_toast_exit</item>
</style>
<style name="Animation.Toast.Toko" parent="@style/Animation.Toast">
<item name="windowEnterAnimation">@anim/toko_toast_enter</item>
<item name="windowExitAnimation">@anim/toko_toast_exit</item>
</style>
<style name="Animation.Toast.Tn" parent="@style/Animation.Toast">
<item name="windowEnterAnimation">@anim/tn_toast_enter</item>
<item name="windowExitAnimation">@anim/tn_toast_exit</item>
</style>
<style name="Animation.Toast.Honami" parent="@style/Animation.Toast">
<item name="windowEnterAnimation">@anim/honami_toast_enter</item>
<item name="windowExitAnimation">@anim/honami_toast_exit</item>
</style>
<style name="Animation.Toast.FastFade" parent="@style/Animation.Toast">
<item name="windowEnterAnimation">@anim/fast_fade_in</item>
<item name="windowExitAnimation">@anim/fast_fade_out</item>
</style>
<style name="Animation.Toast.GrowFade" parent="@style/Animation.Toast">
<item name="windowEnterAnimation">@anim/grow_fade_in</item>
<item name="windowExitAnimation">@anim/fast_fade_out</item>
</style>
<style name="Animation.Toast.GrowFadeCenter" parent="@style/Animation.Toast">
<item name="windowEnterAnimation">@anim/grow_fade_in_center</item>
<item name="windowExitAnimation">@anim/fast_fade_out</item>
</style>
<style name="Animation.Toast.GrowFadeBottom" parent="@style/Animation.Toast">
<item name="windowEnterAnimation">@anim/grow_fade_in_from_bottom</item>
<item name="windowExitAnimation">@anim/fast_fade_out</item>
</style>
<style name="Animation.Toast.Translucent" parent="@style/Animation.Toast">
<item name="windowEnterAnimation">@anim/translucent_enter</item>
<item name="windowExitAnimation">@anim/translucent_exit</item>
</style>
<style name="Animation.Toast.SlideRightLeft" parent="@style/Animation.Toast">
<item name="windowEnterAnimation">@anim/slide_in_right</item>
<item name="windowExitAnimation">@anim/slide_out_left</item>
</style>
<style name="Animation.Toast.SlideLeftRight" parent="@style/Animation.Toast">
<item name="windowEnterAnimation">@anim/slide_in_left</item>
<item name="windowExitAnimation">@anim/slide_out_right</item>
</style>
Andare in framework-res/res/anim e copiare i file contenuti in questo .zip Allegato 131936
Ricompilare il framework-res e decompilare il nuovo framework-res.apk per ottenerre i nuovi ids delle linee aggiunte nel file styles.xml,
quindi andare in framework-res/res/value ed aprire il file public.xml dove sono contenuti gli ids e cercare e prendere nota degli ids che fanno
riferimento a le seguenti stringhe:
<public type="style" name="Animation.Toast" id="0x01030004" />
<public type="style" name="Animation.Toast.Fade" id="0x0103032d" />
<public type="style" name="Animation.Toast.SlideRight" id="0x0103032e" />
<public type="style" name="Animation.Toast.SlideLeft" id="0x0103032f" />
<public type="style" name="Animation.Toast.Xylon" id="0x01030330" />
<public type="style" name="Animation.Toast.Toko" id="0x01030331" />
<public type="style" name="Animation.Toast.Tn" id="0x01030332" />
<public type="style" name="Animation.Toast.Honami" id="0x01030333" />
<public type="style" name="Animation.Toast.FastFade" id="0x01030334" />
<public type="style" name="Animation.Toast.GrowFade" id="0x01030335" />
<public type="style" name="Animation.Toast.GrowFadeCenter" id="0x01030336" />
<public type="style" name="Animation.Toast.GrowFadeBottom" id="0x01030337" />
<public type="style" name="Animation.Toast.Translucent" id="0x01030338" />
<public type="style" name="Animation.Toast.SlideRightLeft" id="0x01030339" />
<public type="style" name="Animation.Toast.SlideLeftRight" id="0x0103033a" />
Gli ids sono i codici alfanumerici che seguono il 0x , probabilmente quelli che otterrete coincideranno con quelli riportati qua sopra , in caso contrario utilizzate quelli presenti nel vostro file.
I nuovi ids dovranno poi essere copiati ,nel caso fosse necessario , nel file Toast$TN.smali .
Parte con il framework2.jar
Decompilare il framework2.jar ed andare in android/widget/ qui copiare e sostituire il file Toast$TN.smali con quello contenuto in questo .zip Allegato 131940
Aprire il file Toast$TN.smali e cercare il metodo .method public handleShow()V , nella seguente parte del metodo ci sono in blu le indicazioni su quali ids fanno riferimento le stringhe del file styles.xml , se è necessario sostituire gli ids in accordo a quelli del vostro file public.xml
codice:
:pswitch_a4
iget-object v3, p0, Landroid/widget/Toast$TN;->mParams:Landroid/view/WindowManager$LayoutParams;
const v4, 0x1030004 #Animation.Toast
iput v4, v3, Landroid/view/WindowManager$LayoutParams;->windowAnimations:I
goto :goto_53
:pswitch_ac
iget-object v3, p0, Landroid/widget/Toast$TN;->mParams:Landroid/view/WindowManager$LayoutParams;
const v4, 0x103032d #Animation.Toast.Fade
iput v4, v3, Landroid/view/WindowManager$LayoutParams;->windowAnimations:I
goto :goto_53
:pswitch_b4
iget-object v3, p0, Landroid/widget/Toast$TN;->mParams:Landroid/view/WindowManager$LayoutParams;
const v4, 0x103032e #Animation.Toast.SlideRight
iput v4, v3, Landroid/view/WindowManager$LayoutParams;->windowAnimations:I
goto :goto_53
:pswitch_bc
iget-object v3, p0, Landroid/widget/Toast$TN;->mParams:Landroid/view/WindowManager$LayoutParams;
const v4, 0x103032f #Animation.Toast.SlideLeft
iput v4, v3, Landroid/view/WindowManager$LayoutParams;->windowAnimations:I
goto :goto_53
:pswitch_c4
iget-object v3, p0, Landroid/widget/Toast$TN;->mParams:Landroid/view/WindowManager$LayoutParams;
const v4, 0x1030330 #Animation.Toast.Xylon
iput v4, v3, Landroid/view/WindowManager$LayoutParams;->windowAnimations:I
goto :goto_53
:pswitch_cc
iget-object v3, p0, Landroid/widget/Toast$TN;->mParams:Landroid/view/WindowManager$LayoutParams;
const v4, 0x1030331 #Animation.Toast.Toko
iput v4, v3, Landroid/view/WindowManager$LayoutParams;->windowAnimations:I
goto :goto_53
:pswitch_d4
iget-object v3, p0, Landroid/widget/Toast$TN;->mParams:Landroid/view/WindowManager$LayoutParams;
const v4, 0x1030332 #Animation.Toast.Tn
iput v4, v3, Landroid/view/WindowManager$LayoutParams;->windowAnimations:I
goto/16 :goto_53
:pswitch_dd
iget-object v3, p0, Landroid/widget/Toast$TN;->mParams:Landroid/view/WindowManager$LayoutParams;
const v4, 0x1030333 #Animation.Toast.Honami
iput v4, v3, Landroid/view/WindowManager$LayoutParams;->windowAnimations:I
goto/16 :goto_53
:pswitch_e6
iget-object v3, p0, Landroid/widget/Toast$TN;->mParams:Landroid/view/WindowManager$LayoutParams;
const v4, 0x1030334 #Animation.Toast.FastFade
iput v4, v3, Landroid/view/WindowManager$LayoutParams;->windowAnimations:I
goto/16 :goto_53
:pswitch_ef
iget-object v3, p0, Landroid/widget/Toast$TN;->mParams:Landroid/view/WindowManager$LayoutParams;
const v4, 0x1030335 #Animation.Toast.GrowFade
iput v4, v3, Landroid/view/WindowManager$LayoutParams;->windowAnimations:I
goto/16 :goto_53
:pswitch_f8
iget-object v3, p0, Landroid/widget/Toast$TN;->mParams:Landroid/view/WindowManager$LayoutParams;
const v4, 0x1030336 #Animation.Toast.GrowFadeCenter
iput v4, v3, Landroid/view/WindowManager$LayoutParams;->windowAnimations:I
goto/16 :goto_53
:pswitch_101
iget-object v3, p0, Landroid/widget/Toast$TN;->mParams:Landroid/view/WindowManager$LayoutParams;
const v4, 0x1030337 #Animation.Toast.GrowFadeBottom
iput v4, v3, Landroid/view/WindowManager$LayoutParams;->windowAnimations:I
goto/16 :goto_53
:pswitch_10a
iget-object v3, p0, Landroid/widget/Toast$TN;->mParams:Landroid/view/WindowManager$LayoutParams;
const v4, 0x1030338 #Animation.Toast.Translucent
iput v4, v3, Landroid/view/WindowManager$LayoutParams;->windowAnimations:I
goto/16 :goto_53
:pswitch_113
iget-object v3, p0, Landroid/widget/Toast$TN;->mParams:Landroid/view/WindowManager$LayoutParams;
const v4, 0x103033a #Animation.Toast.SlideLeftRight
iput v4, v3, Landroid/view/WindowManager$LayoutParams;->windowAnimations:I
goto/16 :goto_53
:pswitch_11c
iget-object v3, p0, Landroid/widget/Toast$TN;->mParams:Landroid/view/WindowManager$LayoutParams;
const v4, 0x1030339 #Animation.Toast.SlideRightLeft
iput v4, v3, Landroid/view/WindowManager$LayoutParams;->windowAnimations:I
goto/16 :goto_53
nop
Salvare tutte le modifiche e ricompilare il framework2
....continua nel prossimo post