From 08d133147178054e22f7f4ef65b048765dcf7f93 Mon Sep 17 00:00:00 2001 From: Danmei Chen Date: Thu, 25 Oct 2018 14:24:37 +0200 Subject: [PATCH] 4.1: new CallView --- Classes/Base.lproj/CallView.xib | 196 +++++---- Classes/Base.lproj/CallView~ipad.xib | 528 +++++++++++++----------- Classes/CallView.h | 1 + Classes/CallView.m | 21 + Resources/images/rec_off_default.png | Bin 597 -> 1070 bytes Resources/images/rec_off_default@2x.png | Bin 1140 -> 2234 bytes Resources/images/rec_on_default.png | Bin 689 -> 1095 bytes Resources/images/rec_on_default@2x.png | Bin 1271 -> 2268 bytes Resources/images/recording.png | Bin 0 -> 1810 bytes Resources/images/recording@2x.png | Bin 0 -> 3777 bytes linphone.xcodeproj/project.pbxproj | 8 + 11 files changed, 427 insertions(+), 327 deletions(-) create mode 100644 Resources/images/recording.png create mode 100644 Resources/images/recording@2x.png diff --git a/Classes/Base.lproj/CallView.xib b/Classes/Base.lproj/CallView.xib index 7dfbac661..aee5ae108 100644 --- a/Classes/Base.lproj/CallView.xib +++ b/Classes/Base.lproj/CallView.xib @@ -26,6 +26,7 @@ + @@ -43,7 +44,7 @@ - + @@ -128,8 +129,8 @@ - - + + @@ -153,8 +154,8 @@ - - + + @@ -162,9 +163,9 @@ - - - + @@ -779,8 +786,8 @@ - - + + @@ -788,8 +795,8 @@ - - + @@ -1336,7 +1349,7 @@ - + YnBsaXN0MDDUAQIDBAUGVVZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoK8QEgcI ExQZHh8jJCsuMTtDR0tPUlUkbnVsbNUJCgsMDQ4PEBESVk5TU2l6ZVYkY2xhc3NcTlNJbWFnZUZsYWdz @@ -1822,7 +1835,8 @@ qTKsMrkyvjLGMskyzjLWMtky6zLuMvMAAAAAAAACAQAAAAAAAABZAAAAAAAAAAAAAAAAAAAy9Q - + + diff --git a/Classes/Base.lproj/CallView~ipad.xib b/Classes/Base.lproj/CallView~ipad.xib index 9de664410..5ef544b76 100644 --- a/Classes/Base.lproj/CallView~ipad.xib +++ b/Classes/Base.lproj/CallView~ipad.xib @@ -1,7 +1,12 @@ - - + + + + + - + + + @@ -37,6 +42,8 @@ + + @@ -89,14 +96,14 @@ - + - - + + @@ -107,14 +114,14 @@ - + - + @@ -135,32 +142,32 @@ - + - + - - + + - + - - + - - + + + + + - + - + - - + + @@ -255,11 +273,11 @@ @@ -280,7 +298,7 @@ - + @@ -290,7 +308,7 @@ - + @@ -300,7 +318,7 @@ - + @@ -310,7 +328,7 @@ - + @@ -320,7 +338,7 @@ - + @@ -330,7 +348,7 @@ - + @@ -340,7 +358,7 @@ - + @@ -350,7 +368,7 @@ - + @@ -360,7 +378,7 @@ - + @@ -370,12 +388,12 @@ - + - + - @@ -587,7 +618,7 @@ - + @@ -606,7 +637,7 @@ - + @@ -618,7 +649,7 @@ - + @@ -630,7 +661,7 @@ - + @@ -645,7 +676,7 @@ - + @@ -659,10 +690,10 @@ - + - + @@ -682,14 +713,14 @@ - + - - + + @@ -700,14 +731,14 @@ - + - + @@ -728,32 +759,32 @@ - + - + - - + + - + - - + - - + + + + + - + - + - - + + @@ -848,11 +890,11 @@ @@ -873,7 +915,7 @@ - + @@ -883,7 +925,7 @@ - + @@ -893,7 +935,7 @@ - + @@ -903,7 +945,7 @@ - + @@ -913,7 +955,7 @@ - + @@ -923,7 +965,7 @@ - + @@ -933,7 +975,7 @@ - + @@ -943,7 +985,7 @@ - + @@ -953,7 +995,7 @@ - + @@ -963,12 +1005,12 @@ - + - + - - + - - + - - - - - - - - + + + + + + + + @@ -1280,62 +1334,64 @@ - + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + - - - - - - - - + + + + + + + + + + - - - - + + + + - - - - + + + + diff --git a/Classes/CallView.h b/Classes/CallView.h index 8fe61cb58..ad058daa5 100644 --- a/Classes/CallView.h +++ b/Classes/CallView.h @@ -99,6 +99,7 @@ @property(weak, nonatomic) IBOutlet UIView *conferenceView; @property(strong, nonatomic) IBOutlet CallPausedTableView *conferenceCallsTable; @property (weak, nonatomic) IBOutlet UIView *waitView; +@property (weak, nonatomic) IBOutlet UIView *infoView; - (IBAction)onRoutesClick:(id)sender; - (IBAction)onRoutesBluetoothClick:(id)sender; diff --git a/Classes/CallView.m b/Classes/CallView.m index aa4e2f8e8..7fa271387 100644 --- a/Classes/CallView.m +++ b/Classes/CallView.m @@ -49,6 +49,10 @@ const NSInteger SECURE_BUTTON_TAG = 5; videoZoomHandler = [[VideoZoomHandler alloc] init]; videoHidden = TRUE; callRecording = FALSE; + _recordButtonOnView.hidden = TRUE; + CGRect frame = _callPauseButton.frame; + frame.origin.y = _recordButtonOnView.frame.origin.y; + _callPauseButton.frame = frame; } return self; } @@ -235,10 +239,26 @@ static UICompositeViewDescription *compositeDescription = nil; [self updateUnreadMessage:NO]; [self previewTouchLift]; [self hideStatusBar:!videoHidden && (_nameLabel.alpha <= 0.f)]; + [_recordButtonOnView setHidden:!callRecording]; + [self updateInfoView]; } #pragma mark - UI modification +- (void)updateInfoView { + CGRect infoFrame = _infoView.frame; + CGRect frame = _callPauseButton.frame; + if (videoHidden) { + infoFrame.origin.y = (_avatarImage.frame.origin.y-66)/2; + frame.origin.y = _recordButtonOnView.frame.origin.y; + } else { + infoFrame.origin.y = 0; + frame.origin.y = _videoCameraSwitch.frame.origin.y+_videoGroup.frame.origin.y; + } + _infoView.frame = infoFrame; + _callPauseButton.frame = frame; +} + - (void)hideSpinnerIndicator:(LinphoneCall *)call { _videoWaitingForFirstImage.hidden = TRUE; } @@ -527,6 +547,7 @@ static void hideSpinner(LinphoneCall *call, void *user_data) { [self displayAudioCall:animated]; } } + [self updateInfoView]; if (state != LinphoneCallPausedByRemote) { _pausedByRemoteView.hidden = YES; diff --git a/Resources/images/rec_off_default.png b/Resources/images/rec_off_default.png index 4dace8a7294ada50a7b34a277c28a26273bb9cf4..55ab37a87699cfeb5e857a88ae18ab094d899147 100644 GIT binary patch delta 1037 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 delta 1108 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 diff --git a/Resources/images/rec_on_default@2x.png b/Resources/images/rec_on_default@2x.png index 2bd2505c1a9e4f357926f6c0fd3dd15a61fc6a8f..2a01c59731bca5974f2c2f1b1f4d9200feb08927 100644 GIT binary patch delta 2245 zcmV;$2s-!o3EUAOiBL{Q4GJ0x0000DNk~Le0000a0000u2nGNE0F@M4c#$D7e+n25 zD=BsvKlcCt2x&<~K~z}7?OAmrA?Kl>Y=8AMk*gcN|k~tS_M*YRETJDhI@Cuz=2yLm8ueLNsA3B z2~iucvH6I-yKnkO-df9g5B&85HAC`FGN@yfHPV%(3<)jfQk^%tpL6wr93$#K*?lM96NUGhs?YIe?UZ&8NeX` z`whc5c<9if3t@Zf>+7dDjYx0W~%@j_T~}{0%cN_mQPi z>X~dd`{zO0++3y9CIE|lh6NQ|~^dlnH*cU_l-5a)}Eir!77Qay$C)Ya9^ zBBDP5DAB;amQJVl_XCtjBqrLn{SN?B0Juu2hqBphs(@Y0S4w>!f53wPCIqIt0Hl;s zFBY=5y1F`xh~Co9@*#lPQp(E!V0eql%gd7h68d~MWwY5=f{d!Fs>aTqJ^NS8{4#*K z07i$%8x3GC5v{JMsF+q(R+c_{_N?Py(B9tOR#{m&9zZpK@c`Vmwzh1a4Vk7n3BX#t z{-aT&M*Td*C?|~{e?LA4VATKvDiP7+kw~N^kw{DoPTID;5x_n12=;uxZQJ`A8ygKjF_+7A0@$QqC)u|B^&lWG`tA;L%;)pp2C!rp zPFCO9*|{o6Gz??6mf44aw5N0c7)wOQ)9G||h$ppcV;|1=e;^u-Rs@5gX_~D7?gwx! z8jVJUZQFBv!73GU*5(L+0f4EOE?tU+7@8-uxT~w{F2T&Re3Pfb)QyoF4M74k_sLXB z%@P16`z9}hY$zWoG(=P$Li^AMs8kTqXy4?=AseD2sG-Rrw5vW@#e#^g`w)%|+3?W_ z0{TzL35@rHe-lb6zrfFiXsB%j0fq6J>i>8_M5ld(FNOema|CVZ4WcCK>LWsVL+QT3KV9b~? zzxTX}h@MU)5_bl9UcGwtaRALj!1I>tx=)1UM4txmJXkCR zy}dsPGH7jWy&jE5moW1S0D1=iq=$%p8jVJm=5o1@L$tHOOYVqhb8Bns^&2wAs;a87 zxi!FvIC*U^uql+WLgBlQcVe{F4VS5{U|129jgB`apmoY}o{<;oMe zT#knVB$-SK!!Xtp(JlbvGD$YHHSmmD6;KYI7BU?Y^%9fRoI;AHW-#Oy;iz?CKt+)WgiY48XmC zf17=+l=8Pj?tU~hG?Y7zv(;Bx`$so`c4qcs*d5wSC-jeve1MtPXS3OJBher7ykk9p zW!ggqGOhvGuaw$6&?W^9)+VZ}t0xo}7eAnsT0}&511KY+30e)^x`TGgFpRf*dwW}Q zx!e`p9=FHs@qaWZkw}adLiCF(3l=Q6f1FGvRUy|eDJhBEjIj`+N9S3=9_D9+5Ho}j zwh-do!-o%Fy#bJAS!^7iU2eMc*o-(30ye4h-fzve+dm{ z9W&nz;7(@V1mKa71b#UYT@1nTzP{}%iD- zn?D(=t*vd2L?Y+3CSwI`|# zr_{+0Lu-- znCx?${|-c>K@G*3IZj0I3F%?x4Vg^l*9CZ7_BAg1^?U}K>I4CG;FDhpf1{Xrn$}uY zO1beSHZrG>QM;~tITGm;amPRaiNM)!ky2LLwp{_>Uz(PP#bRF>ib3n*&+D9&E?&I2 zUpLOOtTm=-?lVnuUpyY4FA6Ynh-iaP3mb=VJst8szNe?>oBoOU^XC^a^Ew?I8bUMV zt_AP~%_p15WZDYGA^l@5=?j1_=wA$BUbZjzXkln+X*mtxDP4n&W9F?ybb^RdMD&p6 zae;`QxaD0|Q&aOg0I&AC_vq21jYByzDdi3T2_iZXC=R=sd8gwz8}p=;Z2<5;xS6v! TV5HV700000NkvXXu0mjf8q_(7 delta 1240 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 Ad?-5y(Q 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