El icono de LibStatusBar desaparece en el lanzamiento de aplicaciones de terceros

152

Escribí un ajuste para Cydia, agrega un ícono a la barra de estado. Funciona bien en la pantalla de inicio y cuando se inicia SpringBoard, también, si una aplicación ya está iniciada, funciona bien, sin embargo, si una aplicación (como Facebook o Twitter) está cerrada (completamente) y el icono se muestra, cuando Al iniciar la aplicación, el icono desaparecerá. El icono se muestra usando libStatusBar usando este código:

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"];

También intenté usar los métodos sugeridos en el libStatusBararchivo README

[[UIApplication sharedApplication] addStatusBarImageNamed:@"ON_Mute"]; // and removeStatusBarImageNamed:...

Intenté anular -(id)inity actualizar el ícono allí, pero el mismo resultado.

El código que se muestra arriba se llama desde una static voidfunción. Esta función se llama varias veces, por ejemplo, desde -(void)applicationDidFinishLaunching:(id)application abajo %hook SpringBoardy-(void)ringerChanged:(int)changed

Todo el interior Tweak.xm. El problema también ocurre en iOS7.

La bla bla
fuente

Respuestas:

2

Ha pasado un tiempo desde que usé libstatusbar, pero si está absolutamente seguro de LSStatusBarItemque no se lanzará, es posible que Springboard u otra aplicación lo oculte. Considere establecer icon.visible = YESexplícitamente. También puede ser que desee considerar el establecimiento timeHiddenen LSStatusBarServerque NOexplícitamente llamando [item setHidesTime:NO].

Además, si no está realizando ningún cambio en el icono, configúrelo icon.manualUpdate = NO.

Referencias

JAL
fuente