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 libStatusBar
file README
[[UIApplication sharedApplication] addStatusBarImageNamed:@"ON_Mute"]; // and removeStatusBarImageNamed:...
Ho provato a sostituire -(id)init
e aggiornare l'icona lì, ma lo stesso risultato.
Il codice mostrato sopra viene chiamato da una static void
funzione. questa funzione viene richiamata più volte, ad esempio da -(void)applicationDidFinishLaunching:(id)application
under %hook SpringBoard
e-(void)ringerChanged:(int)changed
Tutto dentro Tweak.xm
. Anche il problema si verifica iOS7
.