cgm616 / VolumeBar9

A jailbreak tweak to change the stock volume HUD

Home Page:https://cgm616.me/repo

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Activator incompatibility

cgm616 opened this issue · comments

On occasion VolumeBar9 and Activator will crash the Springboard, I think because of the hook on VolumeControl.

Hard to test; hard to reproduce.

Log files:

Probably not a incompatibility? All the logs I've seen crash on -[VolumeBar resetTimer]

Logs with activator uninstalled:

This confirms that it's definitely something with only VolumeBar9.

When adding logging to the tweak, the problem seems to disappear. Still hard to know for sure. Below is what was added.

VolumeBar.xm

-(void)resetTimer {
  HBLogDebug(@"in resetTimer");
  if(hide != nil) {
    HBLogDebug(@"hide exists");
    [hide invalidate];
    HBLogDebug(@"hide invalidated");
    hide = nil;
    HBLogDebug(@"hide = nil now");
    hide = [NSTimer scheduledTimerWithTimeInterval:_delayTime target:self selector:@selector(_hideHUD) userInfo:nil repeats:NO];
    HBLogDebug(@"new hide created");
  }
}

Tweak.xm

%hook VolumeControl

-(void)increaseVolume {
  HBLogDebug(@"hooked increaseVolume");
  if(active && vbar != nil) {
    HBLogDebug(@"calling resetTimer");
    [vbar resetTimer];
  }

  %orig;
}

%end

One report has come in that the crash is actually from pressing the volume buttons and calling resetTimer while the banner is animating away.

I was able to reproduce it in this way! Sweet, should be a relatively easy fix to disable any functionality of resetTimer after hideHUD has been called.