VLCActivityManager.m 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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 TARGET_OS_IOS
  45. if ([UIApplication sharedApplication].networkActivityIndicatorVisible == NO)
  46. [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
  47. #endif
  48. }
  49. - (BOOL)haveNetworkActivity
  50. {
  51. return _networkActivityCounter >= 1;
  52. }
  53. - (void)networkActivityStopped
  54. {
  55. _networkActivityCounter--;
  56. #if TARGET_OS_IOS
  57. if (_networkActivityCounter < 1)
  58. [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
  59. #endif
  60. }
  61. @end