Originariamente inviato da
sarovin
Vi faccio vedere cosa ho fatto tra un panettone e l'altro...
Volevo modificare l'indicatore della batteria da blue a bianco ed ho provato a fare una serie di prove sul file CircleBattery.smali senza riuscirci.
Avete consigli al riguardo?
Risolto questo e messa la trasparenza nei quick settings pubblico la mod
Per quanto riguarda il CircleBattery ho difficolta nel capire la differenza tra const/high16 v2, 0x0 o const v2, 0x0...il colore bianco dovrebbe così "const/4 v7, -0x1", no?
Allora, su CyanogenMod 10.2 non ho mai capito come si fa a cambiare colore a quel cerchietto maledetto...
pero' posso proporti un metodo...
Mio fratello si sta compilando una Rom per Nexus 5, ed ha aggiunto anche questo mod...
Ora... è bianco
Ti posso passare gli smali sbiancati direttamente da sorgente... da file .java..
circle.zip
ecco cosa devi fare:
Inanzitutto ti fai uno zip flashabile con un revert della systemUI senza le modifiche che ti sto per mostrare.
Poi, decompili la systemUI e vai
smali\com\android\systemui\statusbar\policy
e sostituisci gli smali della batteria circolare con quelli che ti ho dato Io...
Poi...
vai in /res/values/colors.xml
e aggiungi quello in verde:
codice:
<color name="circle_battery_font">#ffffffff</color>
<color name="circle_battery_inner">#ff404040</color>
<color name="circle_battery_full">#ffffffff</color>
<color name="circle_battery_empty">#ffff3300</color>
</resources>
salvi e ricompili...
adesso, prima di provarlo...
apri /res/values/public.xml
e cerchi:
circle_battery_font
circle_battery_inner
circle_battery_full
circle_battery_empty
ad ognuna di queste stringhe corrisponde un valore 0x
codice:
<public type="color" name="circle_battery_font" id="0x########" />
<public type="color" name="circle_battery_inner" id="0x########" />
<public type="color" name="circle_battery_full" id="0x########" />
<public type="color" name="circle_battery_empty" id="0x########" />
ti tieni aperto il public con questi valori in bella vista perché ti serviranno...
Ora apri il circlebattery.smali che ti ho dato Io... siccome il circle che ti ho dato contiene i valori della compilata di mio fratello, Tu cerchi i valori originali che sono questi:
codice:
<public type="color" name="circle_battery_font" id="0x7f08000a" />
<public type="color" name="circle_battery_inner" id="0x7f08000b" />
<public type="color" name="circle_battery_full" id="0x7f08000c" />
<public type="color" name="circle_battery_empty" id="0x7f08000d" />
e ci sostituisci quelli che ti ha generato la tua ricompilazione...
ad es. cerchi 0x7f08000a che corrisponde a circle_battery_font
vedi circle_battery_font a cosa corrisponde nel tuo public e ci metti il valore tuo, che corrisponderebbe poi al valore blu che ti ho evidenziato... sono quattro valori...
quei 4 valori li cambi con quelli che ti vengono generati dalla ricompilazione ...
poi ricompili, fai tutto quello che devi fare e provi se funge...
per sicurezza fatti uno zip con la Ui con gli smali originali, cosi in caso reverti
non so se sono stato chiaro
EDIT:
codice:
.line 212
iget-object v2, p0, Lcom/android/systemui/statusbar/policy/CircleBattery;->mPaintFont:Landroid/graphics/Paint;
const v3, 0x7f08000a (ci metti il tuo valore nel public corrispondente a <public type="color" name="circle_battery_font" id="0x########" />)
invoke-virtual {v0, v3}, Landroid/content/res/Resources;->getColor(I)I
move-result v3
invoke-virtual {v2, v3}, Landroid/graphics/Paint;->setColor(I)V
.line 213
iget-object v2, p0, Lcom/android/systemui/statusbar/policy/CircleBattery;->mPaintSystem:Landroid/graphics/Paint;
const v3, 0x7f08000c (ci metti il tuo valore nel public corrispondente a <public type="color" name="circle_battery_full" id="0x########" />)
invoke-virtual {v0, v3}, Landroid/content/res/Resources;->getColor(I)I
move-result v3
invoke-virtual {v2, v3}, Landroid/graphics/Paint;->setColor(I)V
.line 214
iget-object v2, p0, Lcom/android/systemui/statusbar/policy/CircleBattery;->mPaintGray:Landroid/graphics/Paint;
const v3, 0x7f08000b (ci metti il tuo valore nel public corrispondente a <public type="color" name="circle_battery_inner" id="0x########" />)
invoke-virtual {v0, v3}, Landroid/content/res/Resources;->getColor(I)I
move-result v3
invoke-virtual {v2, v3}, Landroid/graphics/Paint;->setColor(I)V
.line 215
iget-object v2, p0, Lcom/android/systemui/statusbar/policy/CircleBattery;->mPaintRed:Landroid/graphics/Paint;
const v3, 0x7f08000d (ci metti il tuo valore nel public corrispondente a <public type="color" name="circle_battery_empty" id="0x########" />)
invoke-virtual {v0, v3}, Landroid/content/res/Resources;->getColor(I)I
move-result v3
invoke-virtual {v2, v3}, Landroid/graphics/Paint;->setColor(I)V