Ho scritto una modifica per Cydia, aggiunge un'icona alla barra di stato. Funziona bene sulla schermata principale e quando viene avviato SpringBoard, anche se un'app è già stata avviata, funziona comunque bene, se un'app (come Facebook o Twitter) viene chiusa (completamente) e l'icona viene visualizzata, quando all'avvio dell'app, l'icona scomparirà. L'icona viene visualizzata usando libStatusBar usando questo codice:
if(icon) // if icon needs to be removed
{
[icon release];
icon = nil;
}
...
// add the icon to the status bar
icon = [[%c(LSStatusBarItem) alloc] initWithIdentifier:[NSString stringWithFormat:@"muteIconLablabla"] alignment:StatusBarAlignmentRight];
icon.imageName = [NSString stringWithFormat:@"Mute"];
Ho anche provato a utilizzare i metodi suggeriti nel libStatusBarfile README
[[UIApplication sharedApplication] addStatusBarImageNamed:@"ON_Mute"]; // and removeStatusBarImageNamed:...
Ho provato a sostituire -(id)inite aggiornare l'icona lì, ma lo stesso risultato.
Il codice mostrato sopra viene chiamato da una static voidfunzione. questa funzione viene richiamata più volte, ad esempio da -(void)applicationDidFinishLaunching:(id)application
under %hook SpringBoarde-(void)ringerChanged:(int)changed
Tutto dentro Tweak.xm. Anche il problema si verifica iOS7.