├── .gitignore ├── Example ├── SesameIntents │ ├── Info.plist │ ├── IntentHandler.swift │ └── SesameIntents.entitlements ├── SesameIntentsWatch │ ├── Info.plist │ ├── IntentHandler.swift │ └── SesameIntentsWatch.entitlements ├── SesameNotificationServiceExtension │ ├── Info.plist │ ├── NotificationService.swift │ └── SesameNotificationServiceExtension.entitlements ├── SesameTodayExtension │ ├── Base.lproj │ │ └── MainInterface.storyboard │ ├── Info.plist │ ├── SesameTodayExtension.Debug.entitlements │ ├── SesameTodayExtension.entitlements │ └── TodayViewController.swift ├── SesameUI.xcodeproj │ ├── project.pbxproj │ └── xcshareddata │ │ └── xcschemes │ │ ├── SesameIntents.xcscheme │ │ ├── SesameIntentsWatch.xcscheme │ │ ├── SesameNotificationServiceExtension.xcscheme │ │ ├── SesameTodayExtension.xcscheme │ │ ├── SesameUI.xcscheme │ │ ├── SesameWatchKit (Complication).xcscheme │ │ ├── SesameWatchKit (Notification).xcscheme │ │ └── SesameWatchKit.xcscheme ├── SesameUI │ ├── Info.plist │ ├── Resources │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── Icon-1024.png │ │ │ │ ├── Icon-120.png │ │ │ │ ├── Icon-121.png │ │ │ │ ├── Icon-152.png │ │ │ │ ├── Icon-167.png │ │ │ │ ├── Icon-180.png │ │ │ │ ├── Icon-20.png │ │ │ │ ├── Icon-29.png │ │ │ │ ├── Icon-40.png │ │ │ │ ├── Icon-41.png │ │ │ │ ├── Icon-42.png │ │ │ │ ├── Icon-58.png │ │ │ │ ├── Icon-59.png │ │ │ │ ├── Icon-60.png │ │ │ │ ├── Icon-76.png │ │ │ │ ├── Icon-80.png │ │ │ │ ├── Icon-81.png │ │ │ │ └── Icon-87.png │ │ │ ├── Contents.json │ │ │ ├── MoreFunctionFrame_58x50_.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── MoreFunctionFrame_58x50_@2x.png │ │ │ ├── ScanLine.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── ScanLine@2x.png │ │ │ ├── bluetooth_gray.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── output-onlinepngtools-10.png │ │ │ ├── bluetooth_green.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── output-onlinepngtools-9.png │ │ │ ├── bluetooth_red.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── output-onlinepngtools-8.png │ │ │ ├── bluetooth_yellow.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── output-onlinepngtools-6.png │ │ │ ├── crown.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── crown.png │ │ │ ├── finger.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── finger.png │ │ │ ├── guestKey.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── ic_launcher_round (1).png │ │ │ ├── img-knob.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── img-knob.png │ │ │ ├── keyboard.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── keyboard.png │ │ │ ├── qr-code.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── qr-code-2.png │ │ │ ├── sesame2 │ │ │ │ ├── Contents.json │ │ │ │ ├── bleLogining.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── logining.png │ │ │ │ ├── bt0.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── bt0.png │ │ │ │ ├── bt100.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── bt100.png │ │ │ │ ├── bt50.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── bt50.png │ │ │ │ ├── icn-battery.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── icn-battery@3x.png │ │ │ │ ├── locked.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── Group 276-2.png │ │ │ │ ├── noBleSignal.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── Group 278.png │ │ │ │ ├── noSettings.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── アセット 9@3x.png │ │ │ │ ├── receivedBle.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── receiveBle.png │ │ │ │ ├── reveivedsignal.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── reveivedsignal.png │ │ │ │ ├── unlocked.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── Group 275-2.png │ │ │ │ └── waitingGatt.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── waitgatt.png │ │ │ ├── suicas │ │ │ │ ├── Contents.json │ │ │ │ ├── pasmo.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── pasmo.png │ │ │ │ └── suica.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── suica.png │ │ │ ├── switch │ │ │ │ ├── Contents.json │ │ │ │ ├── switch-bleLogining.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── swtich-logining.png │ │ │ │ ├── switch-locked.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── swtich-locked.png │ │ │ │ ├── switch-noBleSignal.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── swtich-noBleSignal.png │ │ │ │ ├── switch-receivedBle.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── swtich-receiveBle.png │ │ │ │ ├── switch-unlocked.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── swtich-unlocked.png │ │ │ │ └── switch-waitingGatt.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── swtich-waitgatt.png │ │ │ └── wifi_signal │ │ │ │ ├── Contents.json │ │ │ │ ├── wifi_gray.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── output-onlinepngtools-11.png │ │ │ │ ├── wifi_green.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── output-onlinepngtools-3.png │ │ │ │ ├── wifi_middle.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── wifi_middle.png │ │ │ │ ├── wifi_red.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── output-onlinepngtools-4.png │ │ │ │ ├── wifi_strong.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── wifi_strong.png │ │ │ │ ├── wifi_weak.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── wifi_weak.png │ │ │ │ └── wifi_yellow.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── output-onlinepngtools-5.png │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── Icons │ │ │ ├── arrow.svg │ │ │ ├── autolock.svg │ │ │ ├── bluetooth.svg │ │ │ ├── handmove.svg │ │ │ ├── icon_lock.svg │ │ │ ├── icon_locked.svg │ │ │ ├── icon_unlock.svg │ │ │ ├── icon_unlocked.svg │ │ │ ├── iconfinder_9_3898370.svg │ │ │ ├── icons_filled_album.svg │ │ │ ├── icons_filled_close.svg │ │ │ ├── icons_filled_close_b.svg │ │ │ ├── icons_filled_favorites.svg │ │ │ ├── icons_filled_more.svg │ │ │ ├── icons_filled_official-accounts.svg │ │ │ ├── icons_filled_scan.svg │ │ │ ├── icons_outlined_addoutline.svg │ │ │ ├── icons_outlined_colorful_favorites.svg │ │ │ ├── icons_outlined_me.svg │ │ │ ├── icons_outlined_pay.svg │ │ │ ├── icons_outlined_setting.svg │ │ │ ├── icons_outlined_share.svg │ │ │ ├── keychain_original.svg │ │ │ └── keychain_tint.svg │ │ ├── Localization │ │ │ ├── en.lproj │ │ │ │ └── InfoPlist.strings │ │ │ ├── ja.lproj │ │ │ │ └── InfoPlist.strings │ │ │ ├── zh-Hans.lproj │ │ │ │ └── InfoPlist.strings │ │ │ ├── zh-Hant.Iproj │ │ │ │ ├── zh-HK.lproj │ │ │ │ │ └── InfoPlist.strings │ │ │ │ └── zh-Hant.lproj │ │ │ │ │ └── InfoPlist.strings │ │ │ └── zh-Hant.lproj │ │ │ │ └── InfoPlist.strings │ │ ├── Media.xcassets │ │ │ ├── Contents.json │ │ │ ├── arrow.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── arrow.svg │ │ │ ├── autolock.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── autolock.svg │ │ │ ├── bluetooth.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── bluetooth.svg │ │ │ ├── checked.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── tick-2.svg │ │ │ ├── cube.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── cube-2.svg │ │ │ ├── delete.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── delete-3-2.svg │ │ │ ├── exclamation.imageset │ │ │ │ ├── 8655597241556273578-2.svg │ │ │ │ └── Contents.json │ │ │ ├── friends.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── friends-2.svg │ │ │ ├── friends_filled.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── friends-3-2.svg │ │ │ ├── handmove.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── handmove.svg │ │ │ ├── history │ │ │ │ ├── Contents.json │ │ │ │ ├── history_auto.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── history_auto.svg │ │ │ │ ├── history_lock.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── アイコン.svg │ │ │ │ ├── history_manul.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── history_manul.svg │ │ │ │ └── history_unlock.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── アイコン2.svg │ │ │ ├── icon_lock.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── icon_lock.svg │ │ │ ├── icon_unlock.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── icon_unlock.svg │ │ │ ├── iconfinder_9_3898370.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── iconfinder_9_3898370.svg │ │ │ ├── icons_filled_album.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── icons_filled_album.svg │ │ │ ├── icons_filled_close.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── icons_filled_close.svg │ │ │ ├── icons_filled_close_b.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── icons_filled_close_b.svg │ │ │ ├── icons_filled_favorites.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── icons_filled_favorites.svg │ │ │ ├── icons_filled_more.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── icons_filled_more.svg │ │ │ ├── icons_filled_official-accounts.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── icons_filled_official-accounts.svg │ │ │ ├── icons_filled_scan.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── icons_filled_scan.svg │ │ │ ├── icons_outlined_addoutline.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── icons_outlined_addoutline.svg │ │ │ ├── icons_outlined_me.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── icons_outlined_me.svg │ │ │ ├── icons_outlined_pay.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── icons_outlined_pay.svg │ │ │ ├── icons_outlined_setting.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── icons_outlined_setting.svg │ │ │ ├── icons_outlined_share.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── icons_outlined_share.svg │ │ │ ├── keychain_original.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── keychain_original.svg │ │ │ ├── keychain_tint.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── keychain_tint.svg │ │ │ ├── man.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── man.svg │ │ │ ├── plus.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── plus-2.svg │ │ │ ├── qr-code-scan.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── qr-code-scan-2.svg │ │ │ ├── wifi.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── wifi.svg │ │ │ └── world.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── world.svg │ │ ├── Sound │ │ │ └── bee.mp3 │ │ └── application_dfu │ │ │ ├── bleconnector_30_11_43712c.zip │ │ │ ├── opensensor1_30_8_a8cc5b.zip │ │ │ ├── sesame5_30_5_a8cc5b.zip │ │ │ ├── sesame5pro_30_7_a8cc5b.zip │ │ │ ├── sesame_221_0_8c080c.zip │ │ │ ├── sesame_421_4_50ce5b.zip │ │ │ ├── sesamebike1_21_3_d7162a.zip │ │ │ ├── sesamebike2_30_6_b2394e.zip │ │ │ ├── sesamebot1_21_2_369eb9.zip │ │ │ ├── sesametouch1_30_10_0ccc46.zip │ │ │ └── sesametouch1pro_30_9_0ccc46.zip │ ├── SesameUI.Debug.entitlements │ ├── SesameUI.entitlements │ └── Source │ │ ├── AppDelegate.swift │ │ ├── CustomView │ │ ├── CHSesame2ChangeNameDialog.swift │ │ ├── CHUIView.swift │ │ ├── ChangeValueDialog.swift │ │ ├── LongPressReorder.swift │ │ ├── PopUpMenu │ │ │ ├── PopUpMenu.swift │ │ │ └── PopUpMenuControl.swift │ │ ├── QRCode │ │ │ ├── QRCodeExtractor │ │ │ │ └── QRCodeExtractor.swift │ │ │ ├── QRCodeScanner │ │ │ │ ├── QRCodeScanViewController.swift │ │ │ │ ├── QRScannerView.swift │ │ │ │ └── ScanAnimationView.swift │ │ │ ├── QRCodeViewController.swift │ │ │ └── QRCodeViewController.xib │ │ ├── RefreshView │ │ │ ├── LoadingView │ │ │ │ ├── ActivityIndicatorView.swift │ │ │ │ ├── BallClipRotatePulseAnimation.swift │ │ │ │ └── BaseAnimation.swift │ │ │ ├── RefreshFootView.swift │ │ │ ├── RefreshHeaderView.swift │ │ │ └── RefreshView.swift │ │ ├── SesameView.swift │ │ ├── ToastUtil.swift │ │ ├── VersionLabel.swift │ │ ├── lockView.swift │ │ └── lockViewSS5.swift │ │ ├── Extensions │ │ ├── CHDevice+.swift │ │ ├── CHSesame2+AutoUnlock.swift │ │ ├── CHSesame2History+.swift │ │ ├── CHSesame5History+.swift │ │ ├── CHSesameLock+.swift │ │ ├── CHWifiModule2+.swift │ │ ├── Date+.swift │ │ ├── SesameBot+.swift │ │ ├── String+.swift │ │ ├── UIImage+SVG.swift │ │ ├── UIStoryboard+.swift │ │ ├── UIView+AutoLayout.swift │ │ └── UIViewController+AlertView.swift │ │ ├── Model │ │ ├── CHUser.swift │ │ ├── CHUserKey.swift │ │ └── SesameBotMode.swift │ │ ├── TabViewController │ │ ├── BaseViewController │ │ │ ├── CHBaseListVC.swift │ │ │ ├── CHBaseTableVC.swift │ │ │ ├── CHBaseTableViewController.swift │ │ │ └── CHBaseViewController.swift │ │ ├── GeneralTabViewController.swift │ │ └── devices │ │ │ ├── BleConnector │ │ │ └── Setting │ │ │ │ └── BleConnectorSettingVC.swift │ │ │ ├── OpenSensor │ │ │ └── Setting │ │ │ │ ├── OpenSensorResetHintVC.swift │ │ │ │ └── OpenSensorSettingVC.swift │ │ │ ├── Register │ │ │ ├── CloseBottomCell.swift │ │ │ ├── RegisterSesameDeviceCell.swift │ │ │ ├── RegisterSesameDeviceCell.xib │ │ │ ├── RegisterSesameDeviceViewController.swift │ │ │ └── RegisterWifiModule2TableViewController.swift │ │ │ ├── Sesame2 │ │ │ ├── History │ │ │ │ ├── SSM2HistoryCellViewModel.swift │ │ │ │ ├── SSM2RoomMainViewModel.swift │ │ │ │ ├── Sesame2HistoryTableViewCell.swift │ │ │ │ ├── Sesame2HistoryTableViewCell.xib │ │ │ │ └── Sesame2HistoryViewController.swift │ │ │ ├── Sesame2 │ │ │ │ └── Users │ │ │ │ │ ├── AddFriendVC.swift │ │ │ │ │ └── DeleteFriendVC.swift │ │ │ └── Setting │ │ │ │ ├── GPSMapViewController.swift │ │ │ │ ├── GuestKeyListViewController.swift │ │ │ │ ├── LockAngleSettingViewController.swift │ │ │ │ ├── LockAngleSettingViewController.xib │ │ │ │ ├── SSM2SettingViewModel.swift │ │ │ │ ├── Sesame2SettingViewController.swift │ │ │ │ └── SiriShortCutViewController.swift │ │ │ ├── Sesame5 │ │ │ ├── History │ │ │ │ └── Sesame5HistoryViewController.swift │ │ │ ├── ListCell │ │ │ │ ├── Sesame5ListCell.swift │ │ │ │ └── Sesame5ListCell.xib │ │ │ └── Setting │ │ │ │ ├── Sesame5LockAngle.xib │ │ │ │ ├── Sesame5LockAngleViewController.swift │ │ │ │ └── Sesame5SettingViewController.swift │ │ │ ├── SesameBikeLock │ │ │ ├── History │ │ │ │ └── BicycleLockHistoryModel.swift │ │ │ └── Setting │ │ │ │ └── BikeLockSettingViewController.swift │ │ │ ├── SesameBikeLock2 │ │ │ └── Setting │ │ │ │ └── BikeLock2SettingViewController.swift │ │ │ ├── SesameBot │ │ │ └── Setting │ │ │ │ └── SesameBotSettingViewController.swift │ │ │ ├── SesameDeviceListViewController.swift │ │ │ ├── SesameTouuchPro │ │ │ ├── Cell │ │ │ │ ├── FingerPrintCell.swift │ │ │ │ └── FingerPrintCell.xib │ │ │ └── Setting │ │ │ │ ├── FingerPrintListVC.swift │ │ │ │ ├── NFCCardVC.swift │ │ │ │ ├── PassCodeVC.swift │ │ │ │ ├── SesameTouchProKeysListVC.swift │ │ │ │ └── SesameTouchProSettingVC.swift │ │ │ └── WifiModule2 │ │ │ ├── ListCell │ │ │ ├── WifiModule2ListCell.swift │ │ │ └── WifiModule2ListCell.xib │ │ │ └── Setting │ │ │ ├── WifiModule2KeysListViewController.swift │ │ │ ├── WifiModule2SSIDScanCell.swift │ │ │ ├── WifiModule2SSIDScanCell.xib │ │ │ ├── WifiModule2SSIDScanViewController.swift │ │ │ ├── WifiModule2SesameCell.swift │ │ │ ├── WifiModule2SesameCell.xib │ │ │ ├── WifiModule2SettingViewController.swift │ │ │ └── WifiModule2SettingViewController.xib │ │ └── Utils │ │ ├── DFUHelper.swift │ │ ├── ViewHelper.swift │ │ └── WatchKitFileTransfer.swift ├── SesameWatchKit Extension │ ├── Assets.xcassets │ │ ├── Complication.complicationset │ │ │ ├── Circular.imageset │ │ │ │ ├── Circular_32px × 32px (16pt × 16pt @2x).png │ │ │ │ ├── Circular_36px × 36px (18pt × 18pt @2x)-1.png │ │ │ │ ├── Circular_36px × 36px (18pt × 18pt @2x).png │ │ │ │ ├── Circular_40px-×-40px-(20pt-×-20pt-@2x).png │ │ │ │ └── Contents.json │ │ │ ├── Contents.json │ │ │ ├── Extra Large.imageset │ │ │ │ ├── 182.png │ │ │ │ ├── 203-1.png │ │ │ │ ├── 203.png │ │ │ │ ├── 224.png │ │ │ │ └── Contents.json │ │ │ ├── Graphic Bezel.imageset │ │ │ │ ├── 84-1.png │ │ │ │ ├── 84.png │ │ │ │ ├── 94-1.png │ │ │ │ ├── 94.png │ │ │ │ └── Contents.json │ │ │ ├── Graphic Circular.imageset │ │ │ │ ├── 84-1.png │ │ │ │ ├── 84.png │ │ │ │ ├── 94-1.png │ │ │ │ ├── 94.png │ │ │ │ └── Contents.json │ │ │ ├── Graphic Corner.imageset │ │ │ │ ├── 40-1.png │ │ │ │ ├── 40.png │ │ │ │ ├── 44-1.png │ │ │ │ ├── 44.png │ │ │ │ └── Contents.json │ │ │ ├── Graphic Extra Large.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── Graphic-Extra-Large_206px-×-206px-(103pt-×-103pt).png │ │ │ │ ├── Graphic-Extra-Large_240px-×-240px-(120pt-×-120pt)-1.png │ │ │ │ ├── Graphic-Extra-Large_240px-×-240px-(120pt-×-120pt).png │ │ │ │ └── Graphic-Extra-Large_264px-×-264px-(132pt-×-132pt).png │ │ │ ├── Graphic Large Rectangular.imageset │ │ │ │ ├── 300x94-1.png │ │ │ │ ├── 300x94-2.png │ │ │ │ ├── 300x94.png │ │ │ │ ├── 342x108.png │ │ │ │ └── Contents.json │ │ │ ├── Modular.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── Modular_52px-×-52px-(26pt-×-26pt-@2x).png │ │ │ │ ├── Modular_58px-×-58px-(29pt-×-29pt-@2x)-1.png │ │ │ │ ├── Modular_58px-×-58px-(29pt-×-29pt-@2x).png │ │ │ │ └── Modular_64px-×-64px-(32pt-×-32pt-@2x).png │ │ │ └── Utilitarian.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── Utilitarian_40px-×-40px-(20pt-×-20pt-@2x).png │ │ │ │ ├── Utilitarian_44px-×-44px-(22pt-×-22pt-@2x)-1.png │ │ │ │ ├── Utilitarian_44px-×-44px-(22pt-×-22pt-@2x).png │ │ │ │ └── Utilitarian_50px-×-50px-(25pt-×-25pt-@2x).png │ │ ├── Contents.json │ │ ├── Icon.imageset │ │ │ ├── Contents.json │ │ │ └── Icon-180.png │ │ ├── bleLogining.imageset │ │ │ ├── Contents.json │ │ │ ├── logining-1.png │ │ │ ├── logining-2.png │ │ │ └── logining.png │ │ ├── bluetooth_gray.imageset │ │ │ ├── Contents.json │ │ │ └── output-onlinepngtools-10.png │ │ ├── bluetooth_green.imageset │ │ │ ├── Contents.json │ │ │ └── output-onlinepngtools-9.png │ │ ├── bluetooth_red.imageset │ │ │ ├── Contents.json │ │ │ └── output-onlinepngtools-8.png │ │ ├── bluetooth_yellow.imageset │ │ │ ├── Contents.json │ │ │ └── output-onlinepngtools-6.png │ │ ├── bt0.imageset │ │ │ ├── Contents.json │ │ │ ├── bt0-1.png │ │ │ ├── bt0-2.png │ │ │ └── bt0.png │ │ ├── bt100.imageset │ │ │ ├── Contents.json │ │ │ ├── bt100-1.png │ │ │ ├── bt100-2.png │ │ │ └── bt100.png │ │ ├── bt50.imageset │ │ │ ├── Contents.json │ │ │ ├── bt50-1.png │ │ │ ├── bt50-2.png │ │ │ └── bt50.png │ │ ├── icn-battery.imageset │ │ │ ├── Contents.json │ │ │ └── icn-battery@3x.png │ │ ├── locked.imageset │ │ │ ├── Contents.json │ │ │ ├── Group 276-1.png │ │ │ ├── Group 276-2.png │ │ │ └── Group 276.png │ │ ├── noBleSignal.imageset │ │ │ ├── Contents.json │ │ │ ├── Group 278-1.png │ │ │ ├── Group 278-2.png │ │ │ └── Group 278.png │ │ ├── noSettings.imageset │ │ │ ├── Contents.json │ │ │ ├── アセット 9@3x-1.png │ │ │ ├── アセット 9@3x-2.png │ │ │ └── アセット 9@3x.png │ │ ├── receivedBle.imageset │ │ │ ├── Contents.json │ │ │ ├── receiveBle-1.png │ │ │ ├── receiveBle-2.png │ │ │ └── receiveBle.png │ │ ├── reveivedsignal.imageset │ │ │ ├── Contents.json │ │ │ ├── reveivedsignal-1.png │ │ │ ├── reveivedsignal-2.png │ │ │ └── reveivedsignal.png │ │ ├── switch │ │ │ ├── Contents.json │ │ │ ├── switch-bleLogining.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── swtich-logining.png │ │ │ ├── switch-locked.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── swtich-locked.png │ │ │ ├── switch-noBleSignal.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── swtich-noBleSignal.png │ │ │ ├── switch-receivedBle.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── swtich-receiveBle.png │ │ │ ├── switch-unlocked.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── swtich-unlocked.png │ │ │ └── switch-waitingGatt.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── swtich-waitgatt.png │ │ ├── unlocked.imageset │ │ │ ├── Contents.json │ │ │ ├── Group 275-1.png │ │ │ ├── Group 275-2.png │ │ │ └── Group 275.png │ │ ├── waitingGatt.imageset │ │ │ ├── Contents.json │ │ │ ├── waitgatt-1.png │ │ │ ├── waitgatt-2.png │ │ │ └── waitgatt.png │ │ ├── wifi_gray.imageset │ │ │ ├── Contents.json │ │ │ └── output-onlinepngtools-11.png │ │ ├── wifi_green.imageset │ │ │ ├── Contents.json │ │ │ └── output-onlinepngtools-3.png │ │ ├── wifi_red.imageset │ │ │ ├── Contents.json │ │ │ └── output-onlinepngtools-4.png │ │ └── wifi_yellow.imageset │ │ │ ├── Contents.json │ │ │ └── output-onlinepngtools-5.png │ ├── ComplicationController.swift │ ├── ExtensionDelegate.swift │ ├── Info.plist │ ├── InterfaceController.swift │ ├── ScreenNotify.h │ ├── ScreenNotify.m │ ├── SesameData.swift │ ├── SesameWatchKit Extension-Bridging-Header.h │ ├── SesameWatchKit Extension.entitlements │ ├── View │ │ ├── ContentView.swift │ │ ├── HostingController.swift │ │ ├── SesameListView.swift │ │ └── SesameLockView.swift │ ├── ViewModel │ │ ├── ContentViewModel.swift │ │ ├── SesameListViewModel.swift │ │ └── SesameLockViewModel.swift │ └── WatchKitFileTransfer.swift ├── SesameWatchKit │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-100.png │ │ │ ├── Icon-1024.png │ │ │ ├── Icon-172.png │ │ │ ├── Icon-196.png │ │ │ ├── Icon-216.png │ │ │ ├── Icon-48.png │ │ │ ├── Icon-55.png │ │ │ ├── Icon-58.png │ │ │ ├── Icon-80.png │ │ │ ├── Icon-87.png │ │ │ └── Icon-88.png │ │ └── Contents.json │ ├── Base.lproj │ │ └── Interface.storyboard │ ├── Info.plist │ ├── en.lproj │ │ └── Interface.strings │ ├── ja.lproj │ │ └── Interface.strings │ ├── zh-Hans.lproj │ │ └── Interface.strings │ └── zh-Hant.lproj │ │ └── Interface.strings ├── Shared │ ├── API │ │ ├── Request.swift │ │ └── Response.swift │ ├── DB │ │ ├── Sesame2Store.swift │ │ └── SesameUI.xcdatamodeld │ │ │ ├── .xccurrentversion │ │ │ ├── SesameUI 10.xcdatamodel │ │ │ └── contents │ │ │ ├── SesameUI 11.xcdatamodel │ │ │ └── contents │ │ │ ├── SesameUI 2.xcdatamodel │ │ │ └── contents │ │ │ ├── SesameUI 3.xcdatamodel │ │ │ └── contents │ │ │ ├── SesameUI 4.xcdatamodel │ │ │ └── contents │ │ │ ├── SesameUI 5.xcdatamodel │ │ │ └── contents │ │ │ ├── SesameUI 6.xcdatamodel │ │ │ └── contents │ │ │ ├── SesameUI 7.xcdatamodel │ │ │ └── contents │ │ │ ├── SesameUI 8.xcdatamodel │ │ │ └── contents │ │ │ ├── SesameUI 9.xcdatamodel │ │ │ └── contents │ │ │ └── SesameUI.xcdatamodel │ │ │ └── contents │ ├── Extensions │ │ ├── ArrayShared+.swift │ │ ├── CHDeviceManagerShared+.swift │ │ ├── CHDeviceShared+.swift │ │ ├── CHTableView.swift │ │ ├── DataShared+.swift │ │ ├── NSErrorShared+.swift │ │ ├── StringShared+.swift │ │ ├── UIColorShared+.swift │ │ ├── UIImageShared+.swift │ │ └── URL+Sesame2.swift │ ├── Intents │ │ ├── Base.lproj │ │ │ └── Sesame2Intents.intentdefinition │ │ ├── IntentHandler+.swift │ │ ├── LockSesameIntentHandler.swift │ │ ├── ToggleSesameIntentHandler.swift │ │ ├── UnlockSesameIntentHandler.swift │ │ ├── en.lproj │ │ │ └── Sesame2Intents.strings │ │ ├── ja.lproj │ │ │ └── Sesame2Intents.strings │ │ ├── zh-Hans.lproj │ │ │ └── Sesame2Intents.strings │ │ └── zh-Hant.lproj │ │ │ └── Sesame2Intents.strings │ ├── Localization │ │ ├── en.lproj │ │ │ └── Localizable.strings │ │ ├── ja.lproj │ │ │ └── Localizable.strings │ │ ├── zh-Hans.lproj │ │ │ └── Localizable.strings │ │ ├── zh-Hant.Iproj │ │ │ └── zh-Hant.lproj │ │ │ │ └── Localizable.strings │ │ └── zh-Hant.lproj │ │ │ └── Localizable.strings │ ├── Model │ │ ├── CHDeviceInfo.swift │ │ ├── QRCodeURLType.swift │ │ └── WatchKitFile.swift │ ├── UI │ │ └── Sesame2Circle.swift │ └── Util │ │ ├── BleHelper.swift │ │ ├── Functions.swift │ │ ├── KeyLevel.swift │ │ ├── Logger.swift │ │ └── UserLocationManager.swift └── git.plist ├── LICENSE ├── Package.swift ├── README.jp.md ├── README.md ├── Sources ├── AESc │ ├── aes-ccm.c │ ├── aes-enc.c │ ├── aes.c │ └── include │ │ ├── aes_ccm.h │ │ └── aes_i.h └── SesameSDK │ ├── Ble │ ├── CHBaseDevice.swift │ ├── CHBluetoothCenter.swift │ ├── CHDevice.swift │ ├── CHDeviceProtocol.swift │ ├── CHServerAuth.swift │ ├── SesameOS2 │ │ ├── Sesame2 │ │ │ ├── CHSesame2.swift │ │ │ ├── CHSesame2Device+DFU.swift │ │ │ ├── CHSesame2Device+Gatt.swift │ │ │ ├── CHSesame2Device+History.swift │ │ │ ├── CHSesame2Device+Lock.swift │ │ │ ├── CHSesame2Device+Login.swift │ │ │ ├── CHSesame2Device+Register.swift │ │ │ ├── CHSesame2Device.swift │ │ │ ├── Sesame2BleCipher.swift │ │ │ ├── Sesame2BleDevice+Peripheral.swift │ │ │ ├── Sesame2Payload.swift │ │ │ └── Sesame2Protocols.swift │ │ ├── SesameBike │ │ │ ├── BikeLockPayload.swift │ │ │ ├── CHBikeLock.swift │ │ │ ├── CHBikeLockDevice+DFU.swift │ │ │ ├── CHBikeLockDevice+Gatt.swift │ │ │ ├── CHBikeLockDevice+Lock.swift │ │ │ ├── CHBikeLockDevice+Login.swift │ │ │ ├── CHBikeLockDevice+Peripheral.swift │ │ │ ├── CHBikeLockDevice+Register.swift │ │ │ ├── CHBikeLockDevice+Setting.swift │ │ │ └── CHBikeLockDevice.swift │ │ └── SesameBot │ │ │ ├── CHSesameBot.swift │ │ │ ├── CHSesameBotDevice+DFU.swift │ │ │ ├── CHSesameBotDevice+Gatt.swift │ │ │ ├── CHSesameBotDevice+History.swift │ │ │ ├── CHSesameBotDevice+Lock.swift │ │ │ ├── CHSesameBotDevice+Login.swift │ │ │ ├── CHSesameBotDevice+Peripheral.swift │ │ │ ├── CHSesameBotDevice+Register.swift │ │ │ ├── CHSesameBotDevice+Setting.swift │ │ │ ├── CHSesameBotDevice.swift │ │ │ ├── SesameBotPayload.swift │ │ │ └── SesameBotProtocols.swift │ └── SesameOS3 │ │ ├── CHSesameOS3.swift │ │ ├── Sesame5 │ │ ├── CHSesame5.swift │ │ ├── CHSesame5Device+Command.swift │ │ ├── CHSesame5Device+History.swift │ │ ├── CHSesame5Device+Register.swift │ │ └── CHSesame5Device.swift │ │ ├── SesameBike2 │ │ ├── CHSesameBike2.swift │ │ └── CHSesameBike2Device.swift │ │ ├── SesameOS3BleCipher.swift │ │ ├── SesameOS3SegmentType.swift │ │ ├── SesameTouchPro │ │ ├── CHSesameTouchPro+Command.swift │ │ ├── CHSesameTouchPro+Register.swift │ │ ├── CHSesameTouchPro.swift │ │ └── CHSesameTouchProDevice.swift │ │ └── WifiModule2 │ │ ├── CHWifiModule2.swift │ │ ├── CHWifiModule2Device+Gatt.swift │ │ ├── CHWifiModule2Device+Peripheral.swift │ │ ├── CHWifiModule2Device+Register.swift │ │ ├── CHWifiModule2Device.swift │ │ ├── WifiModule2Payload.swift │ │ └── WifiModule2Protocols.swift │ ├── DB │ ├── CHDeviceCenter.swift │ ├── CHDeviceMO+CoreDataClass.swift │ ├── CHDeviceMO+CoreDataProperties.swift │ ├── CHDeviceManager.swift │ └── CHDeviceModel.xcdatamodeld │ │ ├── .xccurrentversion │ │ └── CHDeviceModel.xcdatamodel │ │ └── contents │ ├── DataModel │ └── Keys │ │ ├── CHDeviceKey.swift │ │ ├── CHGuestKey.swift │ │ └── CHSesame2HistoryEvent.swift │ ├── Server │ ├── CHAPICallObject.swift │ ├── CHAccountManager+APIRequest.swift │ ├── CHAccountManager.swift │ └── CHResultPattern.swift │ └── Utils │ ├── AES.swift │ ├── CHConfiguration.swift │ ├── CHExtensionListener.swift │ ├── Data+.swift │ ├── ECC.swift │ ├── Logging.swift │ ├── NSError+.swift │ ├── String+.swift │ ├── SwCrypt.swift │ └── URLSession+.swift ├── doc ├── Server │ ├── AWS Iot Core.puml │ └── aws客戶端初始化.puml ├── SesameSDK │ ├── BleAdv.md │ ├── CHBluetoothCenter.md │ ├── CHSesameOS3.md │ ├── 藍芽中心.puml │ └── 藍芽狀態變化.puml ├── SesameUI │ ├── 1.TabView_DeviceList │ │ ├── DeviceListVC.md │ │ ├── 設備列表_listCell.puml │ │ ├── 設備列表_lock_unlock_toggle.puml │ │ ├── 設備列表_手動排序.puml │ │ └── 設備列表_本地與雲端整合.puml │ ├── 2.TabView_FriendList │ │ ├── FriendList.puml │ │ ├── FriendListVC.md │ │ ├── GuestKey.puml │ │ ├── postFriend.puml │ │ ├── push_token.puml │ │ └── sns.puml │ ├── 3.TabView_Me │ │ ├── MeVC.md │ │ ├── SignInVC.md │ │ ├── SignUpVC.md │ │ ├── verifySMS.puml │ │ └── 註冊登入.puml │ ├── AppDelegate.md │ ├── History設備歷史頁 │ │ ├── History.md │ │ ├── get_history.puml │ │ ├── get_history_from_server.puml │ │ └── post_history.puml │ ├── Intents.md │ ├── Register註冊列表 │ │ ├── RegisterCHDevice.md │ │ ├── RegisterDeviceVC.md │ │ ├── register_nav.puml │ │ ├── ssm2註冊.puml │ │ └── ssm5註冊.puml │ ├── SesameUI架構圖.puml │ ├── SesameUI架構說明.md │ ├── SettingVC設備設定頁 │ │ ├── KeyCollectionVC.md │ │ ├── QRcodeVC.md │ │ ├── 使用者群組.puml │ │ ├── 角度設定LockAngleVC.md │ │ └── 設備設定頁分類.md │ ├── TodayVC(Widget).md │ ├── intent_extenstionListener.puml │ └── 推送通知.puml ├── ref │ └── BleConnect.svg ├── src │ ├── imgs │ │ ├── AWS_iotcore.png │ │ ├── SesameUI架構圖.png │ │ ├── bleCenter.png │ │ ├── 歷史頁_更新歷史.png │ │ ├── 用戶頁_verifySMS.png │ │ ├── 設備列表_lock_unlock_toggle.png │ │ ├── 設備列表_手動排序.png │ │ ├── 設備列表_本地與雲端整合.png │ │ ├── 設備列表_載入顯示.png │ │ ├── 設備頁_使用者群組.png │ │ ├── 註冊導頁.png │ │ └── 註冊登入.png │ └── resources │ │ ├── SesameSDK_20231201.png │ │ ├── class_diagram.md │ │ ├── class_diagram.svg │ │ ├── framework_diagram.png │ │ ├── manually.png │ │ ├── sequence_diagram.md │ │ ├── sequence_diagram.svg │ │ └── spm.png ├── 框架選用.md └── 重點數據結構 │ ├── 1_Class │ ├── CHBaseViewController.md │ ├── CHDeviceCenter.md │ ├── CHDeviceManager.md │ ├── CHIotManager.md │ ├── CHUserAPIManager.md │ └── wm2.puml │ ├── 2_Struct │ └── shadowModel.md │ └── 3_Protocol │ ├── CHDevice.md │ ├── CHDeviceProtocol.md │ ├── CHSeameConnector.md │ ├── CHSesameLock.md │ └── CHSesameProtocolMechStatus.md ├── git.plist └── umlOutput ├── class_diagram.png ├── sequence_diagram.png └── test_sequence.png /Example/SesameIntents/IntentHandler.swift: -------------------------------------------------------------------------------- 1 | // 2 | // IntentHandler.swift 3 | // SesameIntents 4 | // 5 | // Created by Wayne Hsiao on 2020/9/9. 6 | // Copyright © 2020 CandyHouse. All rights reserved. 7 | // 8 | 9 | import Intents 10 | import SesameSDK 11 | 12 | class IntentHandler: INExtension { 13 | 14 | override func handler(for intent: INIntent) -> Any { 15 | Sesame2Store.shared.refreshDB() 16 | CHExtensionListener.post(notification: CHExtensionListener.shortcutDidBecomeActive) 17 | if let _ = intent as? UnlockSesameIntent { 18 | return UnlockSesameIntentHandler() 19 | } else if let _ = intent as? LockSesameIntent { 20 | return LockSesameIntentHandler() 21 | } else { 22 | return ToggleSesameIntentHandler() 23 | } 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /Example/SesameIntents/SesameIntents.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.application-groups 6 | 7 | group.candyhouse.widget 8 | 9 | keychain-access-groups 10 | 11 | $(AppIdentifierPrefix)group.candyhouse.widget 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Example/SesameIntentsWatch/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSExtension 6 | 7 | NSExtensionAttributes 8 | 9 | IntentsRestrictedWhileLocked 10 | 11 | IntentsRestrictedWhileProtectedDataUnavailable 12 | 13 | IntentsSupported 14 | 15 | LockSesameIntent 16 | ToggleSesameIntent 17 | UnlockSesameIntent 18 | 19 | 20 | NSExtensionPointIdentifier 21 | com.apple.intents-service 22 | NSExtensionPrincipalClass 23 | $(PRODUCT_MODULE_NAME).IntentHandler 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Example/SesameIntentsWatch/IntentHandler.swift: -------------------------------------------------------------------------------- 1 | // 2 | // IntentHandler.swift 3 | // SesameIntentsWatch 4 | // 5 | // Created by YuHan Hsiao on 2021/09/24. 6 | // Copyright © 2021 CandyHouse. All rights reserved. 7 | // 8 | 9 | import Intents 10 | import SesameSDK 11 | 12 | class IntentHandler: INExtension { 13 | 14 | override func handler(for intent: INIntent) -> Any { 15 | Sesame2Store.shared.refreshDB() 16 | CHExtensionListener.post(notification: CHExtensionListener.shortcutDidBecomeActive) 17 | if let _ = intent as? UnlockSesameIntent { 18 | return UnlockSesameIntentHandler() 19 | } else if let _ = intent as? LockSesameIntent { 20 | return LockSesameIntentHandler() 21 | } else { 22 | return ToggleSesameIntentHandler() 23 | } 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /Example/SesameIntentsWatch/SesameIntentsWatch.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.application-groups 6 | 7 | group.candyhouse.widget 8 | 9 | keychain-access-groups 10 | 11 | $(AppIdentifierPrefix)group.candyhouse.widget 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Example/SesameNotificationServiceExtension/SesameNotificationServiceExtension.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.application-groups 6 | 7 | group.candyhouse.widget 8 | 9 | keychain-access-groups 10 | 11 | $(AppIdentifierPrefix)group.candyhouse.widget 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Example/SesameTodayExtension/SesameTodayExtension.Debug.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.application-groups 6 | 7 | group.candyhouse.widget 8 | 9 | keychain-access-groups 10 | 11 | $(AppIdentifierPrefix)group.candyhouse.widget 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Example/SesameTodayExtension/SesameTodayExtension.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.application-groups 6 | 7 | group.candyhouse.widget 8 | 9 | keychain-access-groups 10 | 11 | $(AppIdentifierPrefix)group.candyhouse.widget 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-1024.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-120.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-121.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-121.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-152.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-167.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-180.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-20.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-29.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-40.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-41.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-42.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-58.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-59.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-60.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-76.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-80.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-81.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-81.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/AppIcon.appiconset/Icon-87.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/MoreFunctionFrame_58x50_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "MoreFunctionFrame_58x50_@2x.png", 5 | "idiom" : "universal", 6 | "resizing" : { 7 | "cap-insets" : { 8 | "bottom" : 8, 9 | "left" : 8, 10 | "right" : 52, 11 | "top" : 18 12 | }, 13 | "center" : { 14 | "height" : 1, 15 | "mode" : "tile", 16 | "width" : 1 17 | }, 18 | "mode" : "9-part" 19 | } 20 | } 21 | ], 22 | "info" : { 23 | "author" : "xcode", 24 | "version" : 1 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/MoreFunctionFrame_58x50_.imageset/MoreFunctionFrame_58x50_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/MoreFunctionFrame_58x50_.imageset/MoreFunctionFrame_58x50_@2x.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/ScanLine.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ScanLine@2x.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/ScanLine.imageset/ScanLine@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/ScanLine.imageset/ScanLine@2x.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/bluetooth_gray.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "output-onlinepngtools-10.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/bluetooth_gray.imageset/output-onlinepngtools-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/bluetooth_gray.imageset/output-onlinepngtools-10.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/bluetooth_green.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "output-onlinepngtools-9.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/bluetooth_green.imageset/output-onlinepngtools-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/bluetooth_green.imageset/output-onlinepngtools-9.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/bluetooth_red.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "output-onlinepngtools-8.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/bluetooth_red.imageset/output-onlinepngtools-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/bluetooth_red.imageset/output-onlinepngtools-8.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/bluetooth_yellow.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "output-onlinepngtools-6.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/bluetooth_yellow.imageset/output-onlinepngtools-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/bluetooth_yellow.imageset/output-onlinepngtools-6.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/crown.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "crown.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/crown.imageset/crown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/crown.imageset/crown.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/finger.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "finger.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/finger.imageset/finger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/finger.imageset/finger.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/guestKey.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ic_launcher_round (1).png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/guestKey.imageset/ic_launcher_round (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/guestKey.imageset/ic_launcher_round (1).png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/img-knob.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img-knob.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/img-knob.imageset/img-knob.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/img-knob.imageset/img-knob.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/keyboard.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "keyboard.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/keyboard.imageset/keyboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/keyboard.imageset/keyboard.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/qr-code.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "qr-code-2.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/qr-code.imageset/qr-code-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/qr-code.imageset/qr-code-2.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/sesame2/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/sesame2/bleLogining.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "logining.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/sesame2/bleLogining.imageset/logining.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/sesame2/bleLogining.imageset/logining.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/sesame2/bt0.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "bt0.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/sesame2/bt0.imageset/bt0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/sesame2/bt0.imageset/bt0.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/sesame2/bt100.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "bt100.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/sesame2/bt100.imageset/bt100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/sesame2/bt100.imageset/bt100.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/sesame2/bt50.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "bt50.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/sesame2/bt50.imageset/bt50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/sesame2/bt50.imageset/bt50.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/sesame2/icn-battery.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icn-battery@3x.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/sesame2/icn-battery.imageset/icn-battery@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/sesame2/icn-battery.imageset/icn-battery@3x.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/sesame2/locked.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Group 276-2.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/sesame2/locked.imageset/Group 276-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/sesame2/locked.imageset/Group 276-2.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/sesame2/noBleSignal.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Group 278.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/sesame2/noBleSignal.imageset/Group 278.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/sesame2/noBleSignal.imageset/Group 278.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/sesame2/noSettings.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "アセット 9@3x.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/sesame2/noSettings.imageset/アセット 9@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/sesame2/noSettings.imageset/アセット 9@3x.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/sesame2/receivedBle.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "receiveBle.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/sesame2/receivedBle.imageset/receiveBle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/sesame2/receivedBle.imageset/receiveBle.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/sesame2/reveivedsignal.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "reveivedsignal.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/sesame2/reveivedsignal.imageset/reveivedsignal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/sesame2/reveivedsignal.imageset/reveivedsignal.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/sesame2/unlocked.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Group 275-2.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/sesame2/unlocked.imageset/Group 275-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/sesame2/unlocked.imageset/Group 275-2.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/sesame2/waitingGatt.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "waitgatt.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/sesame2/waitingGatt.imageset/waitgatt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/sesame2/waitingGatt.imageset/waitgatt.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/suicas/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/suicas/pasmo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "pasmo.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/suicas/pasmo.imageset/pasmo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/suicas/pasmo.imageset/pasmo.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/suicas/suica.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "suica.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/suicas/suica.imageset/suica.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/suicas/suica.imageset/suica.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/switch/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/switch/switch-bleLogining.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "swtich-logining.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/switch/switch-bleLogining.imageset/swtich-logining.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/switch/switch-bleLogining.imageset/swtich-logining.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/switch/switch-locked.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "swtich-locked.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/switch/switch-locked.imageset/swtich-locked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/switch/switch-locked.imageset/swtich-locked.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/switch/switch-noBleSignal.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "swtich-noBleSignal.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/switch/switch-noBleSignal.imageset/swtich-noBleSignal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/switch/switch-noBleSignal.imageset/swtich-noBleSignal.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/switch/switch-receivedBle.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "swtich-receiveBle.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/switch/switch-receivedBle.imageset/swtich-receiveBle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/switch/switch-receivedBle.imageset/swtich-receiveBle.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/switch/switch-unlocked.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "swtich-unlocked.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/switch/switch-unlocked.imageset/swtich-unlocked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/switch/switch-unlocked.imageset/swtich-unlocked.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/switch/switch-waitingGatt.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "swtich-waitgatt.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/switch/switch-waitingGatt.imageset/swtich-waitgatt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/switch/switch-waitingGatt.imageset/swtich-waitgatt.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/wifi_signal/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/wifi_signal/wifi_gray.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "output-onlinepngtools-11.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/wifi_signal/wifi_gray.imageset/output-onlinepngtools-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/wifi_signal/wifi_gray.imageset/output-onlinepngtools-11.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/wifi_signal/wifi_green.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "output-onlinepngtools-3.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/wifi_signal/wifi_green.imageset/output-onlinepngtools-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/wifi_signal/wifi_green.imageset/output-onlinepngtools-3.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/wifi_signal/wifi_middle.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "wifi_middle.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/wifi_signal/wifi_middle.imageset/wifi_middle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/wifi_signal/wifi_middle.imageset/wifi_middle.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/wifi_signal/wifi_red.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "output-onlinepngtools-4.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/wifi_signal/wifi_red.imageset/output-onlinepngtools-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/wifi_signal/wifi_red.imageset/output-onlinepngtools-4.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/wifi_signal/wifi_strong.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "wifi_strong.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/wifi_signal/wifi_strong.imageset/wifi_strong.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/wifi_signal/wifi_strong.imageset/wifi_strong.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/wifi_signal/wifi_weak.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "wifi_weak.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/wifi_signal/wifi_weak.imageset/wifi_weak.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/wifi_signal/wifi_weak.imageset/wifi_weak.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/wifi_signal/wifi_yellow.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "output-onlinepngtools-5.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Assets.xcassets/wifi_signal/wifi_yellow.imageset/output-onlinepngtools-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Assets.xcassets/wifi_signal/wifi_yellow.imageset/output-onlinepngtools-5.png -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Icons/arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Icons/icon_lock.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Icons/icon_unlock.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Icons/iconfinder_9_3898370.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Icons/icons_filled_close.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | icons_filled_close 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Icons/icons_filled_close_b.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | icons_filled_close 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Icons/icons_filled_more.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | icons_filled_more 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Icons/keychain_original.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Icons/keychain_tint.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Localization/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | "CFBundleDisplayName" = "Sesame"; 2 | "NSCameraUsageDescription" = "To scan QR Code"; 3 | "NSPhotoLibraryUsageDescription" = "To scan QR Cdoe from your album"; 4 | "NSBluetoothPeripheralUsageDescription" = "Sesame app has to access Sesame devices via Bluetooth."; 5 | "NSBluetoothAlwaysUsageDescription" = "Sesame app has to access Sesame devices via Bluetooth."; 6 | "NSLocationAlwaysUsageDescription" = "The Auto-Unlock feature which automatically unlocks the door for you when you are back, needs the precise location all the time"; 7 | "NSLocationWhenInUseUsageDescription" = "The Auto-Unlock feature which automatically unlocks the door for you when you are back, needs the precise location all the time"; 8 | "NSLocationAlwaysAndWhenInUseUsageDescription" = "The Auto-Unlock feature which automatically unlocks the door for you when you are back, needs the precise location all the time"; 9 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Localization/ja.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | "CFBundleDisplayName" = "セサミ"; 2 | "NSCameraUsageDescription" = "QRコードをスキャンする"; 3 | "NSPhotoLibraryUsageDescription" = "QRコードをアルバムから読み取る"; 4 | "NSBluetoothPeripheralUsageDescription" = "セサミデバイスとのBluthtooh接続を許可してください。"; 5 | "NSBluetoothAlwaysUsageDescription" = "セサミデバイスとのBluthtooh接続を許可してください。"; 6 | "NSLocationAlwaysUsageDescription" = "手ぶら解錠をご使用の場合、正確な位置情報を「常に許可」にしてください。"; 7 | "NSLocationWhenInUseUsageDescription" = "手ぶら解錠をご使用の場合、正確な位置情報を「常に許可」にしてください。"; 8 | "NSLocationAlwaysAndWhenInUseUsageDescription" = "手ぶら解錠をご使用の場合、正確な位置情報を「常に許可」にしてください。"; 9 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Localization/zh-Hans.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | "CFBundleDisplayName" = "芝麻"; 2 | "NSCameraUsageDescription" = "扫描二维码"; 3 | "NSPhotoLibraryUsageDescription" = "从相簿里扫描二维码"; 4 | "NSBluetoothPeripheralUsageDescription" = "芝麻app需要透过蓝牙连接芝麻设备"; 5 | "NSBluetoothAlwaysUsageDescription" = "芝麻app需要透过蓝牙连接芝麻设备"; 6 | "NSLocationAlwaysUsageDescription" = "回来后自动解锁芝麻设备的功能 需要最精准的手机位置信息"; 7 | "NSLocationWhenInUseUsageDescription" = "回来后自动解锁芝麻设备的功能 需要最精准的手机位置信息"; 8 | "NSLocationAlwaysAndWhenInUseUsageDescription" = "回来后自动解锁芝麻设备的功能 需要最精准的手机位置信息"; 9 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Localization/zh-Hant.Iproj/zh-HK.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | "CFBundleDisplayName" = "芝麻"; 2 | "NSCameraUsageDescription" = "掃描 QR Code"; 3 | "NSPhotoLibraryUsageDescription" = "從相簿裡掃描 QR Code"; 4 | "NSBluetoothPeripheralUsageDescription" = "芝麻app需要透過藍芽連接芝麻設備"; 5 | "NSBluetoothAlwaysUsageDescription" = "芝麻app需要透過藍芽連接芝麻設備"; 6 | "NSLocationAlwaysUsageDescription" = "回來後自動解鎖芝麻設備的功能 需要最精准的手機位置訊息"; 7 | "NSLocationWhenInUseUsageDescription" = "回來後自動解鎖芝麻設備的功能 需要最精准的手機位置訊息"; 8 | "NSLocationAlwaysAndWhenInUseUsageDescription" = "回來後自動解鎖芝麻設備的功能 需要最精准的手機位置訊息"; 9 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Localization/zh-Hant.Iproj/zh-Hant.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | "CFBundleDisplayName" = "芝麻"; 2 | "NSCameraUsageDescription" = "掃描 QR Code"; 3 | "NSPhotoLibraryUsageDescription" = "從相簿裡掃描 QR Code"; 4 | "NSBluetoothPeripheralUsageDescription" = "芝麻app需要透過藍芽連接芝麻設備"; 5 | "NSBluetoothAlwaysUsageDescription" = "芝麻app需要透過藍芽連接芝麻設備"; 6 | "NSLocationAlwaysUsageDescription" = "回來後自動解鎖芝麻設備的功能 需要最精准的手機位置訊息"; 7 | "NSLocationWhenInUseUsageDescription" = "回來後自動解鎖芝麻設備的功能 需要最精准的手機位置訊息"; 8 | "NSLocationAlwaysAndWhenInUseUsageDescription" = "回來後自動解鎖芝麻設備的功能 需要最精准的手機位置訊息"; 9 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Localization/zh-Hant.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | "CFBundleDisplayName" = "Sesame"; 2 | "NSCameraUsageDescription" = "To scan QR Code"; 3 | "NSPhotoLibraryUsageDescription" = "To scan QR Cdoe from your album"; 4 | "NSBluetoothPeripheralUsageDescription" = "Sesame app has to access Sesame devices via Bluetooth."; 5 | "NSBluetoothAlwaysUsageDescription" = "Sesame app has to access Sesame devices via Bluetooth."; 6 | "NSLocationAlwaysUsageDescription" = "The Auto-Unlock feature which automatically unlocks the door for you when you are back, needs the precise location all the time"; 7 | "NSLocationWhenInUseUsageDescription" = "The Auto-Unlock feature which automatically unlocks the door for you when you are back, needs the precise location all the time"; 8 | "NSLocationAlwaysAndWhenInUseUsageDescription" = "The Auto-Unlock feature which automatically unlocks the door for you when you are back, needs the precise location all the time"; 9 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/arrow.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "arrow.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/arrow.imageset/arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/autolock.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "autolock.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/bluetooth.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "bluetooth.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/checked.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "tick-2.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/checked.imageset/tick-2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/cube.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "cube-2.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/delete.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "delete-3-2.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/exclamation.imageset/8655597241556273578-2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/exclamation.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "8655597241556273578-2.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/friends.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "friends-2.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/friends_filled.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "friends-3-2.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/handmove.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "handmove.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/history/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/history/history_auto.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "history_auto.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/history/history_lock.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "アイコン.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/history/history_lock.imageset/アイコン.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/history/history_manul.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "history_manul.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/history/history_unlock.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "アイコン2.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/history/history_unlock.imageset/アイコン2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/icon_lock.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icon_lock.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/icon_lock.imageset/icon_lock.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/icon_unlock.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icon_unlock.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/icon_unlock.imageset/icon_unlock.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/iconfinder_9_3898370.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "iconfinder_9_3898370.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/iconfinder_9_3898370.imageset/iconfinder_9_3898370.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/icons_filled_album.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icons_filled_album.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/icons_filled_close.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icons_filled_close.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/icons_filled_close.imageset/icons_filled_close.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | icons_filled_close 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/icons_filled_close_b.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icons_filled_close_b.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/icons_filled_close_b.imageset/icons_filled_close_b.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | icons_filled_close 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/icons_filled_favorites.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icons_filled_favorites.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/icons_filled_more.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icons_filled_more.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/icons_filled_more.imageset/icons_filled_more.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | icons_filled_more 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/icons_filled_official-accounts.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icons_filled_official-accounts.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/icons_filled_scan.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icons_filled_scan.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/icons_outlined_addoutline.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icons_outlined_addoutline.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/icons_outlined_me.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icons_outlined_me.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/icons_outlined_pay.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icons_outlined_pay.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/icons_outlined_setting.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icons_outlined_setting.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/icons_outlined_share.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icons_outlined_share.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/keychain_original.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "keychain_original.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/keychain_original.imageset/keychain_original.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/keychain_tint.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "keychain_tint.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/keychain_tint.imageset/keychain_tint.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/man.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "man.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/plus.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "plus-2.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/plus.imageset/plus-2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/qr-code-scan.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "qr-code-scan-2.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/wifi.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "wifi.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Media.xcassets/world.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "world.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameUI/Resources/Sound/bee.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/Sound/bee.mp3 -------------------------------------------------------------------------------- /Example/SesameUI/Resources/application_dfu/bleconnector_30_11_43712c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/application_dfu/bleconnector_30_11_43712c.zip -------------------------------------------------------------------------------- /Example/SesameUI/Resources/application_dfu/opensensor1_30_8_a8cc5b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/application_dfu/opensensor1_30_8_a8cc5b.zip -------------------------------------------------------------------------------- /Example/SesameUI/Resources/application_dfu/sesame5_30_5_a8cc5b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/application_dfu/sesame5_30_5_a8cc5b.zip -------------------------------------------------------------------------------- /Example/SesameUI/Resources/application_dfu/sesame5pro_30_7_a8cc5b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/application_dfu/sesame5pro_30_7_a8cc5b.zip -------------------------------------------------------------------------------- /Example/SesameUI/Resources/application_dfu/sesame_221_0_8c080c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/application_dfu/sesame_221_0_8c080c.zip -------------------------------------------------------------------------------- /Example/SesameUI/Resources/application_dfu/sesame_421_4_50ce5b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/application_dfu/sesame_421_4_50ce5b.zip -------------------------------------------------------------------------------- /Example/SesameUI/Resources/application_dfu/sesamebike1_21_3_d7162a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/application_dfu/sesamebike1_21_3_d7162a.zip -------------------------------------------------------------------------------- /Example/SesameUI/Resources/application_dfu/sesamebike2_30_6_b2394e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/application_dfu/sesamebike2_30_6_b2394e.zip -------------------------------------------------------------------------------- /Example/SesameUI/Resources/application_dfu/sesamebot1_21_2_369eb9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/application_dfu/sesamebot1_21_2_369eb9.zip -------------------------------------------------------------------------------- /Example/SesameUI/Resources/application_dfu/sesametouch1_30_10_0ccc46.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/application_dfu/sesametouch1_30_10_0ccc46.zip -------------------------------------------------------------------------------- /Example/SesameUI/Resources/application_dfu/sesametouch1pro_30_9_0ccc46.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameUI/Resources/application_dfu/sesametouch1pro_30_9_0ccc46.zip -------------------------------------------------------------------------------- /Example/SesameUI/SesameUI.Debug.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | aps-environment 6 | development 7 | com.apple.developer.networking.wifi-info 8 | 9 | com.apple.developer.siri 10 | 11 | com.apple.security.application-groups 12 | 13 | group.candyhouse.widget 14 | 15 | keychain-access-groups 16 | 17 | $(AppIdentifierPrefix)group.candyhouse.widget 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /Example/SesameUI/SesameUI.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | aps-environment 6 | development 7 | com.apple.developer.networking.wifi-info 8 | 9 | com.apple.developer.siri 10 | 11 | com.apple.security.application-groups 12 | 13 | group.candyhouse.widget 14 | 15 | keychain-access-groups 16 | 17 | $(AppIdentifierPrefix)group.candyhouse.widget 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /Example/SesameUI/Source/Extensions/Date+.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Date+.swift 3 | // SesameUI 4 | // 5 | // Created by YuHan Hsiao on 2020/7/6. 6 | // Copyright © 2020 CandyHouse. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension Date { 12 | func toYMD() -> String { 13 | let dateFormatter = DateFormatter() 14 | dateFormatter.timeZone = TimeZone.current 15 | dateFormatter.locale = NSLocale.current 16 | dateFormatter.dateFormat = "yyyy/MM/dd" 17 | let strDate = dateFormatter.string(from: self) 18 | return strDate 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Example/SesameUI/Source/Extensions/SesameBot+.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SesameBot+.swift 3 | // SesameUI 4 | // 5 | // Created by YuHan Hsiao on 2021/08/11. 6 | // Copyright © 2021 CandyHouse. All rights reserved. 7 | // 8 | 9 | import SesameSDK 10 | 11 | extension CHSesameBot { 12 | /// 當前 bot 模式 13 | var sesameBotMode: SesameBotClickMode? { 14 | SesameBotClickMode.modeForSesameBot(self) 15 | } 16 | } 17 | 18 | -------------------------------------------------------------------------------- /Example/SesameUI/Source/Extensions/UIStoryboard+.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIStoryboard+.swift 3 | // SesameUI 4 | // 5 | // Created by YuHan Hsiao on 2020/6/10. 6 | // Copyright © 2020 CandyHouse. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | 12 | public extension UIStoryboard { 13 | 14 | private static let storyboard = UIStoryboard(name: "Main",bundle: Bundle(for: L.self)) 15 | 16 | enum viewControllers { 17 | static var generalTabViewController: GeneralTabViewController? { 18 | UIStoryboard.storyboard.instantiateViewController(withIdentifier: "GeneralTabViewController") as? GeneralTabViewController 19 | } 20 | 21 | static var changeValueDialog: ChangeValueDialog? { 22 | UIStoryboard.storyboard.instantiateViewController(withIdentifier: "ChangeValueDialog") as? ChangeValueDialog 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Example/SesameUI/Source/TabViewController/devices/Register/CloseBottomCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CloseBottomCell.swift 3 | // SesameUI 4 | // 5 | // Created by Wayne Hsiao on 2020/8/10. 6 | // Copyright © 2020 CandyHouse. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class CloseButtonCell: UITableViewCell { 12 | @IBOutlet weak var closeButton: UIButton! 13 | 14 | override func awakeFromNib() { 15 | super.awakeFromNib() 16 | // Initialization code 17 | } 18 | 19 | override func setSelected(_ selected: Bool, animated: Bool) { 20 | super.setSelected(selected, animated: animated) 21 | 22 | // Configure the view for the selected state 23 | } 24 | 25 | @IBAction func closeTapped(_ sender: Any) { 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Example/SesameUI/Source/TabViewController/devices/Register/RegisterSesameDeviceCell.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | 3 | class RegisterSesameDeviceCell: UITableViewCell { 4 | @IBOutlet weak var deviceTypeLabel: UILabel! 5 | @IBOutlet weak var rssiLabel: UILabel! { 6 | didSet { 7 | rssiLabel.textColor = .sesame2Green 8 | } 9 | } 10 | @IBOutlet weak var rssiImageView: UIImageView! 11 | @IBOutlet weak var sesame2DeviceIdLabel: UILabel! 12 | @IBOutlet weak var sesame2StatusLabel: UILabel! { 13 | didSet { 14 | sesame2StatusLabel.textColor = UIColor.sesame2LightGray 15 | } 16 | } 17 | var indexPath: IndexPath! 18 | } 19 | -------------------------------------------------------------------------------- /Example/SesameUI/Source/TabViewController/devices/SesameTouuchPro/Cell/FingerPrintCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // WifiModule2SSIDScanCell.swift 3 | // SesameUI 4 | // 5 | // Created by tse on 2023/05/17. 6 | // Copyright © 2023 CandyHouse. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class FingerPrintCell: UITableViewCell { 12 | @IBOutlet weak var keyName: UILabel! 13 | @IBOutlet weak var keyID: UILabel! 14 | 15 | @IBOutlet weak var mImage: UIImageView! 16 | 17 | } 18 | -------------------------------------------------------------------------------- /Example/SesameUI/Source/TabViewController/devices/WifiModule2/Setting/WifiModule2SSIDScanCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // WifiModule2SSIDScanCell.swift 3 | // SesameUI 4 | // 5 | // Created by YuHan Hsiao on 2020/12/09. 6 | // Copyright © 2020 CandyHouse. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class WifiModule2SSIDScanCell: UITableViewCell { 12 | 13 | @IBOutlet weak var iconView: UIImageView! 14 | @IBOutlet weak var ssidLabel: UILabel! 15 | override func awakeFromNib() { 16 | super.awakeFromNib() 17 | // Initialization code 18 | } 19 | 20 | override func setSelected(_ selected: Bool, animated: Bool) { 21 | super.setSelected(selected, animated: animated) 22 | 23 | // Configure the view for the selected state 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /Example/SesameUI/Source/TabViewController/devices/WifiModule2/Setting/WifiModule2SesameCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // WifiModule2SesameCell.swift 3 | // SesameUI 4 | // 5 | // Created by YuHan Hsiao on 2020/11/9. 6 | // Copyright © 2020 CandyHouse. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class WifiModule2SesameCell: UITableViewCell { 12 | 13 | @IBOutlet weak var sesame2NameLabel: UILabel! 14 | @IBOutlet weak var sesame2StatusLabel: UILabel! 15 | @IBOutlet weak var checkStatusLabel: UILabel! 16 | 17 | override func awakeFromNib() { 18 | super.awakeFromNib() 19 | // Initialization code 20 | } 21 | 22 | override func setSelected(_ selected: Bool, animated: Bool) { 23 | super.setSelected(selected, animated: animated) 24 | 25 | // Configure the view for the selected state 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Circular.imageset/Circular_32px × 32px (16pt × 16pt @2x).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Circular.imageset/Circular_32px × 32px (16pt × 16pt @2x).png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Circular.imageset/Circular_36px × 36px (18pt × 18pt @2x)-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Circular.imageset/Circular_36px × 36px (18pt × 18pt @2x)-1.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Circular.imageset/Circular_36px × 36px (18pt × 18pt @2x).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Circular.imageset/Circular_36px × 36px (18pt × 18pt @2x).png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Circular.imageset/Circular_40px-×-40px-(20pt-×-20pt-@2x).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Circular.imageset/Circular_40px-×-40px-(20pt-×-20pt-@2x).png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Circular.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Circular_32px × 32px (16pt × 16pt @2x).png", 5 | "idiom" : "watch", 6 | "scale" : "2x", 7 | "screen-width" : "<=145" 8 | }, 9 | { 10 | "filename" : "Circular_36px × 36px (18pt × 18pt @2x).png", 11 | "idiom" : "watch", 12 | "scale" : "2x", 13 | "screen-width" : ">161" 14 | }, 15 | { 16 | "filename" : "Circular_36px × 36px (18pt × 18pt @2x)-1.png", 17 | "idiom" : "watch", 18 | "scale" : "2x", 19 | "screen-width" : ">145" 20 | }, 21 | { 22 | "filename" : "Circular_40px-×-40px-(20pt-×-20pt-@2x).png", 23 | "idiom" : "watch", 24 | "scale" : "2x", 25 | "screen-width" : ">183" 26 | } 27 | ], 28 | "info" : { 29 | "author" : "xcode", 30 | "version" : 1 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/182.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/182.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/203-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/203-1.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/203.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/203.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/224.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/224.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "182.png", 5 | "idiom" : "watch", 6 | "scale" : "2x", 7 | "screen-width" : "<=145" 8 | }, 9 | { 10 | "filename" : "203.png", 11 | "idiom" : "watch", 12 | "scale" : "2x", 13 | "screen-width" : ">161" 14 | }, 15 | { 16 | "filename" : "203-1.png", 17 | "idiom" : "watch", 18 | "scale" : "2x", 19 | "screen-width" : ">145" 20 | }, 21 | { 22 | "filename" : "224.png", 23 | "idiom" : "watch", 24 | "scale" : "2x", 25 | "screen-width" : ">183" 26 | } 27 | ], 28 | "info" : { 29 | "author" : "xcode", 30 | "version" : 1 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Bezel.imageset/84-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Bezel.imageset/84-1.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Bezel.imageset/84.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Bezel.imageset/84.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Bezel.imageset/94-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Bezel.imageset/94-1.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Bezel.imageset/94.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Bezel.imageset/94.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Bezel.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "84.png", 5 | "idiom" : "watch", 6 | "scale" : "2x", 7 | "screen-width" : "<=145" 8 | }, 9 | { 10 | "filename" : "84-1.png", 11 | "idiom" : "watch", 12 | "scale" : "2x", 13 | "screen-width" : ">161" 14 | }, 15 | { 16 | "filename" : "94.png", 17 | "idiom" : "watch", 18 | "scale" : "2x", 19 | "screen-width" : ">145" 20 | }, 21 | { 22 | "filename" : "94-1.png", 23 | "idiom" : "watch", 24 | "scale" : "2x", 25 | "screen-width" : ">183" 26 | } 27 | ], 28 | "info" : { 29 | "author" : "xcode", 30 | "version" : 1 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Circular.imageset/84-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Circular.imageset/84-1.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Circular.imageset/84.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Circular.imageset/84.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Circular.imageset/94-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Circular.imageset/94-1.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Circular.imageset/94.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Circular.imageset/94.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Circular.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "84.png", 5 | "idiom" : "watch", 6 | "scale" : "2x", 7 | "screen-width" : "<=145" 8 | }, 9 | { 10 | "filename" : "84-1.png", 11 | "idiom" : "watch", 12 | "scale" : "2x", 13 | "screen-width" : ">161" 14 | }, 15 | { 16 | "filename" : "94.png", 17 | "idiom" : "watch", 18 | "scale" : "2x", 19 | "screen-width" : ">145" 20 | }, 21 | { 22 | "filename" : "94-1.png", 23 | "idiom" : "watch", 24 | "scale" : "2x", 25 | "screen-width" : ">183" 26 | } 27 | ], 28 | "info" : { 29 | "author" : "xcode", 30 | "version" : 1 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Corner.imageset/40-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Corner.imageset/40-1.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Corner.imageset/40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Corner.imageset/40.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Corner.imageset/44-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Corner.imageset/44-1.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Corner.imageset/44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Corner.imageset/44.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Corner.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "40.png", 5 | "idiom" : "watch", 6 | "scale" : "2x", 7 | "screen-width" : "<=145" 8 | }, 9 | { 10 | "filename" : "40-1.png", 11 | "idiom" : "watch", 12 | "scale" : "2x", 13 | "screen-width" : ">161" 14 | }, 15 | { 16 | "filename" : "44.png", 17 | "idiom" : "watch", 18 | "scale" : "2x", 19 | "screen-width" : ">145" 20 | }, 21 | { 22 | "filename" : "44-1.png", 23 | "idiom" : "watch", 24 | "scale" : "2x", 25 | "screen-width" : ">183" 26 | } 27 | ], 28 | "info" : { 29 | "author" : "xcode", 30 | "version" : 1 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Extra Large.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Graphic-Extra-Large_206px-×-206px-(103pt-×-103pt).png", 5 | "idiom" : "watch", 6 | "scale" : "2x", 7 | "screen-width" : "<=145" 8 | }, 9 | { 10 | "filename" : "Graphic-Extra-Large_240px-×-240px-(120pt-×-120pt).png", 11 | "idiom" : "watch", 12 | "scale" : "2x", 13 | "screen-width" : ">161" 14 | }, 15 | { 16 | "filename" : "Graphic-Extra-Large_240px-×-240px-(120pt-×-120pt)-1.png", 17 | "idiom" : "watch", 18 | "scale" : "2x", 19 | "screen-width" : ">145" 20 | }, 21 | { 22 | "filename" : "Graphic-Extra-Large_264px-×-264px-(132pt-×-132pt).png", 23 | "idiom" : "watch", 24 | "scale" : "2x", 25 | "screen-width" : ">183" 26 | } 27 | ], 28 | "info" : { 29 | "author" : "xcode", 30 | "version" : 1 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Extra Large.imageset/Graphic-Extra-Large_206px-×-206px-(103pt-×-103pt).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Extra Large.imageset/Graphic-Extra-Large_206px-×-206px-(103pt-×-103pt).png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Extra Large.imageset/Graphic-Extra-Large_240px-×-240px-(120pt-×-120pt)-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Extra Large.imageset/Graphic-Extra-Large_240px-×-240px-(120pt-×-120pt)-1.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Extra Large.imageset/Graphic-Extra-Large_240px-×-240px-(120pt-×-120pt).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Extra Large.imageset/Graphic-Extra-Large_240px-×-240px-(120pt-×-120pt).png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Extra Large.imageset/Graphic-Extra-Large_264px-×-264px-(132pt-×-132pt).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Extra Large.imageset/Graphic-Extra-Large_264px-×-264px-(132pt-×-132pt).png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Large Rectangular.imageset/300x94-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Large Rectangular.imageset/300x94-1.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Large Rectangular.imageset/300x94-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Large Rectangular.imageset/300x94-2.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Large Rectangular.imageset/300x94.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Large Rectangular.imageset/300x94.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Large Rectangular.imageset/342x108.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Large Rectangular.imageset/342x108.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Large Rectangular.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "300x94.png", 5 | "idiom" : "watch", 6 | "scale" : "2x", 7 | "screen-width" : "<=145" 8 | }, 9 | { 10 | "filename" : "300x94-1.png", 11 | "idiom" : "watch", 12 | "scale" : "2x", 13 | "screen-width" : ">161" 14 | }, 15 | { 16 | "filename" : "300x94-2.png", 17 | "idiom" : "watch", 18 | "scale" : "2x", 19 | "screen-width" : ">145" 20 | }, 21 | { 22 | "filename" : "342x108.png", 23 | "idiom" : "watch", 24 | "scale" : "2x", 25 | "screen-width" : ">183" 26 | } 27 | ], 28 | "info" : { 29 | "author" : "xcode", 30 | "version" : 1 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Modular.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Modular_52px-×-52px-(26pt-×-26pt-@2x).png", 5 | "idiom" : "watch", 6 | "scale" : "2x", 7 | "screen-width" : "<=145" 8 | }, 9 | { 10 | "filename" : "Modular_58px-×-58px-(29pt-×-29pt-@2x).png", 11 | "idiom" : "watch", 12 | "scale" : "2x", 13 | "screen-width" : ">161" 14 | }, 15 | { 16 | "filename" : "Modular_58px-×-58px-(29pt-×-29pt-@2x)-1.png", 17 | "idiom" : "watch", 18 | "scale" : "2x", 19 | "screen-width" : ">145" 20 | }, 21 | { 22 | "filename" : "Modular_64px-×-64px-(32pt-×-32pt-@2x).png", 23 | "idiom" : "watch", 24 | "scale" : "2x", 25 | "screen-width" : ">183" 26 | } 27 | ], 28 | "info" : { 29 | "author" : "xcode", 30 | "version" : 1 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Modular.imageset/Modular_52px-×-52px-(26pt-×-26pt-@2x).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Modular.imageset/Modular_52px-×-52px-(26pt-×-26pt-@2x).png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Modular.imageset/Modular_58px-×-58px-(29pt-×-29pt-@2x)-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Modular.imageset/Modular_58px-×-58px-(29pt-×-29pt-@2x)-1.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Modular.imageset/Modular_58px-×-58px-(29pt-×-29pt-@2x).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Modular.imageset/Modular_58px-×-58px-(29pt-×-29pt-@2x).png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Modular.imageset/Modular_64px-×-64px-(32pt-×-32pt-@2x).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Modular.imageset/Modular_64px-×-64px-(32pt-×-32pt-@2x).png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Utilitarian_40px-×-40px-(20pt-×-20pt-@2x).png", 5 | "idiom" : "watch", 6 | "scale" : "2x", 7 | "screen-width" : "<=145" 8 | }, 9 | { 10 | "filename" : "Utilitarian_44px-×-44px-(22pt-×-22pt-@2x).png", 11 | "idiom" : "watch", 12 | "scale" : "2x", 13 | "screen-width" : ">161" 14 | }, 15 | { 16 | "filename" : "Utilitarian_44px-×-44px-(22pt-×-22pt-@2x)-1.png", 17 | "idiom" : "watch", 18 | "scale" : "2x", 19 | "screen-width" : ">145" 20 | }, 21 | { 22 | "filename" : "Utilitarian_50px-×-50px-(25pt-×-25pt-@2x).png", 23 | "idiom" : "watch", 24 | "scale" : "2x", 25 | "screen-width" : ">183" 26 | } 27 | ], 28 | "info" : { 29 | "author" : "xcode", 30 | "version" : 1 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Utilitarian_40px-×-40px-(20pt-×-20pt-@2x).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Utilitarian_40px-×-40px-(20pt-×-20pt-@2x).png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Utilitarian_44px-×-44px-(22pt-×-22pt-@2x)-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Utilitarian_44px-×-44px-(22pt-×-22pt-@2x)-1.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Utilitarian_44px-×-44px-(22pt-×-22pt-@2x).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Utilitarian_44px-×-44px-(22pt-×-22pt-@2x).png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Utilitarian_50px-×-50px-(25pt-×-25pt-@2x).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Utilitarian_50px-×-50px-(25pt-×-25pt-@2x).png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Icon-180.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/Icon.imageset/Icon-180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/Icon.imageset/Icon-180.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/bleLogining.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "logining-2.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "logining-1.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "logining.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/bleLogining.imageset/logining-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/bleLogining.imageset/logining-1.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/bleLogining.imageset/logining-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/bleLogining.imageset/logining-2.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/bleLogining.imageset/logining.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/bleLogining.imageset/logining.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/bluetooth_gray.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "output-onlinepngtools-10.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/bluetooth_gray.imageset/output-onlinepngtools-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/bluetooth_gray.imageset/output-onlinepngtools-10.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/bluetooth_green.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "output-onlinepngtools-9.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/bluetooth_green.imageset/output-onlinepngtools-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/bluetooth_green.imageset/output-onlinepngtools-9.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/bluetooth_red.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "output-onlinepngtools-8.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/bluetooth_red.imageset/output-onlinepngtools-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/bluetooth_red.imageset/output-onlinepngtools-8.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/bluetooth_yellow.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "output-onlinepngtools-6.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/bluetooth_yellow.imageset/output-onlinepngtools-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/bluetooth_yellow.imageset/output-onlinepngtools-6.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/bt0.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "bt0-2.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "bt0-1.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "bt0.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/bt0.imageset/bt0-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/bt0.imageset/bt0-1.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/bt0.imageset/bt0-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/bt0.imageset/bt0-2.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/bt0.imageset/bt0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/bt0.imageset/bt0.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/bt100.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "bt100-2.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "bt100-1.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "bt100.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/bt100.imageset/bt100-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/bt100.imageset/bt100-1.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/bt100.imageset/bt100-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/bt100.imageset/bt100-2.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/bt100.imageset/bt100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/bt100.imageset/bt100.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/bt50.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "bt50-2.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "bt50-1.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "bt50.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/bt50.imageset/bt50-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/bt50.imageset/bt50-1.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/bt50.imageset/bt50-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/bt50.imageset/bt50-2.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/bt50.imageset/bt50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/bt50.imageset/bt50.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/icn-battery.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "icn-battery@3x.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/icn-battery.imageset/icn-battery@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/icn-battery.imageset/icn-battery@3x.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/locked.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Group 276-2.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "Group 276-1.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "Group 276.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/locked.imageset/Group 276-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/locked.imageset/Group 276-1.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/locked.imageset/Group 276-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/locked.imageset/Group 276-2.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/locked.imageset/Group 276.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/locked.imageset/Group 276.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/noBleSignal.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Group 278-2.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "Group 278-1.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "Group 278.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/noBleSignal.imageset/Group 278-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/noBleSignal.imageset/Group 278-1.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/noBleSignal.imageset/Group 278-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/noBleSignal.imageset/Group 278-2.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/noBleSignal.imageset/Group 278.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/noBleSignal.imageset/Group 278.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/noSettings.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "アセット 9@3x-2.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "アセット 9@3x-1.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "アセット 9@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/noSettings.imageset/アセット 9@3x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/noSettings.imageset/アセット 9@3x-1.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/noSettings.imageset/アセット 9@3x-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/noSettings.imageset/アセット 9@3x-2.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/noSettings.imageset/アセット 9@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/noSettings.imageset/アセット 9@3x.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/receivedBle.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "receiveBle-2.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "receiveBle-1.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "receiveBle.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/receivedBle.imageset/receiveBle-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/receivedBle.imageset/receiveBle-1.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/receivedBle.imageset/receiveBle-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/receivedBle.imageset/receiveBle-2.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/receivedBle.imageset/receiveBle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/receivedBle.imageset/receiveBle.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/reveivedsignal.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "reveivedsignal-2.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "reveivedsignal-1.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "reveivedsignal.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/reveivedsignal.imageset/reveivedsignal-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/reveivedsignal.imageset/reveivedsignal-1.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/reveivedsignal.imageset/reveivedsignal-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/reveivedsignal.imageset/reveivedsignal-2.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/reveivedsignal.imageset/reveivedsignal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/reveivedsignal.imageset/reveivedsignal.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/switch/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/switch/switch-bleLogining.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "swtich-logining.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/switch/switch-bleLogining.imageset/swtich-logining.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/switch/switch-bleLogining.imageset/swtich-logining.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/switch/switch-locked.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "swtich-locked.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/switch/switch-locked.imageset/swtich-locked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/switch/switch-locked.imageset/swtich-locked.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/switch/switch-noBleSignal.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "swtich-noBleSignal.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/switch/switch-noBleSignal.imageset/swtich-noBleSignal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/switch/switch-noBleSignal.imageset/swtich-noBleSignal.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/switch/switch-receivedBle.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "swtich-receiveBle.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/switch/switch-receivedBle.imageset/swtich-receiveBle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/switch/switch-receivedBle.imageset/swtich-receiveBle.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/switch/switch-unlocked.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "swtich-unlocked.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/switch/switch-unlocked.imageset/swtich-unlocked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/switch/switch-unlocked.imageset/swtich-unlocked.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/switch/switch-waitingGatt.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "swtich-waitgatt.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/switch/switch-waitingGatt.imageset/swtich-waitgatt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/switch/switch-waitingGatt.imageset/swtich-waitgatt.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/unlocked.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Group 275-2.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "Group 275-1.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "Group 275.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/unlocked.imageset/Group 275-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/unlocked.imageset/Group 275-1.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/unlocked.imageset/Group 275-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/unlocked.imageset/Group 275-2.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/unlocked.imageset/Group 275.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/unlocked.imageset/Group 275.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/waitingGatt.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "waitgatt-2.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "waitgatt-1.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "waitgatt.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/waitingGatt.imageset/waitgatt-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/waitingGatt.imageset/waitgatt-1.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/waitingGatt.imageset/waitgatt-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/waitingGatt.imageset/waitgatt-2.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/waitingGatt.imageset/waitgatt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/waitingGatt.imageset/waitgatt.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/wifi_gray.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "output-onlinepngtools-11.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/wifi_gray.imageset/output-onlinepngtools-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/wifi_gray.imageset/output-onlinepngtools-11.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/wifi_green.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "output-onlinepngtools-3.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/wifi_green.imageset/output-onlinepngtools-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/wifi_green.imageset/output-onlinepngtools-3.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/wifi_red.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "output-onlinepngtools-4.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/wifi_red.imageset/output-onlinepngtools-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/wifi_red.imageset/output-onlinepngtools-4.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/wifi_yellow.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "output-onlinepngtools-5.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/Assets.xcassets/wifi_yellow.imageset/output-onlinepngtools-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit Extension/Assets.xcassets/wifi_yellow.imageset/output-onlinepngtools-5.png -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/InterfaceController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InterfaceController.swift 3 | // SesameWatchKit Extension 4 | // 5 | // Created by YuHan Hsiao on 2020/7/1. 6 | // Copyright © 2020 CandyHouse. All rights reserved. 7 | // 8 | 9 | import WatchKit 10 | import Foundation 11 | 12 | 13 | class InterfaceController: WKInterfaceController { 14 | 15 | override func awake(withContext context: Any?) { 16 | super.awake(withContext: context) 17 | 18 | // Configure interface objects here. 19 | } 20 | 21 | override func willActivate() { 22 | // This method is called when watch view controller is about to be visible to user 23 | super.willActivate() 24 | } 25 | 26 | override func didDeactivate() { 27 | // This method is called when watch view controller is no longer visible 28 | super.didDeactivate() 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/ScreenNotify.h: -------------------------------------------------------------------------------- 1 | // 2 | // ScreenNotify.h 3 | // SesameUI 4 | // 5 | // Created by YuHan Hsiao on 2021/09/03. 6 | // Copyright © 2021 CandyHouse. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | BOOL isScreenOff(void); 12 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/ScreenNotify.m: -------------------------------------------------------------------------------- 1 | // 2 | // Notify.m 3 | // SesameWatchKit Extension 4 | // 5 | // Created by YuHan Hsiao on 2021/09/06. 6 | // Copyright © 2021 CandyHouse. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ScreenNotify.h" 11 | #include 12 | 13 | BOOL isScreenOff(void) { 14 | uint64_t state; 15 | int token; 16 | 17 | notify_register_check("com.apple.iokit.hid.displayStatus", &token); 18 | notify_get_state(token, &state); 19 | notify_cancel(token); 20 | BOOL screenIsBlack = !state; 21 | return screenIsBlack; 22 | } 23 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/SesameWatchKit Extension-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // Use this file to import your target's public headers that you would like to expose to Swift. 3 | // 4 | 5 | #import "ScreenNotify.h" 6 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/SesameWatchKit Extension.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.application-groups 6 | 7 | group.candyhouse.widget 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Example/SesameWatchKit Extension/View/HostingController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // HostingController.swift 3 | // SesameWatchKit Extension 4 | // 5 | // Created by YuHan Hsiao on 2020/5/30. 6 | // Copyright © 2020 CandyHouse. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import SwiftUI 11 | 12 | class HostingController: WKHostingController { 13 | override var body: ContentView { 14 | .init(viewModel: .init(sesameData: SesameData.shared)) 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Example/SesameWatchKit/Assets.xcassets/AppIcon.appiconset/Icon-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit/Assets.xcassets/AppIcon.appiconset/Icon-100.png -------------------------------------------------------------------------------- /Example/SesameWatchKit/Assets.xcassets/AppIcon.appiconset/Icon-1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit/Assets.xcassets/AppIcon.appiconset/Icon-1024.png -------------------------------------------------------------------------------- /Example/SesameWatchKit/Assets.xcassets/AppIcon.appiconset/Icon-172.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit/Assets.xcassets/AppIcon.appiconset/Icon-172.png -------------------------------------------------------------------------------- /Example/SesameWatchKit/Assets.xcassets/AppIcon.appiconset/Icon-196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit/Assets.xcassets/AppIcon.appiconset/Icon-196.png -------------------------------------------------------------------------------- /Example/SesameWatchKit/Assets.xcassets/AppIcon.appiconset/Icon-216.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit/Assets.xcassets/AppIcon.appiconset/Icon-216.png -------------------------------------------------------------------------------- /Example/SesameWatchKit/Assets.xcassets/AppIcon.appiconset/Icon-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit/Assets.xcassets/AppIcon.appiconset/Icon-48.png -------------------------------------------------------------------------------- /Example/SesameWatchKit/Assets.xcassets/AppIcon.appiconset/Icon-55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit/Assets.xcassets/AppIcon.appiconset/Icon-55.png -------------------------------------------------------------------------------- /Example/SesameWatchKit/Assets.xcassets/AppIcon.appiconset/Icon-58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit/Assets.xcassets/AppIcon.appiconset/Icon-58.png -------------------------------------------------------------------------------- /Example/SesameWatchKit/Assets.xcassets/AppIcon.appiconset/Icon-80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit/Assets.xcassets/AppIcon.appiconset/Icon-80.png -------------------------------------------------------------------------------- /Example/SesameWatchKit/Assets.xcassets/AppIcon.appiconset/Icon-87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit/Assets.xcassets/AppIcon.appiconset/Icon-87.png -------------------------------------------------------------------------------- /Example/SesameWatchKit/Assets.xcassets/AppIcon.appiconset/Icon-88.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/Example/SesameWatchKit/Assets.xcassets/AppIcon.appiconset/Icon-88.png -------------------------------------------------------------------------------- /Example/SesameWatchKit/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Example/SesameWatchKit/en.lproj/Interface.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "WKInterfaceLabel"; text = "Alert Label"; ObjectID = "IdU-wH-bcW"; */ 3 | "IdU-wH-bcW.text" = "Alert Label"; 4 | -------------------------------------------------------------------------------- /Example/SesameWatchKit/ja.lproj/Interface.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "WKInterfaceLabel"; text = "Alert Label"; ObjectID = "IdU-wH-bcW"; */ 3 | "IdU-wH-bcW.text" = "Alert Label"; 4 | -------------------------------------------------------------------------------- /Example/SesameWatchKit/zh-Hans.lproj/Interface.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "WKInterfaceLabel"; text = "Alert Label"; ObjectID = "IdU-wH-bcW"; */ 3 | "IdU-wH-bcW.text" = "Alert Label"; 4 | -------------------------------------------------------------------------------- /Example/SesameWatchKit/zh-Hant.lproj/Interface.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "WKInterfaceLabel"; text = "Alert Label"; ObjectID = "IdU-wH-bcW"; */ 3 | "IdU-wH-bcW.text" = "Alert Label"; 4 | -------------------------------------------------------------------------------- /Example/Shared/API/Request.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NetworkModel.swift 3 | // SesameUI 4 | // 5 | // Created by YuHan Hsiao on 2020/11/18. 6 | // Copyright © 2020 CandyHouse. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct CHAPICallObject { 12 | enum Method: String { 13 | case get = "GET" 14 | case post = "POST" 15 | case put = "PUT" 16 | case delete = "DELETE" 17 | } 18 | 19 | var request: String 20 | var body: Any? 21 | var query: [AnyHashable: Any]? 22 | var urlString: String 23 | 24 | 25 | init(_ method: Method, _ urlString: String, _ body: Any? = nil) { 26 | self.request = method.rawValue 27 | self.urlString = urlString 28 | self.body = body 29 | } 30 | 31 | init(_ method: Method, _ urlString: String, queryParameters: [AnyHashable: Any]) { 32 | self.request = method.rawValue 33 | self.urlString = urlString 34 | self.query = queryParameters 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Example/Shared/API/Response.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Response.swift 3 | // SesameUI 4 | // 5 | // Created by YuHan Hsiao on 2021/08/11. 6 | // Copyright © 2021 CandyHouse. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | typealias CHResult = (Result, Error>) -> () 12 | 13 | class CHResultState { 14 | var data: T 15 | init(input:T) { 16 | data = input 17 | } 18 | } 19 | 20 | class CHResultStateCache: CHResultState { 21 | override init(input: T) { 22 | super.init(input:input) 23 | } 24 | } 25 | 26 | class CHResultStateNetworks: CHResultState { 27 | override init(input: T) { 28 | super.init(input:input) 29 | } 30 | } 31 | class CHResultStateBLE: CHResultState { 32 | override init(input: T) { 33 | super.init(input:input) 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Example/Shared/DB/SesameUI.xcdatamodeld/.xccurrentversion: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | _XCCurrentVersionName 6 | SesameUI 11.xcdatamodel 7 | 8 | 9 | -------------------------------------------------------------------------------- /Example/Shared/Model/CHDeviceInfo.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CHDeviceInfo.swift 3 | // SesameUI 4 | // 5 | // Created by YuHan Hsiao on 2021/05/11. 6 | // Copyright © 2021 CandyHouse. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// 上傳設備GPS Model 12 | struct CHDeviceInfo: Codable { 13 | let deviceUUID: String 14 | let deviceModel: String 15 | let longitude: String 16 | let latitude: String 17 | } 18 | -------------------------------------------------------------------------------- /Example/Shared/Model/QRCodeURLType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Sesame2QRCode.swift 3 | // SesameUI 4 | // 5 | // Created by YuHan Hsiao on 2020/6/29. 6 | // Copyright © 2020 CandyHouse. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | enum QRcodeType: String { 12 | case sesameKey = "sk" 13 | case friend 14 | } 15 | 16 | enum CHQRKey: String { 17 | case QREventType = "t" 18 | case QRValue = "invite" 19 | case QRKeyLevel = "l" 20 | } 21 | -------------------------------------------------------------------------------- /Example/Shared/Model/WatchKitFile.swift: -------------------------------------------------------------------------------- 1 | // 2 | // WatchKitFile.swift 3 | // SesameUI 4 | // 5 | // Created by YuHan Hsiao on 2020/12/10. 6 | // Copyright © 2020 CandyHouse. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import SesameSDK 11 | 12 | /// 手機傳送到手錶的 Data model 13 | struct WatchKitFile: Codable { 14 | let deviceId: String 15 | let sesameQRCodeUrl: String 16 | let historyTag: String 17 | } 18 | -------------------------------------------------------------------------------- /Example/Shared/Util/BleHelper.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BleHelper.swift 3 | // SesameUI 4 | // 5 | // Created by 姜宗暐 on 2022/1/11. 6 | // Copyright © 2022 CandyHouse. All rights reserved. 7 | 8 | import Foundation 9 | import CoreBluetooth 10 | 11 | class BleHelper: NSObject { 12 | public static let shared = BleHelper() 13 | 14 | var centralManager: CBCentralManager! 15 | 16 | @discardableResult 17 | override init() { 18 | super.init() 19 | 20 | // 初始化藍芽中心設備 21 | centralManager = CBCentralManager(delegate: self, queue:DispatchQueue.global()) 22 | } 23 | } 24 | 25 | // MARK: - CBCentralManagerDelegate 26 | extension BleHelper: CBCentralManagerDelegate { 27 | // MARK: - centralManagerDidUpdateState 28 | func centralManagerDidUpdateState(_ central: CBCentralManager) {} 29 | } 30 | -------------------------------------------------------------------------------- /Example/Shared/Util/Functions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Functions.swift 3 | // SesameUI 4 | // 5 | // Created by YuHan Hsiao on 2020/6/13. 6 | // Copyright © 2020 CandyHouse. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public func executeOnMainThread(_ execution: @escaping ()->Void) { 12 | if Thread.isMainThread { 13 | execution() 14 | } else { 15 | DispatchQueue.main.async { 16 | execution() 17 | } 18 | } 19 | } 20 | 21 | public func angle2degree(angle: Int16) -> Float { 22 | 23 | var degree = Float(angle % 1024) 24 | degree = degree * 360 / 1024 25 | if degree > 0 { 26 | degree = 360 - degree 27 | } else { 28 | degree = abs(degree) 29 | } 30 | return degree 31 | } 32 | public func reverseDegree(angle: Int16) -> Float { 33 | 34 | var degree = Float(angle % 1024) 35 | if degree > 0 { 36 | degree = 360 - degree 37 | } else { 38 | degree = abs(degree) 39 | } 40 | return degree 41 | } 42 | 43 | -------------------------------------------------------------------------------- /Example/Shared/Util/KeyLevel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // KeyLevel.swift 3 | // SesameUI 4 | // 5 | // Created by YuHan Hsiao on 2020/11/24. 6 | // Copyright © 2020 CandyHouse. All rights reserved. 7 | // 8 | 9 | enum KeyLevel: Int { 10 | case owner = 0 11 | case manager = 1 12 | case guest = 2 13 | case error = -1 14 | 15 | func description() -> String { 16 | switch self { 17 | case .owner: 18 | return "co.candyhouse.sesame2.owner".localized 19 | case .manager: 20 | return "co.candyhouse.sesame2.manager".localized 21 | case .guest: 22 | return "co.candyhouse.sesame2.member".localized 23 | case .error: 24 | return "error" 25 | } 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /Example/Shared/Util/Logger.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DataExtention.swift 3 | // sesame-sdk 4 | // 5 | // Created by tse on 2019/8/6. 6 | // Copyright © 2019 CandyHouse. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import os.log 11 | 12 | class L { 13 | static func d(_ items: Any..., file: String = #file, function: String = #function, 14 | line: Int = #line, tag: String = "hcia") { 15 | 16 | #if DEBUG 17 | let fileName = (file as NSString).lastPathComponent 18 | 19 | let dateFormatter = DateFormatter() 20 | dateFormatter.dateFormat = "HH:mm:ss" 21 | dateFormatter.timeZone = TimeZone(abbreviation: "Asia/Tokyo") 22 | dateFormatter.locale = Locale(identifier: "ja_JP") 23 | 24 | let ismain = (Thread.isMainThread) ? "主":"副" 25 | let content = "\(tag) \(dateFormatter.string(from: Date())) \(items) \(fileName):\(line) \(ismain)" 26 | print(content) 27 | 28 | #endif 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Example/git.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GitCommit 6 | 8b56635 7 | 8 | 9 | -------------------------------------------------------------------------------- /Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version:5.3 2 | // The swift-tools-version declares the minimum version of Swift required to build this package. 3 | 4 | import PackageDescription 5 | 6 | let package = Package( 7 | name: "SesameSDK", 8 | platforms: [ 9 | .iOS(.v12), 10 | .macOS(.v10_15), 11 | .watchOS(.v7) 12 | ], 13 | products: [ 14 | // Products define the executables and libraries a package produces, making them visible to other packages. 15 | .library(name: "SesameSDK", targets: ["SesameSDK"]), 16 | ], 17 | targets: [ 18 | // Targets are the basic building blocks of a package, defining a module or a test suite. 19 | // Targets can depend on other targets in this package and products from dependencies. 20 | .target( 21 | name: "SesameSDK", 22 | dependencies: ["AESc"], // Add CAESCCM as a dependency 23 | resources: [ 24 | .process("DB/CHDeviceModel.xcdatamodeld"), 25 | ] 26 | ), 27 | .target( 28 | name: "AESc" 29 | ) 30 | ] 31 | ) 32 | -------------------------------------------------------------------------------- /Sources/SesameSDK/Ble/SesameOS2/SesameBike/CHBikeLock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CHSesameBike.swift 3 | // SesameSDK 4 | // 5 | // Created by Wayne Hsiao on 2020/10/12. 6 | // Copyright © 2020 CandyHouse. All rights reserved. 7 | // 8 | 9 | import CoreBluetooth 10 | 11 | public protocol CHSesameBikeDelegate: CHDeviceStatusDelegate {} 12 | public protocol CHSesameBike: CHSesameLock { 13 | func unlock(historytag:Data? ,result: @escaping (CHResult)) 14 | 15 | } 16 | extension CHSesameBike { 17 | public func unlock(result: @escaping (CHResult)) { 18 | unlock(historytag: nil, result: result) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Sources/SesameSDK/Ble/SesameOS2/SesameBike/CHBikeLockDevice+Lock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CHSesameBikeDevice+Lock.swift 3 | // SesameSDK 4 | // 5 | // Created by Wayne Hsiao on 2020/10/15. 6 | // Copyright © 2020 CandyHouse. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension CHSesameBikeDevice { 12 | public func unlock(historytag: Data?, result: @escaping (CHResult)) { 13 | if deviceShadowStatus != nil, 14 | deviceStatus.loginStatus == .unlogined {return} 15 | 16 | if (self.checkBle(result)) { return } 17 | // L.d("📡 unlock by ble") 18 | let tagCount_hisTag = Data.createHistag(historytag ?? self.sesame2KeyData?.historyTag) 19 | sendCommand(.init(.async, .unlock,tagCount_hisTag)) { responsePayload in 20 | if responsePayload.cmdResultCode == .success { 21 | result(.success(CHResultStateBLE(input: CHEmpty()))) 22 | } else { 23 | result(.failure(self.errorFromResultCode(responsePayload.cmdResultCode))) 24 | } 25 | } 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /Sources/SesameSDK/DB/CHDeviceMO+CoreDataClass.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CHDeviceMO+CoreDataClass.swift 3 | // SesameSDK 4 | // 5 | // Created by eddy on 2023/11/24. 6 | // Copyright © 2023 CandyHouse. All rights reserved. 7 | // 8 | // 9 | 10 | import Foundation 11 | import CoreData 12 | 13 | @objc(CHDeviceMO) 14 | public class CHDeviceMO: NSManagedObject { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /Sources/SesameSDK/DB/CHDeviceMO+CoreDataProperties.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CHDeviceMO+CoreDataProperties.swift 3 | // SesameSDK 4 | // 5 | // Created by eddy on 2023/11/24. 6 | // Copyright © 2023 CandyHouse. All rights reserved. 7 | // 8 | // 9 | 10 | import Foundation 11 | import CoreData 12 | 13 | 14 | extension CHDeviceMO { 15 | 16 | @nonobjc public class func fetchRequest() -> NSFetchRequest { 17 | return NSFetchRequest(entityName: "CHDevice") 18 | } 19 | 20 | @NSManaged public var deviceModel: String? 21 | @NSManaged public var deviceUUID: String? 22 | @NSManaged public var historyTag: Data? 23 | @NSManaged public var keyIndex: String? 24 | @NSManaged public var secretKey: String? 25 | @NSManaged public var sesame2PublicKey: String? 26 | 27 | } 28 | 29 | extension CHDeviceMO : Identifiable { 30 | 31 | } 32 | -------------------------------------------------------------------------------- /Sources/SesameSDK/DB/CHDeviceModel.xcdatamodeld/.xccurrentversion: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | _XCCurrentVersionName 6 | CHDeviceModel.xcdatamodel 7 | 8 | 9 | -------------------------------------------------------------------------------- /Sources/SesameSDK/DB/CHDeviceModel.xcdatamodeld/CHDeviceModel.xcdatamodel/contents: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Sources/SesameSDK/DataModel/Keys/CHGuestKey.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CHGuestKey.swift 3 | // SesameSDK 4 | // 5 | // Created by YuHan Hsiao on 2021/02/08. 6 | // Copyright © 2021 CandyHouse. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public struct CHGuestKey: Codable { 12 | public let guestKeyId: String 13 | public var keyName: String 14 | 15 | enum CodingKeys: String, CodingKey { 16 | case guestKeyId 17 | case keyName 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Sources/SesameSDK/Server/CHAPICallObject.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CHAPICallObject.swift 3 | // SesameSDK 4 | // 5 | // Created by YuHan Hsiao on 2020/11/16. 6 | // Copyright © 2020 CandyHouse. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct CHAPICallObject { 12 | enum Method: String { 13 | case get = "GET" 14 | case post = "POST" 15 | case put = "PUT" 16 | case delete = "DELETE" 17 | } 18 | 19 | var request: String 20 | var body: Any? 21 | var query: [AnyHashable: Any]? 22 | var urlString: String 23 | 24 | 25 | init(_ method: Method, _ urlString: String, _ body: Any? = nil) { 26 | self.request = method.rawValue 27 | self.urlString = urlString 28 | self.body = body 29 | } 30 | 31 | init(_ method: Method, _ urlString: String, queryParameters: [AnyHashable: Any]) { 32 | self.request = method.rawValue 33 | self.urlString = urlString 34 | self.query = queryParameters 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Sources/SesameSDK/Server/CHAccountManager+APIRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Request.swift 3 | // Sesame2SDK 4 | // 5 | // Created by tse on 2020/3/17. 6 | // Copyright © 2020 CandyHouse. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension CHAccountManager { 12 | func API(request: CHAPICallObject, 13 | handler: @escaping (Result) -> Void) {} 14 | } 15 | 16 | public class CHServerError: Codable { 17 | public var message: String = "" 18 | enum CodingKeys : String, CodingKey { 19 | case message 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Sources/SesameSDK/Server/CHAccountManager.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AccountManager.swift 3 | // sesame2-sdk 4 | // Created by Cerberus on 2019/08/05. 5 | // Copyright © 2019 CandyHouse. All rights reserved. 6 | // 7 | 8 | import Foundation 9 | 10 | public class CHAccountManager { 11 | public static let shared: CHAccountManager! = CHAccountManager() 12 | 13 | init() {} 14 | } 15 | -------------------------------------------------------------------------------- /Sources/SesameSDK/Server/CHResultPattern.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CHResultPattern.swift 3 | // SesameSDK 4 | // 5 | // Created by tse on 2020/8/22. 6 | // Copyright © 2020 CandyHouse. All rights reserved. 7 | // 8 | 9 | //import Foundation 10 | public typealias CHResult = (Result, Error>) -> () 11 | public class CHResultState { 12 | public var data: T 13 | init(input:T) { 14 | data = input 15 | } 16 | } 17 | 18 | public class CHResultStateCache: CHResultState { 19 | override init(input: T) { 20 | super.init(input:input) 21 | } 22 | } 23 | 24 | public class CHResultStateNetworks: CHResultState { 25 | override init(input: T) { 26 | super.init(input:input) 27 | } 28 | } 29 | 30 | public class CHResultStateBLE: CHResultState { 31 | override init(input: T) { 32 | super.init(input:input) 33 | } 34 | } 35 | 36 | public class CHEmpty {} 37 | -------------------------------------------------------------------------------- /Sources/SesameSDK/Utils/CHConfiguration.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CHConfiguration.swift 3 | // Sesame2SDK 4 | // Created by YuHan Hsiao on 2020/6/13. 5 | // Copyright © 2020 CandyHouse. All rights reserved. 6 | // 7 | 8 | import Foundation 9 | 10 | public final class CHConfiguration { 11 | public static let shared = CHConfiguration() 12 | public var appGroup = "group.candyhouse.widget" 13 | } 14 | -------------------------------------------------------------------------------- /Sources/SesameSDK/Utils/String+.swift: -------------------------------------------------------------------------------- 1 | // 2 | // String+.swift 3 | // SesameSDK 4 | // 5 | // Created by YuHan Hsiao on 2020/10/26. 6 | // Copyright © 2020 CandyHouse. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension String { 12 | 13 | func index(from: Int) -> Index { 14 | return self.index(startIndex, offsetBy: from) 15 | } 16 | 17 | func substring(from: Int) -> String { 18 | let fromIndex = index(from: from) 19 | return String(self[fromIndex...]) 20 | } 21 | 22 | func substring(to: Int) -> String { 23 | let toIndex = index(from: to) 24 | return String(self[..) -> String { 28 | let startIndex = index(from: r.lowerBound) 29 | let endIndex = index(from: r.upperBound) 30 | return String(self[startIndex..Void) { 15 | if let isReachible = URLSession.chIsReachible { 16 | handler(isReachible) 17 | } 18 | let urlSessionConfiguration = URLSessionConfiguration.ephemeral 19 | if #available(iOS 11.0, *) { 20 | urlSessionConfiguration.waitsForConnectivity = false 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /doc/Server/AWS Iot Core.puml: -------------------------------------------------------------------------------- 1 | @startwbs 2 | 3 | * 物件(thing name) 4 | ** wm2 5 | ** Sesame2 6 | *** Sesame5 7 | *** Sesame5 pro 8 | *** Sesame4 9 | *** Sesame3 10 | *** Sesame bot1 11 | *** Sesame bike1 12 | *** Sesame bike2 13 | 14 | @endwbs -------------------------------------------------------------------------------- /doc/Server/aws客戶端初始化.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | title:"AWSMobileClient初始化(.initialize)" 4 | note left of APP: GeneralTabVewVC 5 | 6 | APP -> APP: 設定客戶端\n並啟動CHUserAPIManager\n\n1.服務配置(憑證)\n2.請求攔截器(包含網絡請求攔截器和簽名)\n3.URL 7 | 8 | @enduml -------------------------------------------------------------------------------- /doc/SesameSDK/藍芽中心.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | title:"藍芽中心運作" 3 | note left of APP: 初始化,建立CHBluetoothCenter代理,\n藍芽事件將被通知給此中心。 4 | Device -> APP: 廣播訊號 5 | APP -> APP: centralManagerDidUpdateState() 6 | APP -> APP: 掃描 7 | APP -> APP: centralManager:didDiscover() 8 | note left of APP: 用`BleAdv`解析廣播訊息\n確定裝置型號\n存入`deviceMap` 9 | 10 | APP -> Device: 連接並開啟notify 11 | Device --> APP: 12 | APP -> APP: centralManager:didConnect() 13 | @enduml -------------------------------------------------------------------------------- /doc/SesameSDK/藍芽狀態變化.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | title:"設備藍芽狀態變化" 3 | CHBleManagerDelegate -> CHBleManager: 1.enableScan() 4 | CHBleManager -> CHBleManagerDelegate: 2.回調未註冊的設備\ndidDiscoverUnRegisteredCHDevices 5 | CHBleManagerDelegate -> CHBleManager: 3.配置CHBleManager代理,以接收未註冊設備 6 | CHBleManager -> CHBleManagerDelegate: 4.從代理接收未註冊的Sesame設備 7 | CHBleManagerDelegate -> Sesame: 5.設定CHSesame2代理,接收狀態變化 8 | Sesame -> CHBleManagerDelegate: 藍芽狀態改變: .receiveBle 9 | CHBleManagerDelegate -> Sesame: 6.未登入的Sesame設備連接 10 | Sesame -> CHBleManagerDelegate: 藍芽狀態改變: .readyToRegister 11 | CHBleManagerDelegate -> Sesame: 7.註冊Sesame 12 | CHBleManagerDelegate -> Sesame: 8.設定角度 13 | CHBleManagerDelegate -> Sesame: 9.開鎖/解鎖 14 | CHBleManagerDelegate -> Sesame: 10.重製設備 15 | @enduml -------------------------------------------------------------------------------- /doc/SesameUI/1.TabView_DeviceList/DeviceListVC.md: -------------------------------------------------------------------------------- 1 | # SesameDeviceListViewController 2 | 3 | `SesameDeviceListViewController` - App 的首頁,由 TableView 組成。管理和顯示 Sesame 設備列表,此視圖控制器顯示用戶已經註冊的所有 Sesame 設備,並提供操作方法。 4 | 5 | ## 功能 6 | 7 | - 設備列表顯示:用戶的所有 Sesame 裝置(`CHDevice`),單列為一個設備(`ListCell`)。監聽`AWSMobileClient` 的登入狀態變化來整合本地端與 server 的設備列表 8 |

9 | 10 |

11 | 12 | `ListCell` 顯示 13 | 14 | - APP 與 Sesame 的藍芽連線與否 15 | - Sesame 與 wifi 連接與否 16 | - Sesame 電量 17 | 18 |

19 | 20 |

21 | 22 | - 重新排序:長按設備並拖動它來重新排序 23 | 24 | ```Swift 25 | LongPressReorderTableView(tableView,selectedRowScale: .big) 26 | ``` 27 | 28 |

29 | 30 |

31 | 32 | - 操作: 33 | - 點擊右側`sesame2Circle` 實施開關鎖 34 | - 點及單一設備進入歷史頁或設定頁 35 | -------------------------------------------------------------------------------- /doc/SesameUI/1.TabView_DeviceList/設備列表_listCell.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | title: "顯示設備(TableView單列)" 3 | 4 | note over APP : 整合設備列表(圖1) 5 | APP -> SSM: ble登入命令 6 | SSM --> APP: success 7 | note right SSM : publish 8 | SSM -> APP: mechStatus 9 | note over APP : onMectSatus()\n =>configureSesame2Cell() \nListCell顯示 \n(icon:藍芽/wifi/電量 | view:小球) 10 | 11 | APP -> Server: 12 | 13 | @enduml -------------------------------------------------------------------------------- /doc/SesameUI/1.TabView_DeviceList/設備列表_lock_unlock_toggle.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | note over APP: request 3 | APP -> SSM5: {SesameItemCode:82/83/88, 歷史標籤} 4 | 5 | SSM5 --> APP: success 6 | note over SSM5: responce 7 | @enduml 8 | -------------------------------------------------------------------------------- /doc/SesameUI/1.TabView_DeviceList/設備列表_手動排序.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | title: 設備列表手動拖曳排序 3 | 4 | note over APP : 排序 \nreorderFinished() 5 | 6 | APP -> Server: postCHUserKeys(CHUserKey) 7 | 8 | note right of Server : API: 0dkzum4jzg/device/post \nDB: user_devices \nLambda: user_devices_post 9 | @enduml -------------------------------------------------------------------------------- /doc/SesameUI/1.TabView_DeviceList/設備列表_本地與雲端整合.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | title: "API Gateway(ID: 0dkzum4jzg)" 3 | 4 | APP -> Server: getSubId() 5 | note right of Server :AWSMobileClient.getUserAttributes 6 | Server --> APP: attributes.sub 7 | APP -> Server: postCHUserKeys(input:{userkey + userkey.subUUID) 8 | note right of Server :API: /device \nDB:user_devices 9 | Server --> APP: [CHUserKey] 10 | 11 | @enduml 12 | -------------------------------------------------------------------------------- /doc/SesameUI/2.TabView_FriendList/FriendList.puml: -------------------------------------------------------------------------------- 1 | @startwbs 2 | title:"好友列表頁架構" 3 | * FriendListVC 4 | ** FriendKeyListVC 5 | *** FriendKeyShareSelectionVC 6 | **** UIAlertAction 7 | ***** OwnerKey 8 | ***** ManagerKey 9 | ***** GuestKey 10 | @endwbs -------------------------------------------------------------------------------- /doc/SesameUI/2.TabView_FriendList/GuestKey.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | title: "create GuestKey" 3 | APP -> Server: {CHDeviceKey} 4 | note right of Server: DB: sesame2_guest_key\nLambda: create_sesame2_guest_key\nAPI:device/v1/sesame2/{deviceUUID}/guestKey 5 | note right of Server:用現有Owner/Manager key製造訪客鑰匙\n1.判斷已經為guestKey格式或無鑰匙名稱\n返回400及錯誤訊息\n2.製作出guestKeyId存入DB 6 | Server-->APP: 200(成功),guestKeyId\n(ex:00000000000000000e096989439d4430) 7 | @enduml -------------------------------------------------------------------------------- /doc/SesameUI/2.TabView_FriendList/postFriend.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | note over APP: QR code解碼出subID 3 | APP -> Server: {subID} 4 | note right of Server: API Gateway:[0dkzum4jzg]/friend/post\nLambda:user_friend_post\nDB:user_friend 5 | note right of Server:1.Server從request中cognitoAuthenticationProvider\n取App用戶的SubID\n2.將兩個uuid分兩次,分別儲存屬性friendID 與 userSub的值\n3.Server完成互加為好友 6 | Server --> APP: 成功(200) 7 | @enduml -------------------------------------------------------------------------------- /doc/SesameUI/2.TabView_FriendList/push_token.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | note left of APP: 手機啟用通知APNs\n(Apple Push Notification service) 3 | APP -> Server:{token: devicePushToken} 4 | note right of Server: AWS sns服務 5 | Server -> Server : 用token建立平台端點\n =每個端點代表一個裝置 6 | Server -> Server: 存入公司的推送token DB 7 | note right of Server: API Gateway:[jhcr1i3e]/device/v1/token/post\nLambda:sesame_create_device_token\nDB:user_push_token 8 | note right of Server:API Gateway:[0dkzum4jzg]/friend/token/post\nLambda:friend_token_post\nDB:user_push_token 9 | Server --> APP: 200(成功) 10 | @enduml -------------------------------------------------------------------------------- /doc/SesameUI/2.TabView_FriendList/sns.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | Server -> Server:設定好內容(content)\及event:'device'/'friend', 標題 3 | Server -> Server:拿輸入的subID去user_push_token找出對應的目標Arn 4 | Server -> APP: publish({message}) //json格式 5 | Server --> APP: 200(成功) 6 | note right of APP: UserDefaults.standard.string\n(forKey: "devicePushToken") == true\n執行內容 7 | @enduml 8 | -------------------------------------------------------------------------------- /doc/SesameUI/3.TabView_Me/MeVC.md: -------------------------------------------------------------------------------- 1 | # class MeViewController 2 | 3 | 繼承自 `CHBaseViewController` 4 | 5 | ## 方法與屬性(重點項目) 6 | 7 | - `userState` 用戶的登入狀態 從 `AWSMobileClient.default().currentUserState`獲取 8 | - userState = `.signedIn` 顯示用戶名, email, qrCode 9 | - `userNameView` 顯示用戶名(及 historyTag,和 cognito 中用戶屬性的 nick name) 10 | - `ctaView` "signedIn"狀態下,點擊登出鍵會顯示的 AlertController,選擇確認或取消登出。 11 | - `VersionLabel` APP 版號及 git commit 號顯示 12 | 13 | ```swift 14 | @objc func changeNameTapped() 15 | // 登入狀態為.signedIn,顯示ChangeValueDialog修改名稱/ .signedOut則導頁至SignUpViewController 16 | @objc func shareUser() 17 | // 建立QRCodeViewControllert實例(instanceWithUser),並導頁至qrcodeVC 18 | ``` 19 | -------------------------------------------------------------------------------- /doc/SesameUI/3.TabView_Me/SignInVC.md: -------------------------------------------------------------------------------- 1 | # class SignInViewController(SMSViewController) 2 | 3 | 輸入登入用,信箱所收到的 4 位驗證碼 4 | 5 | ## 方法 6 | 7 |

8 | 9 |

10 | 11 | ```Swift 12 | func verifySMS(_ sms: String, ofEmail email: String) 13 | //CHUserAPIManager.shared.verifySMS() 14 | ``` 15 | -------------------------------------------------------------------------------- /doc/SesameUI/3.TabView_Me/verifySMS.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | APP -> Server: verifySMS(4位驗證碼, email) 3 | note right of Server: 核對privateChallengeParameters\n.secretLoginCode與challengeAnswer屬性\n是否一至 4 | Server --> APP: event.answerCorrect 5 | @enduml -------------------------------------------------------------------------------- /doc/SesameUI/3.TabView_Me/註冊登入.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | title:"Sesame帳戶 無須設密碼的客製化驗證註冊/登入" 3 | APP -> Server: {email, pwd:"dummypwk",\nuserAttributes: ["email": email]} 4 | note right of Server: Lambda 1:Pre_Sign_up_Lambda 5 | Server -> Server:{autoConfirmUser, autoVerifyEmail 設為true} 6 | note right of Server: Lambda 2:Define_Auth_Challenge_Lambda 7 | Server -> Server:to cognito 8 | note right of Server: Lambda3:Create_Auth_Challenge_Lambda\n用時間戳取4碼創造登入驗證碼,\n並用SES服務發送至客戶信箱 9 | Server --> APP: event 10 | note left of APP: 導頁至SignInVC 11 | APP -> Server: {event.request.challengeAnswer:驗證碼} 12 | note right of Server: Lambda4:Verify_Auth_Challenge_Response 13 | Server --> APP :event.response.answerCorrect:true/false 14 | @enduml -------------------------------------------------------------------------------- /doc/SesameUI/History設備歷史頁/get_history.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | title:"更新歷史頁" 3 | == History from server == 4 | note left of APP: isUserReqeust == true 5 | APP -> Server: sesame2.getHistories(cursor) 6 | Server --> APP: {histories, cursor} 7 | APP -> APP: addNewHistories()\n將新數據加histories字典中 8 | APP -> APP: 更新cursor 9 | note left of APP: 從Server收到的cursor為nil, \n設isNoMoreDataToGet = true, \n代表所有舊歷史已拿完 10 | APP -> APP: 刷新列表reloadTableView() 11 | == History from SSM == 12 | SSM -> APP: 設備機械狀態更新 13 | note left of APP: onHistoryReceived(device:result:) 14 | APP -> SSM: readCommand() 15 | SSM --> APP: history 16 | APP -> APP: addNewHistories()\nappend TableViewCell 17 | APP -> APP: 刷新列表reloadTableView() 18 | @enduml -------------------------------------------------------------------------------- /doc/SesameUI/History設備歷史頁/get_history_from_server.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | title:"GET history from server" 3 | note left of APP: a:ssm5用驗證公鑰(4bytes亂數)\ncursor:\n有, 代表還有過去歷史; 無, 代表已無歷史\nlg:每次拿取資料的筆數 4 | APP -> Server: {lg:15, a:secretKey, cursor} 5 | note right of Server:API Gateway: [jhcr1i3ecb]/device/v2/sesame2/{device_id}/history/get\nLambda: CandyHouseMobileAPI_device_v2_sesame_history_get\nDB:sesame2_history 6 | Server --> APP:200(成功), {histories, cursor} 7 | @enduml -------------------------------------------------------------------------------- /doc/SesameUI/History設備歷史頁/post_history.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | title:"post history to server" 3 | APP -> SSM: deleteHistory,SSM2_ITEM_CODE_HISTORY(4) 4 | note left of APP: 是否刪除歷史=>\n判斷聯網與否:連網就刪除/沒連就不刪\n(SSM收到後,存為 isPeek的值)\nisPeek = true 查看最新歷史,不刪除歷史\nisPeek = false 彈出一筆最舊的歷史,並刪除該歷史 5 | note right of SSM: 歷史內容\n1.type : SSM2_OP_CODE_RESPONSE (0x07)\n2.item code : SSM2_ITEM_CODE_HISTORY(4)\n3.res: CMD_RESULT_SUCCESS (0x00)\n4.payload(History)\n SSM回傳值存進histitem變數 6 | SSM --> APP: success, history 7 | note left of APP: 封包成CHSesame5HistoryEvent 8 | note left of APP: 1.type:歷史編號\n2.歷史類型(Sesame2HistoryTypeEnum)\n3.timestamp\n4.機械狀態\n5.歷史標籤、長度 9 | APP -> APP: 轉換為CHSesame5HistoryData 10 | APP -> APP: 轉換為CHSesame5History給UI用 11 | APP -> Server: {deviceUUID, historyData, type} 12 | note right of Server: 上傳歷史資料進DB\nLambda輸入來源:\n1.from aws-iot(wm2)\n2.from api gateway(app) 13 | note right of Server:API Gateway: [jhcr1i3ecb]/device/v1/sesame2/historys/post\nLambda: sesame2_history_parser\nDB: sesame2_history 14 | @enduml 15 | -------------------------------------------------------------------------------- /doc/SesameUI/Intents.md: -------------------------------------------------------------------------------- 1 | # Intents 2 | 3 | 使用 iOS Intenes 框架,實現 Siri / 捷徑開關鎖功能。 4 | App 中有三個 Custom Intents: `Toggle Sesame`/`Lock Sesame`/`Unlock Sesame` 5 | `CHExtensionListener`(詳見 AppDelegate) 在 Siri 或 SHort cut 功能切換活躍/非活躍狀態時觸發 對應的 Intent handler 6 | 7 |

8 | 9 |

10 | 11 | ## Lock/Unlock SesameIntent 12 | 13 | ```Swift 14 | //1. 15 | func handle(intent: UnlockSesameIntent, completion: @escaping (UnlockSesameIntentResponse) -> Void){ 16 | //處理傳入的Intents,開啟藍芽掃描裝置,判斷該裝置為藍芽連線或影子登入情況執行動作。執行動作超過10秒未完成則返回`.failure`結果 17 | } 18 | 19 | //2. 20 | func resolveName(for intent: UnlockSesameIntent, with completion: @escaping (INStringResolutionResult) -> Void) { 21 | // 解析 Intent 中的 SesameLock 名稱,若有找到設備列表中對應名稱(不區分大小寫)的設備就對該設備執行動作 22 | } 23 | 24 | //3.Lock || Unlock || Toggle Sesame 25 | func unlock/ lock/ toggle CHDevice(_ device: CHSesameLock, completion: @escaping (UnlockSesameIntentResponse) -> Void){ 26 | //判斷裝置執行開關鎖動作,並在完成時關閉藍芽掃描、藍芽斷連所有裝置。Sesame bike/bike2只支援開鎖,Sesame bot 只支援 .click() 27 | } 28 | 29 | ``` 30 | -------------------------------------------------------------------------------- /doc/SesameUI/Register註冊列表/RegisterCHDevice.md: -------------------------------------------------------------------------------- 1 | 1.RegisterSesameDeviceViewController.swift 2 | =>registerCHDevice() 3 | 4 | 2.CHSesame2Device+Register.swift 5 | => extension CHSesame2Device register() 6 | => getIRER() 7 | => onRegisterStage1() 8 | => onRegisterStage2() 9 | => registerCompleteHandler() 10 | 11 | 3.CHIoTManager.swift 12 | => subscribeCHDeviceShadow() 13 | 14 | 4.Sesame2Store.swift 15 | =>deletePropertyFor 16 | 17 | 5.RegisterSesameDeviceViewController.swift // UI loading View 18 | => ViewHelper.hideLoadingView() 19 | => dismissSelf() // 註冊列表 popup 頁 20 | 21 | 6.SesameDeviceListViewController.swift 22 | => getKeysFromCache() 23 | 24 | 7.RegisterSesameDeviceViewController.swift 25 | => CHUserAPIManager.shared.getSubId() 26 | 27 | 8.CHUserAPIManager+.swift 28 | => putCHUserKey() 29 | -------------------------------------------------------------------------------- /doc/SesameUI/Register註冊列表/register_nav.puml: -------------------------------------------------------------------------------- 1 | @startwbs 2 | * device 3 | ** CHSesame2 4 | *** Sesame2角度設定頁 5 | ** CHSesame5 6 | *** Sesame5角度設定頁 7 | ** CHWifiModule2 8 | *** WifiModule2設備設定頁 9 | ** CHSesameTouchPro 10 | *** 根據`.productModel`判斷 11 | **** OpenSensor設定頁 12 | **** BleConnector設定頁 13 | **** TouchPro設定頁 14 | @endwbs -------------------------------------------------------------------------------- /doc/SesameUI/Register註冊列表/ssm2註冊.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | title:"Sesame2 註冊" 4 | 5 | note over APP: registerCHDevice() \n=>CHSesame2Device() 6 | APP -> SSM: getIRER() \n{讀取指令, IRER} 7 | SSM -> APP: success 8 | APP -> Server: {ak:(公鑰), n:token, er, t:產品型號} 9 | note right of Server: API: [jhcr1i3ecb]/device/v1/sesame2/{deviceID}/post \nDB: ssm2_register_data \nLambda: sesame2_check_ficr_v1 10 | Server -> APP: 成功(200), data{sig1(AES_CMAC, base64格式), server token, publicKey} 11 | APP -> SSM: deviceStatus: .registering 12 | SSM -> APP: 完成 13 | APP -> Server: 訂閱AWS Iot服務:CHSesameLock(mechStatus) 14 | note right of Server: $aws/things/sesame2/shadow/name/\n{deviceUUID}/update/accepted 15 | Server -> APP: data 16 | note over APP: data => CHDeviceShadow \n刪除本地端此Sesame的 Core Data內資料 17 | 18 | APP -> Server: getSubId() 19 | Server -> APP: 用戶UUID 20 | APP -> Server: putCHUserKey() 21 | note right of Server: API: [0dkzum4jzg]/device/put \nLambda: user_device_put \nDB: user_devices 22 | Server -> APP: 成功(200) 23 | 24 | 25 | @enduml -------------------------------------------------------------------------------- /doc/SesameUI/SesameUI架構說明.md: -------------------------------------------------------------------------------- 1 | # iOS UI 架構說明 2 | 3 | 以視圖 View 為文件單位 4 | 5 |

6 | 7 |

8 | 9 | ## 常見相似名稱比較說明 10 | 11 | - CHUserKey: 要傳給 Server 的 Sesame 設備格式(POST to user_devices) 12 | - CHUser: APP 中的 AWS 用戶,內含(aws cognito)用戶屬性: subUUID, email,nickname/keyLevel, gtag 13 | 14 | - CHDeviceKey: 要存入本地緩存(Core Data)的設備格式 15 | - CHDevice: 所有設備需遵守的協議,在代碼中代表設備 16 | - CHBaseDevice 17 | 18 | * mSesameToken:手機與 ssm 藍芽連線時,ss5 傳來的 4 bytes 亂數,用於: 19 | - `Sesame5` <-> `APP` 間溝通的 token 20 | - `APP` <-> `Server` 訪問該 Sesame5 相關資料用的 token 21 | 22 | ## 命名縮寫 23 | 24 | - VC: UIkit 中的 ViewController 25 | -------------------------------------------------------------------------------- /doc/SesameUI/SettingVC設備設定頁/KeyCollectionVC.md: -------------------------------------------------------------------------------- 1 | # KeyCollectionVC 類別說明 2 | 3 | 顯示於每個設備(WM2, Open Sensor, Ble connector 除外)最上方顯示的使用者群組 4 | 5 | ## 屬性 6 | 7 | - `KeyCollectionViewData` 渲染出視圖上每個 Cell 8 | - `guestKeys` 為 [CHGuestKey] 9 | - `members` 為 [CHUser] 10 | 11 | ## 循序圖 12 | 13 |

14 | 15 |

16 | -------------------------------------------------------------------------------- /doc/SesameUI/SettingVC設備設定頁/QRcodeVC.md: -------------------------------------------------------------------------------- 1 | # QRCodeViewController 類別說明 2 | 3 | 繼承 CHBaseViewController,用於生成和展示 QR Code,並將其分享。 4 | 5 | ## 變數 6 | 7 | - `device`: CHDevice! 8 | - `user`: CHUser! 9 | 10 | ## 方法 11 | 12 | ```Swift 13 | func generateDeviceQRCode() 14 | // (instanceWithCHDevice)產生設備QR code.png(qrCodeImageView)。重點為:device.qrCodeWithKeyLevel(keyLevel) 15 | 16 | func generateFriendQRCode() 17 | // (instanceWithUser)產生好友QR code.png,所需資料為CHUser 18 | 19 | @objc func presentShareViewController(sender: UIView) 20 | // QR code type為設備或用戶,顯示不同內容的QR code 21 | ``` 22 | -------------------------------------------------------------------------------- /doc/SesameUI/SettingVC設備設定頁/使用者群組.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | note left of APP: <用戶登入狀態判定> 3 | APP -> Server: getGuestKeys(), {deviceUUID} 4 | note right of Server:API Gateway: [jhcr1i3ecb]/device/v1/sesame2/{deviceUUID}\n/guestkeys/GET\nLambda: list_sesame2_guest_keys\nDB: sesame2_guest_key 5 | Server --> APP: 200(成功), guestKeys 6 | == Sesame 用戶未登入 == 7 | APP -> Server: CHUserAPIManager.shared.getDeviceMembers()\n {deviceUUID, a: AESCMAC(secretKey + 時間戳)} 8 | note right of Server: Gateway: [0dkzum4jzg]/device/member/GET\nLambda: device_member_get \n DB: user_devices 9 | Server --> APP: 200(成功), friends 10 | note left of APP: deviceMemberViewModel.members = friends 11 | APP -> Server: getGuestKeys() 12 | Server --> APP: guestKeys 13 | note left of APP: deviceMemberViewModel.guestKeys = guestKeys 14 | note left of APP: sortedMembers()排序,渲染Cell 15 | == Sesame 用戶已登入 == 16 | @enduml 17 | -------------------------------------------------------------------------------- /doc/SesameUI/SettingVC設備設定頁/角度設定LockAngleVC.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/doc/SesameUI/SettingVC設備設定頁/角度設定LockAngleVC.md -------------------------------------------------------------------------------- /doc/SesameUI/TodayVC(Widget).md: -------------------------------------------------------------------------------- 1 | # TodayViewController 類別說明 2 | 3 | 使用 CHExtensionListener() 4 | -------------------------------------------------------------------------------- /doc/SesameUI/intent_extenstionListener.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | participant AppDelegate 4 | participant CHExtensionListener 5 | participant CHSesameIntent 6 | participant Siri和Shortcut 7 | 8 | note over AppDelegate: 初始化CHExtensionListener 9 | AppDelegate ->CHExtensionListener: registerObserver() 10 | AppDelegate ->CHExtensionListener: post() 11 | 12 | note over Siri和Shortcut: 使用者觸發 13 | Siri和Shortcut -> CHSesameIntent: IntentHandler() 14 | 15 | note over CHSesameIntent: CHExtensionListener發送Siri/捷徑\n活躍/非活躍狀態 通知 16 | CHSesameIntent->CHExtensionListener: post() 17 | 18 | note over CHExtensionListener: 通知所有Observer 19 | CHExtensionListener->AppDelegate: receiveExtensionNotification(...) 20 | 21 | @enduml 22 | -------------------------------------------------------------------------------- /doc/SesameUI/推送通知.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | APP -> APP:請求用戶許可接受通知 3 | APP -> APNs:registerForRemoteNotifications() 4 | APNs --> APP: Device Token\n(裝置唯一識別) 5 | APP -> APP: .didRegisterForRemoteNotificationsWithDeviceToken 6 | APP -> APP: 把Device token存入UserDefaults(forKey: "devicePushToken") 7 | APP -> AWS: enableNotification({token, deviceID, name:"Sesame2"}) 8 | note right of AWS: API Gateway: [jhcr1i3ecb]/device/v1/token/POST\nLambda:sesame_create_device_token\nDB:建立端點後把token存入device_push_token 9 | AWS -> APNs:Device Token 10 | APNs -> APP: publish notification 11 | APP -> APP: 把收到的notification封裝至UNNotification物件中 12 | APP -> APP: userNotificationCenter()\n依UserInfo顯示通知或刷新設備列表 13 | @enduml -------------------------------------------------------------------------------- /doc/src/imgs/AWS_iotcore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/doc/src/imgs/AWS_iotcore.png -------------------------------------------------------------------------------- /doc/src/imgs/SesameUI架構圖.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/doc/src/imgs/SesameUI架構圖.png -------------------------------------------------------------------------------- /doc/src/imgs/bleCenter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/doc/src/imgs/bleCenter.png -------------------------------------------------------------------------------- /doc/src/imgs/歷史頁_更新歷史.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/doc/src/imgs/歷史頁_更新歷史.png -------------------------------------------------------------------------------- /doc/src/imgs/用戶頁_verifySMS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/doc/src/imgs/用戶頁_verifySMS.png -------------------------------------------------------------------------------- /doc/src/imgs/設備列表_lock_unlock_toggle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/doc/src/imgs/設備列表_lock_unlock_toggle.png -------------------------------------------------------------------------------- /doc/src/imgs/設備列表_手動排序.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/doc/src/imgs/設備列表_手動排序.png -------------------------------------------------------------------------------- /doc/src/imgs/設備列表_本地與雲端整合.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/doc/src/imgs/設備列表_本地與雲端整合.png -------------------------------------------------------------------------------- /doc/src/imgs/設備列表_載入顯示.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/doc/src/imgs/設備列表_載入顯示.png -------------------------------------------------------------------------------- /doc/src/imgs/設備頁_使用者群組.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/doc/src/imgs/設備頁_使用者群組.png -------------------------------------------------------------------------------- /doc/src/imgs/註冊導頁.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/doc/src/imgs/註冊導頁.png -------------------------------------------------------------------------------- /doc/src/imgs/註冊登入.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/doc/src/imgs/註冊登入.png -------------------------------------------------------------------------------- /doc/src/resources/SesameSDK_20231201.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/doc/src/resources/SesameSDK_20231201.png -------------------------------------------------------------------------------- /doc/src/resources/framework_diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/doc/src/resources/framework_diagram.png -------------------------------------------------------------------------------- /doc/src/resources/manually.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/doc/src/resources/manually.png -------------------------------------------------------------------------------- /doc/src/resources/spm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/doc/src/resources/spm.png -------------------------------------------------------------------------------- /doc/框架選用.md: -------------------------------------------------------------------------------- 1 | # 框架/模組選用 2 | 3 | ## 藍芽: CoreBluetooth 4 | 5 | https://developer.apple.com/documentation/corebluetooth 6 | 7 | ## 本地存儲: CoreData 8 | 9 | https://developer.apple.com/documentation/coredata 10 | 11 | ## Server 端: AWS SDK for iOS Swift Package Manager 12 | 13 | - 使用庫為 AWSMobileClientXCF 14 | https://aws-amplify.github.io/aws-sdk-ios/docs/reference/AWSMobileClient/index.html 15 | 16 | ## Siri & Short cut: Intents 17 | 18 | 官方文檔 https://developer.apple.com/documentation/appintents 19 | 參考文章 https://medium.com/simform-engineering/how-to-integrate-siri-shortcuts-and-design-custom-intents-tutorial-e53285b550cf 20 | 21 | ## 功能 22 | 23 | ### 手機通知 24 | 25 | https://developer.apple.com/documentation/usernotifications 26 | -------------------------------------------------------------------------------- /doc/重點數據結構/1_Class/CHBaseViewController.md: -------------------------------------------------------------------------------- 1 | # CHBaseViewController 類別說明 2 | 3 | 繼承自 `UIViewController`,所有子類別都可以利用它所提供的共享功能(popup menu 和 導頁),並根據自己的需求覆寫或添加 4 | 5 | ## 主要屬性 6 | 7 | - `titleLabel`: 顯示視圖控制器的標題 8 | - `popUpMenuControl`: PopUpMenu 控制項,點擊按鈕時出現掃描添加設備和掃描選單。 9 | - `soundPlayer` 10 | - `previouseNavigationTitle`: 紀錄前一個視圖控制器的標題。 11 | 12 | ## 主要方法 13 | 14 | - `presentScanViewController()` 15 | 顯示 QR code 掃瞄器,掃描完成後,根據得到的`qrCodeType`執行對應操作 16 | - .sesameKey => 切換至 APP 第一個 tab(設備列表頁),getKeysFromCache() 17 | - .friend => 切換至第二個 tab(好友頁),並抓取好友列表 18 | - `presentRegisterSesame2ViewController()` 19 | 20 | 生成註冊列表用,並於註冊設備完成後導頁,導頁流向如下圖: 21 | 22 |

23 | 24 |

25 | -------------------------------------------------------------------------------- /doc/重點數據結構/1_Class/CHDeviceManager.md: -------------------------------------------------------------------------------- 1 | # CHDeviceManager 類別說明 2 | 3 | Sesame 設備管理中心,包括了連接、檢索設備、接收設備鑰匙功能。以`shared` 建立單例 4 | 5 | ### 初始化 6 | 7 | - 在 iOS :`CHIoTManager.shared.reconnect()` 從背景列隊獲取設備 8 | - 在 watchOS:從主線程中獲取設備 9 | 10 | ## 方法 11 | 12 | ```Swift 13 | func getCHDevices(result: @escaping (CHResult<[CHDevice]>)) 14 | // 抓快取中現有設備列表備列表,從藍芽中心獲取相應的設備,並回傳結果。 15 | 16 | public func receiveCHDeviceKeys(_ deviceKeys: [CHDeviceKey],result: @escaping (CHResult<[CHDevice]>)) 17 | // 收鑰匙列表 18 | public func receiveCHDeviceKeys(_ deviceKeys: CHDeviceKey...,result: @escaping (CHResult<[CHDevice]>)) 19 | // 收鑰匙 20 | 21 | public func disableNotification(deviceId: String, token: String, name: String, result: @escaping CHResult) 22 | /* 23 | 取消通知: 把sns用的push token刪除 24 | API Gateway:[jhcr1i3ecb]/device/v1/token/DELETE 25 | Lambda: sesame_delete_device_token 26 | DB: device_push_token 27 | **/ 28 | ``` 29 | -------------------------------------------------------------------------------- /doc/重點數據結構/1_Class/wm2.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | APP -> WM2: command 3 | WM2 --> APP:response 4 | == WM2註冊完成 == 5 | WM2 -> SSM: 1111 6 | APP -> AWS: subscribe to topic, {shadowName: deviceUUID} 7 | note right of AWS: $aws/things/wm2/shadow/\nname/\(shadowName)/update/accepted 8 | 9 | AWS --> WM2: 影子狀態更新 10 | WM2 --> APP: 更新設備狀態 11 | 12 | 13 | @enduml -------------------------------------------------------------------------------- /doc/重點數據結構/2_Struct/shadowModel.md: -------------------------------------------------------------------------------- 1 | # struct CHDeviceShadow 2 | 3 | # struct CHDeviceShadowWifiModule2 4 | -------------------------------------------------------------------------------- /doc/重點數據結構/3_Protocol/CHDeviceProtocol.md: -------------------------------------------------------------------------------- 1 | # CHDeviceProtocol 說明 2 | 3 | 一些設備相關,藍芽訊息定義及處理的集合 4 | 5 | ## 列舉 6 | 7 | ### SesameItemCode 8 | 9 | 發送給設備的藍芽指令編號,詳見代碼 10 | 例如: 11 | 12 | - case lock = 82:關鎖 13 | - case unlock = 83:開鎖 14 | - case toggle = 88 15 |

16 | 17 |

18 | 19 | ### SesameResultCode 20 | 21 | 設備藍芽收到 APP 指令後,執行完的回傳結果,詳見代碼 22 | 23 | ### SesameBleSegmentType 24 | 25 | 藍牙資料片段的類型,用於藍芽傳輸訊息的分段 26 | 27 | - 1:plaintext 資料段的內容是明文,沒有加密。 28 | - 2:ciphertext 資料段的內容是密文,即已經過加密的數據。 29 | - 99:unknown: 資料段的類型是未知的或不可識別的 30 | 31 | ## SesameBleSegmentHead 32 | 33 | 藍牙資料段的 header,用於藍芽資料分段後的標示 34 | 35 | - 0:content 此資料片段為某段資料的內容 36 | - 1:start 表示新的資料包開始 37 | 38 | ### CHDeviceStatus 39 | 40 | 設備藍芽狀態與狀態描述,詳見代碼 41 | 42 | ## 類別: SesameBleTransmiter 43 | 44 | 主要功能是將較大的資料分割成較小的片段(BleSegment),便於透過藍芽傳輸 45 | 46 | 1. 創建一個`SesameBleTransmiter`實例 47 | 2. 然後,反覆調用`getChunk()`方法,每次都取出一個片段,直到`buffer`為空。 48 | 3. 將每個片段通過藍芽傳送到設備 49 | 4. 設備收到資料片段後重新組合,獲取完整資料 50 | -------------------------------------------------------------------------------- /doc/重點數據結構/3_Protocol/CHSeameConnector.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/doc/重點數據結構/3_Protocol/CHSeameConnector.md -------------------------------------------------------------------------------- /doc/重點數據結構/3_Protocol/CHSesameLock.md: -------------------------------------------------------------------------------- 1 | # public protocol CHSesameLock 2 | 3 | 繼承自 CHDeivice,為 Sesame 所有可開關型產品 4 | 5 | ## 方法 6 | 7 | ```Swift 8 | - getHistoryTag() -> Data? //取得Sesame歷史紀錄上的顯示名稱(Tag) 9 | - setHistoryTag(_ tag: Data, result: @escaping (CHResult)) 10 | - cenableNotification(token: String, name: String, result: @escaping CHResult)//啟用該Sesame的通知功能 11 | - disableNotification(token: String, name: String, result: @escaping CHResult)//停用該Sesame的通知功能 12 | isNotificationEnabled(token: String, name: String, result: @escaping CHResult): // 檢查Sesame通知是否啟用 13 | ``` 14 | -------------------------------------------------------------------------------- /doc/重點數據結構/3_Protocol/CHSesameProtocolMechStatus.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/doc/重點數據結構/3_Protocol/CHSesameProtocolMechStatus.md -------------------------------------------------------------------------------- /git.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GitCommit 6 | c369682 7 | 8 | 9 | -------------------------------------------------------------------------------- /umlOutput/class_diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/umlOutput/class_diagram.png -------------------------------------------------------------------------------- /umlOutput/sequence_diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/umlOutput/sequence_diagram.png -------------------------------------------------------------------------------- /umlOutput/test_sequence.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CANDY-HOUSE/SesameSDK_iOS_with_DemoApp/9220ec4c0fa37de36ecfa7b62ca4e612c7c2b0eb/umlOutput/test_sequence.png --------------------------------------------------------------------------------