Merge branch 'develop' of https://gitlab.verizon.com/BPHV_MIPS/vds_ios into feature/buttonIcon

This commit is contained in:
vasavk 2024-02-12 16:07:10 +05:30
commit cac411b03f
8 changed files with 53 additions and 8 deletions

View File

@ -1241,7 +1241,7 @@
BUILD_LIBRARY_FOR_DISTRIBUTION = YES;
CODE_SIGN_IDENTITY = "";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 51;
CURRENT_PROJECT_VERSION = 53;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = "";
DYLIB_COMPATIBILITY_VERSION = 1;
@ -1278,7 +1278,7 @@
BUILD_LIBRARY_FOR_DISTRIBUTION = YES;
CODE_SIGN_IDENTITY = "";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 51;
CURRENT_PROJECT_VERSION = 53;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = "";
DYLIB_COMPATIBILITY_VERSION = 1;

View File

@ -201,8 +201,8 @@ extension ButtonGroup: UICollectionViewDataSource, UICollectionViewDelegate {
public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let button = buttons[indexPath.row]
guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "collectionViewCell", for: indexPath) as? ButtonGroupCollectionViewCell else { return UICollectionViewCell() }
cell.subviews.forEach { $0.removeFromSuperview() }
cell.addSubview(button)
cell.contentView.subviews.forEach { $0.removeFromSuperview() }
cell.contentView.addSubview(button)
button.pinToSuperView()
if hasDebugBorder {
cell.addDebugBorder()

View File

@ -80,6 +80,8 @@ open class TextLinkCaret: ButtonBase {
open override func setup() {
super.setup()
accessibilityTraits = .link
titleLabel?.numberOfLines = 0
titleLabel?.lineBreakMode = .byWordWrapping
}
/// Used to make changes to the View based off a change events or from local properties.

View File

@ -120,11 +120,12 @@ open class Loader: View {
// setup timer for post
loadingTimer = Timer.scheduledTimer(withTimeInterval: 60, repeats: true) { [weak self] _ in
self?.accessibilityLabel = "Still Loading"
guard let self, self.isActive, self.isVisibleOnScreen else { return }
self.accessibilityLabel = "Still Loading"
UIAccessibility.post(notification: .announcement, argument: "Still Loading")
}
}
private func stopAnimating() {
isAccessibilityElement = false
icon.isHidden = true
@ -132,7 +133,7 @@ open class Loader: View {
loadingTimer?.invalidate()
loadingTimer = nil
}
deinit {
stopAnimating()
}

View File

@ -171,6 +171,8 @@ open class Tabs: View {
/// Called once when a view is initialized and is used to Setup additional UI or other constants and configurations.
open override func setup() {
super.setup()
isAccessibilityElement = false
scrollView = UIScrollView()
scrollView.translatesAutoresizingMaskIntoConstraints = false
scrollView.showsHorizontalScrollIndicator = false
@ -262,6 +264,7 @@ open class Tabs: View {
model.onClick?(tab.index)
self.selectedIndex = tab.index
self.onTabDidSelect?(tab.index)
let t = tabViews[tab.index]
}
}
}
@ -301,7 +304,7 @@ open class Tabs: View {
tabItem.orientation = orientation
tabItem.surface = surface
tabItem.indicatorPosition = indicatorPosition
tabItem.accessibilityHint = "\(index+1) of \(tabViews.count) Tabs"
tabItem.accessibilityValue = "\(index+1) of \(tabViews.count) Tabs"
}
}

View File

@ -77,6 +77,7 @@ open class TitleLockup: View {
/// Label used to render the title model.
open var titleLabel = Label().with {
$0.setContentCompressionResistancePriority(.required, for: .vertical)
$0.accessibilityTraits.insert([.header])
}
/// Model used in rendering the title label.

View File

@ -24,4 +24,30 @@ extension UIView {
public func setAccessibilityLabel(for views: [UIView]) {
accessibilityLabel = combineAccessibilityLabel(for: views)
}
/// Will tell if the view is actually visibile on screen, also it will check the hierarchy above this view.
public var isVisibleOnScreen: Bool {
// Ensure the view has a window, meaning it's part of the view hierarchy
guard let window = self.window, !self.isHidden, self.alpha > 0 else {
return false
}
// Check if the view's frame intersects with the window's bounds
let viewFrameInWindow = self.convert(self.bounds, to: window)
var isIntersecting = viewFrameInWindow.intersects(window.bounds)
// Check parent views for visibility
var currentView: UIView? = self
while let view = currentView, isIntersecting {
// If any parent has a constraint making it effectively invisible, set isIntersecting to false
if view.bounds.size.width == 0 || view.bounds.size.height == 0 {
isIntersecting = false
break
}
currentView = view.superview
}
return isIntersecting
}
}

View File

@ -1,3 +1,15 @@
1.0.54
----------------
- CXTDT-518373 Accessibility Voiceover is reading “Still Loading” after waiting for a short time in all the screens.
1.0.53
----------------
- ONEAPP-4683 - Updated to accesibilityValue for the tabs position.
1.0.52
----------------
- ONEAPP-6244 - TitleLockup TitleLabel marked as .heading for Accessibility.
1.0.51
----------------
- ONEAPP-6239 - Loader is still showing when inactive.