[Samsung Galaxy S 5 Unified Development] remuntada78:
Do you remember this strange thing? Well it made me think so I managed to have the color change of the icons on the fly

then:

on .method protected handleStateChanged(Lcom/android/systemui/qs/QSTile$State;)V of QSTileView.smali we have the code to change the toggles icon color but we need to call that method in QSPanel.smali

so in QSPanel.smali we have .method private refreshAllTiles()V where we need to add the following red lines

.method private refreshAllTiles()V
.locals [COLOR="Red"]5[/COLOR]

.prologue
.line 282
iget-object v2, p0, Lcom/android/systemui/qs/QSPanel;->mRecords:Ljava/util/ArrayList;

invoke-virtual {v2}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;

move-result-object v0

.local v0, "i$":Ljava/util/Iterator;
:goto_0
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z

move-result v2

if-eqz v2, :cond_0

invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;

move-result-object v1

check-cast v1, Lcom/android/systemui/qs/QSPanel$TileRecord;

.line 283
.local v1, "r":Lcom/android/systemui/qs/QSPanel$TileRecord;
iget-object v2, v1, Lcom/android/systemui/qs/QSPanel$TileRecord;->tile:Lcom/android/systemui/qs/QSTile;

invoke-virtual {v2}, Lcom/android/systemui/qs/QSTile;->refreshState()V
[COLOR="Red"]
iget-object v3, v1, Lcom/android/systemui/qs/QSPanel$TileRecord;->tile:Lcom/android/systemui/qs/QSTile;

invoke-virtual {v3}, Lcom/android/systemui/qs/QSTile;->getState()Lcom/android/systemui/qs/QSTile$State;

move-result-object v3

iget-object v4, v1, Lcom/android/systemui/qs/QSPanel$TileRecord;->tileView:Lcom/android/systemui/qs/QSTileView;

invoke-virtual {v4, v3}, Lcom/android/systemui/qs/QSTileView;->handleStateChanged(Lcom/android/systemui/qs/QSTile$State;)V[/COLOR]

goto :goto_0

.line 288
.end local v1 # "r":Lcom/android/systemui/qs/QSPanel$TileRecord;
:cond_0
return-void
.end method

for QSPanel.smali i used the obsever way shown to me by [MENTION=4645794]CNexus[/MENTION]

so in .method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;)V we need to add the following red lines

iget-object v2, p0, Lcom/android/systemui/qs/QSPanel;->mNumberObserver:Lcom/android/systemui/qs/QSPanel$QuickSettingButtonNumberObserver;

const/4 v3, -0x2

invoke-virtual {v0, v1, v4, v2, v3}, Landroid/content/ContentResolver;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;I)V

.line 134
invoke-virtual {p0}, Lcom/android/systemui/qs/QSPanel;->updateResources()V

.line 166[COLOR="Red"]
iget-object v0, p0, Lcom/android/systemui/qs/QSPanel;->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/qs/QSPanel;->regObserver(Landroid/content/ContentResolver;)V
[/COLOR]
return-void
.end method

then after that method we need to add the following 2 new method

.method static synthetic access$000(Lcom/android/systemui/qs/QSPanel;)V
.locals 0

.prologue
.line 83
invoke-direct {p0}, Lcom/android/systemui/qs/QSPanel;->refreshAllTiles()V

return-void
.end method

.method private regObserver(Landroid/content/ContentResolver;)V
.locals 3

.prologue
const/4 v2, 0x0

new-instance v0, Lcom/android/systemui/qs/QSPanel$SettingsObserver;

new-instance v1, Landroid/os/Handler;

invoke-direct {v1}, Landroid/os/Handler;-><init>()V

invoke-direct {v0, p0, p0, v1}, Lcom/android/systemui/qs/QSPanel$SettingsObserver;-><init>(Lcom/android/systemui/qs/QSPanel;Lcom/android/systemui/qs/QSPanel;Landroid/os/Handler;)V

.local v0, "ob":Lcom/android/systemui/qs/QSPanel$SettingsObserver;

const-string v1, "toggles_icon_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

the add the observer file in SystemUI/com/android/systemui/qs/

.class Lcom/android/systemui/qs/QSPanel$SettingsObserver;
.super Landroid/database/ContentObserver;
.source "QSPanel.java"

# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/android/systemui/qs/QSPanel;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x0
name = "SettingsObserver"
.end annotation

# instance fields
.field qs:Lcom/android/systemui/qs/QSPanel;

.field final synthetic this$0:Lcom/android/systemui/qs/QSPanel;

# direct methods
.method public constructor <init>(Lcom/android/systemui/qs/QSPanel;Lcom/android/systemui/qs/QSPanel;Landroid/os/Handler;)V
.locals 0

.prologue
.line 148
iput-object p1, p0, Lcom/android/systemui/qs/QSPanel$SettingsObserver;->this$0:Lcom/android/systemui/qs/QSPanel;

.line 149
invoke-direct {p0, p3}, Landroid/database/ContentObserver;-><init>(Landroid/os/Handler;)V

.line 150
iput-object p2, p0, Lcom/android/systemui/qs/QSPanel$SettingsObserver;->qs:Lcom/android/systemui/qs/QSPanel;

.line 151
return-void
.end method

# virtual methods
.method public onChange(Z)V
.locals 1

.prologue
.line 154
const/4 v0, 0x0

invoke-virtual {p0, p1, v0}, Lcom/android/systemui/qs/QSPanel$SettingsObserver;->onChange(ZLandroid/net/Uri;)V

.line 155
return-void
.end method

.method public onChange(ZLandroid/net/Uri;)V
.locals 1

.prologue
.line 158
.line 159
iget-object v0, p0, Lcom/android/systemui/qs/QSPanel$SettingsObserver;->qs:Lcom/android/systemui/qs/QSPanel;

# invokes: Lcom/android/systemui/qs/QSPanel;->refreshAllTiles()V
invoke-static {v0}, Lcom/android/systemui/qs/QSPanel;->access$000(Lcom/android/systemui/qs/QSPanel;)V

.line 160
return-void
.end method

that's all:D