VLCActivityManager.m 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /*****************************************************************************
  2. * VLCActivityManager.m
  3. * VLC for iOS
  4. *****************************************************************************
  5. * Copyright (c) 2015 VideoLAN. All rights reserved.
  6. * $Id$
  7. *
  8. * Authors: Felix Paul Kühne <fkuehne # videolan.org>
  9. *
  10. * Refer to the COPYING file of the official project for license.
  11. *****************************************************************************/
  12. #import "VLCActivityManager.h"
  13. @interface VLCActivityManager ()
  14. {
  15. int _idleCounter;
  16. int _networkActivityCounter;
  17. }
  18. @end
  19. @implementation VLCActivityManager
  20. + (instancetype)defaultManager
  21. {
  22. static VLCActivityManager *sharedInstance = nil;
  23. static dispatch_once_t pred;
  24. dispatch_once(&pred, ^{
  25. sharedInstance = [VLCActivityManager new];
  26. });
  27. return sharedInstance;
  28. }
  29. - (void)activateIdleTimer
  30. {
  31. _idleCounter--;
  32. if (_idleCounter < 1)
  33. [UIApplication sharedApplication].idleTimerDisabled = NO;
  34. }
  35. - (void)disableIdleTimer
  36. {
  37. _idleCounter++;
  38. if ([UIApplication sharedApplication].idleTimerDisabled == NO)
  39. [UIApplication sharedApplication].idleTimerDisabled = YES;
  40. }
  41. - (void)networkActivityStarted
  42. {
  43. _networkActivityCounter++;
  44. if ([UIApplication sharedApplication].networkActivityIndicatorVisible == NO)
  45. [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
  46. }
  47. - (BOOL)haveNetworkActivity
  48. {
  49. return _networkActivityCounter >= 1;
  50. }
  51. - (void)networkActivityStopped
  52. {
  53. _networkActivityCounter--;
  54. if (_networkActivityCounter < 1)
  55. [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
  56. }
  57. @end