浏览代码

直播课显示老师头像

Steven 2 年之前
父节点
当前提交
d20dc55730

+ 2 - 2
KulexiuForTeacher/KulexiuForTeacher.xcodeproj/project.pbxproj

@@ -7970,7 +7970,7 @@
 					"$(PROJECT_DIR)/KulexiuForTeacher/Common/ThirdPart/UMSocialSDK/share/share_ios_6.10.4/SocialLibraries/QQ",
 					"$(PROJECT_DIR)/KulexiuForTeacher/Common/ThirdPart/UMSocialSDK/share/share_ios_6.10.4/UMSocialSDKPlugin",
 				);
-				MARKETING_VERSION = 1.3.0;
+				MARKETING_VERSION = 1.2.0;
 				PRODUCT_BUNDLE_IDENTIFIER = com.Colexiu.KulexiuForTeacher;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SWIFT_EMIT_LOC_STRINGS = YES;
@@ -8032,7 +8032,7 @@
 					"$(PROJECT_DIR)/KulexiuForTeacher/Common/ThirdPart/UMSocialSDK/share/share_ios_6.10.4/SocialLibraries/QQ",
 					"$(PROJECT_DIR)/KulexiuForTeacher/Common/ThirdPart/UMSocialSDK/share/share_ios_6.10.4/UMSocialSDKPlugin",
 				);
-				MARKETING_VERSION = 1.3.0;
+				MARKETING_VERSION = 1.2.0;
 				PRODUCT_BUNDLE_IDENTIFIER = com.Colexiu.KulexiuForTeacher;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SWIFT_EMIT_LOC_STRINGS = YES;

二进制
KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/UserInterfaceState.xcuserstate


+ 97 - 1
KulexiuForTeacher/KulexiuForTeacher.xcworkspace/xcuserdata/wangzhi.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -1043,7 +1043,7 @@
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
             uuid = "8C607C34-D7C4-4C59-8FE2-7A4A81472642"
-            shouldBeEnabled = "Yes"
+            shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
             filePath = "KulexiuForTeacher/Module/Home/View/HomeHotMusicCellView.m"
@@ -1055,5 +1055,101 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "BD853C80-986B-4578-8CF2-C76B94290938"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForTeacher/Common/Base/KSNetworkingManager.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "939"
+            endingLineNumber = "939"
+            landmarkName = "+imGroupMemberQueryUser:groupId:userId:success:faliure:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "260B86A4-3E67-4746-B17B-67106E6A706B"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForTeacher/Common/Base/KSRCIMDataSource.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "113"
+            endingLineNumber = "113"
+            landmarkName = "-getUserInfoWithUserId:inGroup:completion:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "177617A5-5995-4F50-BA1F-1947D15868D8"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForTeacher/Module/Home/NotiferMessage/Controller/NotiferMessageViewController.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "244"
+            endingLineNumber = "244"
+            landmarkName = "-toDetailViewWithTypeString:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "EC3794FE-E456-4415-AB9D-7B945A6AF31D"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForTeacher/AppDelegate.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "589"
+            endingLineNumber = "589"
+            landmarkName = "-getVCUserInfoDict:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "E2A1B7F3-91DD-49FC-9306-83A35AF7DA42"
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForTeacher/Module/Home/NotiferMessage/Controller/NotiferMessageViewController.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "238"
+            endingLineNumber = "238"
+            landmarkName = "-toDetailViewWithTypeString:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "4009A9BE-82F3-43DF-9446-E6D91533A623"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KulexiuForTeacher/Module/Home/MyCourse/View/MyLessonBodyView.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "163"
+            endingLineNumber = "163"
+            landmarkName = "-requestData"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
    </Breakpoints>
 </Bucket>

+ 7 - 7
KulexiuForTeacher/KulexiuForTeacher/Common/Define/PrefixHeader.pch

@@ -126,13 +126,13 @@ shouldPrevent = NO; \
 
 //#else
 
-#define hostURL (@"https://online.colexiu.com")
-#define SEALCLASSHOST (@"https://online.colexiu.com/api-classroom")
-#define WEBHOST (@"https://online.colexiu.com/teacher")
-#define SOCKET_URL (@"wss://online.colexiu.com/audioAnalysis")
-#define JSPUSH_ENVIRONMENT (YES)
-#define RCIM_KEY (@"e5t4ouvpe42pa")
-#define SUBMIT_UUID (YES)
+//#define hostURL (@"https://online.colexiu.com")
+//#define SEALCLASSHOST (@"https://online.colexiu.com/api-classroom")
+//#define WEBHOST (@"https://online.colexiu.com/teacher")
+//#define SOCKET_URL (@"wss://online.colexiu.com/audioAnalysis")
+//#define JSPUSH_ENVIRONMENT (YES)
+//#define RCIM_KEY (@"e5t4ouvpe42pa")
+//#define SUBMIT_UUID (YES)
 
 
 //#endif

+ 4 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/Model/LiveLessonModel.h

@@ -22,6 +22,10 @@
 @property (nonatomic, strong) NSString *imGroupId;
 @property (nonatomic, strong) NSString *courseId;
 
+@property (nonatomic, strong) NSString *avatar;
+@property (nonatomic, strong) NSString *username;
+@property (nonatomic, strong) NSString *userId;
+
 + (instancetype)modelObjectWithDictionary:(NSDictionary *)dict;
 - (instancetype)initWithDictionary:(NSDictionary *)dict;
 - (NSDictionary *)dictionaryRepresentation;

+ 24 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/Model/LiveLessonModel.m

@@ -18,6 +18,9 @@ NSString *const kLiveLessonModelStartTime = @"startTime";
 NSString *const kLiveLessonModelCourseGroupName = @"courseGroupName";
 NSString *const kLiveLessonModelImGroupId = @"imGroupId";
 NSString *const kLiveLessonModelCourseId = @"courseId";
+NSString *const kLiveLessonModelAvatar = @"avatar";
+NSString *const kLiveLessonModelUsername = @"username";
+NSString *const kLiveLessonModelUserId = @"userId";
 
 @interface LiveLessonModel ()
 
@@ -37,6 +40,9 @@ NSString *const kLiveLessonModelCourseId = @"courseId";
 @synthesize courseGroupName = _courseGroupName;
 @synthesize imGroupId = _imGroupId;
 @synthesize courseId = _courseId;
+@synthesize avatar = _avatar;
+@synthesize username = _username;
+@synthesize userId = _userId;
 
 + (instancetype)modelObjectWithDictionary:(NSDictionary *)dict
 {
@@ -60,6 +66,9 @@ NSString *const kLiveLessonModelCourseId = @"courseId";
             self.courseGroupName = [self objectOrNilForKey:kLiveLessonModelCourseGroupName fromDictionary:dict];
             self.imGroupId = [self objectOrNilForKey:kLiveLessonModelImGroupId fromDictionary:dict];
             self.courseId = [self objectOrNilForKey:kLiveLessonModelCourseId fromDictionary:dict];
+        self.avatar = [self objectOrNilForKey:kLiveLessonModelAvatar fromDictionary:dict];
+        self.username = [self objectOrNilForKey:kLiveLessonModelUsername fromDictionary:dict];
+        self.userId = [self objectOrNilForKey:kLiveLessonModelUserId fromDictionary:dict];
     }
     
     return self;
@@ -79,6 +88,10 @@ NSString *const kLiveLessonModelCourseId = @"courseId";
     [mutableDict setValue:self.courseGroupName forKey:kLiveLessonModelCourseGroupName];
     [mutableDict setValue:self.imGroupId forKey:kLiveLessonModelImGroupId];
     [mutableDict setValue:self.courseId forKey:kLiveLessonModelCourseId];
+    [mutableDict setValue:self.avatar forKey:kLiveLessonModelAvatar];
+    [mutableDict setValue:self.username forKey:kLiveLessonModelUsername];
+    [mutableDict setValue:self.userId forKey:kLiveLessonModelUserId];
+    
     return [NSDictionary dictionaryWithDictionary:mutableDict];
 }
 
@@ -115,6 +128,10 @@ NSString *const kLiveLessonModelCourseId = @"courseId";
     self.courseGroupName = [aDecoder decodeObjectForKey:kLiveLessonModelCourseGroupName];
     self.imGroupId = [aDecoder decodeObjectForKey:kLiveLessonModelImGroupId];
     self.courseId = [aDecoder decodeObjectForKey:kLiveLessonModelCourseId];
+    self.avatar = [aDecoder decodeObjectForKey:kLiveLessonModelAvatar];
+    self.username = [aDecoder decodeObjectForKey:kLiveLessonModelUsername];
+    self.userId = [aDecoder decodeObjectForKey:kLiveLessonModelUserId];
+    
     return self;
 }
 
@@ -131,6 +148,10 @@ NSString *const kLiveLessonModelCourseId = @"courseId";
     [aCoder encodeObject:_courseGroupName forKey:kLiveLessonModelCourseGroupName];
     [aCoder encodeObject:_imGroupId forKey:kLiveLessonModelImGroupId];
     [aCoder encodeObject:_courseId forKey:kLiveLessonModelCourseId];
+    [aCoder encodeObject:_avatar forKey:kLiveLessonModelAvatar];
+    [aCoder encodeObject:_username forKey:kLiveLessonModelUsername];
+    [aCoder encodeObject:_userId forKey:kLiveLessonModelUserId];
+    
 }
 
 - (id)copyWithZone:(NSZone *)zone
@@ -149,6 +170,9 @@ NSString *const kLiveLessonModelCourseId = @"courseId";
         copy.courseGroupName = [self.courseGroupName copyWithZone:zone];
         copy.imGroupId = [self.imGroupId copyWithZone:zone];
         copy.courseId = [self.courseId copyWithZone:zone];
+        copy.avatar = [self.avatar copyWithZone:zone];
+        copy.username = [self.username copyWithZone:zone];
+        copy.userId = [self.userId copyWithZone:zone];
     }
     
     return copy;

+ 14 - 0
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLiveCourseCell.m

@@ -21,6 +21,10 @@
 
 @property (weak, nonatomic) IBOutlet UILabel *statusLabel;
 
+@property (weak, nonatomic) IBOutlet UIImageView *userAvatar;
+
+@property (weak, nonatomic) IBOutlet UILabel *teacherName;
+
 @property (nonatomic, strong) NSString *targetId;
 
 @property (nonatomic, copy) LiveLessonChatAction callback;
@@ -55,6 +59,16 @@
     NSString *endTime = [formatter stringFromDate:endDate];
     self.timeLabel.text = [NSString stringWithFormat:@"%@~%@",[NSString returnNoNullStringWithString:courseBegin], [NSString returnNoNullStringWithString:endTime]];
     
+    [self.userAvatar sd_setImageWithURL:[NSURL URLWithString:[model.avatar getUrlEndcodeString]] placeholderImage:[UIImage imageNamed:USERDEFAULT_LOGO]];
+    // name
+    NSString *teacherName = @"";
+    if ([NSString isEmptyString:model.username]) {
+        teacherName = [NSString stringWithFormat:@"游客%@",model.userId];
+    }
+    else {
+        teacherName = model.username;
+    }
+    self.teacherName.text = teacherName;
     //  课程状态
     [self evaluateStatus:model.status];
 }

+ 58 - 31
KulexiuForTeacher/KulexiuForTeacher/Module/Home/MyCourse/View/MyLiveCourseCell.xib

@@ -33,6 +33,32 @@
                                     </userDefinedRuntimeAttribute>
                                 </userDefinedRuntimeAttributes>
                             </imageView>
+                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="LBQ-Z9-llI">
+                                <rect key="frame" x="15" y="71" width="24.5" height="13"/>
+                                <subviews>
+                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="长笛" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="MVn-fK-uc6">
+                                        <rect key="frame" x="3" y="0.0" width="18.5" height="13"/>
+                                        <constraints>
+                                            <constraint firstAttribute="height" constant="13" id="Btd-rS-jYW"/>
+                                        </constraints>
+                                        <fontDescription key="fontDescription" type="system" pointSize="9"/>
+                                        <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                </subviews>
+                                <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.28999999999999998" colorSpace="custom" customColorSpace="calibratedRGB"/>
+                                <constraints>
+                                    <constraint firstItem="MVn-fK-uc6" firstAttribute="top" secondItem="LBQ-Z9-llI" secondAttribute="top" id="Ekt-B3-DZI"/>
+                                    <constraint firstItem="MVn-fK-uc6" firstAttribute="leading" secondItem="LBQ-Z9-llI" secondAttribute="leading" constant="3" id="jKQ-Sd-hzq"/>
+                                    <constraint firstAttribute="trailing" secondItem="MVn-fK-uc6" secondAttribute="trailing" constant="3" id="sCR-Uk-vBJ"/>
+                                    <constraint firstAttribute="bottom" secondItem="MVn-fK-uc6" secondAttribute="bottom" id="xyE-jf-hrH"/>
+                                </constraints>
+                                <userDefinedRuntimeAttributes>
+                                    <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                        <real key="value" value="1"/>
+                                    </userDefinedRuntimeAttribute>
+                                </userDefinedRuntimeAttributes>
+                            </view>
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Z3n-pP-QqQ">
                                 <rect key="frame" x="10" y="102" width="348" height="1"/>
                                 <color key="backgroundColor" red="0.94901960780000005" green="0.94901960780000005" blue="0.94901960780000005" alpha="1" colorSpace="calibratedRGB"/>
@@ -59,7 +85,7 @@
                                 <nil key="highlightedColor"/>
                             </label>
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Nk8-cr-bIe">
-                                <rect key="frame" x="165.5" y="68" width="190.5" height="20"/>
+                                <rect key="frame" x="197" y="65" width="159" height="20"/>
                                 <subviews>
                                     <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="L8Z-vN-njT">
                                         <rect key="frame" x="0.0" y="4.5" width="1" height="11"/>
@@ -99,30 +125,6 @@
                                 <color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
-                            <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8e5-WE-PwG">
-                                <rect key="frame" x="130" y="70" width="30.5" height="16"/>
-                                <subviews>
-                                    <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="长笛" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="GLH-rY-bmS">
-                                        <rect key="frame" x="4" y="1" width="22.5" height="13"/>
-                                        <fontDescription key="fontDescription" type="system" pointSize="11"/>
-                                        <color key="textColor" red="1" green="0.5490196078431373" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
-                                        <nil key="highlightedColor"/>
-                                    </label>
-                                </subviews>
-                                <color key="backgroundColor" red="1" green="0.94509803921568625" blue="0.87058823529411766" alpha="1" colorSpace="calibratedRGB"/>
-                                <constraints>
-                                    <constraint firstAttribute="height" constant="16" id="2kj-oi-wkU"/>
-                                    <constraint firstAttribute="bottom" secondItem="GLH-rY-bmS" secondAttribute="bottom" constant="2" id="Qwe-R2-kYB"/>
-                                    <constraint firstItem="GLH-rY-bmS" firstAttribute="top" secondItem="8e5-WE-PwG" secondAttribute="top" constant="1" id="aJC-lf-Zrs"/>
-                                    <constraint firstAttribute="trailing" secondItem="GLH-rY-bmS" secondAttribute="trailing" constant="4" id="liw-dJ-aUw"/>
-                                    <constraint firstItem="GLH-rY-bmS" firstAttribute="leading" secondItem="8e5-WE-PwG" secondAttribute="leading" constant="4" id="vuP-BL-Lp9"/>
-                                </constraints>
-                                <userDefinedRuntimeAttributes>
-                                    <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
-                                        <real key="value" value="4"/>
-                                    </userDefinedRuntimeAttribute>
-                                </userDefinedRuntimeAttributes>
-                            </view>
                             <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="2Kh-s4-xZJ">
                                 <rect key="frame" x="286" y="7" width="40" height="40"/>
                                 <constraints>
@@ -135,30 +137,52 @@
                                     <action selector="chatAction:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="sIl-Bo-eWo"/>
                                 </connections>
                             </button>
+                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="user_default_avatal" translatesAutoresizingMaskIntoConstraints="NO" id="iEI-Pi-SsV">
+                                <rect key="frame" x="128" y="65" width="20" height="20"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="20" id="LGY-r0-DDx"/>
+                                    <constraint firstAttribute="width" constant="20" id="g6E-PI-weR"/>
+                                </constraints>
+                                <userDefinedRuntimeAttributes>
+                                    <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
+                                        <real key="value" value="10"/>
+                                    </userDefinedRuntimeAttribute>
+                                </userDefinedRuntimeAttributes>
+                            </imageView>
+                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="张老师" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="LBW-qh-fVG">
+                                <rect key="frame" x="153" y="67" width="40" height="16"/>
+                                <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                                <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
+                                <nil key="highlightedColor"/>
+                            </label>
                         </subviews>
                         <color key="backgroundColor" systemColor="systemBackgroundColor"/>
                         <constraints>
                             <constraint firstItem="9C1-zD-NKp" firstAttribute="leading" secondItem="NWN-u6-1To" secondAttribute="trailing" constant="12" id="9xV-WZ-Jeb"/>
                             <constraint firstAttribute="trailing" secondItem="Nk8-cr-bIe" secondAttribute="trailing" constant="12" id="CVV-yo-0Sx"/>
+                            <constraint firstItem="Nk8-cr-bIe" firstAttribute="centerY" secondItem="LBW-qh-fVG" secondAttribute="centerY" id="DnD-r0-vUs"/>
                             <constraint firstItem="zwg-bj-X8b" firstAttribute="leading" secondItem="9Mv-FD-03n" secondAttribute="leading" constant="11" id="Eg4-fY-s6L"/>
                             <constraint firstItem="VrX-Hy-enc" firstAttribute="top" secondItem="Z3n-pP-QqQ" secondAttribute="bottom" constant="8" id="HJr-KG-LRz"/>
                             <constraint firstItem="Z3n-pP-QqQ" firstAttribute="top" secondItem="NWN-u6-1To" secondAttribute="bottom" constant="15" id="HWE-Lc-PGR"/>
                             <constraint firstAttribute="trailing" secondItem="VrX-Hy-enc" secondAttribute="trailing" constant="11" id="IuH-hK-LDm"/>
                             <constraint firstItem="QUH-rb-n4x" firstAttribute="leading" secondItem="zwg-bj-X8b" secondAttribute="trailing" constant="7" id="Kv8-pd-LT7"/>
-                            <constraint firstItem="Nk8-cr-bIe" firstAttribute="centerY" secondItem="8e5-WE-PwG" secondAttribute="centerY" id="WJO-du-YZM"/>
+                            <constraint firstItem="LBQ-Z9-llI" firstAttribute="bottom" secondItem="NWN-u6-1To" secondAttribute="bottom" constant="-3" id="Vgb-Du-6sJ"/>
+                            <constraint firstItem="LBW-qh-fVG" firstAttribute="centerY" secondItem="iEI-Pi-SsV" secondAttribute="centerY" id="VkB-XP-Qqs"/>
+                            <constraint firstItem="LBQ-Z9-llI" firstAttribute="leading" secondItem="NWN-u6-1To" secondAttribute="leading" constant="4" id="WaG-UB-4AU"/>
                             <constraint firstItem="2Kh-s4-xZJ" firstAttribute="leading" secondItem="9C1-zD-NKp" secondAttribute="trailing" constant="5" id="Wf6-Mf-Upf"/>
                             <constraint firstItem="zwg-bj-X8b" firstAttribute="top" secondItem="Z3n-pP-QqQ" secondAttribute="bottom" constant="11" id="YNp-yH-cDb"/>
+                            <constraint firstItem="LBW-qh-fVG" firstAttribute="leading" secondItem="iEI-Pi-SsV" secondAttribute="trailing" constant="5" id="YYw-wW-cP5"/>
                             <constraint firstItem="NWN-u6-1To" firstAttribute="top" secondItem="9Mv-FD-03n" secondAttribute="top" constant="16" id="cGY-p8-lN7"/>
                             <constraint firstItem="NWN-u6-1To" firstAttribute="leading" secondItem="9Mv-FD-03n" secondAttribute="leading" constant="11" id="cfe-2g-SQh"/>
-                            <constraint firstItem="8e5-WE-PwG" firstAttribute="leading" secondItem="NWN-u6-1To" secondAttribute="trailing" constant="14" id="gct-Bj-cAn"/>
                             <constraint firstItem="Z3n-pP-QqQ" firstAttribute="leading" secondItem="9Mv-FD-03n" secondAttribute="leading" constant="10" id="hry-ZU-tVs"/>
                             <constraint firstItem="9C1-zD-NKp" firstAttribute="top" secondItem="NWN-u6-1To" secondAttribute="top" constant="1" id="jfN-JM-ITb"/>
+                            <constraint firstItem="Nk8-cr-bIe" firstAttribute="leading" secondItem="LBW-qh-fVG" secondAttribute="trailing" constant="4" id="kex-gT-4CX"/>
                             <constraint firstItem="2Kh-s4-xZJ" firstAttribute="centerY" secondItem="9C1-zD-NKp" secondAttribute="centerY" id="mRw-yl-KmV"/>
                             <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="2Kh-s4-xZJ" secondAttribute="trailing" id="nNd-mX-E6C"/>
                             <constraint firstAttribute="trailing" secondItem="Z3n-pP-QqQ" secondAttribute="trailing" constant="10" id="oVA-kc-t3T"/>
-                            <constraint firstItem="8e5-WE-PwG" firstAttribute="bottom" secondItem="NWN-u6-1To" secondAttribute="bottom" constant="-1" id="r3t-nW-e8s"/>
+                            <constraint firstItem="iEI-Pi-SsV" firstAttribute="leading" secondItem="9C1-zD-NKp" secondAttribute="leading" id="rer-Fd-tpS"/>
                             <constraint firstItem="QUH-rb-n4x" firstAttribute="centerY" secondItem="zwg-bj-X8b" secondAttribute="centerY" id="uBT-wz-dHP"/>
-                            <constraint firstItem="Nk8-cr-bIe" firstAttribute="leading" secondItem="8e5-WE-PwG" secondAttribute="trailing" constant="5" id="zoz-sK-NnJ"/>
+                            <constraint firstItem="iEI-Pi-SsV" firstAttribute="bottom" secondItem="NWN-u6-1To" secondAttribute="bottom" constant="-2" id="vkW-bd-hBZ"/>
                         </constraints>
                         <userDefinedRuntimeAttributes>
                             <userDefinedRuntimeAttribute type="number" keyPath="cornerRadius">
@@ -181,8 +205,10 @@
                 <outlet property="courseNameLabel" destination="9C1-zD-NKp" id="dMl-ob-iwk"/>
                 <outlet property="descLabel" destination="Z2r-ta-wPC" id="DTT-W9-umA"/>
                 <outlet property="statusLabel" destination="VrX-Hy-enc" id="6M9-tY-aZT"/>
-                <outlet property="subjectName" destination="GLH-rY-bmS" id="CtN-f5-rMC"/>
+                <outlet property="subjectName" destination="MVn-fK-uc6" id="XPI-bJ-IQA"/>
+                <outlet property="teacherName" destination="LBW-qh-fVG" id="9SD-jg-AaQ"/>
                 <outlet property="timeLabel" destination="QUH-rb-n4x" id="RV0-zl-r5M"/>
+                <outlet property="userAvatar" destination="iEI-Pi-SsV" id="UDN-vY-dOT"/>
             </connections>
             <point key="canvasLocation" x="186.95652173913044" y="118.52678571428571"/>
         </tableViewCell>
@@ -190,7 +216,8 @@
     <resources>
         <image name="chat_chat" width="19" height="18"/>
         <image name="course_time" width="16" height="16"/>
-        <image name="video_placeholder" width="168" height="111"/>
+        <image name="user_default_avatal" width="52" height="52"/>
+        <image name="video_placeholder" width="103" height="72"/>
         <systemColor name="systemBackgroundColor">
             <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
         </systemColor>