├── education_web ├── src │ ├── components │ │ ├── video.scss │ │ ├── custom-button.tsx │ │ ├── github-icon │ │ │ └── index.tsx │ │ ├── icon.tsx │ │ ├── lang-select.tsx │ │ ├── role-radio.scss │ │ └── volume │ │ │ └── index.scss │ ├── assets │ │ ├── github.png │ │ ├── cover-cn.png │ │ ├── cover-us.png │ │ ├── hand_tool.png │ │ ├── icon-move.png │ │ ├── cancel-share.png │ │ ├── icon-down@2x.png │ │ ├── icon-end@2x.png │ │ ├── icon-exit@2x.png │ │ ├── icon-hand@2x.png │ │ ├── icon-home@2x.png │ │ ├── icon-left@2x.png │ │ ├── icon-loading.png │ │ ├── icon-max@2x.png │ │ ├── icon-min@2x.png │ │ ├── icon-next@2x.png │ │ ├── icon-play@2x.png │ │ ├── icon-ppt@2x.png │ │ ├── icon-prev@2x.png │ │ ├── icon-stop@2x.png │ │ ├── icon-time@2x.png │ │ ├── pic-index@2x.png │ │ ├── pic-student.png │ │ ├── pic-teacher.png │ │ ├── Rectangle-2@2x.png │ │ ├── Rectangle-6@2x.png │ │ ├── icon-clickable.png │ │ ├── icon-delete@2x.png │ │ ├── icon-first@2x.png │ │ ├── icon-folder@2x.png │ │ ├── icon-pause@2x.png │ │ ├── icon-record@2x.png │ │ ├── icon-right@2x.png │ │ ├── icon-share@2x.png │ │ ├── logo-agora@2x.png │ │ ├── pic-message@2x.png │ │ ├── signal-bad@2x.png │ │ ├── signal-good@2x.png │ │ ├── tool-circle@2x.png │ │ ├── tool-square@2x.png │ │ ├── icon-camera-on@2x.png │ │ ├── icon-caution@2x.png │ │ ├── icon-connect-s@2x.png │ │ ├── icon-connect@2x.png │ │ ├── icon-hand-disable.png │ │ ├── icon-lock-board.png │ │ ├── icon-play-big@2x.png │ │ ├── icon-setting@2x.png │ │ ├── icon-share-white.png │ │ ├── icon-signal01@2x.png │ │ ├── icon-signal02@2x.png │ │ ├── icon-signal03@2x.png │ │ ├── icon-smaller@2x.png │ │ ├── icon-speaker-off.png │ │ ├── icon-speaker-on.png │ │ ├── icon-speaker01@2x.png │ │ ├── icon-speaker02@2x.png │ │ ├── icon-speaker03-s.png │ │ ├── icon-speaker03@2x.png │ │ ├── icon-speaker@2x.png │ │ ├── icon-success@2x.png │ │ ├── media-covert-pic.png │ │ ├── pic-no-video@2x.png │ │ ├── signal-normal@2x.png │ │ ├── whiteboard_file.png │ │ ├── Rectangle-6-Copy@2x.png │ │ ├── icon-camera-off@2x.png │ │ ├── icon-cameraoff-s@2x.png │ │ ├── icon-cameraon-s@2x.png │ │ ├── icon-close-gray@2x.png │ │ ├── icon-close-white@2x.png │ │ ├── icon-disconnect@2x.png │ │ ├── icon-hand-white@2x.png │ │ ├── icon-message-all@2x.png │ │ ├── icon-message-off@2x.png │ │ ├── icon-message-on@2x.png │ │ ├── icon-microphone-off.png │ │ ├── icon-microphone-on.png │ │ ├── icon-microphone@2x.png │ │ ├── icon-open-folder@2x.png │ │ ├── icon-share-white@2x.png │ │ ├── icon-speaker01-s@2x.png │ │ ├── icon-speaker02-s@2x.png │ │ ├── icon-speaker03-s@2x.png │ │ ├── icon-upload-file@2x.png │ │ ├── icon-upload-log@2x.png │ │ ├── media-upload-pic@2x.png │ │ ├── Rectangle-6-Copy-6@2x.png │ │ ├── Rectangle-6-Copy-7@2x.png │ │ ├── Rectangle-6-Copy-8@2x.png │ │ ├── Rectangle-6-Copy-9@2x.png │ │ ├── icon-camera-on-blue@2x.png │ │ ├── icon-dosconnect-s@2x.png │ │ ├── icon-handup-active@2x.png │ │ ├── icon-handup-default@2x.png │ │ ├── icon-handup-hover@2x.png │ │ ├── icon-sidebar-active@2x.png │ │ ├── icon-sidebar-hover@2x.png │ │ ├── icon-speakeroff-s@2x.png │ │ ├── media-covert-dynamic.png │ │ ├── icon-camera-off-blue@2x.png │ │ ├── icon-resource-menu-close.png │ │ ├── icon-sidebar-deafult@2x.png │ │ ├── icon-speakeroff-dark@2x.png │ │ ├── icon-microphone-off-blue@2x.png │ │ ├── icon-microphone-on-blue@2x.png │ │ ├── icon-sidebar-off-active@2x.png │ │ ├── icon-sidebar-off-deafult@2x.png │ │ ├── icon-sidebar-off-hover@2x.png │ │ ├── icon-speaker01-disable@2x.png │ │ ├── icon-speaker02-disable@2x.png │ │ └── icon-speaker03-disable@2x.png │ ├── utils │ │ ├── agora-web-player │ │ │ └── index.css │ │ ├── LogUploader │ │ │ ├── db.ts │ │ │ └── log.worker.ts │ │ ├── platform.ts │ │ ├── api │ │ │ └── index.ts │ │ └── config.ts │ └── pages │ │ └── 404.scss ├── icons │ └── favicon.png ├── public │ └── favicon.png ├── .babelrc └── .gitignore ├── education_Android └── AgoraEducation │ ├── app │ ├── .gitignore │ └── src │ │ ├── main │ │ ├── res │ │ │ ├── drawable-xhdpi │ │ │ │ ├── ic_back.png │ │ │ │ ├── ic_down.png │ │ │ │ ├── ic_end.png │ │ │ │ ├── ic_hide.png │ │ │ │ ├── ic_next.png │ │ │ │ ├── ic_play.png │ │ │ │ ├── ic_prev.png │ │ │ │ ├── ic_show.png │ │ │ │ ├── ic_time.png │ │ │ │ ├── ic_close.png │ │ │ │ ├── ic_first.png │ │ │ │ ├── ic_pause.png │ │ │ │ ├── ic_camera_on.png │ │ │ │ ├── ic_hand_down.png │ │ │ │ ├── ic_hand_up.png │ │ │ │ ├── ic_play_big.png │ │ │ │ ├── ic_setting.png │ │ │ │ ├── ic_speaker1.png │ │ │ │ ├── ic_speaker2.png │ │ │ │ ├── ic_speaker3.png │ │ │ │ ├── ic_student.png │ │ │ │ ├── ic_teacher.png │ │ │ │ ├── ic_tool_text.png │ │ │ │ ├── ic_your_name.png │ │ │ │ ├── img_message.png │ │ │ │ ├── ic_camera_off.png │ │ │ │ ├── ic_signal_bad.png │ │ │ │ ├── ic_signal_good.png │ │ │ │ ├── ic_speaker_off.png │ │ │ │ ├── ic_tool_color.png │ │ │ │ ├── ic_tool_eraser.png │ │ │ │ ├── ic_tool_pencil.png │ │ │ │ ├── ic_video_mute.png │ │ │ │ ├── ic_board_disable.png │ │ │ │ ├── ic_board_enable.png │ │ │ │ ├── ic_signal_normal.png │ │ │ │ └── ic_tool_selector.png │ │ │ ├── xml │ │ │ │ ├── network_security_config.xml │ │ │ │ └── file_paths.xml │ │ │ ├── drawable │ │ │ │ ├── bg_dialog.xml │ │ │ │ ├── bg_appliance_view.xml │ │ │ │ ├── bg_radius_5_black_7f.xml │ │ │ │ ├── bg_chat_edit.xml │ │ │ │ ├── ic_float.xml │ │ │ │ ├── ic_camera.xml │ │ │ │ ├── ic_hand.xml │ │ │ │ ├── ic_speaker.xml │ │ │ │ ├── ic_board.xml │ │ │ │ ├── bg_msg_me.xml │ │ │ │ ├── bg_msg_other.xml │ │ │ │ ├── btn_circle_black_79.xml │ │ │ │ ├── btn_circle_44a2fc.xml │ │ │ │ └── btn_circle_f5f7f8.xml │ │ │ ├── values │ │ │ │ └── ids.xml │ │ │ └── layout │ │ │ │ └── fragment_user_list.xml │ │ └── java │ │ │ └── io │ │ │ └── agora │ │ │ └── education │ │ │ ├── service │ │ │ └── bean │ │ │ │ ├── ResponseBody.java │ │ │ │ ├── response │ │ │ │ ├── RoomBoardRes.java │ │ │ │ ├── AppConfigRes.java │ │ │ │ └── RoomRes.java │ │ │ │ └── request │ │ │ │ ├── CoVideoReq.java │ │ │ │ └── ChatReq.java │ │ │ ├── util │ │ │ └── ColorUtil.java │ │ │ └── classroom │ │ │ └── bean │ │ │ └── JsonBean.java │ │ ├── normal │ │ ├── res │ │ │ ├── drawable-xhdpi │ │ │ │ ├── img_login.png │ │ │ │ ├── ic_room_name.png │ │ │ │ └── ic_room_type.png │ │ │ ├── mipmap-hdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ │ └── string_configs.xml │ │ └── java │ │ │ └── io │ │ │ └── agora │ │ │ └── education │ │ │ └── service │ │ │ └── bean │ │ │ ├── response │ │ │ └── RoomEntryRes.java │ │ │ └── request │ │ │ └── RoomEntryReq.java │ │ └── test │ │ └── java │ │ └── io │ │ └── agora │ │ └── rtc │ │ └── education │ │ └── ExampleUnitTest.java │ ├── log │ ├── .gitignore │ ├── src │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ └── java │ │ │ │ └── io │ │ │ │ └── agora │ │ │ │ └── log │ │ │ │ └── service │ │ │ │ └── bean │ │ │ │ ├── ResponseBody.java │ │ │ │ └── response │ │ │ │ └── LogParamsRes.java │ │ └── test │ │ │ └── java │ │ │ └── io │ │ │ └── agora │ │ │ └── log │ │ │ └── ExampleUnitTest.java │ └── consumer-rules.pro │ ├── sdk │ ├── .gitignore │ ├── consumer-rules.pro │ └── src │ │ ├── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ │ └── io │ │ │ └── agora │ │ │ └── sdk │ │ │ ├── listener │ │ │ └── RtcEventListener.java │ │ │ └── annotation │ │ │ ├── StreamType.java │ │ │ ├── ClientRole.java │ │ │ └── RenderMode.java │ │ └── test │ │ └── java │ │ └── io │ │ └── agora │ │ └── sdk │ │ └── ExampleUnitTest.java │ ├── base │ ├── .gitignore │ └── src │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── res │ │ │ └── values │ │ │ │ └── strings.xml │ │ └── java │ │ │ └── io │ │ │ └── agora │ │ │ └── base │ │ │ ├── network │ │ │ └── ResponseBody.java │ │ │ └── Callback.java │ │ └── test │ │ └── java │ │ └── io │ │ └── agora │ │ └── base │ │ └── ExampleUnitTest.java │ ├── timeline │ ├── .gitignore │ ├── consumer-rules.pro │ └── src │ │ ├── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ │ └── io │ │ │ └── agora │ │ │ └── timeline │ │ │ ├── TimelineListener.java │ │ │ └── Timeline.java │ │ └── test │ │ └── java │ │ └── io │ │ └── agora │ │ └── timeline │ │ └── ExampleUnitTest.java │ ├── whiteboard │ ├── .gitignore │ ├── src │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ └── java │ │ │ │ └── io │ │ │ │ └── agora │ │ │ │ └── whiteboard │ │ │ │ └── netless │ │ │ │ ├── service │ │ │ │ └── bean │ │ │ │ │ ├── response │ │ │ │ │ └── RoomJoin.java │ │ │ │ │ └── ResponseBody.java │ │ │ │ └── listener │ │ │ │ ├── BoardEventListener.java │ │ │ │ └── ReplayEventListener.java │ │ └── test │ │ │ └── java │ │ │ └── io │ │ │ └── agora │ │ │ └── whiteboard │ │ │ └── ExampleUnitTest.java │ └── consumer-rules.pro │ ├── settings.gradle │ ├── .gitignore │ └── gradle │ └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── logo.png ├── education_iOS ├── AgoraEducation │ ├── Supporting Files │ │ ├── Assets.xcassets │ │ │ ├── Contents.json │ │ │ ├── Main │ │ │ │ ├── Contents.json │ │ │ │ ├── icon-down.imageset │ │ │ │ │ ├── icon-down.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-time.imageset │ │ │ │ │ ├── icon-time.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-type.imageset │ │ │ │ │ ├── icon-type.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-signal1.imageset │ │ │ │ │ ├── signal-bad.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-signal2.imageset │ │ │ │ │ ├── signal-normal.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-signal3.imageset │ │ │ │ │ ├── signal-good.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-student.imageset │ │ │ │ │ ├── icon-student.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-teacher.imageset │ │ │ │ │ ├── icon-teacher.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── main-login.imageset │ │ │ │ │ ├── pic-index (1).pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-roomname.imageset │ │ │ │ │ ├── icon-roomname.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-username.imageset │ │ │ │ │ ├── icon-username.pdf │ │ │ │ │ └── Contents.json │ │ │ │ └── icon-white-camera-close.imageset │ │ │ │ │ ├── icon-white-camera-close.pdf │ │ │ │ │ └── Contents.json │ │ │ ├── Room │ │ │ │ ├── Contents.json │ │ │ │ ├── icon-end.imageset │ │ │ │ │ ├── icon-end.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── tool-pen.imageset │ │ │ │ │ ├── tool-pen.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-close.imageset │ │ │ │ │ ├── icon-close.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-first.imageset │ │ │ │ │ ├── icon-first.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-left.imageset │ │ │ │ │ ├── icon-left.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-right.imageset │ │ │ │ │ ├── icon-right.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── tool-color.imageset │ │ │ │ │ ├── tool-color.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── tool-text.imageset │ │ │ │ │ ├── tool-text.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── upload-log.imageset │ │ │ │ │ ├── icon-上传日志.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-handup.imageset │ │ │ │ │ ├── icon-handup.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── tool-eraser.imageset │ │ │ │ │ ├── tool-eraser.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── tool-select.imageset │ │ │ │ │ ├── tool-select.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-setting.imageset │ │ │ │ │ ├── icon-setting.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-handup-x.imageset │ │ │ │ │ ├── icon-handup-x.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-speaker1.imageset │ │ │ │ │ ├── icon-speaker1.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-speaker2.imageset │ │ │ │ │ ├── icon-speaker2.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-speaker3.imageset │ │ │ │ │ ├── icon-speaker3.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-right-hide.imageset │ │ │ │ │ ├── icon-right-hide.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-right-show.imageset │ │ │ │ │ ├── icon-right-show.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-white-connect.imageset │ │ │ │ │ ├── icon-connect.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-speaker-off.imageset │ │ │ │ │ ├── icon-speaker-off.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-speaker1-max.imageset │ │ │ │ │ ├── icon-speaker1-max.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-speaker1-min.imageset │ │ │ │ │ ├── icon-speaker1-min.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-speaker2-max.imageset │ │ │ │ │ ├── icon-speaker2-max.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-speaker2-min.imageset │ │ │ │ │ ├── icon-speaker2-min.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-speaker3-max.imageset │ │ │ │ │ ├── icon-speaker3-max.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-speaker3-min.imageset │ │ │ │ │ ├── icon-speaker3-min.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-video-on-min.imageset │ │ │ │ │ ├── icon-video-on-min.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-video-off-min.imageset │ │ │ │ │ ├── icon-video-off-min.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-videoon-dark.imageset │ │ │ │ │ ├── icon-speakeron-dark.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-white-disconnect.imageset │ │ │ │ │ ├── icon-disconnect.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-speaker-off-min.imageset │ │ │ │ │ ├── icon-speaker-off-min.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── icon-videooff-dark.imageset │ │ │ │ │ ├── icon-speakeroff-dark.pdf │ │ │ │ │ └── Contents.json │ │ │ │ └── icon-speakeroff-dark.imageset │ │ │ │ │ ├── icon-speakeroff-dark(1).pdf │ │ │ │ │ └── Contents.json │ │ │ ├── BigClass │ │ │ │ ├── Contents.json │ │ │ │ ├── page-end.imageset │ │ │ │ │ ├── page-end.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── page-next.imageset │ │ │ │ │ ├── icon-next.pdf │ │ │ │ │ └── Contents.json │ │ │ │ ├── page-prev.imageset │ │ │ │ │ ├── page-prev.pdf │ │ │ │ │ └── Contents.json │ │ │ │ └── page-first.imageset │ │ │ │ │ ├── page-first.pdf │ │ │ │ │ └── Contents.json │ │ │ ├── Replay │ │ │ │ ├── Contents.json │ │ │ │ └── replay_logo.imageset │ │ │ │ │ ├── replay_logo.pdf │ │ │ │ │ └── Contents.json │ │ │ ├── PlayControl │ │ │ │ ├── Contents.json │ │ │ │ ├── loading.imageset │ │ │ │ │ ├── 加载.png │ │ │ │ │ ├── 加载 (1).png │ │ │ │ │ └── Contents.json │ │ │ │ ├── slider.imageset │ │ │ │ │ ├── slider@2x.png │ │ │ │ │ ├── slider@3x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── back.imageset │ │ │ │ │ ├── icon-back@2x.png │ │ │ │ │ ├── icon-back@3x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── logo.imageset │ │ │ │ │ ├── logo-agora@2x.png │ │ │ │ │ ├── logo-agora@3x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── pause.imageset │ │ │ │ │ ├── icon-pause@2x.png │ │ │ │ │ ├── icon-pause@3x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── message.imageset │ │ │ │ │ ├── pic-message@2x.png │ │ │ │ │ ├── pic-message@3x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── play.imageset │ │ │ │ │ ├── icon-play small@2x.png │ │ │ │ │ ├── icon-play small@3x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── big_play.imageset │ │ │ │ │ ├── icon-play big@2x.png │ │ │ │ │ ├── icon-play big@3x.png │ │ │ │ │ └── Contents.json │ │ │ │ └── replay_teacher.imageset │ │ │ │ │ ├── pic-teacher@2x.png │ │ │ │ │ ├── pic-teacher@3x.png │ │ │ │ │ └── Contents.json │ │ │ ├── allBack.imageset │ │ │ │ ├── allBack.pdf │ │ │ │ └── Contents.json │ │ │ ├── testMic.imageset │ │ │ │ ├── testMic.pdf │ │ │ │ └── Contents.json │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── icon-40.png │ │ │ │ ├── icon-76.png │ │ │ │ ├── icon-1024.png │ │ │ │ ├── icon-20@2x.png │ │ │ │ ├── icon-20@3x.png │ │ │ │ ├── icon-29@2x.png │ │ │ │ ├── icon-29@3x.png │ │ │ │ ├── icon-40@2x.png │ │ │ │ ├── icon-40@3x.png │ │ │ │ ├── icon-60@2x.png │ │ │ │ ├── icon-60@3x.png │ │ │ │ ├── icon-76@2x.png │ │ │ │ ├── icon-20-ipad.png │ │ │ │ ├── icon-29-ipad.png │ │ │ │ ├── icon-29@2x-1.png │ │ │ │ ├── icon-40@2x-1.png │ │ │ │ ├── icon-83.5@2x.png │ │ │ │ └── icon-20@2x-ipad.png │ │ │ ├── logoIcon.imageset │ │ │ │ ├── logoIcon.pdf │ │ │ │ └── Contents.json │ │ │ ├── mainLogo.imageset │ │ │ │ ├── mainLogo.pdf │ │ │ │ └── Contents.json │ │ │ ├── roomExit.imageset │ │ │ │ ├── roomExit.pdf │ │ │ │ └── Contents.json │ │ │ ├── eevideoOff.imageset │ │ │ │ ├── eevideoOff.pdf │ │ │ │ └── Contents.json │ │ │ ├── logoAgora.imageset │ │ │ │ ├── logoAgora.pdf │ │ │ │ └── Contents.json │ │ │ ├── roomMicOff.imageset │ │ │ │ ├── roomMicOff.pdf │ │ │ │ └── Contents.json │ │ │ ├── roomMicon.imageset │ │ │ │ ├── roomMicon.pdf │ │ │ │ └── Contents.json │ │ │ ├── view-close.imageset │ │ │ │ ├── view-close.pdf │ │ │ │ └── Contents.json │ │ │ ├── view-open.imageset │ │ │ │ ├── view-open.pdf │ │ │ │ └── Contents.json │ │ │ ├── eevideoOn-s.imageset │ │ │ │ ├── eevideoOn-s.png │ │ │ │ └── Contents.json │ │ │ ├── icon-handup.imageset │ │ │ │ ├── icon-handup.pdf │ │ │ │ └── Contents.json │ │ │ ├── testSpeaker.imageset │ │ │ │ ├── testSpeaker.pdf │ │ │ │ └── Contents.json │ │ │ ├── video-close.imageset │ │ │ │ ├── video-close.pdf │ │ │ │ └── Contents.json │ │ │ ├── roomCameraOn.imageset │ │ │ │ ├── roomCameraOn.pdf │ │ │ │ └── Contents.json │ │ │ ├── roomCameraOff.imageset │ │ │ │ ├── roomCameraOff.pdf │ │ │ │ └── Contents.json │ │ │ ├── speaker-close.imageset │ │ │ │ ├── speaker-close.pdf │ │ │ │ └── Contents.json │ │ │ ├── backgroundImage.imageset │ │ │ │ ├── backgroundImage.pdf │ │ │ │ └── Contents.json │ │ │ ├── classRoompower.imageset │ │ │ │ ├── classRoompower.pdf │ │ │ │ └── Contents.json │ │ │ ├── videoBackgroundImage.imageset │ │ │ │ ├── roomPempty.pdf │ │ │ │ └── Contents.json │ │ │ ├── icon-camera-dark.imageset │ │ │ │ ├── icon-camera-dark.pdf │ │ │ │ └── Contents.json │ │ │ ├── white-video-open.imageset │ │ │ │ ├── white-video-open.pdf │ │ │ │ └── Contents.json │ │ │ ├── white-video-close.imageset │ │ │ │ ├── white-video-close.pdf │ │ │ │ └── Contents.json │ │ │ └── icon-cameraoff-dark.imageset │ │ │ │ ├── icon-cameraoff-dark.pdf │ │ │ │ └── Contents.json │ │ ├── zh-Hans.lproj │ │ │ └── InfoPlist.strings │ │ ├── en.lproj │ │ │ └── InfoPlist.strings │ │ ├── main.m │ │ └── AppDelegate.h │ ├── StoryBoards │ │ ├── Room │ │ │ ├── en.lproj │ │ │ │ └── Room.strings │ │ │ └── zh-Hans.lproj │ │ │ │ └── Room.strings │ │ └── LaunchScreen │ │ │ ├── zh-Hans.lproj │ │ │ └── LaunchScreen.strings │ │ │ └── en.lproj │ │ │ └── LaunchScreen.strings │ ├── Manager │ │ ├── Signal │ │ │ ├── SignalModel.m │ │ │ └── SignalModel.h │ │ ├── HTTP │ │ │ └── Model │ │ │ │ ├── CommonModel.m │ │ │ │ ├── WhiteModel.m │ │ │ │ ├── LogParamsModel.m │ │ │ │ ├── EnterRoomAllModel.m │ │ │ │ ├── ConfigModel.m │ │ │ │ ├── MultiLanguageModel.m │ │ │ │ ├── CommonModel.h │ │ │ │ ├── MultiLanguageModel.h │ │ │ │ └── ReplayModel.m │ │ └── EduModel │ │ │ ├── ReplayManagerModel.m │ │ │ ├── SignalModel │ │ │ ├── SignalInfoModel.m │ │ │ ├── MessageModel.m │ │ │ ├── SignalP2PModel.m │ │ │ ├── SignalRoomModel.m │ │ │ ├── SignalReplayModel.m │ │ │ ├── SignalShareScreenModel.m │ │ │ ├── SignalUserModel.m │ │ │ └── SignalInfoModel.h │ │ │ └── RTCModel │ │ │ ├── RTCVideoCanvasModel.m │ │ │ └── RTCVideoSessionModel.m │ ├── EyeCare │ │ ├── SkinCoverLayer.m │ │ ├── SkinCoverWindow.h │ │ ├── SkinCoverLayer.h │ │ └── EyeCareModeUtil.h │ ├── Main │ │ └── Controllers │ │ │ ├── MainViewController.h │ │ │ └── MainNavigationController.h │ ├── Replay │ │ ├── Widget │ │ │ ├── EduButton.h │ │ │ ├── LoadingView.h │ │ │ └── EduButton.m │ │ └── ViewController │ │ │ └── ReplayViewController.h │ ├── Utils │ │ ├── MD5 │ │ │ └── NSString+MD5.h │ │ ├── NSArray+Copy │ │ │ ├── NSArray+Copy.h │ │ │ └── NSArray+Copy.m │ │ ├── JsonParse │ │ │ └── JsonParseUtil.h │ │ └── Badge │ │ │ └── UIView+EEBadge.h │ ├── Setting │ │ ├── Controllers │ │ │ └── SettingViewController.h │ │ └── View │ │ │ └── SettingUploadViewCell.h │ ├── Room │ │ ├── View │ │ │ ├── EEMessageView.h │ │ │ ├── EEColorViewCell.h │ │ │ └── WhiteBoardTouchView.h │ │ ├── RoomProtocol.h │ │ ├── MiniClass │ │ │ ├── Controllers │ │ │ │ └── MCViewController.h │ │ │ └── View │ │ │ │ └── MCStudentVideoCell.h │ │ ├── BigClass │ │ │ └── Controllers │ │ │ │ └── BCViewController.h │ │ └── OneToOne │ │ │ └── Controllers │ │ │ └── OneToOneViewController.h │ └── KeyCenter.m ├── AgoraEducation.xcworkspace │ ├── xcshareddata │ │ ├── xcdebugger │ │ │ └── Breakpoints_v2.xcbkptlist │ │ └── IDEWorkspaceChecks.plist │ └── contents.xcworkspacedata ├── AgoraEducation.xcodeproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── SetupLanString.sh ├── Podfile └── exportStorePlist.plist ├── .gitignore ├── cicd └── templates │ └── github-release.yml └── azure-pipelines.yml /education_web/src/components/video.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/log/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/sdk/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/base/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/timeline/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/timeline/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/whiteboard/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/logo.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/sdk/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -keep class io.agora.**{*;} 2 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/base/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/log/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/sdk/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/timeline/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /education_web/icons/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/icons/favicon.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/whiteboard/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /education_web/public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/public/favicon.png -------------------------------------------------------------------------------- /education_web/src/assets/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/github.png -------------------------------------------------------------------------------- /education_web/src/assets/cover-cn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/cover-cn.png -------------------------------------------------------------------------------- /education_web/src/assets/cover-us.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/cover-us.png -------------------------------------------------------------------------------- /education_web/src/assets/hand_tool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/hand_tool.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-move.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-move.png -------------------------------------------------------------------------------- /education_web/src/assets/cancel-share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/cancel-share.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-down@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-down@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-end@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-end@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-exit@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-exit@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-hand@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-hand@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-home@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-home@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-left@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-left@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-loading.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-max@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-max@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-min@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-min@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-next@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-next@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-play@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-play@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-ppt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-ppt@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-prev@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-prev@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-stop@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-stop@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-time@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-time@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/pic-index@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/pic-index@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/pic-student.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/pic-student.png -------------------------------------------------------------------------------- /education_web/src/assets/pic-teacher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/pic-teacher.png -------------------------------------------------------------------------------- /education_web/src/assets/Rectangle-2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/Rectangle-2@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/Rectangle-6@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/Rectangle-6@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-clickable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-clickable.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-delete@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-delete@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-first@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-first@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-folder@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-folder@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-pause@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-pause@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-record@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-record@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-right@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-right@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-share@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-share@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/logo-agora@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/logo-agora@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/pic-message@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/pic-message@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/signal-bad@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/signal-bad@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/signal-good@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/signal-good@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/tool-circle@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/tool-circle@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/tool-square@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/tool-square@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-camera-on@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-camera-on@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-caution@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-caution@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-connect-s@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-connect-s@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-connect@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-connect@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-hand-disable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-hand-disable.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-lock-board.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-lock-board.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-play-big@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-play-big@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-setting@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-setting@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-share-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-share-white.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-signal01@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-signal01@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-signal02@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-signal02@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-signal03@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-signal03@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-smaller@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-smaller@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-speaker-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-speaker-off.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-speaker-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-speaker-on.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-speaker01@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-speaker01@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-speaker02@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-speaker02@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-speaker03-s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-speaker03-s.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-speaker03@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-speaker03@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-speaker@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-speaker@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-success@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-success@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/media-covert-pic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/media-covert-pic.png -------------------------------------------------------------------------------- /education_web/src/assets/pic-no-video@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/pic-no-video@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/signal-normal@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/signal-normal@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/whiteboard_file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/whiteboard_file.png -------------------------------------------------------------------------------- /education_web/src/assets/Rectangle-6-Copy@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/Rectangle-6-Copy@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-camera-off@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-camera-off@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-cameraoff-s@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-cameraoff-s@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-cameraon-s@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-cameraon-s@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-close-gray@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-close-gray@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-close-white@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-close-white@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-disconnect@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-disconnect@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-hand-white@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-hand-white@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-message-all@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-message-all@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-message-off@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-message-off@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-message-on@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-message-on@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-microphone-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-microphone-off.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-microphone-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-microphone-on.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-microphone@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-microphone@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-open-folder@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-open-folder@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-share-white@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-share-white@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-speaker01-s@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-speaker01-s@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-speaker02-s@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-speaker02-s@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-speaker03-s@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-speaker03-s@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-upload-file@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-upload-file@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-upload-log@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-upload-log@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/media-upload-pic@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/media-upload-pic@2x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /education_web/src/assets/Rectangle-6-Copy-6@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/Rectangle-6-Copy-6@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/Rectangle-6-Copy-7@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/Rectangle-6-Copy-7@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/Rectangle-6-Copy-8@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/Rectangle-6-Copy-8@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/Rectangle-6-Copy-9@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/Rectangle-6-Copy-9@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-camera-on-blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-camera-on-blue@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-dosconnect-s@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-dosconnect-s@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-handup-active@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-handup-active@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-handup-default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-handup-default@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-handup-hover@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-handup-hover@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-sidebar-active@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-sidebar-active@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-sidebar-hover@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-sidebar-hover@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-speakeroff-s@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-speakeroff-s@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/media-covert-dynamic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/media-covert-dynamic.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app', ':whiteboard', ':base', ':log', ':sdk', ':timeline' 2 | rootProject.name = 'AgoraEducation' 3 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /education_web/src/assets/icon-camera-off-blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-camera-off-blue@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-resource-menu-close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-resource-menu-close.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-sidebar-deafult@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-sidebar-deafult@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-speakeroff-dark@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-speakeroff-dark@2x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/BigClass/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Replay/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /education_web/src/assets/icon-microphone-off-blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-microphone-off-blue@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-microphone-on-blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-microphone-on-blue@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-sidebar-off-active@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-sidebar-off-active@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-sidebar-off-deafult@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-sidebar-off-deafult@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-sidebar-off-hover@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-sidebar-off-hover@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-speaker01-disable@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-speaker01-disable@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-speaker02-disable@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-speaker02-disable@2x.png -------------------------------------------------------------------------------- /education_web/src/assets/icon-speaker03-disable@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_web/src/assets/icon-speaker03-disable@2x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/StoryBoards/Room/en.lproj/Room.strings: -------------------------------------------------------------------------------- 1 | /* Class = "UILabel"; text = "ChatRoom"; ObjectID = "oiE-cC-ty9"; */ 2 | "oiE-cC-ty9.text" = "ChatRoom"; 3 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/StoryBoards/Room/zh-Hans.lproj/Room.strings: -------------------------------------------------------------------------------- 1 | /* Class = "UILabel"; text = "ChatRoom"; ObjectID = "oiE-cC-ty9"; */ 2 | "oiE-cC-ty9.text" = "聊天室"; 3 | -------------------------------------------------------------------------------- /education_web/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["babel-preset-react-app"], 3 | "plugins": [ 4 | "dynamic-import-node", 5 | "@babel/plugin-transform-runtime" 6 | ] 7 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | package-lock.json 4 | *.dev 5 | release 6 | .env 7 | !.env.example 8 | *.~ 9 | *.*~.DS_Store 10 | *.*~ 11 | package-lock.json 12 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle/ 3 | .idea/ 4 | /local.properties 5 | .DS_Store 6 | /build 7 | /captures 8 | .externalNativeBuild 9 | .cxx 10 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/log/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -keep class com.alibaba.sdk.android.oss.** { *; } 2 | -dontwarn okio.** 3 | -dontwarn org.apache.commons.codec.binary.** 4 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /education_Android/AgoraEducation/base/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Base 4 | 5 | -------------------------------------------------------------------------------- /education_web/src/utils/agora-web-player/index.css: -------------------------------------------------------------------------------- 1 | #player video { 2 | width: 100%; 3 | height: 100%; 4 | object-fit: cover; 5 | } 6 | 7 | .video-js .vjs-tech { pointer-events: none; } 8 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_back.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_down.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_end.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_end.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_hide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_hide.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_next.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_play.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_prev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_prev.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_show.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_show.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_time.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_time.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_close.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_first.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_first.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_pause.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_camera_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_camera_on.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_hand_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_hand_down.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_hand_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_hand_up.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_play_big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_play_big.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_setting.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_speaker1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_speaker1.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_speaker2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_speaker2.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_speaker3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_speaker3.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_student.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_student.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_teacher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_teacher.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_tool_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_tool_text.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_your_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_your_name.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/img_message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/img_message.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/normal/res/drawable-xhdpi/img_login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/normal/res/drawable-xhdpi/img_login.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/normal/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/normal/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/normal/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/normal/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/normal/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/normal/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/normal/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/normal/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_camera_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_camera_off.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_signal_bad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_signal_bad.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_signal_good.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_signal_good.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_speaker_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_speaker_off.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_tool_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_tool_color.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_tool_eraser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_tool_eraser.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_tool_pencil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_tool_pencil.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_video_mute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_video_mute.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/normal/res/drawable-xhdpi/ic_room_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/normal/res/drawable-xhdpi/ic_room_name.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/normal/res/drawable-xhdpi/ic_room_type.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/normal/res/drawable-xhdpi/ic_room_type.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/normal/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/normal/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_board_disable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_board_disable.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_board_enable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_board_enable.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_signal_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_signal_normal.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_tool_selector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/main/res/drawable-xhdpi/ic_tool_selector.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/normal/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/normal/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/normal/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/normal/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/normal/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/normal/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /education_web/src/utils/LogUploader/db.ts: -------------------------------------------------------------------------------- 1 | import Dexie from 'dexie'; 2 | 3 | const db = new Dexie('webdemo_agora_edu'); 4 | 5 | db.version(1).stores({ 6 | logs: 'content' 7 | }); 8 | 9 | export default db; 10 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/normal/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/normal/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/normal/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_Android/AgoraEducation/app/src/normal/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /education_Android/AgoraEducation/base/src/main/java/io/agora/base/network/ResponseBody.java: -------------------------------------------------------------------------------- 1 | package io.agora.base.network; 2 | 3 | public class ResponseBody { 4 | 5 | public int code; 6 | public T msg; 7 | 8 | } 9 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/allBack.imageset/allBack.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/allBack.imageset/allBack.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/testMic.imageset/testMic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/testMic.imageset/testMic.pdf -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/xml/network_security_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-40.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-76.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/logoIcon.imageset/logoIcon.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/logoIcon.imageset/logoIcon.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/mainLogo.imageset/mainLogo.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/mainLogo.imageset/mainLogo.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/roomExit.imageset/roomExit.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/roomExit.imageset/roomExit.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-1024.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/eevideoOff.imageset/eevideoOff.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/eevideoOff.imageset/eevideoOff.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/logoAgora.imageset/logoAgora.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/logoAgora.imageset/logoAgora.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/roomMicOff.imageset/roomMicOff.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/roomMicOff.imageset/roomMicOff.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/roomMicon.imageset/roomMicon.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/roomMicon.imageset/roomMicon.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/view-close.imageset/view-close.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/view-close.imageset/view-close.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/view-open.imageset/view-open.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/view-open.imageset/view-open.pdf -------------------------------------------------------------------------------- /education_Android/AgoraEducation/base/src/main/java/io/agora/base/Callback.java: -------------------------------------------------------------------------------- 1 | package io.agora.base; 2 | 3 | public interface Callback { 4 | 5 | void onSuccess(T res); 6 | 7 | void onFailure(Throwable throwable); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-29@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-29@2x-1.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-40@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-40@2x-1.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/loading.imageset/加载.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/loading.imageset/加载.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-end.imageset/icon-end.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-end.imageset/icon-end.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/tool-pen.imageset/tool-pen.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/tool-pen.imageset/tool-pen.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/eevideoOn-s.imageset/eevideoOn-s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/eevideoOn-s.imageset/eevideoOn-s.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/icon-handup.imageset/icon-handup.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/icon-handup.imageset/icon-handup.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/testSpeaker.imageset/testSpeaker.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/testSpeaker.imageset/testSpeaker.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/video-close.imageset/video-close.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/video-close.imageset/video-close.pdf -------------------------------------------------------------------------------- /education_web/.gitignore: -------------------------------------------------------------------------------- 1 | package-lock.json 2 | yarn.lock 3 | .env 4 | *.*~ 5 | release/ 6 | *.local 7 | build 8 | .DS_Store 9 | *.log 10 | src/assets/.DS_Store 11 | !src/assets/ 12 | *.json 13 | node_modules 14 | app/log 15 | app/*.log 16 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation.xcworkspace/xcshareddata/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/BigClass/page-end.imageset/page-end.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/BigClass/page-end.imageset/page-end.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-down.imageset/icon-down.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-down.imageset/icon-down.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-time.imageset/icon-time.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-time.imageset/icon-time.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-type.imageset/icon-type.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-type.imageset/icon-type.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/loading.imageset/加载 (1).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/loading.imageset/加载 (1).png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-close.imageset/icon-close.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-close.imageset/icon-close.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-first.imageset/icon-first.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-first.imageset/icon-first.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-left.imageset/icon-left.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-left.imageset/icon-left.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-right.imageset/icon-right.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-right.imageset/icon-right.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/tool-color.imageset/tool-color.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/tool-color.imageset/tool-color.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/tool-text.imageset/tool-text.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/tool-text.imageset/tool-text.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/upload-log.imageset/icon-上传日志.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/upload-log.imageset/icon-上传日志.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/roomCameraOn.imageset/roomCameraOn.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/roomCameraOn.imageset/roomCameraOn.pdf -------------------------------------------------------------------------------- /education_Android/AgoraEducation/log/src/main/java/io/agora/log/service/bean/ResponseBody.java: -------------------------------------------------------------------------------- 1 | package io.agora.log.service.bean; 2 | 3 | public class ResponseBody extends io.agora.base.network.ResponseBody { 4 | 5 | public T data; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/BigClass/page-next.imageset/icon-next.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/BigClass/page-next.imageset/icon-next.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/BigClass/page-prev.imageset/page-prev.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/BigClass/page-prev.imageset/page-prev.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-signal1.imageset/signal-bad.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-signal1.imageset/signal-bad.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/slider.imageset/slider@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/slider.imageset/slider@2x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/slider.imageset/slider@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/slider.imageset/slider@3x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-handup.imageset/icon-handup.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-handup.imageset/icon-handup.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/tool-eraser.imageset/tool-eraser.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/tool-eraser.imageset/tool-eraser.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/tool-select.imageset/tool-select.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/tool-select.imageset/tool-select.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/roomCameraOff.imageset/roomCameraOff.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/roomCameraOff.imageset/roomCameraOff.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/speaker-close.imageset/speaker-close.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/speaker-close.imageset/speaker-close.pdf -------------------------------------------------------------------------------- /education_Android/AgoraEducation/whiteboard/src/main/java/io/agora/whiteboard/netless/service/bean/response/RoomJoin.java: -------------------------------------------------------------------------------- 1 | package io.agora.whiteboard.netless.service.bean.response; 2 | 3 | public class RoomJoin { 4 | 5 | public String roomToken; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/BigClass/page-first.imageset/page-first.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/BigClass/page-first.imageset/page-first.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-signal2.imageset/signal-normal.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-signal2.imageset/signal-normal.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-signal3.imageset/signal-good.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-signal3.imageset/signal-good.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-student.imageset/icon-student.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-student.imageset/icon-student.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-teacher.imageset/icon-teacher.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-teacher.imageset/icon-teacher.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/main-login.imageset/pic-index (1).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/main-login.imageset/pic-index (1).pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/back.imageset/icon-back@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/back.imageset/icon-back@2x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/back.imageset/icon-back@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/back.imageset/icon-back@3x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/logo.imageset/logo-agora@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/logo.imageset/logo-agora@2x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/logo.imageset/logo-agora@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/logo.imageset/logo-agora@3x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/pause.imageset/icon-pause@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/pause.imageset/icon-pause@2x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/pause.imageset/icon-pause@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/pause.imageset/icon-pause@3x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Replay/replay_logo.imageset/replay_logo.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Replay/replay_logo.imageset/replay_logo.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-setting.imageset/icon-setting.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-setting.imageset/icon-setting.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/backgroundImage.imageset/backgroundImage.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/backgroundImage.imageset/backgroundImage.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/classRoompower.imageset/classRoompower.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/classRoompower.imageset/classRoompower.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/videoBackgroundImage.imageset/roomPempty.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/videoBackgroundImage.imageset/roomPempty.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/zh-Hans.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | AgoraEducation 4 | 5 | Created by SRS on 2020/2/17. 6 | Copyright © 2020 yangmoumou. All rights reserved. 7 | */ 8 | CFBundleDisplayName = "声网云课堂"; 9 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-roomname.imageset/icon-roomname.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-roomname.imageset/icon-roomname.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-username.imageset/icon-username.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-username.imageset/icon-username.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-handup-x.imageset/icon-handup-x.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-handup-x.imageset/icon-handup-x.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker1.imageset/icon-speaker1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker1.imageset/icon-speaker1.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker2.imageset/icon-speaker2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker2.imageset/icon-speaker2.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker3.imageset/icon-speaker3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker3.imageset/icon-speaker3.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/icon-camera-dark.imageset/icon-camera-dark.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/icon-camera-dark.imageset/icon-camera-dark.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/white-video-open.imageset/white-video-open.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/white-video-open.imageset/white-video-open.pdf -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/java/io/agora/education/service/bean/ResponseBody.java: -------------------------------------------------------------------------------- 1 | package io.agora.education.service.bean; 2 | 3 | public class ResponseBody extends io.agora.base.network.ResponseBody { 4 | 5 | public T data; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/sdk/src/main/java/io/agora/sdk/listener/RtcEventListener.java: -------------------------------------------------------------------------------- 1 | package io.agora.sdk.listener; 2 | 3 | import io.agora.rtc.IRtcEngineEventHandler; 4 | 5 | public abstract class RtcEventListener extends IRtcEngineEventHandler { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/message.imageset/pic-message@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/message.imageset/pic-message@2x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/message.imageset/pic-message@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/message.imageset/pic-message@3x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/play.imageset/icon-play small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/play.imageset/icon-play small@2x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/play.imageset/icon-play small@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/play.imageset/icon-play small@3x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-right-hide.imageset/icon-right-hide.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-right-hide.imageset/icon-right-hide.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-right-show.imageset/icon-right-show.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-right-show.imageset/icon-right-show.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-white-connect.imageset/icon-connect.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-white-connect.imageset/icon-connect.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/white-video-close.imageset/white-video-close.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/white-video-close.imageset/white-video-close.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | AgoraEducation 4 | 5 | Created by SRS on 2020/2/17. 6 | Copyright © 2020 yangmoumou. All rights reserved. 7 | */ 8 | CFBundleDisplayName = "Agora Cloud Class"; 9 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/java/io/agora/education/service/bean/response/RoomBoardRes.java: -------------------------------------------------------------------------------- 1 | package io.agora.education.service.bean.response; 2 | 3 | public class RoomBoardRes { 4 | 5 | public String boardId; 6 | public String boardToken; 7 | 8 | } 9 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/normal/java/io/agora/education/service/bean/response/RoomEntryRes.java: -------------------------------------------------------------------------------- 1 | package io.agora.education.service.bean.response; 2 | 3 | public class RoomEntryRes { 4 | 5 | public String roomId; 6 | public String userToken; 7 | 8 | } 9 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/big_play.imageset/icon-play big@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/big_play.imageset/icon-play big@2x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/big_play.imageset/icon-play big@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/big_play.imageset/icon-play big@3x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker-off.imageset/icon-speaker-off.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker-off.imageset/icon-speaker-off.pdf -------------------------------------------------------------------------------- /education_web/src/utils/platform.ts: -------------------------------------------------------------------------------- 1 | console.log(`CURRENT RUNTIME: ${process.env.REACT_APP_RUNTIME_PLATFORM}`); 2 | 3 | export const isElectron = process.env.REACT_APP_RUNTIME_PLATFORM === 'electron' 4 | 5 | export const platform = process.env.REACT_APP_RUNTIME_PLATFORM as string; -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/replay_teacher.imageset/pic-teacher@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/replay_teacher.imageset/pic-teacher@2x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/replay_teacher.imageset/pic-teacher@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/replay_teacher.imageset/pic-teacher@3x.png -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker1-max.imageset/icon-speaker1-max.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker1-max.imageset/icon-speaker1-max.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker1-min.imageset/icon-speaker1-min.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker1-min.imageset/icon-speaker1-min.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker2-max.imageset/icon-speaker2-max.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker2-max.imageset/icon-speaker2-max.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker2-min.imageset/icon-speaker2-min.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker2-min.imageset/icon-speaker2-min.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker3-max.imageset/icon-speaker3-max.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker3-max.imageset/icon-speaker3-max.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker3-min.imageset/icon-speaker3-min.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker3-min.imageset/icon-speaker3-min.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-video-on-min.imageset/icon-video-on-min.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-video-on-min.imageset/icon-video-on-min.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/icon-cameraoff-dark.imageset/icon-cameraoff-dark.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/icon-cameraoff-dark.imageset/icon-cameraoff-dark.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-video-off-min.imageset/icon-video-off-min.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-video-off-min.imageset/icon-video-off-min.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-videoon-dark.imageset/icon-speakeron-dark.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-videoon-dark.imageset/icon-speakeron-dark.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-white-disconnect.imageset/icon-disconnect.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-white-disconnect.imageset/icon-disconnect.pdf -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable/bg_dialog.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker-off-min.imageset/icon-speaker-off-min.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker-off-min.imageset/icon-speaker-off-min.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-videooff-dark.imageset/icon-speakeroff-dark.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-videooff-dark.imageset/icon-speakeroff-dark.pdf -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable/bg_appliance_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speakeroff-dark.imageset/icon-speakeroff-dark(1).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speakeroff-dark.imageset/icon-speakeroff-dark(1).pdf -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable/bg_radius_5_black_7f.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/normal/res/values/string_configs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | <#YOUR APP ID#> 4 | <#YOUR AUTH#> 5 | 6 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Manager/Signal/SignalModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // SignalModel.m 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2019/12/6. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import "SignalModel.h" 10 | 11 | @implementation SignalModel 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-white-camera-close.imageset/icon-white-camera-close.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/plutoless/eEducation/HEAD/education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-white-camera-close.imageset/icon-white-camera-close.pdf -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Manager/HTTP/Model/CommonModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // CommonModel.m 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2020/1/8. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import "CommonModel.h" 10 | 11 | @implementation CommonModel 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/EyeCare/SkinCoverLayer.m: -------------------------------------------------------------------------------- 1 | // 2 | // SkinCoverLayer.m 3 | // AgoraEducation 4 | // 5 | // Created by yangmoumou on 2019/9/23. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import "SkinCoverLayer.h" 10 | 11 | @implementation SkinCoverLayer 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/xml/file_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Tue Nov 19 16:15:06 CST 2019 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip 7 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/StoryBoards/LaunchScreen/zh-Hans.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "Powerd by Agora.io"; ObjectID = "dfh-OS-RPJ"; */ 3 | "dfh-OS-RPJ.text" = "版权所有 Agora.io"; 4 | 5 | /* Class = "UIButton"; normalTitle = "小班课"; ObjectID = "kam-LA-oqv"; */ 6 | "kam-LA-oqv.normalTitle" = "小班课"; 7 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/timeline/src/main/java/io/agora/timeline/TimelineListener.java: -------------------------------------------------------------------------------- 1 | package io.agora.timeline; 2 | 3 | public interface TimelineListener { 4 | void onStart(); 5 | 6 | void onPause(); 7 | 8 | void onTimelineChanged(long currentTime, long totalTime); 9 | 10 | void onStop(); 11 | } 12 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Manager/EduModel/ReplayManagerModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // ReplayManagerModel.m 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2019/12/18. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import "ReplayManagerModel.h" 10 | 11 | @implementation ReplayManagerModel 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Manager/EduModel/SignalModel/SignalInfoModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // SignalInfoModel.m 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2020/4/25. 6 | // Copyright © 2020 yangmoumou. All rights reserved. 7 | // 8 | 9 | #import "SignalInfoModel.h" 10 | @implementation SignalInfoModel 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /education_iOS/SetupLanString.sh: -------------------------------------------------------------------------------- 1 | python ./AgoraEducation/StoryBoards/RunScript/AutoGenString.py ./AgoraEducation/StoryBoards/Room/ 2 | python ./AgoraEducation/StoryBoards/RunScript/AutoGenString.py ./AgoraEducation/StoryBoards/LaunchScreen/ 3 | python ./AgoraEducation/StoryBoards/RunScript/AutoGenString.py ./AgoraEducation/StoryBoards/Main/ -------------------------------------------------------------------------------- /education_Android/AgoraEducation/timeline/src/main/java/io/agora/timeline/Timeline.java: -------------------------------------------------------------------------------- 1 | package io.agora.timeline; 2 | 3 | public interface Timeline { 4 | void start(); 5 | 6 | void pause(); 7 | 8 | void seekTo(long positionMs); 9 | 10 | void stop(); 11 | 12 | @TimelineState 13 | int getState(); 14 | } 15 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/whiteboard/src/main/java/io/agora/whiteboard/netless/service/bean/ResponseBody.java: -------------------------------------------------------------------------------- 1 | package io.agora.whiteboard.netless.service.bean; 2 | 3 | import io.agora.whiteboard.netless.service.bean.response.RoomJoin; 4 | 5 | public class ResponseBody extends io.agora.base.network.ResponseBody { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/StoryBoards/LaunchScreen/en.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "Powerd by Agora.io"; ObjectID = "dfh-OS-RPJ"; */ 3 | "dfh-OS-RPJ.text" = "Powerd by Agora.io"; 4 | 5 | /* Class = "UIButton"; normalTitle = "小班课"; ObjectID = "kam-LA-oqv"; */ 6 | "kam-LA-oqv.normalTitle" = "Small Class"; 7 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/java/io/agora/education/service/bean/response/AppConfigRes.java: -------------------------------------------------------------------------------- 1 | package io.agora.education.service.bean.response; 2 | 3 | import java.util.Map; 4 | 5 | public class AppConfigRes { 6 | 7 | public String appId; 8 | public Map> multiLanguage; 9 | 10 | } 11 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable/bg_chat_edit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Manager/EduModel/RTCModel/RTCVideoCanvasModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // RTCVideoCanvasModel.m 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2019/12/25. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import "RTCVideoCanvasModel.h" 10 | 11 | @implementation RTCVideoCanvasModel 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Manager/EduModel/RTCModel/RTCVideoSessionModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // RTCVideoSessionModel.m 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2019/12/25. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import "RTCVideoSessionModel.h" 10 | 11 | @implementation RTCVideoSessionModel 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable/ic_float.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/values/ids.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Main/Controllers/MainViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MainViewController.h 3 | // AgoraSmallClass 4 | // 5 | // Created by yangmoumou on 2019/5/9. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MainViewController : UIViewController 12 | 13 | 14 | @end 15 | 16 | 17 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Manager/HTTP/Model/WhiteModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // WhiteModel.m 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2020/4/16. 6 | // Copyright © 2020 yangmoumou. All rights reserved. 7 | // 8 | 9 | #import "WhiteModel.h" 10 | 11 | @implementation WhiteInfoModel 12 | 13 | @end 14 | 15 | @implementation WhiteModel 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /education_web/src/components/custom-button.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Button } from '@material-ui/core'; 3 | export default function (props: any) { 4 | return ( 5 | 8 | ) 9 | } -------------------------------------------------------------------------------- /cicd/templates/github-release.yml: -------------------------------------------------------------------------------- 1 | parameters: 2 | displayName: '' 3 | 4 | steps: 5 | - task: GitHubRelease@0 6 | displayName: ${{ parameters.displayName }}_Release 7 | inputs: 8 | gitHubConnection: 'azure-pipelines' 9 | repositoryName: 'AgoraIO-Usecase/eEducation' 10 | assets: '$(Build.ArtifactStagingDirectory)/*.zip' 11 | addChangeLog: false 12 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable/ic_camera.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable/ic_hand.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable/ic_speaker.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Manager/HTTP/Model/LogParamsModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // RoomAllModel.m 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2020/1/8. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import "LogParamsModel.h" 10 | 11 | @implementation LogParamsInfoModel 12 | 13 | @end 14 | 15 | @implementation LogParamsModel 16 | @end 17 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Replay/Widget/EduButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // EduButton.h 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2019/12/17. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface EduButton : UIButton 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable/ic_board.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /education_web/src/components/github-icon/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import './index.scss'; 3 | 4 | export const GithubIcon: React.FC<{}> = (props) => { 5 | return ( 6 | 7 | 8 | 9 | 10 | ) 11 | } -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/java/io/agora/education/service/bean/response/RoomRes.java: -------------------------------------------------------------------------------- 1 | package io.agora.education.service.bean.response; 2 | 3 | import io.agora.education.classroom.bean.channel.Room; 4 | import io.agora.education.classroom.bean.channel.User; 5 | 6 | public class RoomRes { 7 | 8 | public Room room; 9 | public User user; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Manager/EduModel/SignalModel/MessageModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // MessageModel.m 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2020/1/29. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import "MessageModel.h" 10 | 11 | @implementation MessageInfoModel 12 | 13 | @end 14 | 15 | @implementation MessageModel 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/EyeCare/SkinCoverWindow.h: -------------------------------------------------------------------------------- 1 | // 2 | // SkinCoverWindow.h 3 | // AgoraEducation 4 | // 5 | // Created by yangmoumou on 2019/9/23. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface SkinCoverWindow : UIWindow 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Manager/HTTP/Model/EnterRoomAllModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // EnterRoomAllModel.m 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2020/1/7. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import "EnterRoomAllModel.h" 10 | 11 | @implementation EnterRoomInfoModel 12 | @end 13 | 14 | 15 | @implementation EnterRoomAllModel 16 | @end 17 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable/bg_msg_me.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/EyeCare/SkinCoverLayer.h: -------------------------------------------------------------------------------- 1 | // 2 | // SkinCoverLayer.h 3 | // AgoraEducation 4 | // 5 | // Created by yangmoumou on 2019/9/23. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface SkinCoverLayer : CALayer 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Replay/replay_logo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "replay_logo.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | }, 12 | "properties" : { 13 | "preserves-vector-representation" : true 14 | } 15 | } -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable/bg_msg_other.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Manager/EduModel/SignalModel/SignalP2PModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // SignalP2PModel.m 3 | // AgoraEducation 4 | // 5 | // Created by yangmoumou on 2019/11/22. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import "SignalP2PModel.h" 10 | 11 | @implementation SignalP2PInfoModel 12 | 13 | @end 14 | 15 | @implementation SignalP2PModel 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /education_web/src/pages/404.scss: -------------------------------------------------------------------------------- 1 | .main-layout-container { 2 | background: #EEF1F3; 3 | display: flex; 4 | position: relative; 5 | height: 100%; 6 | align-items: center; 7 | justify-content: center; 8 | 9 | .layout-content { 10 | h1 { 11 | font-size: 24px; 12 | } 13 | 14 | h2 { 15 | font-size: 20px; 16 | color: gray; 17 | } 18 | 19 | } 20 | } -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable/btn_circle_black_79.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Manager/EduModel/SignalModel/SignalRoomModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // SignalRoomModel.m 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2020/4/22. 6 | // Copyright © 2020 yangmoumou. All rights reserved. 7 | // 8 | 9 | #import "SignalRoomModel.h" 10 | 11 | @implementation SignalRoomInfoModel 12 | 13 | @end 14 | 15 | @implementation SignalRoomModel 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-white-connect.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-connect.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | }, 12 | "properties" : { 13 | "preserves-vector-representation" : true 14 | } 15 | } -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable/btn_circle_44a2fc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/drawable/btn_circle_f5f7f8.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-white-disconnect.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-disconnect.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | }, 12 | "properties" : { 13 | "preserves-vector-representation" : true 14 | } 15 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Utils/MD5/NSString+MD5.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+MD5.h 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2019/12/25. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface NSString (MD5) 14 | 15 | - (NSString *)md5; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Manager/EduModel/SignalModel/SignalReplayModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // SignalReplayModel.m 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2020/4/23. 6 | // Copyright © 2020 yangmoumou. All rights reserved. 7 | // 8 | 9 | #import "SignalReplayModel.h" 10 | 11 | @implementation SignalReplayInfoModel 12 | 13 | @end 14 | 15 | @implementation SignalReplayModel 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Manager/HTTP/Model/ConfigModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // ConfigModel.m 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2020/1/6. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import "ConfigModel.h" 10 | 11 | @implementation ConfigModel 12 | + (NSDictionary *)modelCustomPropertyMapper { 13 | return @{@"multiLanguage": @"data"}; 14 | } 15 | @end 16 | 17 | 18 | -------------------------------------------------------------------------------- /education_web/src/utils/api/index.ts: -------------------------------------------------------------------------------- 1 | import uuidv4 from 'uuid/v4'; 2 | 3 | export { RTMRestful } from './rtm-restful'; 4 | export { WhiteboardAPI } from './whiteboard-api'; 5 | export function genUUID (): string { 6 | let uuid = localStorage.getItem('demo_edu_uuid'); 7 | if (uuid) { 8 | return uuid; 9 | } 10 | uuid = uuidv4(); 11 | localStorage.setItem('demo_edu_uuid', uuid); 12 | return uuid; 13 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Setting/Controllers/SettingViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SettingViewController.h 3 | // AgoraEducation 4 | // 5 | // Created by yangmoumou on 2019/10/16. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface SettingViewController : UIViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Utils/NSArray+Copy/NSArray+Copy.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSArray+Copy.h 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2020/4/24. 6 | // Copyright © 2020 yangmoumou. All rights reserved. 7 | // 8 | 9 | 10 | #import "BaseEducationManager.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface NSArray (Copy) 15 | 16 | - (NSArray *)deepCopy; 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Setting/View/SettingUploadViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // SettingUploadViewCell.h 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2020/3/30. 6 | // Copyright © 2020 yangmoumou. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface SettingUploadViewCell : UITableViewCell 14 | - (void)uploadLog; 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/java/io/agora/education/service/bean/request/CoVideoReq.java: -------------------------------------------------------------------------------- 1 | package io.agora.education.service.bean.request; 2 | 3 | import io.agora.education.classroom.bean.msg.PeerMsg; 4 | 5 | public class CoVideoReq { 6 | 7 | @PeerMsg.CoVideoMsg.Type 8 | int type; 9 | 10 | public CoVideoReq(@PeerMsg.CoVideoMsg.Type int type) { 11 | this.type = type; 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Main/Controllers/MainNavigationController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MainNavigationController.h 3 | // AgoraEducation 4 | // 5 | // Created by yangmoumou on 2019/10/24. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MainNavigationController : UINavigationController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Replay/Widget/LoadingView.h: -------------------------------------------------------------------------------- 1 | // 2 | // LoadingView.h 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2019/12/17. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface LoadingView : UIView 14 | 15 | -(void)showLoading; 16 | 17 | -(void)hiddenLoading; 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /azure-pipelines.yml: -------------------------------------------------------------------------------- 1 | jobs: 2 | - template: cicd/templates/build-android.yml 3 | parameters: 4 | displayName: 'EducationAndroid' 5 | workingDirectory: 'education_Android/AgoraEducation' 6 | - template: cicd/templates/build-ios.yml 7 | parameters: 8 | devDisplayName: 'AgoraEducationDEV' 9 | qaDisplayName: 'AgoraEducationQA' 10 | workingDirectory: 'education_iOS' 11 | scheme: 'AgoraEducation' 12 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Manager/EduModel/SignalModel/SignalShareScreenModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // SignalShareScreenModel.m 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2020/4/23. 6 | // Copyright © 2020 yangmoumou. All rights reserved. 7 | // 8 | 9 | #import "SignalShareScreenModel.h" 10 | 11 | @implementation SignalShareScreenInfoModel 12 | 13 | @end 14 | 15 | @implementation SignalShareScreenModel 16 | 17 | @end 18 | 19 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Manager/EduModel/SignalModel/SignalUserModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // SignalUserModel.m 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2020/4/22. 6 | // Copyright © 2020 yangmoumou. All rights reserved. 7 | // 8 | 9 | #import "SignalUserModel.h" 10 | 11 | @implementation SignalUserModel 12 | + (NSDictionary *)modelContainerPropertyGenericClass { 13 | return @{@"data" : [UserModel class]}; 14 | } 15 | @end 16 | -------------------------------------------------------------------------------- /education_web/src/components/icon.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | export default function ({data, icon, disable, className, onClick, active}: any) { 3 | let iconClass = disable ? '' : (icon ? 'icon-btn' : 'icon'); 4 | iconClass = active ? iconClass + " active" : iconClass; 5 | 6 | const dataName = data ? data : '' 7 | return ( 8 |
9 | ) 10 | } -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/java/io/agora/education/util/ColorUtil.java: -------------------------------------------------------------------------------- 1 | package io.agora.education.util; 2 | 3 | public class ColorUtil { 4 | 5 | public static int[] colorToArray(int color) { 6 | int[] colorArray = new int[3]; 7 | colorArray[0] = color >> 16 & 0xFF; 8 | colorArray[1] = color >> 8 & 0xFF; 9 | colorArray[2] = color & 0xFF; 10 | return colorArray; 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // AgoraSmallClass 4 | // 5 | // Created by yangmoumou on 2019/5/9. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Manager/HTTP/Model/MultiLanguageModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // MultiLanguageModel.m 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2020/3/10. 6 | // Copyright © 2020 yangmoumou. All rights reserved. 7 | // 8 | 9 | #import "MultiLanguageModel.h" 10 | 11 | @implementation MultiLanguageModel 12 | + (NSDictionary *)modelCustomPropertyMapper { 13 | return @{@"cn": @"zh-cn", 14 | @"en": @"en-us",}; 15 | } 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/sdk/src/main/java/io/agora/sdk/annotation/StreamType.java: -------------------------------------------------------------------------------- 1 | package io.agora.sdk.annotation; 2 | 3 | import androidx.annotation.IntDef; 4 | 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | 8 | import io.agora.rtc.Constants; 9 | 10 | @IntDef({Constants.VIDEO_STREAM_HIGH, Constants.VIDEO_STREAM_LOW}) 11 | @Retention(RetentionPolicy.SOURCE) 12 | public @interface StreamType { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/sdk/src/main/java/io/agora/sdk/annotation/ClientRole.java: -------------------------------------------------------------------------------- 1 | package io.agora.sdk.annotation; 2 | 3 | import androidx.annotation.IntDef; 4 | 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | 8 | import io.agora.rtc.Constants; 9 | 10 | @IntDef({Constants.CLIENT_ROLE_BROADCASTER, Constants.CLIENT_ROLE_AUDIENCE}) 11 | @Retention(RetentionPolicy.SOURCE) 12 | public @interface ClientRole { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/sdk/src/main/java/io/agora/sdk/annotation/RenderMode.java: -------------------------------------------------------------------------------- 1 | package io.agora.sdk.annotation; 2 | 3 | import androidx.annotation.IntDef; 4 | 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | 8 | import io.agora.rtc.video.VideoCanvas; 9 | 10 | @IntDef({VideoCanvas.RENDER_MODE_HIDDEN, VideoCanvas.RENDER_MODE_FIT}) 11 | @Retention(RetentionPolicy.SOURCE) 12 | public @interface RenderMode { 13 | 14 | } 15 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/whiteboard/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | # SDK model 2 | -keep class com.herewhite.** { *; } 3 | -keepattributes *JavascriptInterface* 4 | -keepattributes Signature 5 | # Gson specific classes 6 | -keep class sun.misc.Unsafe { *; } 7 | -keep class com.google.gson.stream.** { *; } 8 | # Application classes that will be serialized/deserialized over Gson 9 | -keep class com.google.gson.examples.android.model.** { *; } 10 | -keep class com.google.gson.** { *;} 11 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/allBack.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "allBack.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/testMic.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "testMic.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_web/src/utils/LogUploader/log.worker.ts: -------------------------------------------------------------------------------- 1 | import db from './db'; 2 | 3 | const ctx: DedicatedWorkerGlobalScope = self as any; 4 | ctx.onmessage = async (evt: any) => { 5 | if (evt.data) { 6 | if (evt.data.type === 'log') { 7 | if (db.isOpen()) { 8 | // @ts-ignore 9 | await db.logs.put({ content: evt.data.data }); 10 | } else { 11 | await db.open(); 12 | } 13 | } 14 | } 15 | }; 16 | 17 | export default null as any; 18 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/eevideoOff.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "eevideoOff.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/logoAgora.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "logoAgora.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/logoIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "logoIcon.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/mainLogo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "mainLogo.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/roomExit.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "roomExit.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/roomMicOff.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "roomMicOff.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/roomMicon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "roomMicon.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/view-close.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "view-close.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/view-open.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "view-open.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_web/src/utils/config.ts: -------------------------------------------------------------------------------- 1 | export const APP_ID = process.env.REACT_APP_AGORA_APP_ID as string; 2 | export const APP_TOKEN = process.env.REACT_APP_AGORA_APP_TOKEN as string; 3 | export const ENABLE_LOG = process.env.REACT_APP_AGORA_LOG as string; 4 | 5 | export const RoomKeyIdentifier = 'agora_meeting_room' 6 | export const GlobalKeyIdentifier = 'global_identifier' 7 | export const UUIDKeyIdentifier = 'agora_meeting_uuid' 8 | export const SessionKeyIdentifier = 'agora_demo_session_profile' -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Replay/ViewController/ReplayViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ReplayNoVideoViewController.h 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2019/12/17. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface ReplayViewController : UIViewController 14 | 15 | + (void)enterReplayViewController:(NSString *)recordId; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | 21 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Room/View/EEMessageView.h: -------------------------------------------------------------------------------- 1 | // 2 | // EEMessageView.h 3 | // AgoraEducation 4 | // 5 | // Created by yangmoumou on 2019/11/11. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "MessageModel.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface EEMessageView : UIView 15 | 16 | - (void)addMessageModel:(MessageInfoModel *)model; 17 | - (void)updateTableView; 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // AgoraSmallClass 4 | // 5 | // Created by yangmoumou on 2019/5/9. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #define NOTICE_KEY_ON_WILL_TERMINATE @"NOTICE_KEY_ON_WILL_TERMINATE" 12 | 13 | @interface AppDelegate : UIResponder 14 | 15 | @property (strong, nonatomic) UIWindow *window; 16 | 17 | 18 | @end 19 | 20 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/BigClass/page-end.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "page-end.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-down.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-down.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-time.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-time.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-type.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-type.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-close.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-close.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-end.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-end.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-first.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-first.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-left.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-left.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-right.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-right.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/tool-color.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "tool-color.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/tool-pen.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "tool-pen.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/tool-text.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "tool-text.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/upload-log.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-上传日志.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/eevideoOn-s.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "eevideoOn-s.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/icon-handup.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-handup.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/roomCameraOn.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "roomCameraOn.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/testSpeaker.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "testSpeaker.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/video-close.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "video-close.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/EyeCare/EyeCareModeUtil.h: -------------------------------------------------------------------------------- 1 | // 2 | // EyeCareModeUtil.h 3 | // AgoraEducation 4 | // 5 | // Created by yangmoumou on 2019/9/23. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface EyeCareModeUtil : NSObject 14 | + (instancetype)sharedUtil; 15 | - (void)switchEyeCareMode:(BOOL)on; 16 | - (BOOL)queryEyeCareModeStatus; 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Room/View/EEColorViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // EEColorViewCell.h 3 | // AgoraEducation 4 | // 5 | // Created by yangmoumou on 2019/11/1. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface EEColorViewCell : UICollectionViewCell 14 | @property (nonatomic, weak) UIView *colorView; 15 | @property (nonatomic, weak) UIView *outColorView; 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Room/View/WhiteBoardTouchView.h: -------------------------------------------------------------------------------- 1 | // 2 | // WhiteBoardTouchView.h 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2020/4/20. 6 | // Copyright © 2020 yangmoumou. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface WhiteBoardTouchView : UIView 14 | 15 | - (void)setupInView:(UIView *)superView onTouchBlock:(void (^ _Nullable) (void))touchBlock; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/BigClass/page-first.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "page-first.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/BigClass/page-next.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-next.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/BigClass/page-prev.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "page-prev.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-signal1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "signal-bad.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-signal2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "signal-normal.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-signal3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "signal-good.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-student.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-student.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-teacher.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-teacher.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/main-login.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "pic-index (1).pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-handup.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-handup.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-setting.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-setting.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/tool-eraser.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "tool-eraser.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/tool-select.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "tool-select.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/backgroundImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "backgroundImage.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/classRoompower.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "classRoompower.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/roomCameraOff.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "roomCameraOff.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/speaker-close.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "speaker-close.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/videoBackgroundImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "roomPempty.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Room/RoomProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // RoomProtocol.h 3 | // AgoraEducation 4 | // 5 | // Created by yangmoumou on 2019/11/21. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol RoomProtocol 14 | @optional 15 | - (void)muteVideoStream:(BOOL)stream; 16 | - (void)muteAudioStream:(BOOL)stream; 17 | - (void)closeRoom; 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-roomname.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-roomname.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-username.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-username.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-handup-x.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-handup-x.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-right-hide.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-right-hide.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-right-show.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-right-show.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-speaker1.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-speaker2.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-speaker3.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/icon-camera-dark.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-camera-dark.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/white-video-close.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "white-video-close.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/white-video-open.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "white-video-open.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/java/io/agora/education/service/bean/request/ChatReq.java: -------------------------------------------------------------------------------- 1 | package io.agora.education.service.bean.request; 2 | 3 | import io.agora.education.classroom.bean.msg.ChannelMsg; 4 | 5 | public class ChatReq { 6 | 7 | String message; 8 | @ChannelMsg.ChatMsg.Type 9 | int type; 10 | 11 | public ChatReq(String message, @ChannelMsg.ChatMsg.Type int type) { 12 | this.message = message; 13 | this.type = type; 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker-off.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-speaker-off.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker1-max.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-speaker1-max.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker1-min.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-speaker1-min.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker2-max.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-speaker2-max.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker2-min.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-speaker2-min.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker3-max.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-speaker3-max.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker3-min.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-speaker3-min.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-video-on-min.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-video-on-min.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/icon-cameraoff-dark.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-cameraoff-dark.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/res/layout/fragment_user_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Replay/Widget/EduButton.m: -------------------------------------------------------------------------------- 1 | // 2 | // EduButton.m 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2019/12/17. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import "EduButton.h" 10 | 11 | @implementation EduButton 12 | 13 | - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event { 14 | CGRect bounds = self.bounds; 15 | bounds = CGRectInset(bounds, -20, -20); 16 | return CGRectContainsPoint(bounds, point); 17 | } 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speaker-off-min.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-speaker-off-min.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-video-off-min.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-video-off-min.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-videooff-dark.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-speakeroff-dark.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-videoon-dark.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-speakeron-dark.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_Android/AgoraEducation/log/src/main/java/io/agora/log/service/bean/response/LogParamsRes.java: -------------------------------------------------------------------------------- 1 | package io.agora.log.service.bean.response; 2 | 3 | public class LogParamsRes { 4 | public String bucketName; 5 | public String callbackUrl; 6 | public String callbackBody; 7 | public String callbackContentType; 8 | public String ossKey; 9 | public String accessKeyId; 10 | public String accessKeySecret; 11 | public String securityToken; 12 | public String ossEndpoint; 13 | } 14 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Room/icon-speakeroff-dark.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-speakeroff-dark(1).pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_Android/AgoraEducation/sdk/src/test/java/io/agora/sdk/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package io.agora.sdk; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/Main/icon-white-camera-close.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "icon-white-camera-close.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Utils/JsonParse/JsonParseUtil.h: -------------------------------------------------------------------------------- 1 | // 2 | // JsonParseUtil.h 3 | // AgoraEducation 4 | // 5 | // Created by yangmoumou on 2019/6/27. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface JsonParseUtil : NSObject 14 | + (NSString*)dictionaryToJson:(NSDictionary *)dic; 15 | 16 | + (NSDictionary *)dictionaryWithJsonString:(NSString *)jsonString; 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/base/src/test/java/io/agora/base/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package io.agora.base; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/loading.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "加载.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "加载 (1).png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Manager/HTTP/Model/CommonModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // CommonModel.h 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2020/1/8. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface CommonModel : NSObject 14 | @property (nonatomic, strong) NSString *msg; 15 | @property (nonatomic, assign) NSInteger code; 16 | @property (nonatomic, strong) NSString *data; 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Room/MiniClass/Controllers/MCViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MCViewController.h 3 | // AgoraEducation 4 | // 5 | // Created by yangmoumou on 2019/11/15. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "MinEducationManager.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface MCViewController : UIViewController 15 | 16 | @property (nonatomic, strong) MinEducationManager *educationManager; 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /education_iOS/Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment the next line to define a global platform for your project 2 | source 'https://github.com/CocoaPods/Specs.git' 3 | platform :ios, '10.0' 4 | 5 | target 'AgoraEducation' do 6 | # Comment the next line if you don't want to use dynamic frameworks 7 | use_frameworks! 8 | pod 'AFNetworking', '~> 3.2.1' 9 | pod 'Whiteboard', '2.6.4' 10 | pod 'AgoraRtcEngine_iOS', '2.9.0.102' 11 | pod 'AgoraRtm_iOS', '~> 1.2.2' 12 | 13 | pod 'CocoaLumberjack' 14 | pod 'AliyunOSSiOS' 15 | end 16 | 17 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/log/src/test/java/io/agora/log/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package io.agora.log; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.assertEquals; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /education_Android/AgoraEducation/timeline/src/test/java/io/agora/timeline/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package io.agora.timeline; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Manager/Signal/SignalModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // SignalModel.h 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2019/12/6. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface SignalModel : NSObject 14 | 15 | @property(nonatomic, strong) NSString *appId; 16 | @property(nonatomic, strong) NSString *token; 17 | @property(nonatomic, strong) NSString *uid; 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Room/BigClass/Controllers/BCViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // BigClassViewController.h 3 | // AgoraEducation 4 | // 5 | // Created by yangmoumou on 2019/10/22. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "BigEducationManager.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface BCViewController : UIViewController 15 | 16 | @property (nonatomic, strong) BigEducationManager *educationManager; 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/slider.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "slider@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "slider@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/normal/java/io/agora/education/service/bean/request/RoomEntryReq.java: -------------------------------------------------------------------------------- 1 | package io.agora.education.service.bean.request; 2 | 3 | import io.agora.education.classroom.bean.channel.Room; 4 | 5 | public class RoomEntryReq { 6 | 7 | public String userName; 8 | public String userUuid; // your user uuid 9 | public String roomName; 10 | public String roomUuid; // your room uuid 11 | @Room.Type 12 | public int type; 13 | public int role = 2; // 1.teacher 2.student 14 | 15 | } 16 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/back.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icon-back@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "icon-back@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/logo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "logo-agora@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "logo-agora@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/pause.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icon-pause@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "icon-pause@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Utils/NSArray+Copy/NSArray+Copy.m: -------------------------------------------------------------------------------- 1 | // 2 | // BaseEducationManager+NSArray_copy.m 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2020/4/24. 6 | // Copyright © 2020 yangmoumou. All rights reserved. 7 | // 8 | 9 | #import "NSArray+Copy.h" 10 | 11 | @implementation NSArray (Copy) 12 | - (NSArray *)deepCopy { 13 | NSMutableArray *array = [NSMutableArray array]; 14 | for (NSObject *obj in self) { 15 | [array addObject: obj.yy_modelCopy]; 16 | } 17 | return array; 18 | } 19 | @end 20 | -------------------------------------------------------------------------------- /education_web/src/components/lang-select.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Select, MenuItem } from '@material-ui/core'; 3 | 4 | const LangSelect: React.FC = ({ 5 | value, 6 | onChange, 7 | items, 8 | }) => { 9 | return ( 10 | 18 | ); 19 | } 20 | 21 | export default React.memo(LangSelect); -------------------------------------------------------------------------------- /education_Android/AgoraEducation/whiteboard/src/main/java/io/agora/whiteboard/netless/listener/BoardEventListener.java: -------------------------------------------------------------------------------- 1 | package io.agora.whiteboard.netless.listener; 2 | 3 | import com.herewhite.sdk.domain.MemberState; 4 | import com.herewhite.sdk.domain.RoomPhase; 5 | import com.herewhite.sdk.domain.SceneState; 6 | 7 | public interface BoardEventListener { 8 | 9 | void onRoomPhaseChanged(RoomPhase phase); 10 | 11 | void onSceneStateChanged(SceneState state); 12 | 13 | void onMemberStateChanged(MemberState state); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/whiteboard/src/test/java/io/agora/whiteboard/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package io.agora.whiteboard; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/message.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "pic-message@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "pic-message@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /education_iOS/exportStorePlist.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | method 6 | app-store 7 | compileBitcode 8 | 9 | uploadSymbols 10 | 11 | provisioningProfiles 12 | 13 | io.agora.AgoraEducationDis 14 | AgoraEducationAppRelease 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/big_play.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icon-play big@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "icon-play big@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/play.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icon-play small@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "icon-play small@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Utils/Badge/UIView+EEBadge.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+EEBadge.h 3 | // AgoraEducation 4 | // 5 | // Created by yangmoumou on 2019/11/6. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface UIView (EEBadge) 15 | @property (nonatomic, strong) UILabel *badge; 16 | - (void)showBadgeWithTopMagin:(CGFloat)magin; 17 | - (void)hidenBadge; 18 | - (void)setBadgeCount:(NSInteger)count; 19 | 20 | @end 21 | 22 | NS_ASSUME_NONNULL_END 23 | -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/main/java/io/agora/education/classroom/bean/JsonBean.java: -------------------------------------------------------------------------------- 1 | package io.agora.education.classroom.bean; 2 | 3 | import com.google.gson.Gson; 4 | 5 | import java.io.Serializable; 6 | 7 | public class JsonBean implements Serializable { 8 | 9 | public String toJsonString() { 10 | return new Gson().toJson(this); 11 | } 12 | 13 | public static T fromJson(String jsonStr, Class classType) { 14 | return new Gson().fromJson(jsonStr, classType); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Manager/EduModel/SignalModel/SignalInfoModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // SignalInfoModel.h 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2020/4/25. 6 | // Copyright © 2020 yangmoumou. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "SignalEnum.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface SignalInfoModel : NSObject 15 | @property (nonatomic, assign) NSInteger uid; // changed uid 16 | @property (nonatomic, assign) SignalType signalType; 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Room/OneToOne/Controllers/OneToOneViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // OneToOneViewController.h 3 | // AgoraEducation 4 | // 5 | // Created by yangmoumou on 2019/10/30. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "OneToOneEducationManager.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface OneToOneViewController : UIViewController 15 | 16 | @property (nonatomic, strong) OneToOneEducationManager *educationManager; 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Supporting Files/Assets.xcassets/PlayControl/replay_teacher.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "pic-teacher@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "pic-teacher@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /education_Android/AgoraEducation/app/src/test/java/io/agora/rtc/education/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package io.agora.rtc.education; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /education_Android/AgoraEducation/whiteboard/src/main/java/io/agora/whiteboard/netless/listener/ReplayEventListener.java: -------------------------------------------------------------------------------- 1 | package io.agora.whiteboard.netless.listener; 2 | 3 | import com.herewhite.sdk.domain.PlayerPhase; 4 | 5 | import io.agora.whiteboard.netless.manager.ReplayManager; 6 | 7 | public interface ReplayEventListener { 8 | 9 | void onPlayerPrepared(ReplayManager replayBoard); 10 | 11 | void onPhaseChanged(PlayerPhase playerPhase); 12 | 13 | void onLoadFirstFrame(); 14 | 15 | void onScheduleTimeChanged(long l); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/KeyCenter.m: -------------------------------------------------------------------------------- 1 | // 2 | // KeyCenter.m 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2020/3/26. 6 | // Copyright © 2020 yangmoumou. All rights reserved. 7 | // 8 | 9 | #import "KeyCenter.h" 10 | #import "URL.h" 11 | 12 | @implementation KeyCenter 13 | 14 | + (NSString *)agoraAppid { 15 | return <#Your Agora App Id#>; 16 | } 17 | 18 | + (NSString *)authorization { 19 | return <#Your Authorization#>; 20 | } 21 | 22 | + (NSString *)boardInfoApiURL { 23 | return HTTP_WHITE_ROOM_INFO; 24 | } 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Room/MiniClass/View/MCStudentVideoCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // StudentVideoViewCell.h 3 | // AgoraEducation 4 | // 5 | // Created by yangmoumou on 2019/8/13. 6 | // Copyright © 2019 Agora. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "RoomAllModel.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface MCStudentVideoCell : UICollectionViewCell 15 | @property (nonatomic, weak) UIView *videoCanvasView; 16 | @property (nonatomic, strong) UserModel *userModel; 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /education_web/src/components/role-radio.scss: -------------------------------------------------------------------------------- 1 | .custom-radio { 2 | .MuiRadio-colorPrimary.Mui-checked { 3 | color: #44A2FC; 4 | } 5 | .Mui-checked ~ .MuiTypography-body1 { 6 | color: #44A2FC; 7 | } 8 | } 9 | 10 | .MuiFormControlLabel-root { 11 | &.align-left { 12 | float: left; 13 | margin-left: -4px; 14 | margin-right: 5px; 15 | min-width: 80px; 16 | text-align: center; 17 | } 18 | 19 | &.align-right { 20 | float: right; 21 | margin: 0; 22 | min-width: 80px; 23 | text-align: center; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /education_web/src/components/volume/index.scss: -------------------------------------------------------------------------------- 1 | .volume-container { 2 | display: flex; 3 | flex-direction: row; 4 | } 5 | 6 | .voice-sliders { 7 | margin-left: 4px; 8 | height: 24px; 9 | display: flex; 10 | align-items: center; 11 | width: 206px; 12 | span { 13 | margin: 1px; 14 | flex: 1; 15 | min-height: 12px; 16 | min-width: 2px; 17 | background-color: #CCCCCC; 18 | &.active { 19 | background-color: #44A2FC; 20 | } 21 | } 22 | } 23 | 24 | .voice-volume { 25 | 26 | } 27 | 28 | .speaker-volume { 29 | 30 | } -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Manager/HTTP/Model/MultiLanguageModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // MultiLanguageModel.h 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2020/3/10. 6 | // Copyright © 2020 yangmoumou. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface MultiLanguageModel : NSObject 14 | 15 | @property (nonatomic, strong) NSDictionary *cn; 16 | @property (nonatomic, strong) NSDictionary *en; 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /education_iOS/AgoraEducation/Manager/HTTP/Model/ReplayModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // ReplayModel.m 3 | // AgoraEducation 4 | // 5 | // Created by SRS on 2020/3/3. 6 | // Copyright © 2020 yangmoumou. All rights reserved. 7 | // 8 | 9 | #import "ReplayModel.h" 10 | 11 | @implementation RecordDetailsModel 12 | 13 | @end 14 | 15 | 16 | @implementation ReplayInfoModel 17 | + (NSDictionary *)modelContainerPropertyGenericClass { 18 | return @{@"recordDetails" : [RecordDetailsModel class]}; 19 | } 20 | @end 21 | 22 | 23 | @implementation ReplayModel 24 | 25 | @end 26 | --------------------------------------------------------------------------------