├── .github └── workflows │ ├── Archive-CN.yml │ └── Archive-SG.yml ├── .gitignore ├── AgoraScan ├── CHANGELOG.md ├── FillSecret.sh ├── Flat-Test-Info.plist ├── Flat.xcodeproj ├── project.pbxproj └── xcshareddata │ └── xcschemes │ ├── Flat-DEV.xcscheme │ ├── Flat-NOSIGN.xcscheme │ ├── Flat-PROD.xcscheme │ ├── Flat_Debug_Test.xcscheme │ ├── Flat_Release_Test.xcscheme │ ├── Flint-PROD.xcscheme │ ├── Flint_DEV.xcscheme │ └── Flint_Release_Test.xcscheme ├── Flat ├── Api │ ├── Core │ │ ├── AnyRequest.swift │ │ ├── ApiError.swift │ │ ├── ApiProvider.swift │ │ ├── EmptyResponse.swift │ │ ├── Encode&Decode │ │ │ ├── AnyCodingKey.swift │ │ │ ├── AnyEncodable.swift │ │ │ ├── AnyKeyDecodable.swift │ │ │ ├── ParameterEncoder.swift │ │ │ └── URLEncoder.swift │ │ ├── Extension │ │ │ ├── JSONDecoder+AnyKeyDecodable.swift │ │ │ ├── JSONDecoder+Extension.swift │ │ │ ├── JSONEncoder+Extension.swift │ │ │ └── URLRequest+Extension.swift │ │ ├── FlatServerError.swift │ │ ├── Generator.swift │ │ ├── Generators │ │ │ ├── AgoraRequestGenerator.swift │ │ │ └── FlatRequestGenerator.swift │ │ ├── Method.swift │ │ ├── Multipart │ │ │ ├── HTTPHeaders.swift │ │ │ └── MultipartFormData.swift │ │ ├── Request.swift │ │ ├── Request │ │ │ ├── AgoraRequest.swift │ │ │ └── FlatRequest.swift │ │ ├── ResponseDataHandler.swift │ │ ├── ResponseDataHandlers │ │ │ ├── AgoraResponseDataHandler.swift │ │ │ ├── FlatResponse.swift │ │ │ └── FlatResponseDataHandler.swift │ │ └── Task.swift │ └── Requests │ │ ├── Agora │ │ ├── HistoryMessageRequest.swift │ │ └── HistoryMessageSourceRequest.swift │ │ └── Flat │ │ ├── Auth │ │ ├── AppleBindingRequest.swift │ │ ├── AppleLoginRequest.swift │ │ ├── AuthProcessRequest.swift │ │ ├── BindListRequest.swift │ │ ├── BindingEmailRequest.swift │ │ ├── BindingPhoneRequest.swift │ │ ├── PasswordLoginRequest.swift │ │ ├── PhoneSMSLoginRequest.swift │ │ ├── PrepareAvatarUploadRequest.swift │ │ ├── RebindingPhoneRequest.swift │ │ ├── RemoveBindingRequest.swift │ │ ├── ResetPasswordRequest.swift │ │ ├── SMSRequest.swift │ │ ├── SetAuthUuidRequest.swift │ │ ├── SetBindingAuthUUIDRequest.swift │ │ ├── SignUpRequest.swift │ │ ├── UpdatePasswordRequest.swift │ │ ├── UploadAvatarFinishRequest.swift │ │ ├── UserRenameRequest.swift │ │ ├── WechatAuthCallbackRequest.swift │ │ └── WechatBindingRequest.swift │ │ ├── CancelRoomHistoryRequest copy.swift │ │ ├── CancelUploadRequest.swift │ │ ├── Cancelation │ │ ├── AccountCancelationRequest.swift │ │ └── AccountCancelationValidateRequest.swift │ │ ├── Classroom │ │ ├── TempPhotoFinishRequest.swift │ │ └── TempPhotoStartRequest.swift │ │ ├── CreateRoomRequest.swift │ │ ├── FinishConvertRequest.swift │ │ ├── GetConfigRequest.swift │ │ ├── JoinRoomRequest.swift │ │ ├── MemberRequest.swift │ │ ├── MessageCensorRequest.swift │ │ ├── PrepareUploadRequest.swift │ │ ├── Record │ │ ├── RecordAcquireRequest.swift │ │ ├── RecordQueryRequest.swift │ │ ├── StartRecordReqeust.swift │ │ ├── StopRecordRequest.swift │ │ ├── UpdateLayoutRequest.swift │ │ └── UpdateRecordEndTimeRequest.swift │ │ ├── RecordDetailRequest.swift │ │ ├── RemoveFilesRequest.swift │ │ ├── RenameFileRequest.swift │ │ ├── RoomCancelRequest.swift │ │ ├── RoomHistoryRequest.swift │ │ ├── RoomListRequest.swift │ │ ├── RoomStatusUpdateRequest.swift │ │ ├── StartConvertRequest.swift │ │ ├── StorageCreateDirectoryRequest.swift │ │ ├── StorageListRequest.swift │ │ ├── StorageMoveFileRequest.swift │ │ ├── UploadFinishRequest.swift │ │ └── VideoDataCollectionReqeust.swift ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ ├── Contents.json │ │ ├── icon-1024.png │ │ ├── icon-20-ipad.png │ │ ├── icon-20@2x-ipad.png │ │ ├── icon-20@2x.png │ │ ├── icon-20@3x.png │ │ ├── icon-29-ipad.png │ │ ├── icon-29.png │ │ ├── icon-29@2x-ipad.png │ │ ├── icon-29@2x.png │ │ ├── icon-29@3x.png │ │ ├── icon-40.png │ │ ├── icon-40@2x 1.png │ │ ├── icon-40@2x.png │ │ ├── icon-40@3x.png │ │ ├── icon-60@2x.png │ │ ├── icon-60@3x.png │ │ ├── icon-76.png │ │ ├── icon-76@2x.png │ │ └── icon-83.5@2x.png │ ├── ClassRoom │ │ ├── Contents.json │ │ ├── chat.imageset │ │ │ ├── Contents.json │ │ │ ├── 编组备份 12.pdf │ │ │ └── 编组备份 13.pdf │ │ ├── classroom_cloud.imageset │ │ │ ├── Contents.json │ │ │ ├── cloudOutlined 1.pdf │ │ │ └── cloudOutlined.pdf │ │ ├── classroom_more.imageset │ │ │ ├── Contents.json │ │ │ ├── more@2x.png │ │ │ └── more@3x.png │ │ ├── classroom_record.imageset │ │ │ ├── Contents.json │ │ │ ├── record 1.pdf │ │ │ └── record.pdf │ │ ├── classroom_setting.imageset │ │ │ ├── Contents.json │ │ │ ├── 编组 5.pdf │ │ │ └── 编组 6.pdf │ │ ├── classroom_take_photo.imageset │ │ │ ├── Contents.json │ │ │ ├── record 1.pdf │ │ │ └── record.pdf │ │ ├── disconnect_speak.imageset │ │ │ ├── Contents.json │ │ │ ├── 矩形备份 25@2x(33).png │ │ │ └── 矩形备份 25@3x(33).png │ │ ├── invite.imageset │ │ │ ├── Contents.json │ │ │ ├── Group 1262.pdf │ │ │ └── 编组备份 10.pdf │ │ ├── message_ban.imageset │ │ │ ├── Contents.json │ │ │ ├── 编组 2@2x.png │ │ │ └── 编组 2@3x.png │ │ ├── network-bad.imageset │ │ │ ├── Contents.json │ │ │ └── Group 446-2.pdf │ │ ├── network-good.imageset │ │ │ ├── Contents.json │ │ │ └── Group 446-1.pdf │ │ ├── network-great.imageset │ │ │ ├── Contents.json │ │ │ └── Group 446.pdf │ │ ├── raisehand_normal.imageset │ │ │ ├── Contents.json │ │ │ ├── Group 1191@2x 1.png │ │ │ ├── Group 1191@3x 1.png │ │ │ ├── Group 1273@2x.png │ │ │ ├── Group 1273@3x.png │ │ │ ├── Group 1739.png │ │ │ ├── Group 1739@2x.png │ │ │ ├── Group 1740.png │ │ │ └── Group 1740@2x.png │ │ ├── raisehand_selected.imageset │ │ │ ├── Contents.json │ │ │ ├── Group 1190.png │ │ │ ├── Group 1190@2x 1.png │ │ │ ├── Group 1190@2x 2.png │ │ │ ├── Group 1190@2x.png │ │ │ ├── Group 1190@3x.png │ │ │ ├── Group 1191.png │ │ │ ├── Group 1191@2x.png │ │ │ └── Group 1191@3x.png │ │ ├── raisehand_small_icon.imageset │ │ │ ├── Contents.json │ │ │ └── Group 1697.pdf │ │ ├── send_message.imageset │ │ │ ├── Contents.json │ │ │ ├── 矩形备份 16@2x.png │ │ │ └── 矩形备份 16@3x.png │ │ ├── statusbar_onstage_user.imageset │ │ │ ├── Contents.json │ │ │ └── userGroup.pdf │ │ ├── teach_icon.imageset │ │ │ ├── Contents.json │ │ │ ├── Group 965@2x 1.png │ │ │ ├── Group 965@2x.png │ │ │ ├── Group 965@3x 1.png │ │ │ └── Group 965@3x.png │ │ ├── users.imageset │ │ │ ├── Contents.json │ │ │ ├── userGroup 1.pdf │ │ │ └── userGroup.pdf │ │ ├── whiteboard_bg_#064D6D.imageset │ │ │ ├── Contents.json │ │ │ └── whiteboard_bg_blue.pdf │ │ ├── whiteboard_bg_#446550.imageset │ │ │ ├── Contents.json │ │ │ └── whiteboard_bg_green.pdf │ │ ├── whiteboard_bg_#49585F.imageset │ │ │ ├── Contents.json │ │ │ └── whiteboard_bg_gray.pdf │ │ └── whiteboard_bg_default.imageset │ │ │ ├── Contents.json │ │ │ └── whiteboard_bg_default.pdf │ ├── ClassroomType │ │ ├── BigClass.imageset │ │ │ ├── Contents.json │ │ │ ├── Group 912@2x.png │ │ │ └── Group 912@3x.png │ │ ├── Contents.json │ │ ├── OneToOne.imageset │ │ │ ├── Contents.json │ │ │ ├── Group 911@2x.png │ │ │ └── Group 911@3x.png │ │ └── SmallClass.imageset │ │ │ ├── Contents.json │ │ │ ├── Group 908@2x.png │ │ │ └── Group 908@3x.png │ ├── CloudStorage │ │ ├── Contents.json │ │ ├── Upload │ │ │ ├── Contents.json │ │ │ ├── status │ │ │ │ ├── Contents.json │ │ │ │ ├── upload_cancel.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── 矩形备份 24@2x(2).png │ │ │ │ │ └── 矩形备份 24@3x(2).png │ │ │ │ ├── upload_reupload.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── 矩形备份 44@2x.png │ │ │ │ │ └── 矩形备份 44@3x.png │ │ │ │ └── upload_success.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── 编组@2x.png │ │ │ │ │ └── 编组@3x.png │ │ │ ├── upload_audio.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── Group 857.pdf │ │ │ ├── upload_doc.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── file.pdf │ │ │ ├── upload_image.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── fileImage.pdf │ │ │ └── upload_video.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── record.pdf │ │ ├── cloud_file_more.imageset │ │ │ ├── Contents.json │ │ │ └── moreVertical.pdf │ │ ├── create_directory.imageset │ │ │ ├── Contents.json │ │ │ └── Group 1038.pdf │ │ ├── edit.imageset │ │ │ ├── Contents.json │ │ │ ├── 矩形备份 24@2x.png │ │ │ └── 矩形备份 24@3x.png │ │ ├── listInClassRoom │ │ │ ├── Contents.json │ │ │ ├── arrowRight.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── arrowRight@2x.png │ │ │ │ └── arrowRight@3x.png │ │ │ ├── cloud_storage_selection.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── circleCheckOutlined@2x.png │ │ │ │ └── circleCheckOutlined@3x.png │ │ │ ├── storage_add.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── Group 1220@2x.png │ │ │ │ └── Group 1220@3x.png │ │ │ ├── storage_add_small.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── pages备份 4@2x.png │ │ │ │ └── pages备份 4@3x.png │ │ │ ├── storage_directory.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── file.pdf │ │ │ ├── storage_type_doc.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── fileWord@2x.png │ │ │ │ └── fileWord@3x.png │ │ │ ├── storage_type_img.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── fileImage@2x.png │ │ │ │ └── fileImage@3x.png │ │ │ ├── storage_type_music.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── fileAudio@2x.png │ │ │ │ └── fileAudio@3x.png │ │ │ ├── storage_type_pdf.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── fileOnenote@2x.png │ │ │ │ └── fileOnenote@3x.png │ │ │ ├── storage_type_ppt.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── 编组 5备份 11@2x.png │ │ │ │ └── 编组 5备份 11@3x.png │ │ │ └── storage_type_video.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── fileVideo@2x.png │ │ │ │ └── fileVideo@3x.png │ │ └── upload_list.imageset │ │ │ ├── Contents.json │ │ │ ├── 编组备份 7@2x.png │ │ │ └── 编组备份 7@3x.png │ ├── Common │ │ ├── Contents.json │ │ ├── camera.imageset │ │ │ ├── Contents.json │ │ │ ├── camera@2x.png │ │ │ └── camera@3x.png │ │ ├── checklist_normal.imageset │ │ │ ├── Contents.json │ │ │ └── 矩形.pdf │ │ ├── checklist_selected.imageset │ │ │ ├── Contents.json │ │ │ └── 编组 21.pdf │ │ ├── circle.imageset │ │ │ ├── Contents.json │ │ │ ├── 椭圆形备份 3@2x.png │ │ │ └── 椭圆形备份 3@3x.png │ │ ├── command.imageset │ │ │ ├── Contents.json │ │ │ └── general.pdf │ │ ├── common_camera_off.imageset │ │ │ ├── Contents.json │ │ │ └── Group 806.pdf │ │ ├── common_camera_on.imageset │ │ │ ├── Contents.json │ │ │ └── Group 946.pdf │ │ ├── common_mic_off.imageset │ │ │ ├── Contents.json │ │ │ └── Group 951.pdf │ │ ├── common_mic_on.imageset │ │ │ ├── Contents.json │ │ │ └── Group 947.pdf │ │ ├── microphone.imageset │ │ │ ├── Contents.json │ │ │ ├── microphone@2x.png │ │ │ └── microphone@3x.png │ │ ├── record.imageset │ │ │ ├── Contents.json │ │ │ ├── record@2x.png │ │ │ └── record@3x.png │ │ ├── triangle_down.imageset │ │ │ ├── Contents.json │ │ │ ├── down@2x.png │ │ │ └── down@3x.png │ │ ├── triangle_rt.imageset │ │ │ ├── Contents.json │ │ │ ├── 矩形@2x(13).png │ │ │ └── 矩形@3x(13).png │ │ └── video_area.imageset │ │ │ ├── Contents.json │ │ │ ├── record@2x.png │ │ │ └── record@3x.png │ ├── Contents.json │ ├── Empty │ │ ├── Contents.json │ │ ├── cloud_empty.imageset │ │ │ ├── Contents.json │ │ │ ├── Group 2190@2x.png │ │ │ ├── Group 2190@3x.png │ │ │ ├── Group 2194@2x.png │ │ │ └── Group 2194@3x.png │ │ ├── history_empty.imageset │ │ │ ├── Contents.json │ │ │ ├── Group 2191@2x.png │ │ │ ├── Group 2191@3x.png │ │ │ ├── Group 2193@2x.png │ │ │ └── Group 2193@3x.png │ │ ├── message_empty.imageset │ │ │ ├── Contents.json │ │ │ ├── Group 2171@2x-1.png │ │ │ ├── Group 2171@2x.png │ │ │ ├── Group 2171@3x-1.png │ │ │ └── Group 2171@3x.png │ │ └── room_empty.imageset │ │ │ ├── Contents.json │ │ │ ├── Group 2192@2x.png │ │ │ ├── Group 2192@3x.png │ │ │ ├── Group 2195@2x.png │ │ │ └── Group 2195@3x.png │ ├── FlintIcon.appiconset │ │ ├── Contents.json │ │ ├── icon-1024.png │ │ ├── icon-20-ipad.png │ │ ├── icon-20@2x 1.png │ │ ├── icon-20@2x-ipad.png │ │ ├── icon-20@3x.png │ │ ├── icon-29-ipad.png │ │ ├── icon-29.png │ │ ├── icon-29@2x-ipad.png │ │ ├── icon-29@2x.png │ │ ├── icon-29@3x.png │ │ ├── icon-40.png │ │ ├── icon-40@2x 1.png │ │ ├── icon-40@2x.png │ │ ├── icon-40@3x.png │ │ ├── icon-57.png │ │ ├── icon-57@2x.png │ │ ├── icon-60@2x.png │ │ ├── icon-60@3x.png │ │ ├── icon-76.png │ │ ├── icon-76@2x.png │ │ └── icon-83.5@2x 1.png │ ├── Home │ │ ├── Contents.json │ │ ├── history.imageset │ │ │ ├── Contents.json │ │ │ ├── time@2x.png │ │ │ └── time@3x.png │ │ ├── right.imageset │ │ │ ├── Contents.json │ │ │ ├── right@2x.png │ │ │ └── right@3x.png │ │ ├── room_calendar.imageset │ │ │ ├── Contents.json │ │ │ ├── calendar@2x.png │ │ │ └── calendar@3x.png │ │ ├── room_create.imageset │ │ │ ├── Contents.json │ │ │ ├── 编组 22@2x.png │ │ │ └── 编组 22@3x.png │ │ └── room_join.imageset │ │ │ ├── Contents.json │ │ │ ├── 编组 37@2x.png │ │ │ └── 编组 37@3x.png │ ├── Login │ │ ├── Contents.json │ │ ├── arrow_down.imageset │ │ │ ├── Contents.json │ │ │ ├── arrow_down@2x.png │ │ │ └── arrow_down@3x.png │ │ ├── close-bold.imageset │ │ │ ├── Contents.json │ │ │ ├── previous备份 23@2x.png │ │ │ └── previous备份 23@3x.png │ │ ├── email_icon.imageset │ │ │ ├── Contents.json │ │ │ ├── whiteboard@2x.png │ │ │ └── whiteboard@3x.png │ │ ├── login_apple.imageset │ │ │ ├── Contents.json │ │ │ ├── Group 411@2x.png │ │ │ └── Group 411@3x.png │ │ ├── login_compact_bg.imageset │ │ │ ├── Contents.json │ │ │ ├── Group 2117@2x.png │ │ │ ├── Group 2117@3x.png │ │ │ ├── Group 2119@2x.png │ │ │ ├── Group 2119@3x.png │ │ │ ├── 文案配图@2x-1.png │ │ │ ├── 文案配图@2x.png │ │ │ ├── 文案配图@3x-1.png │ │ │ └── 文案配图@3x.png │ │ ├── login_default_avatar.imageset │ │ │ ├── Contents.json │ │ │ ├── Group 872@2x.png │ │ │ └── Group 872@3x.png │ │ ├── login_github.imageset │ │ │ ├── Contents.json │ │ │ ├── Group 411@2x.png │ │ │ └── Group 411@3x.png │ │ ├── login_google.imageset │ │ │ ├── Contents.json │ │ │ ├── Group 413@2x.png │ │ │ └── Group 413@3x.png │ │ ├── login_icon.imageset │ │ │ ├── Contents.json │ │ │ ├── Group 27@2x.png │ │ │ └── Group 27@3x.png │ │ ├── login_pad.imageset │ │ │ ├── Contents.json │ │ │ ├── Group 2111.pdf │ │ │ ├── Group 2118.pdf │ │ │ ├── Group 2119.pdf │ │ │ └── Group 2120.pdf │ │ ├── login_wechat.imageset │ │ │ ├── Contents.json │ │ │ ├── Group 412@2x.png │ │ │ └── Group 412@3x.png │ │ ├── no_secure_keyboard.imageset │ │ │ ├── Contents.json │ │ │ ├── show@2x.png │ │ │ └── show@3x.png │ │ ├── password_icon.imageset │ │ │ ├── Contents.json │ │ │ ├── whiteboard@2x.png │ │ │ └── whiteboard@3x.png │ │ ├── secure_keyboard.imageset │ │ │ ├── Contents.json │ │ │ ├── Group 4@2x.png │ │ │ └── Group 4@3x.png │ │ └── veryfication.imageset │ │ │ ├── Contents.json │ │ │ ├── whiteboard-1.png │ │ │ └── whiteboard.png │ ├── NaviBar │ │ ├── Contents.json │ │ └── arrowLeft.imageset │ │ │ ├── Contents.json │ │ │ └── 路径 11备份 5.pdf │ ├── Replay │ │ ├── Contents.json │ │ ├── close.imageset │ │ │ ├── Contents.json │ │ │ └── close (2).png │ │ ├── pause.imageset │ │ │ ├── Contents.json │ │ │ └── 矩形备份 19 (1).pdf │ │ └── play.imageset │ │ │ ├── Contents.json │ │ │ └── 矩形备份 19.pdf │ ├── RoomInfo │ │ ├── Contents.json │ │ ├── delete_room.imageset │ │ │ ├── Contents.json │ │ │ ├── delete@2x.png │ │ │ └── delete@3x.png │ │ ├── room_copy.imageset │ │ │ ├── Contents.json │ │ │ ├── copy@2x.png │ │ │ └── copy@3x.png │ │ ├── room_info_detail.imageset │ │ │ ├── Contents.json │ │ │ ├── 矩形备份 24@2x(2).png │ │ │ └── 矩形备份 24@3x(2).png │ │ ├── room_number.imageset │ │ │ ├── Contents.json │ │ │ ├── 编组 4.png │ │ │ ├── 编组 4@2x.png │ │ │ └── 编组 4@3x.png │ │ ├── room_status.imageset │ │ │ ├── Contents.json │ │ │ ├── previous备份 27.png │ │ │ ├── previous备份 27@2x.png │ │ │ └── previous备份 27@3x.png │ │ ├── room_time.imageset │ │ │ ├── Contents.json │ │ │ ├── 编组 10.png │ │ │ ├── 编组 10@2x.png │ │ │ └── 编组 10@3x.png │ │ └── room_type.imageset │ │ │ ├── Contents.json │ │ │ ├── 编组备份 10.png │ │ │ ├── 编组备份 10@2x.png │ │ │ └── 编组备份 10@3x.png │ ├── Rtc │ │ ├── Contents.json │ │ ├── camera_off.imageset │ │ │ ├── Contents.json │ │ │ └── Group 806.pdf │ │ ├── camera_on.imageset │ │ │ ├── Contents.json │ │ │ └── camera.pdf │ │ ├── expand.imageset │ │ │ ├── Contents.json │ │ │ └── videoUnfold.pdf │ │ ├── layout_reset.imageset │ │ │ ├── Contents.json │ │ │ └── record.pdf │ │ ├── mic_off.imageset │ │ │ ├── Contents.json │ │ │ └── Group 951.pdf │ │ ├── mic_on.imageset │ │ │ ├── Contents.json │ │ │ └── microphone.pdf │ │ ├── microphone_volume.imageset │ │ │ ├── Contents.json │ │ │ ├── microphone@2x.png │ │ │ └── microphone@3x.png │ │ ├── mute_all.imageset │ │ │ ├── Contents.json │ │ │ └── microphone.pdf │ │ ├── narrow.imageset │ │ │ ├── Contents.json │ │ │ ├── 矩形备份 24@2x(1).png │ │ │ └── 矩形备份 24@3x(1).png │ │ ├── rewards.imageset │ │ │ ├── Contents.json │ │ │ └── record (1).pdf │ │ ├── silence.imageset │ │ │ ├── Contents.json │ │ │ └── 编组 4.pdf │ │ ├── whiteboard_permission_off.imageset │ │ │ ├── Contents.json │ │ │ └── record.pdf │ │ └── whiteboard_permission_on.imageset │ │ │ ├── Contents.json │ │ │ └── record.pdf │ ├── Setting │ │ ├── Contents.json │ │ ├── about_us.imageset │ │ │ ├── Contents.json │ │ │ └── userGroup.pdf │ │ ├── binding_types │ │ │ ├── Contents.json │ │ │ ├── account_apple.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── 编组 2@2x-1.png │ │ │ │ └── 编组 2@3x-1.png │ │ │ ├── account_email.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── whiteboard@2x.png │ │ │ │ └── whiteboard@3x.png │ │ │ ├── account_github.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── 编组 2@2x.png │ │ │ │ └── 编组 2@3x.png │ │ │ ├── account_google.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── 编组 2@2x-2.png │ │ │ │ └── 编组 2@3x-2.png │ │ │ ├── account_phone.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── phone@2x.png │ │ │ │ └── phone@3x.png │ │ │ └── account_wechat.imageset │ │ │ │ ├── Contents.json │ │ │ │ ├── Group 875@2x.png │ │ │ │ └── Group 875@3x.png │ │ ├── cancellation.imageset │ │ │ ├── Contents.json │ │ │ └── logoff.pdf │ │ ├── export.imageset │ │ │ ├── Contents.json │ │ │ └── exit.pdf │ │ ├── language.imageset │ │ │ ├── Contents.json │ │ │ └── language.pdf │ │ ├── logout.imageset │ │ │ ├── Contents.json │ │ │ └── exit.pdf │ │ ├── message.imageset │ │ │ ├── Contents.json │ │ │ ├── invite备份@2x(2).png │ │ │ └── invite备份@3x(2).png │ │ ├── personal_collect.imageset │ │ │ ├── Contents.json │ │ │ ├── exit@2x.png │ │ │ └── exit@3x.png │ │ ├── profile.imageset │ │ │ ├── Contents.json │ │ │ └── Group 1321.pdf │ │ ├── rocket.imageset │ │ │ ├── Contents.json │ │ │ └── Group 1272.pdf │ │ ├── security.imageset │ │ │ ├── Contents.json │ │ │ ├── security@2x.png │ │ │ └── security@3x.png │ │ ├── setting.imageset │ │ │ ├── Contents.json │ │ │ └── 编组 5.pdf │ │ ├── theme.imageset │ │ │ ├── Contents.json │ │ │ └── theme.pdf │ │ ├── third_share.imageset │ │ │ ├── Contents.json │ │ │ ├── exit@2x-1.png │ │ │ └── exit@3x-1.png │ │ ├── update_password.imageset │ │ │ ├── Contents.json │ │ │ ├── whiteboard@2x.png │ │ │ └── whiteboard@3x.png │ │ ├── update_version.imageset │ │ │ ├── Contents.json │ │ │ └── circleInfoOutlined.pdf │ │ └── videoCollect.imageset │ │ │ ├── Contents.json │ │ │ ├── Frame@2x.png │ │ │ └── Frame@3x.png │ ├── SideBar │ │ ├── Contents.json │ │ ├── side_bar_fold.imageset │ │ │ ├── Contents.json │ │ │ ├── Group 425@2x.png │ │ │ └── Group 425@3x.png │ │ ├── side_cloud.imageset │ │ │ ├── Contents.json │ │ │ ├── cloud.png │ │ │ ├── cloud@2x.png │ │ │ └── cloud@3x.png │ │ ├── side_cloud_filled.imageset │ │ │ ├── Contents.json │ │ │ ├── cloudFilled.png │ │ │ ├── cloudFilled@2x.png │ │ │ └── cloudFilled@3x.png │ │ ├── side_home.imageset │ │ │ ├── Contents.json │ │ │ ├── home.png │ │ │ ├── home@2x.png │ │ │ └── home@3x.png │ │ └── side_home_filled.imageset │ │ │ ├── Contents.json │ │ │ ├── homeFilled.png │ │ │ ├── homeFilled@2x.png │ │ │ └── homeFilled@3x.png │ ├── Split │ │ ├── Contents.json │ │ └── split_empty.imageset │ │ │ ├── Contents.json │ │ │ ├── Union@2x.png │ │ │ └── Union@3x.png │ ├── Whiteboard │ │ ├── Contents.json │ │ ├── hideSide.imageset │ │ │ ├── Contents.json │ │ │ └── hideSide.pdf │ │ ├── scene_new.imageset │ │ │ ├── Contents.json │ │ │ └── 编组 11.pdf │ │ ├── scene_next.imageset │ │ │ ├── Contents.json │ │ │ └── previous备份 20.pdf │ │ ├── scene_previous.imageset │ │ │ ├── Contents.json │ │ │ └── previous备份 18.pdf │ │ ├── small_arr_down.imageset │ │ │ ├── Contents.json │ │ │ ├── 矩形@2x(16).png │ │ │ └── 矩形@3x(16).png │ │ ├── small_arr_top.imageset │ │ │ ├── Contents.json │ │ │ ├── 矩形@2x(14).png │ │ │ └── 矩形@3x(14).png │ │ ├── subops_more.imageset │ │ │ ├── Contents.json │ │ │ ├── 矩形@2x(13).png │ │ │ └── 矩形@3x(13).png │ │ ├── whiteboard_apps.imageset │ │ │ ├── Contents.json │ │ │ ├── apps@2x.png │ │ │ └── apps@3x.png │ │ ├── whiteboard_arrow-selected.imageset │ │ │ ├── Contents.json │ │ │ ├── arrowBolded 1.pdf │ │ │ └── arrowBolded.pdf │ │ ├── whiteboard_arrow.imageset │ │ │ ├── Contents.json │ │ │ ├── arrow 1.pdf │ │ │ └── arrow.pdf │ │ ├── whiteboard_clean.imageset │ │ │ ├── Contents.json │ │ │ ├── clean 1.pdf │ │ │ └── clean.pdf │ │ ├── whiteboard_clicker-selected.imageset │ │ │ ├── Contents.json │ │ │ ├── clickFilled 1.pdf │ │ │ └── clickFilled.pdf │ │ ├── whiteboard_clicker.imageset │ │ │ ├── Contents.json │ │ │ ├── click 1.pdf │ │ │ └── click.pdf │ │ ├── whiteboard_ellipse-selected.imageset │ │ │ ├── Contents.json │ │ │ ├── circleBolded 1.pdf │ │ │ └── circleBolded.pdf │ │ ├── whiteboard_ellipse.imageset │ │ │ ├── Contents.json │ │ │ ├── circle 1.pdf │ │ │ └── circle.pdf │ │ ├── whiteboard_eraser-selected.imageset │ │ │ ├── Contents.json │ │ │ ├── eraserFilled (1).pdf │ │ │ └── eraserFilled@2x.png │ │ ├── whiteboard_eraser.imageset │ │ │ ├── Contents.json │ │ │ ├── eraser 1.pdf │ │ │ └── eraser@2x.png │ │ ├── whiteboard_pencil-selected.imageset │ │ │ ├── Contents.json │ │ │ ├── pencilFilled 1.pdf │ │ │ └── pencilFilled.pdf │ │ ├── whiteboard_pencil.imageset │ │ │ ├── Contents.json │ │ │ ├── pencil 1.pdf │ │ │ └── pencil.pdf │ │ ├── whiteboard_pencilEraser-selected.imageset │ │ │ ├── Contents.json │ │ │ ├── eraserFilled 1.pdf │ │ │ └── eraserFilled.pdf │ │ ├── whiteboard_pencilEraser.imageset │ │ │ ├── Contents.json │ │ │ ├── eraser 1.pdf │ │ │ └── eraser.pdf │ │ ├── whiteboard_rectangle-selected.imageset │ │ │ ├── Contents.json │ │ │ ├── rectangle Bolded 1.pdf │ │ │ └── rectangle Bolded.pdf │ │ ├── whiteboard_rectangle.imageset │ │ │ ├── Contents.json │ │ │ ├── rectangle 1.pdf │ │ │ └── rectangle.pdf │ │ ├── whiteboard_redo.imageset │ │ │ ├── Contents.json │ │ │ ├── undo 1.pdf │ │ │ └── undo.pdf │ │ ├── whiteboard_remove_selection.imageset │ │ │ ├── Contents.json │ │ │ ├── delete 1.pdf │ │ │ └── delete.pdf │ │ ├── whiteboard_selector-selected.imageset │ │ │ ├── Contents.json │ │ │ ├── selectorFilled 1.pdf │ │ │ └── selectorFilled.pdf │ │ ├── whiteboard_selector.imageset │ │ │ ├── Contents.json │ │ │ ├── selector 1.pdf │ │ │ └── selector.pdf │ │ ├── whiteboard_shape_pentagram-selected.imageset │ │ │ ├── Contents.json │ │ │ └── starBolded.pdf │ │ ├── whiteboard_shape_pentagram.imageset │ │ │ ├── Contents.json │ │ │ └── star.pdf │ │ ├── whiteboard_shape_rhombus-selected.imageset │ │ │ ├── Contents.json │ │ │ └── rhombusBolded.pdf │ │ ├── whiteboard_shape_rhombus.imageset │ │ │ ├── Contents.json │ │ │ └── rhombus.pdf │ │ ├── whiteboard_shape_speechBalloon-selected.imageset │ │ │ ├── Contents.json │ │ │ └── balloonBolded.pdf │ │ ├── whiteboard_shape_speechBalloon.imageset │ │ │ ├── Contents.json │ │ │ └── balloon.pdf │ │ ├── whiteboard_shape_triangle-selected.imageset │ │ │ ├── Contents.json │ │ │ └── triangleBolded.pdf │ │ ├── whiteboard_shape_triangle.imageset │ │ │ ├── Contents.json │ │ │ └── triangle.pdf │ │ ├── whiteboard_straight-selected.imageset │ │ │ ├── Contents.json │ │ │ └── lineBolded.pdf │ │ ├── whiteboard_straight.imageset │ │ │ ├── Contents.json │ │ │ └── line.pdf │ │ ├── whiteboard_text-selected.imageset │ │ │ ├── Contents.json │ │ │ └── textFilled.pdf │ │ ├── whiteboard_text.imageset │ │ │ ├── Contents.json │ │ │ └── text.pdf │ │ └── whiteboard_undo.imageset │ │ │ ├── Contents.json │ │ │ ├── redo 1.pdf │ │ │ └── redo.pdf │ ├── apps │ │ ├── Contents.json │ │ ├── apps_Countdown.imageset │ │ │ ├── Contents.json │ │ │ └── clock.pdf │ │ ├── apps_Dice.imageset │ │ │ ├── Contents.json │ │ │ └── dot.pdf │ │ ├── apps_GeoGebra.imageset │ │ │ ├── Contents.json │ │ │ └── geo.pdf │ │ ├── apps_MindMap.imageset │ │ │ ├── Contents.json │ │ │ └── pipeline.pdf │ │ ├── apps_Monaco.imageset │ │ │ ├── Contents.json │ │ │ └── code.pdf │ │ ├── apps_Quill.imageset │ │ │ ├── Contents.json │ │ │ └── text.pdf │ │ ├── apps_Selector.imageset │ │ │ ├── Contents.json │ │ │ └── question.pdf │ │ └── save_whiteboard.imageset │ │ │ ├── Contents.json │ │ │ └── download.pdf │ └── lottie │ │ ├── Contents.json │ │ ├── img_0.imageset │ │ ├── Contents.json │ │ └── img_0.png │ │ └── img_1.imageset │ │ ├── Contents.json │ │ └── img_1.png ├── Base.lproj │ └── LaunchScreen.storyboard ├── EnvConfigs │ ├── Develop.xcconfig │ ├── Env+Whiteboard.swift │ ├── Env.swift │ ├── Flint_Develop.xcconfig │ ├── Flint_Release.xcconfig │ ├── Local.xcconfig │ └── Release.xcconfig ├── Extensions │ ├── Array │ │ └── Array+Extension.swift │ ├── ConvinceInit │ │ └── ConvinceInit.swift │ ├── Date │ │ └── Date+Extension.swift │ ├── Global.swift │ ├── ImportExtensions.swift │ ├── MethodExchange.swift │ ├── Rx │ │ ├── AlertProvider.swift │ │ ├── Observable+Extension.swift │ │ ├── UITextfield+Rx.swift │ │ └── UIViewController+Rx.swift │ ├── String │ │ ├── AttributedString.swift │ │ ├── String+Empty.swift │ │ ├── String+Error.swift │ │ ├── String+ReguarExpression.swift │ │ ├── String+SplitSpecificLength.swift │ │ ├── String+regex.swift │ │ └── StringLocalize.swift │ ├── UIButton │ │ └── UIButton+Spacing.swift │ ├── UIColor │ │ ├── UIColor+Extension.swift │ │ └── UIColor+Level.swift │ ├── UIImage │ │ ├── UIImage+Appliance.swift │ │ ├── UIImage+Circle.swift │ │ ├── UIImage+Color.swift │ │ ├── UIImage+ColorPicker.swift │ │ ├── UIImage+Compose.swift │ │ └── UIImage+tintColor.swift │ ├── UIScrollView │ │ └── UIScrollView+Centerize.swift │ ├── UITableView │ │ └── UITableView+loadedAll.swift │ ├── UITraitCollection │ │ └── UITraitCollection.swift │ ├── UIView │ │ ├── CACornerMask+Extension.swift │ │ ├── UIButton+loading.swift │ │ ├── UIView+Badge.swift │ │ ├── UIView+DidLayoutBlock.swift │ │ ├── UIView+FlatLoading.swift │ │ ├── UIView+LoopForSuperView.swift │ │ ├── UIView+NibProperty.swift │ │ ├── UIView+TableViewHeader.swift │ │ ├── UIView+seperatorLine.swift │ │ ├── UIViewController+Activity.swift │ │ ├── UIViewController+Alert.swift │ │ └── UIViewController+Toast.swift │ └── ViewController │ │ ├── TopViewController.swift │ │ ├── TraitUpdateHandler.swift │ │ ├── UIViewController+PopOver.swift │ │ ├── UIViewController+Present.swift │ │ ├── UIViewController+SafaArea.swift │ │ └── UIViewController+screenSize.swift ├── FlatDebug.entitlements ├── FlatFlint_Debug.entitlements ├── FlatFlint_Release.entitlements ├── FlatNon_Sign.entitlements ├── FlatRelease.entitlements ├── Info.plist ├── Launch │ ├── AppDelegate.swift │ ├── AvatarNickNameSettingViewController.swift │ ├── ClassroomSceneDelegate.swift │ ├── LaunchItem │ │ ├── AuthLaunch │ │ │ ├── GithubLogin.swift │ │ │ ├── GoogleLogin.swift │ │ │ ├── WeChatLogin.swift │ │ │ ├── WebLinkBindingItem.swift │ │ │ ├── WebLinkLoginItem.swift │ │ │ └── WechatBinding.swift │ │ ├── DefaultLaunchItems │ │ │ ├── FileShareLaunchItem.swift │ │ │ ├── JoinRoomLaunchItem.swift │ │ │ └── ReplayLaunchItem.swift │ │ ├── LaunchCoordinator.swift │ │ └── LaunchItem.swift │ ├── RegularSideBarViewController.swift │ ├── SceneDelegate.swift │ ├── SceneManager.swift │ └── Theme.swift ├── Models │ ├── Agora │ │ └── AgoraMessage.swift │ └── Flat │ │ ├── ClassRoomType+AgoraVideoSteamType.swift │ │ ├── ClassRoomType.swift │ │ ├── DeviceState.swift │ │ ├── FlatRegion.swift │ │ ├── JoinRoomInfo.swift │ │ ├── Message.swift │ │ ├── RecordDetailInfo.swift │ │ ├── RoomBasicInfo.swift │ │ ├── RoomPlayInfo.swift │ │ ├── RoomStartStatus.swift │ │ ├── RoomUser.swift │ │ ├── ShareScreenInfo.swift │ │ ├── UploadInfo.swift │ │ └── User.swift ├── Modules │ ├── Base │ │ ├── BaseNavigationViewController.swift │ │ ├── EmptySplitSecondaryViewController.swift │ │ ├── MainContainer.swift │ │ ├── MainSplitViewController.swift │ │ ├── MainTabBarController.swift │ │ └── Popover │ │ │ ├── PopOverPresentationStyleAdaptor.swift │ │ │ └── UIViewController+PopoverDismissDetect.swift │ ├── ClassRoom │ │ ├── ClassRoomViewController.swift │ │ ├── ClassRoomViewModel.swift │ │ ├── ClassroomConfig.swift │ │ ├── ClassroomCoordinator.swift │ │ ├── ClassroomFactory.swift │ │ ├── ClassroomFastboard │ │ │ ├── ClassRoomSyncedStore.swift │ │ │ ├── FastboardViewController.swift │ │ │ ├── ScenePreviewCell.swift │ │ │ ├── SyncedStoreMultiDelegate.swift │ │ │ ├── WhiteboardAppsCell.swift │ │ │ ├── WhiteboardAppsViewController.swift │ │ │ └── WhiteboardScenesListViewController.swift │ │ ├── ClassroomLayout │ │ │ ├── ClassRoomLayoutRatioConfig.swift │ │ │ └── VideoLayout │ │ │ │ ├── VideoDraggingCanvasProvider.swift │ │ │ │ ├── VideoLayoutStore.swift │ │ │ │ └── VideoLayoutStoreImp.swift │ │ ├── ClassroomRecording │ │ │ └── RecordModel.swift │ │ ├── ClassroomSetting │ │ │ └── ClassRoomSettingViewController.swift │ │ ├── ClassroomState │ │ │ ├── ClassroomStateHandler.swift │ │ │ ├── ClassroomStateHandlerImp.swift │ │ │ └── ClassroomStateMock.swift │ │ ├── ClassroomStatusBar │ │ │ └── ClassroomStatusBar.swift │ │ ├── ClassroomUsers │ │ │ ├── ClassRoomUsersViewController.swift │ │ │ └── RoomUserRxSectionData.swift │ │ ├── ClassroomViewController+ImagePicker.swift │ │ ├── ClassroomViewController+rtcHideDragging.swift │ │ ├── RaiseHand │ │ │ ├── RaiseHandListViewController.swift │ │ │ └── RaiseHandTableViewCell.swift │ │ ├── Rtc │ │ │ ├── Extension │ │ │ │ ├── CGImage+isDark.swift │ │ │ │ ├── CGRect+diff.swift │ │ │ │ └── MTLTexture+CGImage.swift │ │ │ ├── Rtc+audioMixer.swift │ │ │ ├── Rtc.swift │ │ │ ├── RtcViewController+Dragger.swift │ │ │ ├── RtcViewController.swift │ │ │ ├── RtcViewModel.swift │ │ │ └── View │ │ │ │ ├── AgoraCanvasContainer.swift │ │ │ │ ├── InnerPermissionControlView.swift │ │ │ │ ├── PopMenuView.swift │ │ │ │ ├── RtcItemContentView.swift │ │ │ │ ├── RtcItemVideoContainer.swift │ │ │ │ └── RtcVideoItemView.swift │ │ └── Rtm │ │ │ ├── AgoraRtm.swift │ │ │ ├── AgoraRtmChannelImp.swift │ │ │ ├── Chat │ │ │ ├── ChatViewController.swift │ │ │ └── ChatViewModel.swift │ │ │ ├── Command │ │ │ ├── CommandCoder │ │ │ │ ├── CommandDecoder.swift │ │ │ │ └── CommandEncoder.swift │ │ │ ├── RoomExpireInfo.swift │ │ │ └── RtmCommandType.swift │ │ │ ├── RtmChannelProvider.swift │ │ │ └── RtmProvider.swift │ ├── CloudStorage │ │ ├── CloudStorageDisplayViewController.swift │ │ ├── CloudStorageInClassViewController.swift │ │ ├── CloudStorageTableViewCell.swift │ │ ├── CloudStorageViewController.swift │ │ ├── CustomAVPlayerViewController.swift │ │ ├── CustomPreviewViewController.swift │ │ ├── Model │ │ │ └── StorageFileModel.swift │ │ ├── Preview │ │ │ ├── AnyPreview.swift │ │ │ └── Kingfisher+fetchDiskCachePath.swift │ │ ├── Upload │ │ │ ├── ConvertService.swift │ │ │ ├── ExportService.swift │ │ │ ├── UploadService.swift │ │ │ ├── UploadTaskTableViewCell.swift │ │ │ ├── UploadTaskTableViewCell.xib │ │ │ ├── UploadTasksViewController.swift │ │ │ ├── UploadType.swift │ │ │ └── UploadUtility.swift │ │ └── WKWebViewController.swift │ ├── Generic │ │ └── PageContainer │ │ │ └── PageListContainer.swift │ ├── Home │ │ ├── CameraMicToggleView.swift │ │ ├── CameraPreviewView.swift │ │ ├── CreateClassRoomViewController.swift │ │ ├── DeviceAutorizationHelper.swift │ │ ├── HistoryJoinRoomPickerViewController.swift │ │ ├── HistoryViewController.swift │ │ ├── HomeViewController.swift │ │ ├── JoinRoomInputAccessView.swift │ │ ├── JoinRoomViewController.swift │ │ ├── RoomDetailViewController.swift │ │ ├── RoomDetailViewController.xib │ │ ├── RoomOperation │ │ │ └── RoomOperation.swift │ │ └── String+RoomUuid.swift │ ├── Invite │ │ └── InviteViewController.swift │ ├── Language │ │ ├── Bundle+Language.swift │ │ ├── Language.swift │ │ ├── LocaleManager.swift │ │ └── XIBLocalizeable.swift │ ├── Log │ │ ├── AlibabaLogHandler.swift │ │ ├── SBLogHandler.swift │ │ ├── SensetiveLogFilter.swift │ │ └── logger.swift │ ├── Login │ │ ├── AccountCodeAuthView.swift │ │ ├── AccountTextfield.swift │ │ ├── Agreement.swift │ │ ├── AgreementCheckView.swift │ │ ├── AppleLogin.swift │ │ ├── Base.lproj │ │ │ └── LoginViewController.xib │ │ ├── CompactLoginBackgroundView.swift │ │ ├── CountryCodePicker.swift │ │ ├── ForceBindPhoneViewController.swift │ │ ├── LoginBackgroundView.swift │ │ ├── LoginViewController+Debug.swift │ │ ├── LoginViewController.swift │ │ ├── PasswordAuthView.swift │ │ ├── PasswordRepeatView.swift │ │ ├── PasswordTextfield.swift │ │ ├── PrivacyAlertViewController.swift │ │ ├── PrivacyAlertViewController.xib │ │ ├── ResetPasswordViewController.swift │ │ ├── SMSAuthView.swift │ │ ├── SignUpInputView.swift │ │ ├── SignUpViewController.swift │ │ ├── VerifyCodeTextfield.swift │ │ ├── en.lproj │ │ │ ├── LoginViewController.strings │ │ │ └── LoginViewController.xib │ │ └── zh-Hans.lproj │ │ │ └── LoginViewController.strings │ ├── Profile │ │ ├── AppleBinding.swift │ │ ├── ProfileTableViewCell.swift │ │ ├── ProfileUpdate.swift │ │ └── ProfileViewController.swift │ ├── Replay │ │ ├── MixReplayViewController.swift │ │ ├── MixReplayViewModel.swift │ │ ├── RecordSelectionListViewController.swift │ │ ├── ReplayOverlay.swift │ │ ├── ReplayPlaybackSpeedListViewController.swift │ │ └── VideoPreviewView.swift │ ├── Setting │ │ ├── About │ │ │ ├── AboutUsViewController.swift │ │ │ └── AboutUsViewController.xib │ │ ├── BindEmailViewController.swift │ │ ├── BindPhoneViewController.swift │ │ ├── CancellationViewController.swift │ │ ├── ContactUs │ │ │ ├── Base.lproj │ │ │ │ └── ContactUsViewController.xib │ │ │ ├── ContactUsViewController.swift │ │ │ ├── en.lproj │ │ │ │ └── ContactUsViewController.strings │ │ │ └── zh-Hans.lproj │ │ │ │ └── ContactUsViewController.strings │ │ ├── SecurityViewController.swift │ │ ├── SetNewPasswordViewController.swift │ │ ├── SettingTableViewCell.swift │ │ ├── SettingTableViewCell.xib │ │ ├── SettingViewController.swift │ │ └── UpdatePasswordViewController.swift │ ├── Shortcuts │ │ ├── AppDelegate+keyboard.swift │ │ ├── ClassRoomViewController+keyboard.swift │ │ ├── Interface │ │ │ ├── ApplianceShortcutItem.swift │ │ │ ├── ClassroomKeyboardRespondable.swift │ │ │ └── GlobalKeyboardShortcutRespondable.swift │ │ ├── PreferenceTableViewCell.swift │ │ ├── PreferenceViewController.swift │ │ └── WhiteboardStyleViewController.swift │ ├── StoreReview │ │ └── RatingManager.swift │ ├── Stores │ │ ├── AuthStore.swift │ │ └── UserDevicePreferredStatusStore.swift │ ├── UIComponents │ │ ├── Alert │ │ │ ├── FlatCompactAlertController.swift │ │ │ ├── FlatCustomAlertSetable.swift │ │ │ └── FlatPopoverAlertController.swift │ │ ├── Button │ │ │ ├── FlatGeneralCrossButton.swift │ │ │ ├── SpringButton.swift │ │ │ └── UIButton+CheckBox.swift │ │ ├── Label │ │ │ └── BorderLabelView.swift │ │ └── Share │ │ │ └── ShareManager.swift │ └── Views │ │ ├── Cells │ │ ├── ChatNoticeTableViewCell.swift │ │ ├── ChatTableViewCell.swift │ │ ├── ClassRoomSettingTableViewCell.swift │ │ ├── ClassRoomSettingTableViewCell.xib │ │ ├── RoomTableViewCell.swift │ │ ├── RoomTableViewCell.xib │ │ └── RoomUserTableViewCell.swift │ │ ├── DashLine │ │ └── DashLineView.swift │ │ ├── Tabbar │ │ └── HomeTabBar.swift │ │ └── Textfield │ │ └── BottomLineTextfield.swift ├── Vendor │ ├── WechatOpenSDK-XCFramework.xcframework │ │ ├── Info.plist │ │ ├── PrivacyInfo.xcprivacy │ │ ├── README.txt │ │ ├── ios-arm64_armv7 │ │ │ ├── Headers │ │ │ │ ├── WXApi.h │ │ │ │ ├── WXApiObject.h │ │ │ │ └── WechatAuthSDK.h │ │ │ └── libWechatOpenSDK.a │ │ └── ios-arm64_i386_x86_64-simulator │ │ │ ├── Headers │ │ │ ├── WXApi.h │ │ │ ├── WXApiObject.h │ │ │ └── WechatAuthSDK.h │ │ │ └── libWechatOpenSDK.a │ └── rtm_v2.2.1 │ │ ├── commits │ │ ├── libs │ │ └── AgoraRtmKit.xcframework │ │ │ ├── Info.plist │ │ │ ├── ios-arm64_armv7 │ │ │ └── AgoraRtmKit.framework │ │ │ │ ├── AgoraRtmKit │ │ │ │ ├── Headers │ │ │ │ ├── AgoraRtmBase.h │ │ │ │ ├── AgoraRtmClientKit.h │ │ │ │ ├── AgoraRtmEnumerates.h │ │ │ │ ├── AgoraRtmKit.h │ │ │ │ ├── AgoraRtmObjects.h │ │ │ │ ├── IAgoraRtmClient.h │ │ │ │ ├── IAgoraRtmLock.h │ │ │ │ ├── IAgoraRtmPresence.h │ │ │ │ ├── IAgoraRtmStorage.h │ │ │ │ └── IAgoraStreamChannel.h │ │ │ │ ├── Info.plist │ │ │ │ ├── Modules │ │ │ │ └── module.modulemap │ │ │ │ └── PrivacyInfo.xcprivacy │ │ │ ├── ios-arm64_x86_64-simulator │ │ │ └── AgoraRtmKit.framework │ │ │ │ ├── AgoraRtmKit │ │ │ │ ├── Headers │ │ │ │ ├── AgoraRtmBase.h │ │ │ │ ├── AgoraRtmClientKit.h │ │ │ │ ├── AgoraRtmEnumerates.h │ │ │ │ ├── AgoraRtmKit.h │ │ │ │ ├── AgoraRtmObjects.h │ │ │ │ ├── IAgoraRtmClient.h │ │ │ │ ├── IAgoraRtmLock.h │ │ │ │ ├── IAgoraRtmPresence.h │ │ │ │ ├── IAgoraRtmStorage.h │ │ │ │ └── IAgoraStreamChannel.h │ │ │ │ ├── Info.plist │ │ │ │ ├── Modules │ │ │ │ └── module.modulemap │ │ │ │ └── PrivacyInfo.xcprivacy │ │ │ ├── macos-arm64_x86_64 │ │ │ └── AgoraRtmKit.framework │ │ │ │ ├── AgoraRtmKit │ │ │ │ ├── Headers │ │ │ │ ├── Modules │ │ │ │ ├── Resources │ │ │ │ └── Versions │ │ │ │ ├── A │ │ │ │ ├── AgoraRtmKit │ │ │ │ ├── Headers │ │ │ │ │ ├── AgoraRtmBase.h │ │ │ │ │ ├── AgoraRtmClientKit.h │ │ │ │ │ ├── AgoraRtmEnumerates.h │ │ │ │ │ ├── AgoraRtmKit.h │ │ │ │ │ ├── AgoraRtmObjects.h │ │ │ │ │ ├── IAgoraRtmClient.h │ │ │ │ │ ├── IAgoraRtmLock.h │ │ │ │ │ ├── IAgoraRtmPresence.h │ │ │ │ │ ├── IAgoraRtmStorage.h │ │ │ │ │ └── IAgoraStreamChannel.h │ │ │ │ ├── Modules │ │ │ │ │ └── module.modulemap │ │ │ │ └── Resources │ │ │ │ │ └── Info.plist │ │ │ │ └── Current │ │ │ ├── xros-arm64 │ │ │ └── AgoraRtmKit.framework │ │ │ │ ├── AgoraRtmKit │ │ │ │ ├── Headers │ │ │ │ ├── AgoraRtmBase.h │ │ │ │ ├── AgoraRtmClientKit.h │ │ │ │ ├── AgoraRtmEnumerates.h │ │ │ │ ├── AgoraRtmKit.h │ │ │ │ ├── AgoraRtmObjects.h │ │ │ │ ├── IAgoraRtmClient.h │ │ │ │ ├── IAgoraRtmLock.h │ │ │ │ ├── IAgoraRtmPresence.h │ │ │ │ ├── IAgoraRtmStorage.h │ │ │ │ └── IAgoraStreamChannel.h │ │ │ │ ├── Info.plist │ │ │ │ ├── Modules │ │ │ │ └── module.modulemap │ │ │ │ └── PrivacyInfo.xcprivacy │ │ │ └── xros-arm64_x86_64-simulator │ │ │ └── AgoraRtmKit.framework │ │ │ ├── AgoraRtmKit │ │ │ ├── Headers │ │ │ ├── AgoraRtmBase.h │ │ │ ├── AgoraRtmClientKit.h │ │ │ ├── AgoraRtmEnumerates.h │ │ │ ├── AgoraRtmKit.h │ │ │ ├── AgoraRtmObjects.h │ │ │ ├── IAgoraRtmClient.h │ │ │ ├── IAgoraRtmLock.h │ │ │ ├── IAgoraRtmPresence.h │ │ │ ├── IAgoraRtmStorage.h │ │ │ └── IAgoraStreamChannel.h │ │ │ ├── Info.plist │ │ │ ├── Modules │ │ │ └── module.modulemap │ │ │ └── PrivacyInfo.xcprivacy │ │ ├── package_size_report.txt │ │ └── spec ├── bridgingHeader.h ├── en.lproj │ ├── LaunchScreen.strings │ ├── Localizable.strings │ └── Main.strings ├── loading.json ├── loading_dark.json ├── reward.json ├── reward.mp3 ├── whiteboard_rebuild.bundle │ └── foo └── zh-Hans.lproj │ ├── LaunchScreen.strings │ ├── Localizable.strings │ └── Main.strings ├── Flat_Test ├── ApiErrorLocalizeTest.swift ├── EnvTest.swift ├── LogSensetiveTest.swift ├── RegexTest.swift └── RoomUuidTest.swift ├── LICENSE ├── Podfile ├── Podfile.lock ├── README-zh.md ├── README.md ├── archive.sh ├── art ├── flat-logo.png └── flat-showcase.png ├── blackduck.sh ├── export_release.plist ├── export_release_sg.plist ├── rebuild_whiteboard_bridge.sh ├── test.log ├── test.sh └── upload.sh /AgoraScan: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/AgoraScan -------------------------------------------------------------------------------- /FillSecret.sh: -------------------------------------------------------------------------------- 1 | KEY=$1 2 | VALUE=$2 3 | FILE=$3 4 | 5 | echo "$KEY = $VALUE" >> $FILE -------------------------------------------------------------------------------- /Flat-Test-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Flat/Api/Core/EmptyResponse.swift: -------------------------------------------------------------------------------- 1 | // 2 | // EmptyDecodable.swift 3 | // flat 4 | // 5 | // Created by xuyunshi on 2021/10/13. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct EmptyResponse: Codable {} 12 | -------------------------------------------------------------------------------- /Flat/Api/Core/Encode&Decode/AnyCodingKey.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AnyCodingKey.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/10/21. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct AnyCodingKey: CodingKey { 12 | var stringValue: String 13 | 14 | init?(stringValue: String) { 15 | self.stringValue = stringValue 16 | } 17 | 18 | var intValue: Int? 19 | 20 | init?(intValue: Int) { 21 | self.intValue = intValue 22 | stringValue = intValue.description 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Flat/Api/Core/Encode&Decode/AnyEncodable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AnyEncodable.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/10/22. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct AnyEncodable: Encodable { 12 | private let encodable: Encodable 13 | 14 | public init(_ encodable: Encodable) { 15 | self.encodable = encodable 16 | } 17 | 18 | func encode(to encoder: Encoder) throws { 19 | try encodable.encode(to: encoder) 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Flat/Api/Core/Encode&Decode/ParameterEncoder.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ParameterEncoder.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/10/22. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol ParameterEncoder { 12 | func encode(request: URLRequest, _ parameters: [String: Any]) throws -> URLRequest 13 | } 14 | -------------------------------------------------------------------------------- /Flat/Api/Core/Extension/JSONDecoder+AnyKeyDecodable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // JSONDecoder+AnyKeyDecodable.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/10/22. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension JSONDecoder { 12 | func setAnyCodingKey(_ key: String) { 13 | userInfo[anyCodingKeyIdentifier] = AnyCodingKey(stringValue: key)! 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Api/Core/Method.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Method.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/10/22. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | enum HttpMethod: String { 12 | case get = "GET" 13 | case post = "POST" 14 | } 15 | -------------------------------------------------------------------------------- /Flat/Api/Core/Request/AgoraRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AgoraRequest.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/10/22. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol AgoraRequest: Request {} 12 | 13 | extension AgoraRequest { 14 | var method: HttpMethod { .post } 15 | var decoder: JSONDecoder { .agoraDecoder } 16 | } 17 | -------------------------------------------------------------------------------- /Flat/Api/Core/Request/FlatRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // FlatRequest.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/10/22. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol FlatRequest: Request {} 12 | 13 | extension FlatRequest { 14 | var method: HttpMethod { .post } 15 | var decoder: JSONDecoder { .flatDecoder } 16 | } 17 | -------------------------------------------------------------------------------- /Flat/Api/Core/ResponseDataHandlers/FlatResponse.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BaseResponse.swift 3 | // flat 4 | // 5 | // Created by xuyunshi on 2021/10/13. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct FlatResponse: Decodable { 12 | let status: Int 13 | let data: T 14 | } 15 | -------------------------------------------------------------------------------- /Flat/Api/Core/Task.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Task.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/10/22. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | enum Task { 12 | case requestPlain 13 | case requestJSONEncodable(encodable: Encodable) 14 | case requestURLEncodable(parameters: [String: Any]) 15 | case requestCustomJSONEncodable(encodable: Encodable, customEncoder: JSONEncoder) 16 | case requestCustomURLEncodable(parameters: [String: Any], customEncoder: ParameterEncoder) 17 | } 18 | -------------------------------------------------------------------------------- /Flat/Api/Requests/Flat/Auth/AuthProcessRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AuthProcessRequest.swift 3 | // flat 4 | // 5 | // Created by xuyunshi on 2021/10/14. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct AuthProcessRequest: FlatRequest { 12 | let uuid: String 13 | 14 | var path: String { "/v1/login/process" } 15 | var task: Task { .requestJSONEncodable(encodable: ["authUUID": uuid]) } 16 | let responseType = User.self 17 | } 18 | -------------------------------------------------------------------------------- /Flat/Api/Requests/Flat/Auth/BindingEmailRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BindingEmailRequest.swift 3 | // flat 4 | // 5 | // Created by xuyunshi on 2021/10/14. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct BindingEmailRequest: FlatRequest { 12 | let email: String 13 | let code: String 14 | 15 | var path: String { "/v1/user/binding/platform/email" } 16 | var task: Task { .requestJSONEncodable(encodable: ["email": email, "code": code]) } 17 | let responseType = EmptyResponse.self 18 | } 19 | -------------------------------------------------------------------------------- /Flat/Api/Requests/Flat/Auth/BindingPhoneRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BindingPhoneRequest.swift 3 | // flat 4 | // 5 | // Created by xuyunshi on 2021/10/14. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct BindingPhoneRequest: FlatRequest { 12 | let phone: String 13 | let code: String 14 | 15 | var path: String { "/v1/user/bindingPhone" } 16 | var task: Task { .requestJSONEncodable(encodable: ["phone": phone, "code": code]) } 17 | let responseType = EmptyResponse.self 18 | } 19 | -------------------------------------------------------------------------------- /Flat/Api/Requests/Flat/Auth/PhoneSMSLoginRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PhoneLoginRequest.swift 3 | // flat 4 | // 5 | // Created by xuyunshi on 2021/10/14. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct PhoneSMSLoginRequest: FlatRequest { 12 | let phone: String 13 | let code: String 14 | 15 | var path: String { "/v1/login/phone" } 16 | var task: Task { .requestJSONEncodable(encodable: ["phone": phone, "code": code]) } 17 | let responseType = User.self 18 | } 19 | -------------------------------------------------------------------------------- /Flat/Api/Requests/Flat/Auth/RebindingPhoneRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RebindingPhoneRequest.swift 3 | // flat 4 | // 5 | // Created by xuyunshi on 2021/10/14. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct RebindingPhoneRequest: FlatRequest { 12 | let phone: String 13 | let code: String 14 | 15 | var path: String { "/v2/user/rebind-phone" } 16 | var task: Task { .requestJSONEncodable(encodable: ["phone": phone, "code": code]) } 17 | let responseType = User.self 18 | } 19 | -------------------------------------------------------------------------------- /Flat/Api/Requests/Flat/Auth/SetAuthUuidRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SetAuthUuidRequest.swift 3 | // flat 4 | // 5 | // Created by xuyunshi on 2021/10/13. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct SetAuthUuidRequest: FlatRequest { 12 | let uuid: String 13 | 14 | var task: Task { .requestJSONEncodable(encodable: ["authUUID": uuid]) } 15 | var path: String { "/v1/login/set-auth-uuid" } 16 | let responseType = EmptyResponse.self 17 | } 18 | -------------------------------------------------------------------------------- /Flat/Api/Requests/Flat/Auth/SetBindingAuthUUIDRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SetAuthUuidRequest.swift 3 | // flat 4 | // 5 | // Created by xuyunshi on 2021/10/13. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct SetBindingAuthUUIDRequest: FlatRequest { 12 | let uuid: String 13 | 14 | var task: Task { .requestJSONEncodable(encodable: ["authUUID": uuid]) } 15 | var path: String { "/v1/user/binding/set-auth-uuid" } 16 | let responseType = EmptyResponse.self 17 | } 18 | -------------------------------------------------------------------------------- /Flat/Api/Requests/Flat/Auth/UploadAvatarFinishRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UploadFinishRequest.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/12/8. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct UploadAvatarFinishRequest: FlatRequest { 12 | let fileUUID: String 13 | var path: String { "/v2/user/upload-avatar/finish" } 14 | var task: Task { .requestJSONEncodable(encodable: ["fileUUID": fileUUID]) } 15 | let responseType = EmptyResponse.self 16 | } 17 | -------------------------------------------------------------------------------- /Flat/Api/Requests/Flat/Auth/UserRenameRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UserRenameRequest.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2022/7/12. 6 | // Copyright © 2022 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct UserRenameRequest: FlatRequest { 12 | let name: String 13 | 14 | var task: Task { .requestJSONEncodable(encodable: ["newUserName": name]) } 15 | var path: String { "/v2/user/rename" } 16 | let responseType = EmptyResponse.self 17 | } 18 | -------------------------------------------------------------------------------- /Flat/Api/Requests/Flat/CancelRoomHistoryRequest copy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CancelRoomHistoryRequest.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2022/2/9. 6 | // Copyright © 2022 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct CancelRoomHistoryRequest: FlatRequest { 12 | let roomUUID: String 13 | 14 | var path: String { "/v1/room/cancel/history" } 15 | var method: HttpMethod { .post } 16 | var task: Task { .requestJSONEncodable(encodable: ["roomUUID": roomUUID]) } 17 | let responseType = EmptyResponse.self 18 | } 19 | -------------------------------------------------------------------------------- /Flat/Api/Requests/Flat/CancelUploadRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CancelUploadRequest.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/12/9. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct CancelUploadRequest: FlatRequest { 12 | let fileUUIDs: [String] 13 | var path: String { "/v1/cloud-storage/upload/cancel" } 14 | var task: Task { .requestJSONEncodable(encodable: ["fileUUIDs": fileUUIDs]) } 15 | let responseType = EmptyResponse.self 16 | } 17 | -------------------------------------------------------------------------------- /Flat/Api/Requests/Flat/Cancelation/AccountCancelationRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AccountCancelationRequest.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/10/21. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct AccountCancelationRequest: FlatRequest { 12 | var path: String { "/v1/user/deleteAccount" } 13 | var task: Task { .requestPlain } 14 | let responseType = EmptyResponse.self 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Api/Requests/Flat/Classroom/TempPhotoFinishRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TempPhotoStartRequest.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2023/5/30. 6 | // Copyright © 2023 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct TempPhotoFinishRequest: FlatRequest { 12 | let fileUUID: String 13 | var path: String { "/v2/temp-photo/upload/finish" } 14 | var task: Task { .requestJSONEncodable(encodable: ["fileUUID": fileUUID]) } 15 | let responseType = EmptyResponse.self 16 | } 17 | -------------------------------------------------------------------------------- /Flat/Api/Requests/Flat/FinishConvertRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // FinishConvertRequest.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/12/10. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct FinishConvertRequest: FlatRequest { 12 | let fileUUID: String 13 | 14 | var path: String { "/v2/cloud-storage/convert/finish" } 15 | var task: Task { .requestJSONEncodable(encodable: ["fileUUID": fileUUID]) } 16 | let responseType = EmptyResponse.self 17 | } 18 | -------------------------------------------------------------------------------- /Flat/Api/Requests/Flat/RemoveFilesRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RemoveFilesRequest.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/12/8. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct RemoveFilesRequest: FlatRequest { 12 | let fileUUIDs: [String] 13 | var path: String { "/v2/cloud-storage/delete" } 14 | var task: Task { .requestJSONEncodable(encodable: ["uuids": fileUUIDs]) } 15 | let responseType = EmptyResponse.self 16 | } 17 | -------------------------------------------------------------------------------- /Flat/Api/Requests/Flat/RenameFileRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RenameFileRequest.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/12/10. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct RenameFileRequest: FlatRequest { 12 | let fileName: String 13 | let fileUUID: String 14 | var path: String { "/v2/cloud-storage/rename" } 15 | var task: Task { .requestJSONEncodable(encodable: ["newName": fileName, "fileUUID": fileUUID]) } 16 | let responseType = EmptyResponse.self 17 | } 18 | -------------------------------------------------------------------------------- /Flat/Api/Requests/Flat/RoomHistoryRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RoomHistoryRequest.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/11/1. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct RoomHistoryRequest: FlatRequest { 12 | let page: Int 13 | 14 | var path: String { "/v1/room/list/history" } 15 | var task: Task { .requestURLEncodable(parameters: ["page": page]) } 16 | let responseType = [RoomBasicInfo].self 17 | } 18 | -------------------------------------------------------------------------------- /Flat/Api/Requests/Flat/RoomListRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RoomListRequest.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/10/19. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct RoomListRequest: FlatRequest { 12 | let page: Int 13 | 14 | var path: String { "/v1/room/list/all" } 15 | var task: Task { .requestURLEncodable(parameters: ["page": page]) } 16 | let responseType = [RoomBasicInfo].self 17 | } 18 | -------------------------------------------------------------------------------- /Flat/Api/Requests/Flat/StorageMoveFileRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // StorageMoveFileRequest.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/11/1. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct StorageMoveFileRequest: FlatRequest, Encodable { 12 | let targetDirectoryPath: String 13 | let uuids: [String] 14 | 15 | var path: String { "/v2/cloud-storage/move" } 16 | var task: Task { .requestJSONEncodable(encodable: self) } 17 | var responseType: EmptyResponse.Type { EmptyResponse.self } 18 | } 19 | -------------------------------------------------------------------------------- /Flat/Api/Requests/Flat/UploadFinishRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UploadFinishRequest.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/12/8. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct UploadFinishRequest: FlatRequest, Encodable { 12 | let fileUUID: String 13 | var path: String { "/v2/cloud-storage/upload/finish" } 14 | var task: Task { .requestJSONEncodable(encodable: self) } 15 | var responseType: EmptyResponse.Type { EmptyResponse.self } 16 | } 17 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/AppIcon.appiconset/icon-1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/AppIcon.appiconset/icon-1024.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/AppIcon.appiconset/icon-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/AppIcon.appiconset/icon-29.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/AppIcon.appiconset/icon-29@2x-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/AppIcon.appiconset/icon-29@2x-ipad.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/AppIcon.appiconset/icon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/AppIcon.appiconset/icon-40.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/AppIcon.appiconset/icon-40@2x 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/AppIcon.appiconset/icon-40@2x 1.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/AppIcon.appiconset/icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/AppIcon.appiconset/icon-76.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/chat.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "编组备份 12.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "filename" : "编组备份 13.pdf", 9 | "idiom" : "iphone" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | }, 16 | "properties" : { 17 | "template-rendering-intent" : "template" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/classroom_cloud.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "cloudOutlined.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "filename" : "cloudOutlined 1.pdf", 9 | "idiom" : "iphone" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | }, 16 | "properties" : { 17 | "template-rendering-intent" : "template" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/classroom_more.imageset/more@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassRoom/classroom_more.imageset/more@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/classroom_more.imageset/more@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassRoom/classroom_more.imageset/more@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/classroom_record.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "record.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "filename" : "record 1.pdf", 9 | "idiom" : "iphone" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | }, 16 | "properties" : { 17 | "template-rendering-intent" : "template" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/classroom_setting.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "编组 5.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "filename" : "编组 6.pdf", 9 | "idiom" : "iphone" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | }, 16 | "properties" : { 17 | "template-rendering-intent" : "template" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/classroom_take_photo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "record.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "filename" : "record 1.pdf", 9 | "idiom" : "iphone" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | }, 16 | "properties" : { 17 | "template-rendering-intent" : "template" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/disconnect_speak.imageset/矩形备份 25@2x(33).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassRoom/disconnect_speak.imageset/矩形备份 25@2x(33).png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/disconnect_speak.imageset/矩形备份 25@3x(33).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassRoom/disconnect_speak.imageset/矩形备份 25@3x(33).png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/invite.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Group 1262.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "filename" : "编组备份 10.pdf", 9 | "idiom" : "iphone" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | }, 16 | "properties" : { 17 | "template-rendering-intent" : "template" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/message_ban.imageset/编组 2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassRoom/message_ban.imageset/编组 2@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/message_ban.imageset/编组 2@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassRoom/message_ban.imageset/编组 2@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/network-bad.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Group 446-2.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/network-good.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Group 446-1.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/network-great.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Group 446.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/raisehand_normal.imageset/Group 1191@2x 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassRoom/raisehand_normal.imageset/Group 1191@2x 1.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/raisehand_normal.imageset/Group 1191@3x 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassRoom/raisehand_normal.imageset/Group 1191@3x 1.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/raisehand_normal.imageset/Group 1273@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassRoom/raisehand_normal.imageset/Group 1273@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/raisehand_normal.imageset/Group 1273@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassRoom/raisehand_normal.imageset/Group 1273@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/raisehand_normal.imageset/Group 1739.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassRoom/raisehand_normal.imageset/Group 1739.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/raisehand_normal.imageset/Group 1739@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassRoom/raisehand_normal.imageset/Group 1739@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/raisehand_normal.imageset/Group 1740.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassRoom/raisehand_normal.imageset/Group 1740.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/raisehand_normal.imageset/Group 1740@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassRoom/raisehand_normal.imageset/Group 1740@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/raisehand_selected.imageset/Group 1190.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassRoom/raisehand_selected.imageset/Group 1190.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/raisehand_selected.imageset/Group 1190@2x 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassRoom/raisehand_selected.imageset/Group 1190@2x 1.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/raisehand_selected.imageset/Group 1190@2x 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassRoom/raisehand_selected.imageset/Group 1190@2x 2.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/raisehand_selected.imageset/Group 1190@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassRoom/raisehand_selected.imageset/Group 1190@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/raisehand_selected.imageset/Group 1190@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassRoom/raisehand_selected.imageset/Group 1190@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/raisehand_selected.imageset/Group 1191.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassRoom/raisehand_selected.imageset/Group 1191.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/raisehand_selected.imageset/Group 1191@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassRoom/raisehand_selected.imageset/Group 1191@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/raisehand_selected.imageset/Group 1191@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassRoom/raisehand_selected.imageset/Group 1191@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/raisehand_small_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Group 1697.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/send_message.imageset/矩形备份 16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassRoom/send_message.imageset/矩形备份 16@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/send_message.imageset/矩形备份 16@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassRoom/send_message.imageset/矩形备份 16@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/statusbar_onstage_user.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "userGroup.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/teach_icon.imageset/Group 965@2x 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassRoom/teach_icon.imageset/Group 965@2x 1.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/teach_icon.imageset/Group 965@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassRoom/teach_icon.imageset/Group 965@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/teach_icon.imageset/Group 965@3x 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassRoom/teach_icon.imageset/Group 965@3x 1.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/teach_icon.imageset/Group 965@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassRoom/teach_icon.imageset/Group 965@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/users.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "userGroup.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "filename" : "userGroup 1.pdf", 9 | "idiom" : "iphone" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | }, 16 | "properties" : { 17 | "template-rendering-intent" : "template" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/whiteboard_bg_#064D6D.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "whiteboard_bg_blue.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/whiteboard_bg_#446550.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "whiteboard_bg_green.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/whiteboard_bg_#49585F.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "whiteboard_bg_gray.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassRoom/whiteboard_bg_default.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "whiteboard_bg_default.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassroomType/BigClass.imageset/Group 912@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassroomType/BigClass.imageset/Group 912@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassroomType/BigClass.imageset/Group 912@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassroomType/BigClass.imageset/Group 912@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassroomType/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassroomType/OneToOne.imageset/Group 911@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassroomType/OneToOne.imageset/Group 911@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassroomType/OneToOne.imageset/Group 911@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassroomType/OneToOne.imageset/Group 911@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassroomType/SmallClass.imageset/Group 908@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassroomType/SmallClass.imageset/Group 908@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/ClassroomType/SmallClass.imageset/Group 908@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/ClassroomType/SmallClass.imageset/Group 908@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/Upload/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/Upload/status/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/Upload/status/upload_cancel.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "矩形备份 24@2x(2).png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "矩形备份 24@3x(2).png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/Upload/status/upload_cancel.imageset/矩形备份 24@2x(2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/Upload/status/upload_cancel.imageset/矩形备份 24@2x(2).png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/Upload/status/upload_cancel.imageset/矩形备份 24@3x(2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/Upload/status/upload_cancel.imageset/矩形备份 24@3x(2).png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/Upload/status/upload_reupload.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "矩形备份 44@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "矩形备份 44@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/Upload/status/upload_reupload.imageset/矩形备份 44@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/Upload/status/upload_reupload.imageset/矩形备份 44@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/Upload/status/upload_reupload.imageset/矩形备份 44@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/Upload/status/upload_reupload.imageset/矩形备份 44@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/Upload/status/upload_success.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "编组@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "编组@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/Upload/status/upload_success.imageset/编组@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/Upload/status/upload_success.imageset/编组@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/Upload/status/upload_success.imageset/编组@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/Upload/status/upload_success.imageset/编组@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/Upload/upload_audio.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Group 857.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/Upload/upload_doc.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "file.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/Upload/upload_image.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "fileImage.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/Upload/upload_video.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "record.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/cloud_file_more.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "moreVertical.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/create_directory.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Group 1038.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/edit.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "矩形备份 24@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "矩形备份 24@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/edit.imageset/矩形备份 24@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/edit.imageset/矩形备份 24@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/edit.imageset/矩形备份 24@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/edit.imageset/矩形备份 24@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/arrowRight.imageset/arrowRight@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/listInClassRoom/arrowRight.imageset/arrowRight@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/arrowRight.imageset/arrowRight@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/listInClassRoom/arrowRight.imageset/arrowRight@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/cloud_storage_selection.imageset/circleCheckOutlined@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/listInClassRoom/cloud_storage_selection.imageset/circleCheckOutlined@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/cloud_storage_selection.imageset/circleCheckOutlined@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/listInClassRoom/cloud_storage_selection.imageset/circleCheckOutlined@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_add.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "Group 1220@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "Group 1220@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_add.imageset/Group 1220@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_add.imageset/Group 1220@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_add.imageset/Group 1220@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_add.imageset/Group 1220@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_add_small.imageset/pages备份 4@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_add_small.imageset/pages备份 4@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_add_small.imageset/pages备份 4@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_add_small.imageset/pages备份 4@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_directory.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "file.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_doc.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "fileWord@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "fileWord@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_doc.imageset/fileWord@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_doc.imageset/fileWord@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_doc.imageset/fileWord@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_doc.imageset/fileWord@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_img.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "fileImage@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "fileImage@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_img.imageset/fileImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_img.imageset/fileImage@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_img.imageset/fileImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_img.imageset/fileImage@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_music.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "fileAudio@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "fileAudio@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_music.imageset/fileAudio@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_music.imageset/fileAudio@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_music.imageset/fileAudio@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_music.imageset/fileAudio@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_pdf.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "fileOnenote@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "fileOnenote@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_pdf.imageset/fileOnenote@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_pdf.imageset/fileOnenote@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_pdf.imageset/fileOnenote@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_pdf.imageset/fileOnenote@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_ppt.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "编组 5备份 11@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "编组 5备份 11@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_ppt.imageset/编组 5备份 11@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_ppt.imageset/编组 5备份 11@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_ppt.imageset/编组 5备份 11@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_ppt.imageset/编组 5备份 11@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_video.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "fileVideo@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "fileVideo@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_video.imageset/fileVideo@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_video.imageset/fileVideo@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_video.imageset/fileVideo@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/listInClassRoom/storage_type_video.imageset/fileVideo@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/upload_list.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "编组备份 7@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "编组备份 7@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/upload_list.imageset/编组备份 7@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/upload_list.imageset/编组备份 7@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/CloudStorage/upload_list.imageset/编组备份 7@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/CloudStorage/upload_list.imageset/编组备份 7@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Common/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Common/camera.imageset/camera@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Common/camera.imageset/camera@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Common/camera.imageset/camera@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Common/camera.imageset/camera@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Common/checklist_normal.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "矩形.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Common/checklist_normal.imageset/矩形.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Common/checklist_normal.imageset/矩形.pdf -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Common/checklist_selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "编组 21.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Common/checklist_selected.imageset/编组 21.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Common/checklist_selected.imageset/编组 21.pdf -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Common/circle.imageset/椭圆形备份 3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Common/circle.imageset/椭圆形备份 3@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Common/circle.imageset/椭圆形备份 3@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Common/circle.imageset/椭圆形备份 3@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Common/command.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "general.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Common/common_camera_off.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Group 806.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Common/common_camera_on.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Group 946.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Common/common_mic_off.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Group 951.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Common/common_mic_on.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Group 947.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Common/microphone.imageset/microphone@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Common/microphone.imageset/microphone@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Common/microphone.imageset/microphone@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Common/microphone.imageset/microphone@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Common/record.imageset/record@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Common/record.imageset/record@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Common/record.imageset/record@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Common/record.imageset/record@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Common/triangle_down.imageset/down@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Common/triangle_down.imageset/down@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Common/triangle_down.imageset/down@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Common/triangle_down.imageset/down@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Common/triangle_rt.imageset/矩形@2x(13).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Common/triangle_rt.imageset/矩形@2x(13).png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Common/triangle_rt.imageset/矩形@3x(13).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Common/triangle_rt.imageset/矩形@3x(13).png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Common/video_area.imageset/record@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Common/video_area.imageset/record@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Common/video_area.imageset/record@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Common/video_area.imageset/record@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Empty/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Empty/cloud_empty.imageset/Group 2190@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Empty/cloud_empty.imageset/Group 2190@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Empty/cloud_empty.imageset/Group 2190@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Empty/cloud_empty.imageset/Group 2190@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Empty/cloud_empty.imageset/Group 2194@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Empty/cloud_empty.imageset/Group 2194@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Empty/cloud_empty.imageset/Group 2194@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Empty/cloud_empty.imageset/Group 2194@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Empty/history_empty.imageset/Group 2191@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Empty/history_empty.imageset/Group 2191@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Empty/history_empty.imageset/Group 2191@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Empty/history_empty.imageset/Group 2191@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Empty/history_empty.imageset/Group 2193@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Empty/history_empty.imageset/Group 2193@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Empty/history_empty.imageset/Group 2193@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Empty/history_empty.imageset/Group 2193@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Empty/message_empty.imageset/Group 2171@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Empty/message_empty.imageset/Group 2171@2x-1.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Empty/message_empty.imageset/Group 2171@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Empty/message_empty.imageset/Group 2171@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Empty/message_empty.imageset/Group 2171@3x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Empty/message_empty.imageset/Group 2171@3x-1.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Empty/message_empty.imageset/Group 2171@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Empty/message_empty.imageset/Group 2171@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Empty/room_empty.imageset/Group 2192@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Empty/room_empty.imageset/Group 2192@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Empty/room_empty.imageset/Group 2192@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Empty/room_empty.imageset/Group 2192@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Empty/room_empty.imageset/Group 2195@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Empty/room_empty.imageset/Group 2195@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Empty/room_empty.imageset/Group 2195@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Empty/room_empty.imageset/Group 2195@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/FlintIcon.appiconset/icon-1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/FlintIcon.appiconset/icon-1024.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/FlintIcon.appiconset/icon-20-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/FlintIcon.appiconset/icon-20-ipad.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/FlintIcon.appiconset/icon-20@2x 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/FlintIcon.appiconset/icon-20@2x 1.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/FlintIcon.appiconset/icon-20@2x-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/FlintIcon.appiconset/icon-20@2x-ipad.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/FlintIcon.appiconset/icon-20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/FlintIcon.appiconset/icon-20@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/FlintIcon.appiconset/icon-29-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/FlintIcon.appiconset/icon-29-ipad.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/FlintIcon.appiconset/icon-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/FlintIcon.appiconset/icon-29.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/FlintIcon.appiconset/icon-29@2x-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/FlintIcon.appiconset/icon-29@2x-ipad.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/FlintIcon.appiconset/icon-29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/FlintIcon.appiconset/icon-29@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/FlintIcon.appiconset/icon-29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/FlintIcon.appiconset/icon-29@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/FlintIcon.appiconset/icon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/FlintIcon.appiconset/icon-40.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/FlintIcon.appiconset/icon-40@2x 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/FlintIcon.appiconset/icon-40@2x 1.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/FlintIcon.appiconset/icon-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/FlintIcon.appiconset/icon-40@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/FlintIcon.appiconset/icon-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/FlintIcon.appiconset/icon-40@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/FlintIcon.appiconset/icon-57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/FlintIcon.appiconset/icon-57.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/FlintIcon.appiconset/icon-57@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/FlintIcon.appiconset/icon-57@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/FlintIcon.appiconset/icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/FlintIcon.appiconset/icon-60@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/FlintIcon.appiconset/icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/FlintIcon.appiconset/icon-60@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/FlintIcon.appiconset/icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/FlintIcon.appiconset/icon-76.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/FlintIcon.appiconset/icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/FlintIcon.appiconset/icon-76@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/FlintIcon.appiconset/icon-83.5@2x 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/FlintIcon.appiconset/icon-83.5@2x 1.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Home/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Home/history.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "time@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "time@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | }, 22 | "properties" : { 23 | "template-rendering-intent" : "template" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Home/history.imageset/time@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Home/history.imageset/time@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Home/history.imageset/time@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Home/history.imageset/time@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Home/right.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "right@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "right@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Home/right.imageset/right@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Home/right.imageset/right@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Home/right.imageset/right@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Home/right.imageset/right@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Home/room_calendar.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "calendar@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "calendar@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Home/room_calendar.imageset/calendar@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Home/room_calendar.imageset/calendar@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Home/room_calendar.imageset/calendar@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Home/room_calendar.imageset/calendar@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Home/room_create.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "编组 22@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "编组 22@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Home/room_create.imageset/编组 22@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Home/room_create.imageset/编组 22@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Home/room_create.imageset/编组 22@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Home/room_create.imageset/编组 22@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Home/room_join.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "编组 37@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "编组 37@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Home/room_join.imageset/编组 37@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Home/room_join.imageset/编组 37@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Home/room_join.imageset/编组 37@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Home/room_join.imageset/编组 37@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/arrow_down.imageset/arrow_down@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/arrow_down.imageset/arrow_down@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/arrow_down.imageset/arrow_down@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/arrow_down.imageset/arrow_down@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/close-bold.imageset/previous备份 23@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/close-bold.imageset/previous备份 23@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/close-bold.imageset/previous备份 23@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/close-bold.imageset/previous备份 23@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/email_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "whiteboard@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "whiteboard@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/email_icon.imageset/whiteboard@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/email_icon.imageset/whiteboard@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/email_icon.imageset/whiteboard@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/email_icon.imageset/whiteboard@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/login_apple.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "Group 411@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "Group 411@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/login_apple.imageset/Group 411@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/login_apple.imageset/Group 411@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/login_apple.imageset/Group 411@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/login_apple.imageset/Group 411@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/login_compact_bg.imageset/Group 2117@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/login_compact_bg.imageset/Group 2117@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/login_compact_bg.imageset/Group 2117@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/login_compact_bg.imageset/Group 2117@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/login_compact_bg.imageset/Group 2119@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/login_compact_bg.imageset/Group 2119@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/login_compact_bg.imageset/Group 2119@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/login_compact_bg.imageset/Group 2119@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/login_compact_bg.imageset/文案配图@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/login_compact_bg.imageset/文案配图@2x-1.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/login_compact_bg.imageset/文案配图@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/login_compact_bg.imageset/文案配图@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/login_compact_bg.imageset/文案配图@3x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/login_compact_bg.imageset/文案配图@3x-1.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/login_compact_bg.imageset/文案配图@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/login_compact_bg.imageset/文案配图@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/login_default_avatar.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "Group 872@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "Group 872@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/login_default_avatar.imageset/Group 872@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/login_default_avatar.imageset/Group 872@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/login_default_avatar.imageset/Group 872@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/login_default_avatar.imageset/Group 872@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/login_github.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "Group 411@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "Group 411@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/login_github.imageset/Group 411@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/login_github.imageset/Group 411@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/login_github.imageset/Group 411@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/login_github.imageset/Group 411@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/login_google.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "Group 413@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "Group 413@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/login_google.imageset/Group 413@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/login_google.imageset/Group 413@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/login_google.imageset/Group 413@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/login_google.imageset/Group 413@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/login_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "Group 27@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "Group 27@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/login_icon.imageset/Group 27@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/login_icon.imageset/Group 27@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/login_icon.imageset/Group 27@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/login_icon.imageset/Group 27@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/login_wechat.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "Group 412@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "Group 412@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/login_wechat.imageset/Group 412@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/login_wechat.imageset/Group 412@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/login_wechat.imageset/Group 412@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/login_wechat.imageset/Group 412@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/no_secure_keyboard.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "show@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "show@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/no_secure_keyboard.imageset/show@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/no_secure_keyboard.imageset/show@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/no_secure_keyboard.imageset/show@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/no_secure_keyboard.imageset/show@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/password_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "whiteboard@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "whiteboard@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/password_icon.imageset/whiteboard@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/password_icon.imageset/whiteboard@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/password_icon.imageset/whiteboard@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/password_icon.imageset/whiteboard@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/secure_keyboard.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "Group 4@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "Group 4@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/secure_keyboard.imageset/Group 4@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/secure_keyboard.imageset/Group 4@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/secure_keyboard.imageset/Group 4@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/secure_keyboard.imageset/Group 4@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/veryfication.imageset/whiteboard-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/veryfication.imageset/whiteboard-1.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Login/veryfication.imageset/whiteboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Login/veryfication.imageset/whiteboard.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/NaviBar/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/NaviBar/arrowLeft.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "路径 11备份 5.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Replay/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Replay/close.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "close (2).png", 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 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Replay/close.imageset/close (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Replay/close.imageset/close (2).png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Replay/pause.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "矩形备份 19 (1).pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Replay/pause.imageset/矩形备份 19 (1).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Replay/pause.imageset/矩形备份 19 (1).pdf -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Replay/play.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "矩形备份 19.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Replay/play.imageset/矩形备份 19.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Replay/play.imageset/矩形备份 19.pdf -------------------------------------------------------------------------------- /Flat/Assets.xcassets/RoomInfo/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/RoomInfo/delete_room.imageset/delete@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/RoomInfo/delete_room.imageset/delete@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/RoomInfo/delete_room.imageset/delete@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/RoomInfo/delete_room.imageset/delete@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/RoomInfo/room_copy.imageset/copy@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/RoomInfo/room_copy.imageset/copy@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/RoomInfo/room_copy.imageset/copy@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/RoomInfo/room_copy.imageset/copy@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/RoomInfo/room_info_detail.imageset/矩形备份 24@2x(2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/RoomInfo/room_info_detail.imageset/矩形备份 24@2x(2).png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/RoomInfo/room_info_detail.imageset/矩形备份 24@3x(2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/RoomInfo/room_info_detail.imageset/矩形备份 24@3x(2).png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/RoomInfo/room_number.imageset/编组 4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/RoomInfo/room_number.imageset/编组 4.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/RoomInfo/room_number.imageset/编组 4@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/RoomInfo/room_number.imageset/编组 4@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/RoomInfo/room_number.imageset/编组 4@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/RoomInfo/room_number.imageset/编组 4@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/RoomInfo/room_status.imageset/previous备份 27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/RoomInfo/room_status.imageset/previous备份 27.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/RoomInfo/room_status.imageset/previous备份 27@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/RoomInfo/room_status.imageset/previous备份 27@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/RoomInfo/room_status.imageset/previous备份 27@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/RoomInfo/room_status.imageset/previous备份 27@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/RoomInfo/room_time.imageset/编组 10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/RoomInfo/room_time.imageset/编组 10.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/RoomInfo/room_time.imageset/编组 10@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/RoomInfo/room_time.imageset/编组 10@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/RoomInfo/room_time.imageset/编组 10@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/RoomInfo/room_time.imageset/编组 10@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/RoomInfo/room_type.imageset/编组备份 10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/RoomInfo/room_type.imageset/编组备份 10.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/RoomInfo/room_type.imageset/编组备份 10@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/RoomInfo/room_type.imageset/编组备份 10@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/RoomInfo/room_type.imageset/编组备份 10@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/RoomInfo/room_type.imageset/编组备份 10@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Rtc/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Rtc/camera_off.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Group 806.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Rtc/camera_on.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "camera.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Rtc/expand.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "videoUnfold.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Rtc/layout_reset.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "record.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Rtc/mic_off.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Group 951.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Rtc/mic_on.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "microphone.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Rtc/microphone_volume.imageset/microphone@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Rtc/microphone_volume.imageset/microphone@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Rtc/microphone_volume.imageset/microphone@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Rtc/microphone_volume.imageset/microphone@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Rtc/mute_all.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "microphone.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Rtc/narrow.imageset/矩形备份 24@2x(1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Rtc/narrow.imageset/矩形备份 24@2x(1).png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Rtc/narrow.imageset/矩形备份 24@3x(1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Rtc/narrow.imageset/矩形备份 24@3x(1).png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Rtc/rewards.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "record (1).pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Rtc/silence.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "编组 4.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Rtc/whiteboard_permission_off.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "record.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Rtc/whiteboard_permission_on.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "record.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/about_us.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "userGroup.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/binding_types/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/binding_types/account_apple.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "编组 2@2x-1.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "编组 2@3x-1.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/binding_types/account_apple.imageset/编组 2@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Setting/binding_types/account_apple.imageset/编组 2@2x-1.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/binding_types/account_apple.imageset/编组 2@3x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Setting/binding_types/account_apple.imageset/编组 2@3x-1.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/binding_types/account_email.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "whiteboard@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "whiteboard@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/binding_types/account_email.imageset/whiteboard@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Setting/binding_types/account_email.imageset/whiteboard@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/binding_types/account_email.imageset/whiteboard@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Setting/binding_types/account_email.imageset/whiteboard@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/binding_types/account_github.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "编组 2@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "编组 2@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/binding_types/account_github.imageset/编组 2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Setting/binding_types/account_github.imageset/编组 2@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/binding_types/account_github.imageset/编组 2@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Setting/binding_types/account_github.imageset/编组 2@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/binding_types/account_google.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "编组 2@2x-2.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "编组 2@3x-2.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/binding_types/account_google.imageset/编组 2@2x-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Setting/binding_types/account_google.imageset/编组 2@2x-2.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/binding_types/account_google.imageset/编组 2@3x-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Setting/binding_types/account_google.imageset/编组 2@3x-2.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/binding_types/account_phone.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "phone@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "phone@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/binding_types/account_phone.imageset/phone@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Setting/binding_types/account_phone.imageset/phone@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/binding_types/account_phone.imageset/phone@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Setting/binding_types/account_phone.imageset/phone@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/binding_types/account_wechat.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "Group 875@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "Group 875@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/binding_types/account_wechat.imageset/Group 875@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Setting/binding_types/account_wechat.imageset/Group 875@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/binding_types/account_wechat.imageset/Group 875@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Setting/binding_types/account_wechat.imageset/Group 875@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/cancellation.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "logoff.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/export.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "exit.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/language.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "language.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/logout.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "exit.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/message.imageset/invite备份@2x(2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Setting/message.imageset/invite备份@2x(2).png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/message.imageset/invite备份@3x(2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Setting/message.imageset/invite备份@3x(2).png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/personal_collect.imageset/exit@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Setting/personal_collect.imageset/exit@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/personal_collect.imageset/exit@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Setting/personal_collect.imageset/exit@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/profile.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Group 1321.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/rocket.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Group 1272.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/security.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "security@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "security@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/security.imageset/security@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Setting/security.imageset/security@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/security.imageset/security@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Setting/security.imageset/security@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/setting.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "编组 5.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/theme.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "theme.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/third_share.imageset/exit@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Setting/third_share.imageset/exit@2x-1.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/third_share.imageset/exit@3x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Setting/third_share.imageset/exit@3x-1.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/update_password.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "whiteboard@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "whiteboard@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/update_password.imageset/whiteboard@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Setting/update_password.imageset/whiteboard@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/update_password.imageset/whiteboard@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Setting/update_password.imageset/whiteboard@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/update_version.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "circleInfoOutlined.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/videoCollect.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "Frame@2x.png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "Frame@3x.png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/videoCollect.imageset/Frame@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Setting/videoCollect.imageset/Frame@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Setting/videoCollect.imageset/Frame@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Setting/videoCollect.imageset/Frame@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/SideBar/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/SideBar/side_bar_fold.imageset/Group 425@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/SideBar/side_bar_fold.imageset/Group 425@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/SideBar/side_bar_fold.imageset/Group 425@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/SideBar/side_bar_fold.imageset/Group 425@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/SideBar/side_cloud.imageset/cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/SideBar/side_cloud.imageset/cloud.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/SideBar/side_cloud.imageset/cloud@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/SideBar/side_cloud.imageset/cloud@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/SideBar/side_cloud.imageset/cloud@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/SideBar/side_cloud.imageset/cloud@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/SideBar/side_cloud_filled.imageset/cloudFilled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/SideBar/side_cloud_filled.imageset/cloudFilled.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/SideBar/side_cloud_filled.imageset/cloudFilled@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/SideBar/side_cloud_filled.imageset/cloudFilled@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/SideBar/side_cloud_filled.imageset/cloudFilled@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/SideBar/side_cloud_filled.imageset/cloudFilled@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/SideBar/side_home.imageset/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/SideBar/side_home.imageset/home.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/SideBar/side_home.imageset/home@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/SideBar/side_home.imageset/home@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/SideBar/side_home.imageset/home@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/SideBar/side_home.imageset/home@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/SideBar/side_home_filled.imageset/homeFilled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/SideBar/side_home_filled.imageset/homeFilled.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/SideBar/side_home_filled.imageset/homeFilled@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/SideBar/side_home_filled.imageset/homeFilled@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/SideBar/side_home_filled.imageset/homeFilled@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/SideBar/side_home_filled.imageset/homeFilled@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Split/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Split/split_empty.imageset/Union@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Split/split_empty.imageset/Union@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Split/split_empty.imageset/Union@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Split/split_empty.imageset/Union@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/hideSide.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "hideSide.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/hideSide.imageset/hideSide.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Whiteboard/hideSide.imageset/hideSide.pdf -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/scene_new.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "编组 11.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/scene_next.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "previous备份 20.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/scene_previous.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "previous备份 18.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/small_arr_down.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "filename" : "矩形@2x(16).png", 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "filename" : "矩形@3x(16).png", 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/small_arr_down.imageset/矩形@2x(16).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Whiteboard/small_arr_down.imageset/矩形@2x(16).png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/small_arr_down.imageset/矩形@3x(16).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Whiteboard/small_arr_down.imageset/矩形@3x(16).png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/small_arr_top.imageset/矩形@2x(14).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Whiteboard/small_arr_top.imageset/矩形@2x(14).png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/small_arr_top.imageset/矩形@3x(14).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Whiteboard/small_arr_top.imageset/矩形@3x(14).png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/subops_more.imageset/矩形@2x(13).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Whiteboard/subops_more.imageset/矩形@2x(13).png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/subops_more.imageset/矩形@3x(13).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Whiteboard/subops_more.imageset/矩形@3x(13).png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_apps.imageset/apps@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Whiteboard/whiteboard_apps.imageset/apps@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_apps.imageset/apps@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Whiteboard/whiteboard_apps.imageset/apps@3x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_arrow-selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "arrowBolded.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "filename" : "arrowBolded 1.pdf", 9 | "idiom" : "iphone" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | }, 16 | "properties" : { 17 | "template-rendering-intent" : "template" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_arrow.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "arrow.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "filename" : "arrow 1.pdf", 9 | "idiom" : "iphone" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | }, 16 | "properties" : { 17 | "template-rendering-intent" : "template" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_clean.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "clean.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "filename" : "clean 1.pdf", 9 | "idiom" : "iphone" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | }, 16 | "properties" : { 17 | "template-rendering-intent" : "template" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_clicker-selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "clickFilled.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "filename" : "clickFilled 1.pdf", 9 | "idiom" : "iphone" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | }, 16 | "properties" : { 17 | "template-rendering-intent" : "template" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_clicker.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "click.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "filename" : "click 1.pdf", 9 | "idiom" : "iphone" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | }, 16 | "properties" : { 17 | "template-rendering-intent" : "template" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_ellipse-selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "circleBolded.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "filename" : "circleBolded 1.pdf", 9 | "idiom" : "iphone" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | }, 16 | "properties" : { 17 | "template-rendering-intent" : "template" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_ellipse.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "circle.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "filename" : "circle 1.pdf", 9 | "idiom" : "iphone" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | }, 16 | "properties" : { 17 | "template-rendering-intent" : "template" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_eraser-selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "eraserFilled@2x.png", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "filename" : "eraserFilled (1).pdf", 9 | "idiom" : "iphone" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | }, 16 | "properties" : { 17 | "template-rendering-intent" : "template" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_eraser-selected.imageset/eraserFilled@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Whiteboard/whiteboard_eraser-selected.imageset/eraserFilled@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_eraser.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "eraser@2x.png", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "filename" : "eraser 1.pdf", 9 | "idiom" : "iphone" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | }, 16 | "properties" : { 17 | "template-rendering-intent" : "template" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_eraser.imageset/eraser@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/Whiteboard/whiteboard_eraser.imageset/eraser@2x.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_pencil-selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "pencilFilled.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "filename" : "pencilFilled 1.pdf", 9 | "idiom" : "iphone" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | }, 16 | "properties" : { 17 | "template-rendering-intent" : "template" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_pencil.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "pencil.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "filename" : "pencil 1.pdf", 9 | "idiom" : "iphone" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | }, 16 | "properties" : { 17 | "template-rendering-intent" : "template" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_pencilEraser-selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "eraserFilled.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "filename" : "eraserFilled 1.pdf", 9 | "idiom" : "iphone" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | }, 16 | "properties" : { 17 | "template-rendering-intent" : "template" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_pencilEraser.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "eraser.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "filename" : "eraser 1.pdf", 9 | "idiom" : "iphone" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | }, 16 | "properties" : { 17 | "template-rendering-intent" : "template" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_rectangle-selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "rectangle Bolded.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "filename" : "rectangle Bolded 1.pdf", 9 | "idiom" : "iphone" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | }, 16 | "properties" : { 17 | "template-rendering-intent" : "template" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_rectangle.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "rectangle.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "filename" : "rectangle 1.pdf", 9 | "idiom" : "iphone" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | }, 16 | "properties" : { 17 | "template-rendering-intent" : "template" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_redo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "undo.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "filename" : "undo 1.pdf", 9 | "idiom" : "iphone" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | }, 16 | "properties" : { 17 | "template-rendering-intent" : "template" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_remove_selection.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "delete.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "filename" : "delete 1.pdf", 9 | "idiom" : "iphone" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | }, 16 | "properties" : { 17 | "template-rendering-intent" : "template" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_selector-selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "selectorFilled.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "filename" : "selectorFilled 1.pdf", 9 | "idiom" : "iphone" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | }, 16 | "properties" : { 17 | "template-rendering-intent" : "template" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_selector.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "selector.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "filename" : "selector 1.pdf", 9 | "idiom" : "iphone" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | }, 16 | "properties" : { 17 | "template-rendering-intent" : "template" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_shape_pentagram-selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "starBolded.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_shape_pentagram.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "star.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_shape_rhombus-selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "rhombusBolded.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_shape_rhombus.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "rhombus.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_shape_speechBalloon-selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "balloonBolded.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_shape_speechBalloon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "balloon.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_shape_triangle-selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "triangleBolded.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_shape_triangle.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "triangle.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_straight-selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "lineBolded.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_straight.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "line.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_text-selected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "textFilled.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_text.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "text.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "template" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/Whiteboard/whiteboard_undo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "redo.pdf", 5 | "idiom" : "universal" 6 | }, 7 | { 8 | "filename" : "redo 1.pdf", 9 | "idiom" : "iphone" 10 | } 11 | ], 12 | "info" : { 13 | "author" : "xcode", 14 | "version" : 1 15 | }, 16 | "properties" : { 17 | "template-rendering-intent" : "template" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/apps/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/apps/apps_Countdown.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "clock.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/apps/apps_Dice.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "dot.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/apps/apps_GeoGebra.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "geo.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/apps/apps_MindMap.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "pipeline.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/apps/apps_Monaco.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "code.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/apps/apps_Monaco.imageset/code.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/apps/apps_Monaco.imageset/code.pdf -------------------------------------------------------------------------------- /Flat/Assets.xcassets/apps/apps_Quill.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "text.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/apps/apps_Selector.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "question.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/apps/save_whiteboard.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "download.pdf", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/lottie/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/lottie/img_0.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img_0.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/lottie/img_0.imageset/img_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/lottie/img_0.imageset/img_0.png -------------------------------------------------------------------------------- /Flat/Assets.xcassets/lottie/img_1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "img_1.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Flat/Assets.xcassets/lottie/img_1.imageset/img_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Assets.xcassets/lottie/img_1.imageset/img_1.png -------------------------------------------------------------------------------- /Flat/EnvConfigs/Env+Whiteboard.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Env+Whiteboard.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2023/8/21. 6 | // Copyright © 2023 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension Env { 12 | var createWhiteboardRegion: FlatRegion { 13 | FlatRegion(rawValue: value(for: "CREATE_WHITEBOARD_REGION") as String) ?? .CN_HZ 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Extensions/Array/Array+Extension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Array+Extension.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/11/9. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension Array where Element: Equatable { 12 | func removeDuplicate() -> [Element] { 13 | var new: [Element] = [] 14 | for item in self { 15 | if !new.contains(item) { 16 | new.append(item) 17 | } 18 | } 19 | return new 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Flat/Extensions/ConvinceInit/ConvinceInit.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ConvinceInit.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2022/8/31. 6 | // Copyright © 2022 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension UIEdgeInsets { 12 | init(inset: CGFloat) { 13 | self.init(top: inset, left: inset, bottom: inset, right: inset) 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Extensions/Date/Date+Extension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Date+Extension.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/10/19. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension Date { 12 | func isSameDayTo(_ other: Date) -> Bool { 13 | Calendar.current.dateComponents([.day], from: self, to: other).day == 0 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Extensions/Global.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Global.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2022/8/30. 6 | // Copyright © 2022 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | let commonBorderWidth = 1 / UIScreen.main.scale 12 | 13 | func supportApplePencil() -> Bool { 14 | UIDevice.current.userInterfaceIdiom == .pad 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Extensions/ImportExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ImportExtensions.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2022/1/18. 6 | // Copyright © 2022 agora.io. All rights reserved. 7 | // 8 | 9 | import NSObject_Rx 10 | import SnapKit 11 | -------------------------------------------------------------------------------- /Flat/Extensions/MethodExchange.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MethodExchange.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/12/6. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import ObjectiveC 11 | 12 | func methodExchange(cls: AnyClass, originalSelector: Selector, swizzledSelector: Selector) { 13 | let original = class_getInstanceMethod(cls, originalSelector)! 14 | let target = class_getInstanceMethod(cls, swizzledSelector)! 15 | method_exchangeImplementations(original, target) 16 | } 17 | -------------------------------------------------------------------------------- /Flat/Extensions/Rx/UITextfield+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UITextfield+Rx.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2022/8/23. 6 | // Copyright © 2022 agora.io. All rights reserved. 7 | // 8 | 9 | import RxCocoa 10 | import RxSwift 11 | import UIKit 12 | 13 | extension Reactive where Base: UITextField { 14 | var editing: Driver { 15 | base.rx 16 | .controlEvent([.editingDidBegin, .editingDidEnd]) 17 | .map { _ in self.base.isEditing } 18 | .asDriver(onErrorJustReturn: false) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Flat/Extensions/String/String+Error.swift: -------------------------------------------------------------------------------- 1 | // 2 | // String+Error.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/10/20. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension String: LocalizedError { 12 | public var errorDescription: String? { self } 13 | } 14 | -------------------------------------------------------------------------------- /Flat/Extensions/UIImage/UIImage+Appliance.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+Appliance.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/10/19. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import Whiteboard 11 | 12 | extension UIImage { 13 | convenience init?(appliance: WhiteApplianceNameKey) { 14 | self.init(named: "whiteboard_\(appliance.rawValue)") 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Flat/Extensions/UIView/CACornerMask+Extension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CACornerMask.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/10/20. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | extension CACornerMask { 12 | static var all: CACornerMask { 13 | [.layerMinXMinYCorner, .layerMinXMaxYCorner, 14 | .layerMaxXMaxYCorner, .layerMaxXMinYCorner] 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Flat/Extensions/UIView/UIView+TableViewHeader.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+TableViewHeader.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2022/9/23. 6 | // Copyright © 2022 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension UIView { 12 | static func minHeaderView() -> UIView { 13 | .init(frame: .init(x: 0, y: 0, width: 0, height: 0.001)) 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Flat/FlatNon_Sign.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Flat/Models/Agora/AgoraMessage.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AgoraMessage.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/10/22. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct AgoraMessage: Decodable { 12 | let message: String 13 | let sourceUserId: String 14 | let date: Date 15 | 16 | enum CodingKeys: String, CodingKey { 17 | case message = "payload" 18 | case sourceUserId = "src" 19 | case date = "ms" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Flat/Models/Flat/ClassRoomType+AgoraVideoSteamType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ClassRoomType+AgoraVideoSteamType.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/11/29. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import AgoraRtcKit 10 | import Foundation 11 | 12 | extension ClassRoomType { 13 | func thumbnailStreamType(isUserTeacher: Bool) -> AgoraVideoStreamType { 14 | switch self { 15 | case .oneToOne: return .high 16 | default: 17 | return isUserTeacher ? .high : .low 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Flat/Models/Flat/DeviceState.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DeviceState.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2022/8/3. 6 | // Copyright © 2022 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct DeviceState: Codable { 12 | let mic: Bool 13 | let camera: Bool 14 | } 15 | -------------------------------------------------------------------------------- /Flat/Models/Flat/JoinRoomInfo.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RoomJoinInfo.swift 3 | // flat 4 | // 5 | // Created by xuyunshi on 2021/10/15. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct JoinRoomInfo: Decodable { 12 | let roomUUID: String 13 | let periodicUUID: String? 14 | let inviteCode: String 15 | } 16 | -------------------------------------------------------------------------------- /Flat/Models/Flat/ShareScreenInfo.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RTCShareScreen.swift 3 | // flat 4 | // 5 | // Created by xuyunshi on 2021/10/15. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct ShareScreenInfo: Codable { 12 | let uid: Int 13 | let token: String 14 | } 15 | -------------------------------------------------------------------------------- /Flat/Models/Flat/UploadInfo.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UploadInfo.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/12/7. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct UploadInfo: Codable { 12 | let fileUUID: String 13 | let ossFilePath: String 14 | let ossDomain: URL 15 | let policy: String 16 | let signature: String 17 | } 18 | -------------------------------------------------------------------------------- /Flat/Models/Flat/User.swift: -------------------------------------------------------------------------------- 1 | // 2 | // User.swift 3 | // flat 4 | // 5 | // Created by xuyunshi on 2021/10/14. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct User: Codable { 12 | var name: String 13 | var avatar: String 14 | let userUUID: String 15 | var token: String 16 | var hasPhone: Bool 17 | var hasPassword: Bool 18 | 19 | var avatarUrl: URL? { 20 | URL(string: avatar) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Flat/Modules/ClassRoom/ClassroomConfig.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ClassroomConfig.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2023/2/14. 6 | // Copyright © 2023 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct ClassroomDefaultConfig { 12 | static let usingFrontCamera = true 13 | static let frontCameraMirror = true 14 | } 15 | -------------------------------------------------------------------------------- /Flat/Modules/ClassRoom/ClassroomLayout/ClassRoomLayoutRatioConfig.swift: -------------------------------------------------------------------------------- 1 | // 2 | // WhiteboardRatioConfig.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/12/14. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// Width / Height 12 | struct ClassRoomLayoutRatioConfig { 13 | static let whiteboardRatio = CGFloat(9.0 / 16) 14 | static let rtcItemRatio = CGFloat(84 / 112.0) 15 | static let rtcPreviewRatio = CGFloat(9.0 / 16.0) 16 | } 17 | -------------------------------------------------------------------------------- /Flat/Modules/ClassRoom/Rtm/Command/RoomExpireInfo.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | enum PaidLevel: Int, Codable { 4 | case free = 0 5 | case paidLevel1 6 | 7 | var localizedString: String { 8 | switch self { 9 | case .free: 10 | return localizeStrings("FreeVersion") 11 | case .paidLevel1: 12 | return localizeStrings("PaidVersion") 13 | } 14 | } 15 | } 16 | 17 | struct RoomExpireInfo: Codable { 18 | let roomLevel: PaidLevel 19 | let expireAt: Date 20 | } 21 | -------------------------------------------------------------------------------- /Flat/Modules/CloudStorage/Preview/AnyPreview.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AnyPreview.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/12/8. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import QuickLook 11 | 12 | class AnyPreview: NSObject, QLPreviewItem { 13 | let previewItemURL: URL? 14 | let previewItemTitle: String? 15 | init(previewItemURL: URL, title: String) { 16 | self.previewItemURL = previewItemURL 17 | previewItemTitle = title 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Modules/Login/LoginViewController+Debug.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LoginViewController+Debug.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2022/2/14. 6 | // Copyright © 2022 agora.io. All rights reserved. 7 | // 8 | 9 | extension LoginViewController { 10 | @objc func debugLogin() { 11 | 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Flat/Modules/Replay/VideoPreviewView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // VideoPreviewView.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2022/9/15. 6 | // Copyright © 2022 agora.io. All rights reserved. 7 | // 8 | 9 | import AVFoundation 10 | import UIKit 11 | 12 | class VideoPreviewView: UIView { 13 | override class var layerClass: AnyClass { AVPlayerLayer.self } 14 | } 15 | -------------------------------------------------------------------------------- /Flat/Modules/Setting/ContactUs/en.lproj/ContactUsViewController.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UIButton"; configuration.title = "Submit"; ObjectID = "WiE-Up-Itd"; */ 3 | "WiE-Up-Itd.configuration.title" = "Submit"; 4 | 5 | /* Class = "UIButton"; normalTitle = "Button"; ObjectID = "WiE-Up-Itd"; */ 6 | "WiE-Up-Itd.normalTitle" = "Submit"; 7 | -------------------------------------------------------------------------------- /Flat/Modules/Setting/ContactUs/zh-Hans.lproj/ContactUsViewController.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UIButton"; configuration.title = "Submit"; ObjectID = "WiE-Up-Itd"; */ 3 | "WiE-Up-Itd.configuration.title" = "Submit"; 4 | 5 | /* Class = "UIButton"; normalTitle = "Button"; ObjectID = "WiE-Up-Itd"; */ 6 | "WiE-Up-Itd.normalTitle" = "提交"; 7 | -------------------------------------------------------------------------------- /Flat/Modules/Shortcuts/Interface/GlobalKeyboardShortcutRespondable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GlobalKeyboardShortcutRespondable.swift 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2023/5/15. 6 | // Copyright © 2023 agora.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | @objc 12 | protocol GlobalKeyboardShortcutRespondable: AnyObject { 13 | /// Mapped to Command-N 14 | @objc 15 | optional func createNewItem(_: Any?) 16 | 17 | @objc 18 | optional func escape(_: Any?) 19 | } 20 | -------------------------------------------------------------------------------- /Flat/Vendor/WechatOpenSDK-XCFramework.xcframework/ios-arm64_armv7/libWechatOpenSDK.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Vendor/WechatOpenSDK-XCFramework.xcframework/ios-arm64_armv7/libWechatOpenSDK.a -------------------------------------------------------------------------------- /Flat/Vendor/WechatOpenSDK-XCFramework.xcframework/ios-arm64_i386_x86_64-simulator/libWechatOpenSDK.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Vendor/WechatOpenSDK-XCFramework.xcframework/ios-arm64_i386_x86_64-simulator/libWechatOpenSDK.a -------------------------------------------------------------------------------- /Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/ios-arm64_armv7/AgoraRtmKit.framework/AgoraRtmKit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/ios-arm64_armv7/AgoraRtmKit.framework/AgoraRtmKit -------------------------------------------------------------------------------- /Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/ios-arm64_armv7/AgoraRtmKit.framework/Headers/AgoraRtmKit.h: -------------------------------------------------------------------------------- 1 | // 2 | // AgoraRtmKit.h 3 | // AgoraRtmKit 4 | // 5 | // Copyright (c) 2018 Agora. All rights reserved. 6 | // 7 | 8 | #import "AgoraRtmClientKit.h" 9 | #import "AgoraRtmEnumerates.h" 10 | #import "AgoraRtmObjects.h" 11 | -------------------------------------------------------------------------------- /Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/ios-arm64_armv7/AgoraRtmKit.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/ios-arm64_armv7/AgoraRtmKit.framework/Info.plist -------------------------------------------------------------------------------- /Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/ios-arm64_armv7/AgoraRtmKit.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module AgoraRtmKit { 2 | header "AgoraRtmKit.h" 3 | header "AgoraRtmClientKit.h" 4 | header "AgoraRtmEnumerates.h" 5 | header "AgoraRtmObjects.h" 6 | header "AgoraRtmKit.h" 7 | header "AgoraRtmClientKit.h" 8 | header "AgoraRtmEnumerates.h" 9 | header "AgoraRtmObjects.h" 10 | export * 11 | } 12 | -------------------------------------------------------------------------------- /Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/ios-arm64_x86_64-simulator/AgoraRtmKit.framework/AgoraRtmKit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/ios-arm64_x86_64-simulator/AgoraRtmKit.framework/AgoraRtmKit -------------------------------------------------------------------------------- /Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/ios-arm64_x86_64-simulator/AgoraRtmKit.framework/Headers/AgoraRtmKit.h: -------------------------------------------------------------------------------- 1 | // 2 | // AgoraRtmKit.h 3 | // AgoraRtmKit 4 | // 5 | // Copyright (c) 2018 Agora. All rights reserved. 6 | // 7 | 8 | #import "AgoraRtmClientKit.h" 9 | #import "AgoraRtmEnumerates.h" 10 | #import "AgoraRtmObjects.h" 11 | -------------------------------------------------------------------------------- /Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/ios-arm64_x86_64-simulator/AgoraRtmKit.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/ios-arm64_x86_64-simulator/AgoraRtmKit.framework/Info.plist -------------------------------------------------------------------------------- /Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/ios-arm64_x86_64-simulator/AgoraRtmKit.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module AgoraRtmKit { 2 | header "AgoraRtmKit.h" 3 | header "AgoraRtmClientKit.h" 4 | header "AgoraRtmEnumerates.h" 5 | header "AgoraRtmObjects.h" 6 | header "AgoraRtmKit.h" 7 | header "AgoraRtmClientKit.h" 8 | header "AgoraRtmEnumerates.h" 9 | header "AgoraRtmObjects.h" 10 | export * 11 | } 12 | -------------------------------------------------------------------------------- /Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/macos-arm64_x86_64/AgoraRtmKit.framework/AgoraRtmKit: -------------------------------------------------------------------------------- 1 | Versions/Current/AgoraRtmKit -------------------------------------------------------------------------------- /Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/macos-arm64_x86_64/AgoraRtmKit.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/macos-arm64_x86_64/AgoraRtmKit.framework/Modules: -------------------------------------------------------------------------------- 1 | Versions/Current/Modules -------------------------------------------------------------------------------- /Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/macos-arm64_x86_64/AgoraRtmKit.framework/Resources: -------------------------------------------------------------------------------- 1 | Versions/Current/Resources -------------------------------------------------------------------------------- /Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/macos-arm64_x86_64/AgoraRtmKit.framework/Versions/A/AgoraRtmKit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/macos-arm64_x86_64/AgoraRtmKit.framework/Versions/A/AgoraRtmKit -------------------------------------------------------------------------------- /Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/macos-arm64_x86_64/AgoraRtmKit.framework/Versions/A/Headers/AgoraRtmKit.h: -------------------------------------------------------------------------------- 1 | // 2 | // AgoraRtmKit.h 3 | // AgoraRtmKit 4 | // 5 | // Copyright (c) 2018 Agora. All rights reserved. 6 | // 7 | 8 | #import "AgoraRtmClientKit.h" 9 | #import "AgoraRtmEnumerates.h" 10 | #import "AgoraRtmObjects.h" 11 | -------------------------------------------------------------------------------- /Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/macos-arm64_x86_64/AgoraRtmKit.framework/Versions/A/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module AgoraRtmKit { 2 | header "AgoraRtmKit.h" 3 | header "AgoraRtmClientKit.h" 4 | header "AgoraRtmEnumerates.h" 5 | header "AgoraRtmObjects.h" 6 | header "AgoraRtmKit.h" 7 | header "AgoraRtmClientKit.h" 8 | header "AgoraRtmEnumerates.h" 9 | header "AgoraRtmObjects.h" 10 | export * 11 | } 12 | -------------------------------------------------------------------------------- /Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/macos-arm64_x86_64/AgoraRtmKit.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | A -------------------------------------------------------------------------------- /Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/xros-arm64/AgoraRtmKit.framework/AgoraRtmKit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/xros-arm64/AgoraRtmKit.framework/AgoraRtmKit -------------------------------------------------------------------------------- /Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/xros-arm64/AgoraRtmKit.framework/Headers/AgoraRtmKit.h: -------------------------------------------------------------------------------- 1 | // 2 | // AgoraRtmKit.h 3 | // AgoraRtmKit 4 | // 5 | // Copyright (c) 2018 Agora. All rights reserved. 6 | // 7 | 8 | #import "AgoraRtmClientKit.h" 9 | #import "AgoraRtmEnumerates.h" 10 | #import "AgoraRtmObjects.h" 11 | -------------------------------------------------------------------------------- /Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/xros-arm64/AgoraRtmKit.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/xros-arm64/AgoraRtmKit.framework/Info.plist -------------------------------------------------------------------------------- /Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/xros-arm64/AgoraRtmKit.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module AgoraRtmKit { 2 | header "AgoraRtmKit.h" 3 | header "AgoraRtmClientKit.h" 4 | header "AgoraRtmEnumerates.h" 5 | header "AgoraRtmObjects.h" 6 | header "AgoraRtmKit.h" 7 | header "AgoraRtmClientKit.h" 8 | header "AgoraRtmEnumerates.h" 9 | header "AgoraRtmObjects.h" 10 | export * 11 | } 12 | -------------------------------------------------------------------------------- /Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/xros-arm64_x86_64-simulator/AgoraRtmKit.framework/AgoraRtmKit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/xros-arm64_x86_64-simulator/AgoraRtmKit.framework/AgoraRtmKit -------------------------------------------------------------------------------- /Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/xros-arm64_x86_64-simulator/AgoraRtmKit.framework/Headers/AgoraRtmKit.h: -------------------------------------------------------------------------------- 1 | // 2 | // AgoraRtmKit.h 3 | // AgoraRtmKit 4 | // 5 | // Copyright (c) 2018 Agora. All rights reserved. 6 | // 7 | 8 | #import "AgoraRtmClientKit.h" 9 | #import "AgoraRtmEnumerates.h" 10 | #import "AgoraRtmObjects.h" 11 | -------------------------------------------------------------------------------- /Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/xros-arm64_x86_64-simulator/AgoraRtmKit.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/xros-arm64_x86_64-simulator/AgoraRtmKit.framework/Info.plist -------------------------------------------------------------------------------- /Flat/Vendor/rtm_v2.2.1/libs/AgoraRtmKit.xcframework/xros-arm64_x86_64-simulator/AgoraRtmKit.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module AgoraRtmKit { 2 | header "AgoraRtmKit.h" 3 | header "AgoraRtmClientKit.h" 4 | header "AgoraRtmEnumerates.h" 5 | header "AgoraRtmObjects.h" 6 | header "AgoraRtmKit.h" 7 | header "AgoraRtmClientKit.h" 8 | header "AgoraRtmEnumerates.h" 9 | header "AgoraRtmObjects.h" 10 | export * 11 | } 12 | -------------------------------------------------------------------------------- /Flat/Vendor/rtm_v2.2.1/package_size_report.txt: -------------------------------------------------------------------------------- 1 | ios arch framework size_in_ipa(b) raw_size(b) 2 | ios armv7 aosl.Framework 186397 212992 3 | ios armv7 AgoraRtmKit.Framework 5644513 6291456 4 | ios arm64 aosl.Framework 201237 245760 5 | ios arm64 AgoraRtmKit.Framework 5930186 8110080 6 | -------------------------------------------------------------------------------- /Flat/Vendor/rtm_v2.2.1/spec: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /Flat/bridgingHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // bridgingHeader.h 3 | // Flat 4 | // 5 | // Created by xuyunshi on 2021/10/18. 6 | // Copyright © 2021 agora.io. All rights reserved. 7 | // 8 | 9 | 10 | #ifndef bridgingHeader_h 11 | #define bridgingHeader_h 12 | 13 | 14 | #endif /* bridgingHeader_h */ 15 | 16 | #if __has_include("WXApi.h") 17 | #import "WXApi.h" 18 | #else 19 | #endif 20 | -------------------------------------------------------------------------------- /Flat/en.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Flat/en.lproj/Main.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Flat/reward.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/reward.mp3 -------------------------------------------------------------------------------- /Flat/whiteboard_rebuild.bundle/foo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/Flat/whiteboard_rebuild.bundle/foo -------------------------------------------------------------------------------- /Flat/zh-Hans.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Flat/zh-Hans.lproj/Main.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /archive.sh: -------------------------------------------------------------------------------- 1 | buildname=$(date +%s) 2 | archivename=$buildname.xcarchive 3 | archivepath=./Archive/$archivename 4 | ipapath=./iPa 5 | scheme=$1 6 | configuration=$2 7 | exportOptionsPlist=$3 8 | xcodebuild archive -workspace Flat.xcworkspace -scheme $scheme -configuration $configuration -archivePath $archivepath -destination generic/platform=iOS 9 | xcodebuild -exportArchive -archivePath $archivepath -exportOptionsPlist $exportOptionsPlist -exportPath $ipapath 10 | -------------------------------------------------------------------------------- /art/flat-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/art/flat-logo.png -------------------------------------------------------------------------------- /art/flat-showcase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/art/flat-showcase.png -------------------------------------------------------------------------------- /blackduck.sh: -------------------------------------------------------------------------------- 1 | export BD_HUB_TOKEN=$1 2 | DATE=$(date +"%Y-%m-%d-%H-%m-%S-%s") 3 | 4 | echo $2 |awk '{run=$0;system(run)}' 5 | -------------------------------------------------------------------------------- /test.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netless-io/flat-iOS/a01e14c2110075a870fde971154d39d41c57aa29/test.log -------------------------------------------------------------------------------- /test.sh: -------------------------------------------------------------------------------- 1 | SCHEME=$1 2 | OUTPATH=$2 3 | xcodebuild \ 4 | -workspace Flat.xcworkspace \ 5 | -scheme $SCHEME \ 6 | -sdk iphonesimulator \ 7 | -destination 'platform=iOS Simulator,name=iPhoneTest' \ 8 | test | xcbeautify > $OUTPATH 9 | PASSSTR='Test Succeeded' 10 | TEST_RESULT=$(cat $OUTPATH) 11 | ISPASS=$(echo $TEST_RESULT | grep "${PASSSTR}") 12 | if [[ "$ISPASS" != "" ]] 13 | then 14 | echo "TEST Succeeded" 15 | else 16 | echo "TEST FAIL SEE $OUTPATH" 17 | exit 1 18 | fi -------------------------------------------------------------------------------- /upload.sh: -------------------------------------------------------------------------------- 1 | export PATH=$PATH:/Applications/Xcode.app/Contents/Developer/usr/bin/ 2 | cd iPa 3 | IPA=$(find . -name '*.ipa') 4 | altool --upload-app -t ios -f $IPA -u $1 -p $2 --------------------------------------------------------------------------------