non credo sia jdk il problema ,infatti con apk samsung non ho nessun problema
Visualizzazione stampabile
Credo che tu abbia centrato il punto ,le librerie sono aggiornate ma fino ad android 4.3 e non mi dà altri aggiornamenti a disposizione , infatti con gli apk 4.3 samsung,aokp,slim,etc riesco a lavorarci
comunque per quello che volevo fare vanno bene anche gli apk 4.3
ragazzi volevo sapere se voglio cambiare l'icona di un applicazione ad esempio la fotocamera come devo fare?non intendo mettere un launcher alternativo e mettere il pacchetto di icone che mi piace,intendo ad esempio entrare nel percorso del icona e cambiare un file,credo si debba fare una cosa del genere ma in che modo?grazie mille in anticipo!
per essere più preciso volevo mettere l'icona della fotocamera di questo pacchetto sostituendola con quella stock..sapete dirmi come si fa?:)https://mega.co.nz/#!BE5UmIhK!KQrwnX...GHUVMZlbS1kipc
L'icona della fotocamera la trovi in SamsungCamera.apk/res/drawable-320dp-hdpi.
Ti conviene scaricarti il pacchetto e l'apk sul pc. Estrai l'apk con winzip o simile e ti vai a cercare l'icona nel percorso sopra. Estrai l'icona dal pacchetto che hai postato, controlli che abbiano lo stasso nome e poi ti conviene inserirlo sul telefono creando uno zip flashabile da recovery.
Per quest'ultimo passaggio puoi utilizzare questo sotto se hai naturalmente un s2 con root e recovery mode.
https://www.dropbox.com/s/a3ewjltxwi...amera_Icon.zip
praticamente devo prendere lo zip che mi hai dato tu,cambiare l'icona con quella che voglio e flesharlo?
flesharlo dalla twrp?io ho la slimrom,e la fotocamera non è quella samsung stock ma quella del nexus che ho fleshato da recovery..puoi spiegarmi un po meglio i passaggi da fare?scusami ma è la prima volta che faccio una cosa del genere :-[
Quello zip contiene uno script universale per l'installazione di apk o parti di essa.
Se usi la slimrom con camera diversa dalla stock allora ti conviene estrarre apk camera che utilizzi e vedere il percorso dell'icona che vuoi modificare.
Poi sostituisci la cartella presente nello zip che ti ho passato con quello che hai ottenuto e lo flashi dalla recovery.
Es. SlimCamera.apk/res/drawable../nomeIcona.png
Ora la slimrom non la conosco un gran che...per info più dettagliate chiedi nel thread della rom. O magari un pm allo sviluppatore.
[GUIDA][Mod]Cambiare il colore e la trasparenza delle varie sezioni del pannello delle notifiche in tempo reale
Le sezioni sono:
-Header Allegato 108587
-Toggles Allegato 108588
-Brightness_slider Allegato 108589
-OnGoing_notification Allegato 108590
-Latest_notification Allegato 108591
Fare un Nandroid Backup prima di effettuare operazioni di modding
Per realizzare questa mod vi serve:
SecSettingsk@. apk
SystemUIk@. apk
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
Andare in res/value aprire strings.xml e aggiungere alla fine le seguenti lineecodice:<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/statusbar_expanded_options" >
<PreferenceScreen android:title="@string/expanded_options" android:summary="@string/summary_expanded_options">
<com.loser.colorpicker.ColorPickerPreference android:persistent="false" android:title="@string/toggles_bg_color_title" android:key="toggles_bg_color" android:summary="@string/toggles_bg_color_summary" android:defaultValue="0xff000000" alphaSlider="true" />
<com.loser.colorpicker.ColorPickerPreference android:persistent="false" android:title="@string/statusbar_header_color_title" android:key="statusbar_header_color" android:summary="@string/statusbar_header_color_summary" android:defaultValue="0xff000000" alphaSlider="true" />
<com.loser.colorpicker.ColorPickerPreference android:persistent="false" android:title="@string/brightness_bg_color_title" android:key="brightness_bg_color" android:summary="@string/brightness_bg_color_summary" android:defaultValue="0xff000000" alphaSlider="true" />
<com.loser.colorpicker.ColorPickerPreference android:persistent="false" android:title="@string/ongoing_bg_color_title" android:key="ongoing_bg_color" android:summary="@string/ongoing_bg_color_summary" android:defaultValue="0xff000000" alphaSlider="true" />
<com.loser.colorpicker.ColorPickerPreference android:persistent="false" android:title="@string/latest_notification_bg_color_title" android:key="latest_notification_bg_color" android:summary="@string/latest_notification_bg_color_summary" android:defaultValue="0xff000000" alphaSlider="true" />
</PreferenceScreen>
</PreferenceCategory>
Andare in res/value-it aprire strings.xml e aggiungere alla fine le seguenti lineecodice:
<string name="statusbar_header_color_summary">Change the color of the statusbar header</string>
<string name="brightness_bg_color_title">Brightness Background Color</string>
<string name="brightness_bg_color_summary">Change brightness background color</string>
<string name="ongoing_bg_color_title">OnGoing Background Color</string>
<string name="ongoing_bg_color_summary">Change ongoing background color</string>
<string name="latest_notification_bg_color_title">Notification Background Color</string>
<string name="latest_notification_bg_color_summary">Change notification background color</string>
<string name="statusbar_expanded_options">Statusbar Expanded Options</string>
<string name="expanded_options">Options</string>
<string name="summary_expanded_options">Choose from more statusbar expanded options</string>
<string name="toggles_bg_color_title">Toggles Background Option</string>
<string name="toggles_bg_color_summary">Change toggles background color</string>
Continua nel prossimo postcodice:
<string name="statusbar_header_color_title">Colora la Statusbar Expanded</string>
<string name="statusbar_header_color_summary">Scegli il colora della statusbar expanded</string>
<string name="brightness_bg_color_title">Sfondo Barra Luminosità</string>
<string name="brightness_bg_color_summary">Scegli il colore dello sfondo della barra di luminosità</string>
<string name="ongoing_bg_color_title">Sfondo Notifica In Corso</string>
<string name="ongoing_bg_color_summary">Scegli il colore dello sfondo della notifica in corso</string>
<string name="latest_notification_bg_color_title">Sfondo Notifica</string>
<string name="latest_notification_bg_color_summary">Scegli il colore dello sfondo della notifica</string>
<string name="statusbar_expanded_options">Opzioni Statusbar Expanded</string>
<string name="expanded_options">Opzioni</string>
<string name="summary_expanded_options">Scegli fra più opzioni per la statusbar expanded</string>
<string name="toggles_bg_color_title">Sfondo Toggles</string>
<string name="toggles_bg_color_summary">Scegli il colore dello sfondo dei toggles</string>
Andare in smali\com\android\settings\DisplaySettings.smali cercare le linee con .field e aggiungere le seguenti linee in rosso
Nello stesso file trovare .method private updateState()V e aggiungere le seguenti linee in rossocodice:.field private mSmartStayAnimationImage:[I
.field mStatusbarHeaderColor:Lcom/loser/colorpicker/ColorPickerPreference;
.field mBrightnessBGColor:Lcom/loser/colorpicker/ColorPickerPreference;
.field mOnGoingBGColor:Lcom/loser/colorpicker/ColorPickerPreference;
.field mLatestNotiBGColor:Lcom/loser/colorpicker/ColorPickerPreference;
.field mTogglesBGColor:Lcom/loser/colorpicker/ColorPickerPreference;
.field mSupportFolderType:Z
Continua......codice:const-string v4, "display_battery_percentage"
invoke-static {v0, v4, v2}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v0
if-eqz v0, :cond_4
move v0, v1
:goto_1
invoke-virtual {v3, v0}, Landroid/preference/CheckBoxPreference;->setChecked(Z)V
iget-object v0, p0, Lcom/android/settings/DisplaySettings;->mStatusbarHeaderColor:Lcom/loser/colorpicker/ColorPickerPreference;
invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v3
const-string v4, "statusbar_header_color"
const v5, -0xffffff
invoke-static {v3, v4, v5}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v3
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
const/16 v5, 0x0
invoke-virtual {v0, v5, v3}, Lcom/loser/colorpicker/ColorPickerPreference;->onSetInitialValue(ZLjava/lang/Object;)V
iget-object v0, p0, Lcom/android/settings/DisplaySettings;->mBrightnessBGColor:Lcom/loser/colorpicker/ColorPickerPreference;
invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v3
const-string v4, "brightness_bg_color"
const v5, -0xffffff
invoke-static {v3, v4, v5}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v3
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
const/16 v5, 0x0
invoke-virtual {v0, v5, v3}, Lcom/loser/colorpicker/ColorPickerPreference;->onSetInitialValue(ZLjava/lang/Object;)V
iget-object v0, p0, Lcom/android/settings/DisplaySettings;->mOnGoingBGColor:Lcom/loser/colorpicker/ColorPickerPreference;
invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v3
const-string v4, "ongoing_bg_color"
const v5, -0xffffff
invoke-static {v3, v4, v5}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v3
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
const/16 v5, 0x0
invoke-virtual {v0, v5, v3}, Lcom/loser/colorpicker/ColorPickerPreference;->onSetInitialValue(ZLjava/lang/Object;)V
iget-object v0, p0, Lcom/android/settings/DisplaySettings;->mLatestNotiBGColor:Lcom/loser/colorpicker/ColorPickerPreference;
invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v3
const-string v4, "latest_notification_bg_color"
const v5, -0xffffff
invoke-static {v3, v4, v5}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v3
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
const/16 v5, 0x0
invoke-virtual {v0, v5, v3}, Lcom/loser/colorpicker/ColorPickerPreference;->onSetInitialValue(ZLjava/lang/Object;)V
iget-object v0, p0, Lcom/android/settings/DisplaySettings;->mTogglesBGColor:Lcom/loser/colorpicker/ColorPickerPreference;
invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v3
const-string v4, "toggles_bg_color"
const v5, -0xffffff
invoke-static {v3, v4, v5}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v3
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
const/16 v5, 0x0
invoke-virtual {v0, v5, v3}, Lcom/loser/colorpicker/ColorPickerPreference;->onSetInitialValue(ZLjava/lang/Object;)V
Nello stesso file trovare .method public onCreate(Landroid/os/Bundle)V e cercare queste linee e aggiungere quelle in rosso:
Nello stesso file trovare .method public onPreferenceChange e aggiungere le linee in rosso, nelle linee in blu qualche spiegazionecodice:.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, "statusbar_header_color"
invoke-virtual {p0, v12}, Lcom/android/settings/DisplaySettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v12
check-cast v12, Lcom/loser/colorpicker/ColorPickerPreference;
iput-object v12, p0, Lcom/android/settings/DisplaySettings;->mStatusbarHeaderColor:Lcom/loser/colorpicker/ColorPickerPreference;
iget-object v12, p0, Lcom/android/settings/DisplaySettings;->mStatusbarHeaderColor:Lcom/loser/colorpicker/ColorPickerPreference;
invoke-virtual {v12, p0}, Lcom/loser/colorpicker/ColorPickerPreference;->setOnPreferenceChangeListener(Landroid/preference/Preference$OnPreferenceChangeListener;)V
const-string v12, "brightness_bg_color"
invoke-virtual {p0, v12}, Lcom/android/settings/DisplaySettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v12
check-cast v12, Lcom/loser/colorpicker/ColorPickerPreference;
iput-object v12, p0, Lcom/android/settings/DisplaySettings;->mBrightnessBGColor:Lcom/loser/colorpicker/ColorPickerPreference;
iget-object v12, p0, Lcom/android/settings/DisplaySettings;->mBrightnessBGColor:Lcom/loser/colorpicker/ColorPickerPreference;
invoke-virtual {v12, p0}, Lcom/loser/colorpicker/ColorPickerPreference;->setOnPreferenceChangeListener(Landroid/preference/Preference$OnPreferenceChangeListener;)V
const-string v12, "ongoing_bg_color"
invoke-virtual {p0, v12}, Lcom/android/settings/DisplaySettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v12
check-cast v12, Lcom/loser/colorpicker/ColorPickerPreference;
iput-object v12, p0, Lcom/android/settings/DisplaySettings;->mOnGoingBGColor:Lcom/loser/colorpicker/ColorPickerPreference;
iget-object v12, p0, Lcom/android/settings/DisplaySettings;->mOnGoingBGColor:Lcom/loser/colorpicker/ColorPickerPreference;
invoke-virtual {v12, p0}, Lcom/loser/colorpicker/ColorPickerPreference;->setOnPreferenceChangeListener(Landroid/preference/Preference$OnPreferenceChangeListener;)V
const-string v12, "latest_notification_bg_color"
invoke-virtual {p0, v12}, Lcom/android/settings/DisplaySettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v12
check-cast v12, Lcom/loser/colorpicker/ColorPickerPreference;
iput-object v12, p0, Lcom/android/settings/DisplaySettings;->mLatestNotiBGColor:Lcom/loser/colorpicker/ColorPickerPreference;
iget-object v12, p0, Lcom/android/settings/DisplaySettings;->mLatestNotiBGColor:Lcom/loser/colorpicker/ColorPickerPreference;
invoke-virtual {v12, p0}, Lcom/loser/colorpicker/ColorPickerPreference;->setOnPreferenceChangeListener(Landroid/preference/Preference$OnPreferenceChangeListener;)V
const-string v12, "toggles_bg_color"
invoke-virtual {p0, v12}, Lcom/android/settings/DisplaySettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v12
check-cast v12, Lcom/loser/colorpicker/ColorPickerPreference;
iput-object v12, p0, Lcom/android/settings/DisplaySettings;->mTogglesBGColor:Lcom/loser/colorpicker/ColorPickerPreference;
iget-object v12, p0, Lcom/android/settings/DisplaySettings;->mTogglesBGColor:Lcom/loser/colorpicker/ColorPickerPreference;
invoke-virtual {v12, p0}, Lcom/loser/colorpicker/ColorPickerPreference;->setOnPreferenceChangeListener(Landroid/preference/Preference$OnPreferenceChangeListener;)V
Salvare tutti i cambiamenti e ricompilare il SecSettingscodice:const-string v1, "DisplaySettings"
const-string v2, "could not persist Touch key light setting"
invoke-static {v1, v2, v0}, Landroid/util/Log;->secE(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
goto/16 :goto_4
.line 1068
:cond_a
const-string v2, "statusbar_header_color"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_brightness_bg
invoke-static {p2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
const-string v1, "^#"
const-string v3, ""
invoke-virtual {v2, v1, v3}, Ljava/lang/String;->replaceFirst(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
invoke-static {v3}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v1
invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v2
const-string v3, "statusbar_header_color"
invoke-static {v2, v3, v1}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
goto/16 :goto_4
:cond_brightness_bg
const-string v2, "brightness_bg_color"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_ongoing_bg
invoke-static {p2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
const-string v1, "^#"
const-string v3, ""
invoke-virtual {v2, v1, v3}, Ljava/lang/String;->replaceFirst(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
invoke-static {v3}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v1
invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v2
const-string v3, "brightness_bg_color"
invoke-static {v2, v3, v1}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
goto/16 :goto_4
:cond_ongoing_bg
const-string v2, "ongoing_bg_color"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_noti_bg
invoke-static {p2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
const-string v1, "^#"
const-string v3, ""
invoke-virtual {v2, v1, v3}, Ljava/lang/String;->replaceFirst(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
invoke-static {v3}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v1
invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v2
const-string v3, "ongoing_bg_color"
invoke-static {v2, v3, v1}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
goto/16 :goto_4
:cond_noti_bg
const-string v2, "latest_notification_bg_color"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_toggles_bg
invoke-static {p2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
const-string v1, "^#"
const-string v3, ""
invoke-virtual {v2, v1, v3}, Ljava/lang/String;->replaceFirst(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
invoke-static {v3}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v1
invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v2
const-string v3, "latest_notification_bg_color"
invoke-static {v2, v3, v1}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
goto/16 :goto_4
:cond_toggles_bg
const-string v2, "toggles_bg_color"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_q
invoke-static {p2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
const-string v1, "^#"
const-string v3, ""
invoke-virtual {v2, v1, v3}, Ljava/lang/String;->replaceFirst(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
invoke-static {v3}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v1
invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v2
const-string v3, "toggles_bg_color"
invoke-static {v2, v3, v1}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
goto/16 :goto_4
:cond_q
const-string v2, "quick_launch"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_c
Continua......
Parte con il SystemUI.apk
Decompilare il SystemUI.apk ,andare in res/layout e aprire in file tw_status_bar_expanded_header.xml e aggiungere la parte in rosso
codice:<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/header" android:background="#ff000000" android:layout_width="fill_parent" android:layout_height="39.0dip" android:baselineAligned="false"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
<com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Clock" android:textColor="#ffffffff" android:id="@id/clock" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="4.0dip" android:layout_marginTop="-3.0dip" android:singleLine="true" systemui:ampmSmall="true" />
<com.android.systemui.statusbar.policy.DateView android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Date" android:textColor="#ffcbcbcb" android:ellipsize="none" android:id="@id/date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8.0dip" android:layout_marginRight="4.0dip" android:maxLines="2" />
<com.android.systemui.statusbar.RotationToggle android:id="@id/rotation_lock_button" android:visibility="gone" android:clickable="true" android:layout_width="32.0dip" android:layout_height="32.0dip" android:layout_margin="8.0dip" android:button="@drawable/ic_notify_rotation" android:contentDescription="@string/accessibility_rotation_lock_off" />
<Space android:layout_width="0.0dip" android:layout_height="0.0dip" android:layout_weight="1.0" />
<ImageView android:layout_width="1.0dip" android:layout_height="25.0dip" android:layout_marginTop="7.0dip" android:layout_marginBottom="7.0dip" android:src="@drawable/tw_quick_panel_plnm_setting_dv" />
<com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/recent_apps" android:paddingLeft="3.0dip" android:paddingRight="3.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@drawable/tw_quickpanel_icon_recent" android:layout_toLeftOf="@id/back" android:contentDescription="@string/accessibility_recent" systemui:keyCode="187" systemui:glowBackground="@drawable/ic_sysbar_highlight" />
<ImageView android:layout_width="1.0dip" android:layout_height="25.0dip" android:layout_marginTop="7.0dip" android:layout_marginBottom="7.0dip" android:src="@drawable/tw_quick_panel_plnm_setting_dv" />
<RelativeLayout android:id="@id/settings_button" android:background="@drawable/tw_quick_panel_setting_button_bg" android:focusable="true" android:visibility="visible" android:layout_width="@dimen/status_bar_expanded_setting_width" android:layout_height="39.0dip">
<ImageView android:id="@id/settings_button_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/tw_quickpanel_icon_settings" android:scaleType="center" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:contentDescription="@string/accessibility_settings_button" />
</RelativeLayout>
</LinearLayout>
Andare in res/value e aprire il file public.xml e lasciarlo aperto per poter verificare i valori ids di:
-header
-latestItems
-onGoingItems
-brightness_controller
Andare in SystemUI\smali\com\android\systemui\statusbar\phon e\ e aprire il PhoneStatusBar.smali trovare il .method protected makeStatusBarView()Lcom/android/systemui/statusbar/phone/PhoneStatusBarView; e aggiungere le seguenti linee in rosso
codice:if-nez v9, :cond_0
.line 571
iget-object v9, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindow:Lcom/android/systemui/statusbar/phone/StatusBarWindowView;
const/4 v10, 0x0
invoke-virtual {v9, v10}, Landroid/view/View;->setBackground(Landroid/graphics/drawable/Drawable;)V
invoke-virtual {p0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->setStatusbarHeaderColor()V
invoke-virtual {p0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->setBrightnessBGColor()V
invoke-virtual {p0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->setOnGoingBGColor()V
invoke-virtual {p0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->setLatestNotiBGColor()V
.line 572
iget-object v9, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mNotificationPanel:Landroid/view/View;
new-instance v10, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$FastColorDrawable;
nello stesso file aggiungere i seguenti metodi in rosso
Continua......codice:
.method public setImeWindowStatus(Landroid/os/IBinder;II)V
.locals 3
.parameter "token"
.parameter "vis"
.parameter "backDisposition"
.prologue
.line 2748
const/4 v1, 0x2
if-eq p3, v1, :cond_0
and-int/lit8 v1, p2, 0x2
if-eqz v1, :cond_1
:cond_0
const/4 v0, 0x1
.line 2751
.local v0, altBack:Z
:goto_0
iget-object v2, p0, Lcom/android/systemui/statusbar/BaseStatusBar;->mCommandQueue:Lcom/android/systemui/statusbar/CommandQueue;
if-eqz v0, :cond_2
iget v1, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mNavigationIconHints:I
or-int/lit8 v1, v1, 0x8
:goto_1
invoke-virtual {v2, v1}, Lcom/android/systemui/statusbar/CommandQueue;->setNavigationIconHints(I)V
.line 2754
return-void
.line 2748
.end local v0 #altBack:Z
:cond_1
const/4 v0, 0x0
goto :goto_0
.line 2751
.restart local v0 #altBack:Z
:cond_2
iget v1, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mNavigationIconHints:I
and-int/lit8 v1, v1, -0x9
goto :goto_1
.end method
.method setLatestNotiBGColor()V
.locals 6
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindow:Lcom/android/systemui/statusbar/phone/StatusBarWindowView;
const v1, 0x7f0d004d qui inserire l'id corrispondente a latestItems
invoke-virtual {v0, v1}, Lcom/android/systemui/statusbar/phone/StatusBarWindowView;->findViewById(I)Landroid/view/View;
move-result-object v0
check-cast v0, Landroid/view/View;
iget-object v2, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mContext:Landroid/content/Context;
invoke-virtual {v2}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v2
const-string v3, "latest_notification_bg_color"
const v4, -0x100
invoke-static {v2, v3, v4}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v2
iput v2, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mLatestNotiBGColor:I
return-void
.end method
.method setOnGoingBGColor()V
.locals 6
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindow:Lcom/android/systemui/statusbar/phone/StatusBarWindowView;
const v1, 0x7f0d00e7 qui inserire l'id corrispondente a onGoingItems
invoke-virtual {v0, v1}, Lcom/android/systemui/statusbar/phone/StatusBarWindowView;->findViewById(I)Landroid/view/View;
move-result-object v0
check-cast v0, Landroid/view/View;
iget-object v2, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mContext:Landroid/content/Context;
invoke-virtual {v2}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v2
const-string v3, "ongoing_bg_color"
const v4, -0x100
invoke-static {v2, v3, v4}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v2
iput v2, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mOnGoingBGColor:I
return-void
.end method
.method setStatusbarHeaderColor()V
.locals 6
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindow:Lcom/android/systemui/statusbar/phone/StatusBarWindowView;
const v1, 0x7f0d000a qui inserire l'id corrispondente a header
invoke-virtual {v0, v1}, Lcom/android/systemui/statusbar/phone/StatusBarWindowView;->findViewById(I)Landroid/view/View;
move-result-object v0
check-cast v0, Landroid/widget/LinearLayout;
iget-object v2, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mContext:Landroid/content/Context;
invoke-virtual {v2}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v2
const-string v3, "statusbar_header_color"
const v4, -0x100
invoke-static {v2, v3, v4}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v2
invoke-virtual {v0, v2}, Landroid/view/View;->setBackgroundColor(I)V
return-void
.end method
.method setBrightnessBGColor()V
.locals 5
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindow:Lcom/android/systemui/statusbar/phone/StatusBarWindowView;
const v1, 0x7f0d00e0 qui inserire l'id corrispondente a brightness_controller
invoke-virtual {v0, v1}, Lcom/android/systemui/statusbar/phone/StatusBarWindowView;->findViewById(I)Landroid/view/View;
move-result-object v0
check-cast v0, Landroid/widget/LinearLayout;
iget-object v2, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mContext:Landroid/content/Context;
invoke-virtual {v2}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v2
const-string v3, "brightness_bg_color"
const v4, -0x100
invoke-static {v2, v3, v4}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v2
invoke-virtual {v0, v2}, Landroid/view/View;->setBackgroundColor(I)V
return-void
.end method
Andare inSystemUI\smali\com\android\systemui\statusbar\ph one\ e aprire il PhoneStatusBar.smali e quasi all'inizio del file dove ci sono le linee che iniziano con .field aggiungere le seguenti linee in rosso
Nello stesso file cercare le seguenti linee e aggiungere quelle in rossocodice:.field private mIntruderAlertView:Lcom/android/systemui/statusbar/policy/IntruderAlertView;
.field mIsMiniAppPanelLoadedProperly:Z
.field private mLatestNotiBGColor:I
.field private mOnGoingBGColor:I
.field private mLightsOnAnimation:Landroid/animation/AnimatorSet;
.field private mLightsOutAnimation:Landroid/animation/AnimatorSet;
.field mLocationController:Lcom/android/systemui/statusbar/policy/LocationController;
Andare in SystemUI\smali\com\android\systemui\statusbar\phon e\ e aprire il PhoneStatusBar$SettingsObserver.smali cercare il .method observe()V e aggiungere le seguenti linee in rossocodice:.line 1426
const v15, 0x3f7d70a4
invoke-virtual {v14, v15}, Landroid/view/View;->setAlpha(F)V
.line 1427
iget v15, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mOnGoingBGColor:I
invoke-virtual {v14, v15}, Landroid/view/View;->setBackgroundColor(I)V
.line 1428
move-object/from16 v0, p0
iget-object v15, v0, Lcom/android/systemui/statusbar/BaseStatusBar;->mOngoingNotifications:Lcom/android/systemui/statusbar/policy/NotificationRowLayout;
invoke-virtual {v15, v14, v4}, Landroid/view/ViewGroup;->addView(Landroid/view/View;I)V
.line 1423
:cond_e
add-int/lit8 v4, v4, 0x1
goto :goto_8
.line 1432
.end local v14 #v:Landroid/view/View;
:cond_f
const/4 v4, 0x0
:goto_9
invoke-virtual {v11}, Ljava/util/ArrayList;->size()I
move-result v15
if-ge v4, v15, :cond_11
.line 1433
invoke-virtual {v11, v4}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v14
check-cast v14, Landroid/view/View;
.line 1434
.restart local v14 #v:Landroid/view/View;
invoke-virtual {v14}, Landroid/view/View;->getParent()Landroid/view/ViewParent;
move-result-object v15
if-nez v15, :cond_10
.line 1435
const v15, 0x3f7d70a4
invoke-virtual {v14, v15}, Landroid/view/View;->setAlpha(F)V
.line 1436
iget v15, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mLatestNotiBGColor:I
invoke-virtual {v14, v15}, Landroid/view/View;->setBackgroundColor(I)V
.line 1437
move-object/from16 v0, p0
iget-object v15, v0, Lcom/android/systemui/statusbar/BaseStatusBar;->mLatestNotifications:Lcom/android/systemui/statusbar/policy/NotificationRowLayout;
invoke-virtual {v15, v14, v4}, Landroid/view/ViewGroup;->addView(Landroid/view/View;I)V
.line 1432
Nello stesso file trovare il .method public onChange(Z)V e aggiungere le seguenti linee in rossocodice:
const-string v1, "statusbar_header_color"
invoke-static {v1}, Landroid/provider/Settings$System;->getUriFor(Ljava/lang/String;)Landroid/net/Uri;
move-result-object v1
invoke-virtual {v0, v1, v2, p0}, Landroid/content/ContentResolver;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;)V
const-string v1, "brightness_bg_color"
invoke-static {v1}, Landroid/provider/Settings$System;->getUriFor(Ljava/lang/String;)Landroid/net/Uri;
move-result-object v1
invoke-virtual {v0, v1, v2, p0}, Landroid/content/ContentResolver;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;)V
const-string v1, "ongoing_bg_color"
invoke-static {v1}, Landroid/provider/Settings$System;->getUriFor(Ljava/lang/String;)Landroid/net/Uri;
move-result-object v1
invoke-virtual {v0, v1, v2, p0}, Landroid/content/ContentResolver;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;)V
const-string v1, "latest_notification_bg_color"
invoke-static {v1}, Landroid/provider/Settings$System;->getUriFor(Ljava/lang/String;)Landroid/net/Uri;
move-result-object v1
invoke-virtual {v0, v1, v2, p0}, Landroid/content/ContentResolver;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;)V
return-void
.end method
Andare in SystemUI\smali\com\android\systemui\statusbar\poli cy\quicksetting e aprire il QuickSettingButton.smali trovare il .method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;IIIIII)V e aggiungere le seguenti linee in rossocodice:
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$SettingsObserver;->this$0:Lcom/android/systemui/statusbar/phone/PhoneStatusBar;
invoke-virtual {v0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->setStatusbarHeaderColor()V
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$SettingsObserver;->this$0:Lcom/android/systemui/statusbar/phone/PhoneStatusBar;
invoke-virtual {v0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->setBrightnessBGColor()V
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$SettingsObserver;->this$0:Lcom/android/systemui/statusbar/phone/PhoneStatusBar;
invoke-virtual {v0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->setOnGoingBGColor()V
iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$SettingsObserver;->this$0:Lcom/android/systemui/statusbar/phone/PhoneStatusBar;
invoke-virtual {v0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->setLatestNotiBGColor()V
return-void
.end method
Andare in SystemUI\smali\com\android\systemui\statusbar\poli cy\quicksetting e aprire il QuickSettingPanel.smalicodice:.line 274
const v0, 0x7f02020a
invoke-virtual {p0, v0}, Landroid/view/View;->setBackgroundResource(I)V
iget-object v5, p0, Lcom/android/systemui/statusbar/policy/quicksetting/QuickSettingButton;->mBtnImage:Landroid/widget/ImageView;
invoke-virtual {v5}, Landroid/widget/ImageView;->getContext()Landroid/content/Context;
move-result-object v5
invoke-virtual {v5}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v5
const-string v6, "toggles_bg_color"
const v1, -0x100
invoke-static {v5, v6, v1}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v5
invoke-virtual {p0, v5}, Lcom/android/systemui/statusbar/policy/quicksetting/QuickSettingButton;->setBackgroundColor(I)V
.line 275
new-instance v0, Lcom/android/systemui/statusbar/policy/quicksetting/QuickSettingButton$2;
trovare il .method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V e aggiungere alla fine le linee in rosso
poi nello stesso file aggiungere questo intero method in rosso come sottocodice:.line 99
invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/quicksetting/QuickSettingPanel;->update()V
.line 100
iget-object v0, p0, Lcom/android/systemui/statusbar/policy/quicksetting/QuickSettingPanel;->mContext:Landroid/content/Context;
invoke-virtual {v0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v0
invoke-direct {p0, v0}, Lcom/android/systemui/statusbar/policy/quicksetting/QuickSettingPanel;->regObserver(Landroid/content/ContentResolver;)V
return-void
.end method
poi nello stesso file aggiungere questo intero method in rosso come sottocodice:.method static synthetic access$100(Lcom/android/systemui/statusbar/policy/quicksetting/QuickSettingPanel;)I
.locals 1
.parameter "x0"
.prologue
.line 51
iget v0, p0, Lcom/android/systemui/statusbar/policy/quicksetting/QuickSettingPanel;->mButtonCnt:I
return v0
.end method
.method static synthetic access$500(Lcom/android/systemui/statusbar/policy/quicksetting/QuickSettingPanel;)V
.locals 0
.parameter
.prologue
.line 83
invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/quicksetting/QuickSettingPanel;->refreshView()V
return-void
.end method
.method private disableQuickSettingButton([Ljava/lang/String;)[Ljava/lang/String;
.locals 3
quindi aggiungere questo file smali https://www.dropbox.com/s/qtea1ti7su...gsObserver.zip in SystemUI\smali\com\android\systemui\statusbar\poli cy\quicksettingcodice::cond_2
invoke-virtual {p0, v11}, Lcom/android/systemui/statusbar/policy/quicksetting/QuickSettingPanel;->prepareTranslationX(Z)V
.line 345
return-void
.end method
.method private regObserver(Landroid/content/ContentResolver;)V
.locals 3
.parameter "cs"
.prologue
const/4 v2, 0x0
new-instance v0, Lcom/android/systemui/statusbar/policy/quicksetting/QuickSettingPanel$SettingsObserver;
new-instance v1, Landroid/os/Handler;
invoke-direct {v1}, Landroid/os/Handler;-><init>()V
invoke-direct {v0, p0, p0, v1}, Lcom/android/systemui/statusbar/policy/quicksetting/QuickSettingPanel$SettingsObserver;-><init>(Lcom/android/systemui/statusbar/policy/quicksetting/QuickSettingPanel;Lcom/android/systemui/statusbar/policy/quicksetting/QuickSettingPanel;Landroid/os/Handler;)V
.local v0, ob:Lcom/android/systemui/statusbar/policy/quicksetting/QuickSettingPanel$SettingsObserver;
const-string v1, "toggles_bg_color"
invoke-static {v1}, Landroid/provider/Settings$System;->getUriFor(Ljava/lang/String;)Landroid/net/Uri;
move-result-object v1
invoke-virtual {p1, v1, v2, v0}, Landroid/content/ContentResolver;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;)V
return-void
.end method
.method private setViewWidth()I
.locals 5
Salvare tutti i cambiamenti e ricompile il SystemUI, quindi mettere il SecSettings.apk e il SystemUI.apk nel vostro dispositivo.
Lavoro impressionante!!! Complimenti Nicola! :thumbup:
Ciao Androidiani,
non so se sto chiedendo nella sezione giusta, scusatemi. 
In giro nel forum mi hanno detto che per avere la Status Bar trasparente (stile Kitkat, Galaxy S4) bastava modificare il file systemui.apk .
Volevo chiedervi:
-dove si trova il file systemui.apk ?
-una volta trovato, cosa devo modificare per far diventare la barra di stato trasparente?
Vi ringrazio in anticipo, se c'è già scritto da qualche parte come fare (io non l'ho trovato) potreste linkarmelo?
Grazie
Ciao Nicola, ho provato ad implementere la tua precedente guida tralasciando lo sfondo dei toogle in quanto io uso la lidroid e cercando di aggiungere la possibilità di modificare in tempo reale anche il testo delle notifiche.
Al primo test ho ottenuto un crash del systemUI subito dopo aver auto-caricato la trasparenza della statusbar.
Secondo te è possibile implementare tale modifica visto che tali valori sono gestiti nel framework invece che nel systemui?
Di seguito ti posto le modifiche apportate partendo dalla tua guida.
In blu le cose che ho aggiunto o modificato.
Ciaooo
Spoiler:
segue....
.method public onCreate(Landroid/os/Bundle)V
Spoiler:
segue.....
.method public onPreferenceChange
[spoiler]
[/spoler]codice:.line 1068
:cond_a
const-string v2, "statusbar_color"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_statusbar_header_color
invoke-static {p2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
const-string v1, "^#"
const-string v3, ""
invoke-virtual {v2, v1, v3}, Ljava/lang/String;->replaceFirst(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
invoke-static {v3}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v1
invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v2
const-string v3, "statusbar_color"
invoke-static {v2, v3, v1}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
goto/16 :goto_4
:cond_statusbar_header_color
const-string v2, "statusbar_header_color"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_brightness_bg
invoke-static {p2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
const-string v1, "^#"
const-string v3, ""
invoke-virtual {v2, v1, v3}, Ljava/lang/String;->replaceFirst(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
invoke-static {v3}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v1
invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v2
const-string v3, "statusbar_header_color"
invoke-static {v2, v3, v1}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
goto/16 :goto_4
:cond_brightness_bg
const-string v2, "brightness_bg_color"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_ongoing_bg
invoke-static {p2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
const-string v1, "^#"
const-string v3, ""
invoke-virtual {v2, v1, v3}, Ljava/lang/String;->replaceFirst(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
invoke-static {v3}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v1
invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v2
const-string v3, "brightness_bg_color"
invoke-static {v2, v3, v1}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
goto/16 :goto_4
:cond_ongoing_bg
const-string v2, "ongoing_bg_color"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_noti_bg
invoke-static {p2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
const-string v1, "^#"
const-string v3, ""
invoke-virtual {v2, v1, v3}, Ljava/lang/String;->replaceFirst(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
invoke-static {v3}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v1
invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v2
const-string v3, "ongoing_bg_color"
invoke-static {v2, v3, v1}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
goto/16 :goto_4
:cond_noti_bg
const-string v2, "latest_notification_bg_color"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_notify_txt_title_bg
invoke-static {p2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
const-string v1, "^#"
const-string v3, ""
invoke-virtual {v2, v1, v3}, Ljava/lang/String;->replaceFirst(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
invoke-static {v3}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v1
invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v2
const-string v3, "latest_notification_bg_color"
invoke-static {v2, v3, v1}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
goto/16 :goto_4
:cond_notify_txt_title_bg
const-string v2, "notify_txt_title_bg_color"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_notify_txt_bg
invoke-static {p2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
const-string v1, "^#"
const-string v3, ""
invoke-virtual {v2, v1, v3}, Ljava/lang/String;->replaceFirst(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
invoke-static {v3}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v1
invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v2
const-string v3, "notify_txt_title_bg_color"
invoke-static {v2, v3, v1}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
goto/16 :goto_4
:cond_notify_txt_bg
const-string v2, "notify_txt_bg_color"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_b
invoke-static {p2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
const-string v1, "^#"
const-string v3, ""
invoke-virtual {v2, v1, v3}, Ljava/lang/String;->replaceFirst(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
invoke-static {v3}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v1
invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v2
const-string v3, "notify_txt_bg_color"
invoke-static {v2, v3, v1}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
goto/16 :goto_4
:cond_b
const-string v2, "quick_launch"
.method public onPreferenceChange
Spoiler:
segue...
SystemUI.apk
Spoiler:
Fine. Non inserita tutta la parte relativa ai toggle.
Ciao rattle , ci stò lavorando anche io ai testi delle notifiche, però stò seguendo un'altra strada, e anche io sto avendo dei problemi, puoi postare il log degli errori che ti dà al momento del crash? cosi vediamo se con il tuo metodo raggiungiamo l'obbiettivo
Rattlehead scusami, potresti dirmi solamente come mettere la trasparenza alla statusbar? D:
Me l'aspettavo che ci stavi lavorando! rotfl
Per il log appena lo faccio te lo posto.
Intanto grazie!!
devi decompilare il SystemUI.apk
percorso: SystemUI\smali\com\android\systemui\statusbar\phon e
file da modificare: PhoneStatusBar.smali
cambi i due valori -0x100 in 0x0 (0=zero)
salvi e ricompili.
Rattle, decompilare che vuol dire? (Non ho mai moddato file).. e poi SystemUI dove si trova?
in linea di massima il tuo metodo è giusto , ma non sono sicuro che degli ids del framework-res si possano inserire nel systemUI
Per quanto riguarda la trasparenza della statusbar mi sà che ti devo correggere, quei due valori non si riferiscono alla statusbar
per ottenere solo la trasparenza è necessario decompilare il SystemUI e andare in res/value ed aprire il file drawables.xml.
qui nella linea
modificare il valore #ff1e1e1e in #00000000codice:<item type="drawable" name="status_bar_background">#ff1e1e1e</item>
Ciao Siimones mi sà che prima di toccare qualcosa dovresti iniziare a leggere sia in questo thread che qui https://www.androidiani.com/forum/mo...e-apktool.html
in questi due metodi ci sono degli errori:
hai inserito gli ids che si riferiscono ai linearlayout, mentre noi abbiamo bisogno degli ids che si riferiscono al text
di conseguenza bisogna cambiare il check-cast v0, Landroid/widget/LinearLayout; in check-cast v0, Landroid/widget/TextView;
poi cambiare il invoke-virtual {v2}, Landroid/view/View;->v0, setBackgroundColor(I)V in invoke-virtual {v2}, Landroid/widget/TextView;->setTextColor(I)V
Prova cosi:
su pc ti rechi in C:\SDK\adt-bundle-windows-x86-20130219\sdk\platform-tools , apri il prompt dei comandi e digita cd C:\SDK\adt-bundle-windows-x86-20130219\sdk\platform-tools e dai invio poi digita adb logcat > logcat.txt e dai invio dopo che ti si riavvia il cell, io di solito lo dò quando compare il logo samsung
ahh se sei con il kernel Apolo devi abilitare la possibilità di fare i logcat , questo si fa da recovery
Attivato dal kernel. Grazie!
ALogCat
https://www.dropbox.com/s/zbirv2zx50...-11%2B0200.txt
LogCat
https://www.dropbox.com/s/sa1x0krtbp...1-23-41-37.txt
il log dice che ci sono problemi con la linea di codice
per avere maggiori informazioni potresti postare il log per intero?codice:.line 1427
iget v15, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mOnGoingBGColor:I
ma ti dava problemi anche prima che tu aggiungessi i nuovi metodi per il testo delle notifiche?
Ok! Come torno a casa rifaccio il log.
Ho fatto tutto insieme....non ho provato senza le nuove righe.
Volevo provare a togliere gli ids del framework cambiandoli con altri presenti nel systemUI e vedere che succedeva.
Ci aggiorniamo non appena faccio qualcosa.
Ciao caro.
Eccomi! Mi sa che mi conviene ricominciare da capo :o
Ho fatto due versioni. La prima con solo le modifiche per il testo delle notifiche e devo dirti che per un attimo mi ci ha fatto sperare...riesco ad arrivare fino alla tavolozza dei colori ma poi come seleziono un colore va in crash e stessa cosa per il colore della statusbar.
La seconda con i soli tuoi metodi va in crash continuo già dall'avvio.
Quindi devo aver per forza fatto qualche macello. :p
Eccoti i log.
Spero stavolta siano più completi.
Le prime due riguardano la versione con le sole modifiche del testo, mentre la terza e con le sole altre.
https://www.dropbox.com/s/o5yhe3gj62...-testo-not.txt
https://www.dropbox.com/s/6igioqzp11...che-logcat.txt
https://www.dropbox.com/s/n3jbkzhgq0...b-expanded.txt
Ciao.
Per quanto riguarda la mia guida , ho fatto un errore , o mi sono dimenticato di scrivere una parte o siccome l'ho scritta tutta di seguito però non standoci tutta in un post ho dovuto fare un taglia copia incolla un paio di volte, e magari quella parte l' ho saltata .
Comunque questo è il codice che manca nella guida:
Andare inSystemUI\smali\com\android\systemui\statusbar\ph one\ e aprire il PhoneStatusBar.smali e quasi all'inizio del file dove ci sono le linee che iniziano con .field aggiungere le seguenti linee in rosso
Scusa ancora:p, ora correggo anche la guida e poi controllo gli altri logcodice:
.field private mIntruderAlertView:Lcom/android/systemui/statusbar/policy/IntruderAlertView;
.field mIsMiniAppPanelLoadedProperly:Z
.field private mLatestNotiBGColor:I
.field private mOnGoingBGColor:I
.field private mLightsOnAnimation:Landroid/animation/AnimatorSet;
.field private mLightsOutAnimation:Landroid/animation/AnimatorSet;
.field mLocationController:Lcom/android/systemui/statusbar/policy/LocationController;
edit: gli altri due log diciamo che confermano quello che pensavo, infatti nel log il codice
stà ad indicare in parole povere, che manca la dichiarazione di una o più variabili ,in questo caso degli ids, perchè gli ids che hai aggiunto non sono del SystemUIcodice:E/AndroidRuntime( 7154): java.lang.NullPointerException
Ah ok! Non ti devi scusare. Poi ci riprovo.
Speravo che essendo chiamata public.xml le variabili al suo interno avessero una visibilità anche fuori dall'apk di appartenenza.
Sarebbe stato troppo semplice :banghead:
Grazie per la gentilezza e la disponibilità :thumbup:
Io nei giorni scorsi ho apportato nuove modifiche
Allegato 108993Allegato 108992
Però vorrei chiarire una cosa.Le guide che ho scritto ,rigurdanti il cambio colore in tempo reale ,non sono frutto della mia fantasia ma sono tutte caratteristiche introdotte dall' Alliance Team, io grazie all'aiuto dell'utente Goldie su xda, uno dei maggiori sviluppatori Alliance, sto imparando a capire come funzionano certi codici e a scrivere parte di essi per realizzare delle mod.