mirror of
https://github.com/faroukbmiled/RyukGram.git
synced 2026-04-22 12:16:15 +02:00
104 lines
2.4 KiB
Objective-C
Executable File
104 lines
2.4 KiB
Objective-C
Executable File
//
|
|
// JGProgressHUDIndicatorView.m
|
|
// JGProgressHUD
|
|
//
|
|
// Created by Jonas Gessner on 20.7.14.
|
|
// Copyright (c) 2014 Jonas Gessner. All rights reserved.
|
|
//
|
|
|
|
#import "JGProgressHUDIndicatorView.h"
|
|
#import "JGProgressHUD.h"
|
|
|
|
@interface JGProgressHUDIndicatorView () {
|
|
BOOL _accessibilityUpdateScheduled;
|
|
}
|
|
|
|
+ (void)runBlock:(void (^)(void))block;
|
|
|
|
@end
|
|
|
|
static void runOnNextRunLoop(void (^block)(void)) {
|
|
[[NSRunLoop currentRunLoop] performSelector:@selector(runBlock:) target:[JGProgressHUDIndicatorView class] argument:(id)block order:0 modes:@[NSRunLoopCommonModes]];
|
|
}
|
|
|
|
@implementation JGProgressHUDIndicatorView
|
|
|
|
#pragma mark - Initializers
|
|
|
|
- (instancetype)initWithFrame:(CGRect __unused)frame {
|
|
return [self init];
|
|
}
|
|
|
|
- (instancetype)init {
|
|
return [self initWithContentView:nil];
|
|
}
|
|
|
|
- (instancetype)initWithContentView:(UIView *)contentView {
|
|
self = [super initWithFrame:(contentView ? contentView.frame : CGRectMake(0.0, 0.0, 50.0, 50.0))];
|
|
if (self) {
|
|
self.opaque = NO;
|
|
self.backgroundColor = [UIColor clearColor];
|
|
|
|
self.isAccessibilityElement = YES;
|
|
[self setNeedsAccessibilityUpdate];
|
|
|
|
if (contentView) {
|
|
_contentView = contentView;
|
|
|
|
[self addSubview:self.contentView];
|
|
}
|
|
}
|
|
return self;
|
|
}
|
|
|
|
#pragma mark - Setup
|
|
|
|
- (void)setUpForHUDStyle:(JGProgressHUDStyle)style vibrancyEnabled:(BOOL)vibrancyEnabled {}
|
|
|
|
#pragma mark - Accessibility
|
|
|
|
+ (void)runBlock:(void (^)(void))block {
|
|
if (block != nil) {
|
|
block();
|
|
}
|
|
}
|
|
|
|
- (void)setNeedsAccessibilityUpdate {
|
|
if (!_accessibilityUpdateScheduled) {
|
|
_accessibilityUpdateScheduled = YES;
|
|
|
|
runOnNextRunLoop(^{
|
|
[self updateAccessibilityIfNeeded];
|
|
});
|
|
}
|
|
}
|
|
|
|
- (void)updateAccessibilityIfNeeded {
|
|
if (_accessibilityUpdateScheduled) {
|
|
[self updateAccessibility];
|
|
_accessibilityUpdateScheduled = NO;
|
|
}
|
|
}
|
|
|
|
- (void)updateAccessibility {
|
|
self.accessibilityLabel = [NSLocalizedString(@"Loading",) stringByAppendingFormat:@" %.f %%", self.progress];
|
|
}
|
|
|
|
#pragma mark - Getters & Setters
|
|
|
|
- (void)setProgress:(float)progress {
|
|
[self setProgress:progress animated:NO];
|
|
}
|
|
|
|
- (void)setProgress:(float)progress animated:(__unused BOOL)animated {
|
|
if (fequal(self.progress, progress)) {
|
|
return;
|
|
}
|
|
|
|
_progress = progress;
|
|
|
|
[self setNeedsAccessibilityUpdate];
|
|
}
|
|
|
|
@end
|