├── .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 |
4 |
--------------------------------------------------------------------------------
/Example/SesameUI/Resources/Icons/icon_lock.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/Example/SesameUI/Resources/Icons/icon_unlock.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/Example/SesameUI/Resources/Icons/iconfinder_9_3898370.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Example/SesameUI/Resources/Icons/icons_filled_close.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Example/SesameUI/Resources/Icons/icons_filled_close_b.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Example/SesameUI/Resources/Icons/icons_filled_more.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Example/SesameUI/Resources/Icons/keychain_original.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/Example/SesameUI/Resources/Icons/keychain_tint.svg:
--------------------------------------------------------------------------------
1 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
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 |
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 |
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
--------------------------------------------------------------------------------