From fa41f924d85852f153402e312421d198c63bd6d7 Mon Sep 17 00:00:00 2001
From: mohssen <mohssen@uber.com>
Date: Tue, 23 Jul 2024 09:10:26 -0700
Subject: [PATCH] Drop min OS version to iOS 14

---
 Package.swift                     |  2 +-
 Sources/UberCore/UberButton.swift | 43 ++++++++++++++++++++++++++-----
 2 files changed, 38 insertions(+), 7 deletions(-)

diff --git a/Package.swift b/Package.swift
index adb8d2d..12f7450 100644
--- a/Package.swift
+++ b/Package.swift
@@ -7,7 +7,7 @@ let package = Package(
     name: "rides-ios-sdk",
     defaultLocalization: "en",
     platforms: [
-        .iOS(.v15)
+        .iOS(.v14)
     ],
     products: [
         .library(
diff --git a/Sources/UberCore/UberButton.swift b/Sources/UberCore/UberButton.swift
index c22948c..72df13c 100644
--- a/Sources/UberCore/UberButton.swift
+++ b/Sources/UberCore/UberButton.swift
@@ -59,16 +59,46 @@ open class UberButton: UIButton {
     
     public func update() {
         DispatchQueue.main.async { [self] in
-            configuration = .uber(
-                title: title,
-                image: image,
-                isHighlighted: isHighlighted
-            )
-            updateConfiguration()
+            if #available(iOS 15, *) {
+                configuration = .uber(
+                    title: title,
+                    image: image,
+                    isHighlighted: isHighlighted
+                )
+                updateConfiguration()
+            } 
+            else {
+                clipsToBounds = true
+                layer.cornerRadius = Constants.cornerRadius
+
+                setImage(
+                    image?.withRenderingMode(.alwaysTemplate),
+                    for: .normal
+                )
+                imageView?.tintColor = .uberButtonForeground
+                imageView?.contentMode = .left
+                
+                setTitle(title, for: .normal)
+                titleLabel?.textAlignment = .right
+                
+                setTitleColor(.uberButtonForeground, for: .normal)
+                backgroundColor = isHighlighted ? .uberButtonHighlightedBackground : .uberButtonBackground
+                
+                contentEdgeInsets = Constants.contentInsets
+            }
         }
     }
+    
+    private enum Constants {
+        static let cornerRadius: CGFloat = 8
+        static let horizontalPadding: CGFloat = 16
+        static let verticalPadding: CGFloat = 10
+        static let contentInsets: UIEdgeInsets = .init(top: 0, left: 16, bottom: 0, right: 16)
+    }
 }
 
+
+@available(iOS 15, *)
 extension UIButton.Configuration {
     
     static func uber(title: String? = nil,
@@ -94,6 +124,7 @@ extension UIButton.Configuration {
         return style
     }
 }
+    
 
 /// Base class for Uber buttons that sets up colors and some constraints.
 open class UberButton_DEPRECATED: UIButton {