Merge branch 'develop' into feature/molecule_radio_button

This commit is contained in:
Suresh, Kamlesh 2019-05-07 10:29:34 -04:00
commit d89b3522ee
10 changed files with 66 additions and 28 deletions

View File

@ -604,8 +604,8 @@ public typealias CoreObjectActionLoadPresentDelegate = MVMCoreActionDelegateProt
performAction = wButtonDelegate.button?(wSelf, shouldPerformActionWithMap: actionMap, additionalData: additionalData) ?? false
}
if let wDelegate = weakDelegate as? CoreObjectActionLoadPresentDelegate, performAction {
MVMCoreActionHandler.shared()?.handleAction(with: actionMap, additionalData: additionalData, delegate: wDelegate)
if performAction {
MVMCoreActionHandler.shared()?.handleAction(with: actionMap, additionalData: additionalData, delegate: weakDelegate as? CoreObjectActionLoadPresentDelegate)
}
}
}

View File

@ -243,7 +243,7 @@ import UIKit
// Gifs aren't supported by default and need special handling
MVMCoreCache.shared()?.getGif(imageName, useWidth: width != nil, widthForS7: width?.intValue ?? 0, useHeight: height != nil, heightForS7: height?.intValue ?? 0, format: format, localFallbackImageName: fallbackImageName, completionHandler: finishedLoadingBlock)
} else {
MVMCoreCache.shared()?.getImage(imageName, useWidth: width != nil, widthForS7: width?.intValue ?? 0, useHeight: height != nil, heightForS7: height?.intValue ?? 0, localFallbackImageName: fallbackImageName, completionHandler: finishedLoadingBlock)
MVMCoreCache.shared()?.getImage(imageName, useWidth: width != nil, widthForS7: width?.intValue ?? 0, useHeight: height != nil, heightForS7: height?.intValue ?? 0, format: format, localFallbackImageName: fallbackImageName, completionHandler: finishedLoadingBlock)
}
})
}

View File

@ -68,7 +68,7 @@ static const CGFloat CheckBoxHeightWidth = 18.0;
NSString *checkedColorHex = [json string:@"checkedColor"];
NSString *unCheckedColorHex = [json string:@"unCheckedColor"];
UIColor *checkedColor = checkedColorHex ? [UIColor mfGetColorForHex:checkedColorHex]: [UIColor blackColor];
UIColor *checkedColor = checkedColorHex ? [UIColor mfGetColorForHex:checkedColorHex]: [UIColor clearColor];
UIColor *unCheckedColor = unCheckedColorHex ? [UIColor mfGetColorForHex:unCheckedColorHex]: [UIColor clearColor];
[self setupWithCheckedColor:checkedColor
@ -183,6 +183,7 @@ static const CGFloat CheckBoxHeightWidth = 18.0;
- (instancetype)initWithCoder:(NSCoder *)coder {
self = [super initWithCoder:coder];
if (self) {
[self setupView];
[self setupWithCheckedColor:[UIColor whiteColor] unCheckColor:[UIColor whiteColor] text:nil];
[self addAccessibleProperties];
}
@ -192,6 +193,7 @@ static const CGFloat CheckBoxHeightWidth = 18.0;
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
[self setupView];
[self setupWithCheckedColor:[UIColor whiteColor] unCheckColor:[UIColor whiteColor] text:nil];
[self addAccessibleProperties];
}
@ -241,9 +243,7 @@ static const CGFloat CheckBoxHeightWidth = 18.0;
[self.checkMark.widthAnchor constraintEqualToAnchor:self.checkedSquare.widthAnchor multiplier:.4].active = YES;
[self.checkMark.heightAnchor constraintEqualToAnchor:self.checkedSquare.heightAnchor multiplier:.4].active = YES;
[self.checkMark.centerXAnchor constraintEqualToAnchor:self.checkedSquare.centerXAnchor].active = YES;
[self.checkMark.centerYAnchor constraintEqualToAnchor:self.checkedSquare.centerYAnchor].active = YES;
} else {
[self.checkedSquare addSubview:self.checkMark];
[self.checkMark.centerYAnchor constraintEqualToAnchor:self.checkedSquare.centerYAnchor].active = YES;
}
//label

View File

@ -25,6 +25,9 @@
// true while panning
@property (nonatomic) BOOL panning;
//set pannable percentage 0 to 1
@property (nonatomic) CGFloat pannablePercentage;
// can be used to keep track of if we are ..
@property (nonatomic) BOOL interactive;

View File

@ -8,8 +8,6 @@
#import "MFTabBarInteractor.h"
static CGFloat pannablePercentage = 0.15;
typedef NS_ENUM(NSUInteger, MFTabBarPanningDirection) {
MFTabBarPanningDirectionLeft,
MFTabBarPanningDirectionRight
@ -33,6 +31,7 @@ typedef NS_ENUM(NSUInteger, MFTabBarPanningDirection) {
- (nullable instancetype)initWithViewController:(nullable UIViewController *)viewController delegate:(nullable id<MFSwipeNavigationProtocol>)delegate {
if (self = [super init]) {
self.pannablePercentage = 0.15;
self.panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePanGesture:)];
[viewController.view addGestureRecognizer:self.panGesture];
self.delegate = delegate;
@ -48,8 +47,8 @@ typedef NS_ENUM(NSUInteger, MFTabBarPanningDirection) {
// Simulates an edge gesture by only accepting pans at the edge of the screen. Needed because edge gesture doesn't work nicely with extended menus such as on ipad.
CGRect frame = pan.view.frame;
CGRect pannableFrameLeft = CGRectMake(frame.origin.x, frame.origin.y, frame.size.width*pannablePercentage, frame.size.height);
CGRect pannableFrameRight = CGRectMake(frame.origin.x + frame.size.width*(1-pannablePercentage), frame.origin.y, frame.size.width*pannablePercentage, frame.size.height);
CGRect pannableFrameLeft = CGRectMake(frame.origin.x, frame.origin.y, frame.size.width*self.pannablePercentage, frame.size.height);
CGRect pannableFrameRight = CGRectMake(frame.origin.x + frame.size.width*(1-self.pannablePercentage), frame.origin.y, frame.size.width*self.pannablePercentage, frame.size.height);
switch (pan.state) {
case UIGestureRecognizerStateBegan:

View File

@ -193,13 +193,7 @@ static NSString * const COLLECTION_CELL_ID = @"cell";
[label layoutIfNeeded];
label.baselineAdjustment = UIBaselineAdjustmentAlignCenters;
//set up cell acceessibility label
cell.isAccessibilityElement = NO;
cell.contentView.isAccessibilityElement = YES;
NSString *accLabel = [title stringByAppendingString:[MVMCoreUIUtility hardcodedStringWithKey:@"AccTab"]];
cell.contentView.accessibilityLabel = accLabel;
[cell.contentView setAccessibilityHint:[MVMCoreUIUtility hardcodedStringWithKey:@"AccTabHint"]];
[self setCellAccessibility:cell title:label.text isSelected:NO indexPath:indexPath];
if (indexPath.row == self.selectedIndex) {
label.textColor = [UIColor mfTomatoRed];
@ -404,20 +398,27 @@ static NSString * const COLLECTION_CELL_ID = @"cell";
[cell layoutIfNeeded];
}
//setup selected tab accessibility
NSString *string = label.text;
NSString *accLabel = [string stringByAppendingString:[MVMCoreUIUtility hardcodedStringWithKey:@"toptabbar_tab_selected"]];
cell.contentView.accessibilityLabel = accLabel;
[cell.contentView setAccessibilityHint:nil];
self.selectedIndex = indexPath.row;
if ([self.delegate respondsToSelector:@selector(topTabbar:titleForItemAtIndex:)]){
[self.delegate topTabbar:self didSelectItemAtIndex:indexPath.row];
}
[self setCellAccessibility:cell title:label.text isSelected:YES indexPath:indexPath];
}
- (void)reloadData {
[self.collectionView reloadData];
}
- (void)setCellAccessibility:(UICollectionViewCell *)cell title:(NSString *)title isSelected:(BOOL)isSelected indexPath:(NSIndexPath *)indexPath {
cell.isAccessibilityElement = NO;
cell.contentView.isAccessibilityElement = YES;
NSString *accKey = isSelected ? @"toptabbar_tab_selected" : @"AccTab";
NSString *accLabel = [title stringByAppendingString:[MVMCoreUIUtility hardcodedStringWithKey:accKey]];
NSString *accString = [accLabel stringByAppendingString:[NSString stringWithFormat:[MVMCoreUIUtility hardcodedStringWithKey:@"AccTabIndex"], indexPath.row + 1, [self.datasource numberOfTopTabbarItems:self]]];
cell.contentView.accessibilityLabel = accString;
NSString *accHint = isSelected ? nil : [MVMCoreUIUtility hardcodedStringWithKey:@"AccTabHint"];
[cell.contentView setAccessibilityHint:accHint];
}
@end

View File

@ -13,6 +13,7 @@
#import "NSLayoutConstraint+MFConvenience.h"
#import "MVMCoreUISplitViewController.h"
@import MVMCore.MVMCoreDispatchUtility;
#import <MVMCoreUI/MVMCoreUIUtility.h>
CGFloat const PaddingDefault = 24;
CGFloat const PaddingDefaultHorizontalSpacing = 32;
@ -947,7 +948,8 @@ CGFloat const LabelWithInternalButtonLineSpace = 2;
if ([times containsObject:@"DD"]) {
[timeString appendString:[NSString stringWithFormat:@"%02ld",days]];
if (timeUnit == MFTimeFormatNormal) {
NSString *dayUnit = (days <= 1) ? @" day": @" days";
NSString *dayKey = (days <= 1) ? @"CountDownDay": @"CountDownDays";
NSString *dayUnit = [MVMCoreUIUtility hardcodedStringWithKey:dayKey];
[timeString appendString:dayUnit];
} else if (timeUnit == MFTimeFormatColon && ![[times lastObject] isEqualToString:@"DD"]) {
[timeString appendString:@" : "];
@ -962,7 +964,8 @@ CGFloat const LabelWithInternalButtonLineSpace = 2;
}
[timeString appendString:[NSString stringWithFormat:@"%02d",hours]];
if (timeUnit == MFTimeFormatNormal) {
NSString *hourUnit = (hours <= 1) ? @" hour": @" hours";
NSString *hourKey = (hours <= 1) ? @"CountDownHour": @"CountDownHours";
NSString *hourUnit = [MVMCoreUIUtility hardcodedStringWithKey:hourKey];
[timeString appendString:hourUnit];
} else if (timeUnit == MFTimeFormatColon && ![[times lastObject] isEqualToString:@"HH"]) {
[timeString appendString:@" : "];
@ -981,7 +984,8 @@ CGFloat const LabelWithInternalButtonLineSpace = 2;
}
[timeString appendString:[NSString stringWithFormat:@"%02d",minutes]];
if (timeUnit == MFTimeFormatNormal) {
NSString *minuteUnit = (minutes <= 1) ? @" min": @" mins";
NSString *minKey = (minutes <= 1) ? @"CountDownMin": @"CountDownMins";
NSString *minuteUnit = [MVMCoreUIUtility hardcodedStringWithKey:minKey];
[timeString appendString:minuteUnit];
} else if (timeUnit == MFTimeFormatColon && ![[times lastObject] isEqualToString:@"MM"]) {
[timeString appendString:@" : "];
@ -1005,7 +1009,8 @@ CGFloat const LabelWithInternalButtonLineSpace = 2;
}
[timeString appendString:[NSString stringWithFormat:@"%02d",seconds]];
if (timeUnit == MFTimeFormatNormal) {
NSString *secondUnit = (seconds <= 1) ? @" sec": @" secs";
NSString *secondKey = (seconds <= 1) ? @"CountDownSec": @"CountDownSecs";
NSString *secondUnit = [MVMCoreUIUtility hardcodedStringWithKey:secondKey];
[timeString appendString:secondUnit];
}
}

View File

@ -11,6 +11,7 @@
// Tab
"AccTab" = ", tab";
"AccTabHint" = "Double tap to select.";
"AccTabIndex" = ", %ld of %ld";
// top alert
"toptabbar_tab_selected" = ", tab, Selected";
"AccTopAlertClosed" = "Top alert notification is closed.";
@ -39,3 +40,12 @@
"AccOn" = "on";
"AccOff" = "off";
"AccToggleHint" = "double tap to toggle";
//Styler
"CountDownDay" = " day";
"CountDownHour" = " hour";
"CountDownMin" = " min";
"CountDownSec" = " sec";
"CountDownDays" = " days";
"CountDownHours" = " hours";
"CountDownMins" = " mins";
"CountDownSecs" = " secs";

View File

@ -10,6 +10,7 @@
// Tab
"AccTab" = ", pestaña";
"AccTabHint" = "Toca dos veces para seleccionar.";
"AccTabIndex" = ", %ld de %ld";
// top alert
"toptabbar_tab_selected" = ", pestaña, Seleccionado";
"AccTopAlertClosed" = "La notificación de alerta máxima está desactivada.";
@ -38,3 +39,12 @@
"AccOn" = "encendido";
"AccOff" = "apagado";
"AccToggleHint" = "toca dos veces para alternar";
//Styler
"CountDownDay" = " día";
"CountDownHour" = " hora";
"CountDownMin" = " min";
"CountDownSec" = " seg";
"CountDownDays" = " días";
"CountDownHours" = " horas";
"CountDownMins" = " min";
"CountDownSecs" = " seg";

View File

@ -10,6 +10,7 @@
// Tab
"AccTab" = ", pestaña";
"AccTabHint" = "Toca dos veces para seleccionar.";
"AccTabIndex" = ", %ld de %ld";
// top alert
"toptabbar_tab_selected" = ", pestaña, Seleccionado";
"AccTopAlertClosed" = "La notificación de alerta máxima está desactivada.";
@ -38,3 +39,12 @@
"AccOn" = "encendido";
"AccOff" = "apagado";
"AccToggleHint" = "toca dos veces para alternar";
//Styler
"CountDownDay" = " día";
"CountDownHour" = " hora";
"CountDownMin" = " min";
"CountDownSec" = " seg";
"CountDownDays" = " días";
"CountDownHours" = " horas";
"CountDownMins" = " min";
"CountDownSecs" = " seg";