Hiding call quality indicator when needed + start of call quality indicator on video view

This commit is contained in:
Sylvain Berfini 2011-12-30 11:45:59 +01:00
parent 0ae32e94b8
commit 4fc990d99f
4 changed files with 95 additions and 245 deletions

View file

@ -635,20 +635,26 @@ int callCount(LinphoneCore* lc) {
// Call Quality Indicator
UIImageView* callquality = [UIImageView new];
[callquality setFrame:CGRectMake(0, 0, 28, 28)];
if (linphone_call_get_average_quality(call) >= 4) {
[callquality setImage: [IncallViewController stat_sys_signal_4]];
}
else if (linphone_call_get_average_quality(call) >= 3) {
[callquality setImage: [IncallViewController stat_sys_signal_3]];
}
else if (linphone_call_get_average_quality(call) >= 2) {
[callquality setImage: [IncallViewController stat_sys_signal_2]];
}
else if (linphone_call_get_average_quality(call) >= 1) {
[callquality setImage: [IncallViewController stat_sys_signal_1]];
if (call->state == LinphoneCallStreamsRunning)
{
if (linphone_call_get_average_quality(call) >= 4) {
[callquality setImage: [IncallViewController stat_sys_signal_4]];
}
else if (linphone_call_get_average_quality(call) >= 3) {
[callquality setImage: [IncallViewController stat_sys_signal_3]];
}
else if (linphone_call_get_average_quality(call) >= 2) {
[callquality setImage: [IncallViewController stat_sys_signal_2]];
}
else if (linphone_call_get_average_quality(call) >= 1) {
[callquality setImage: [IncallViewController stat_sys_signal_1]];
}
else {
[callquality setImage: [IncallViewController stat_sys_signal_0]];
}
}
else {
[callquality setImage: [IncallViewController stat_sys_signal_0]];
[callquality setImage:nil];
}
if (enc != LinphoneMediaEncryptionNone) {

View file

@ -51,6 +51,7 @@
@property (nonatomic, retain) IBOutlet UIMuteButton* mMute;
@property (nonatomic, retain) IBOutlet UIHangUpButton* mHangUp;
@property (nonatomic, retain) IBOutlet UICamSwitch* mCamSwitch;
@property (nonatomic, retain) IBOutlet UIImageView *mCallQuality;
@property (nonatomic, retain) IBOutlet UIView* mLandscapeRight;
@property (nonatomic, retain) IBOutlet UIView* mDisplayLandRight;
@ -65,4 +66,9 @@
@property (nonatomic, retain) IBOutlet UIMuteButton* mMuteLandLeft;
@property (nonatomic, retain) IBOutlet UIHangUpButton* mHangUpLandLeft;
@property (nonatomic, retain) IBOutlet UICamSwitch* mCamSwitchLandLeft;
- (void) updateCallQualityIndicator;
- (void) waitBeforeUpdatingCallQualityIndicator;
@end

View file

@ -28,6 +28,7 @@
@synthesize mMute;
@synthesize mHangUp;
@synthesize mCamSwitch;
@synthesize mCallQuality;
@synthesize mLandscapeRight;
@synthesize mDisplayLandRight;
@ -54,6 +55,7 @@
- (void)dealloc
{
[mCallQuality release];
[super dealloc];
}
@ -76,8 +78,38 @@
[mCamSwitch setPreview:mPreview];
[mCamSwitchLandRight setPreview:mPreviewLandRight];
[mCamSwitchLandLeft setPreview:mPreviewLandLeft];
[self performSelector:@selector(waitBeforeUpdatingCallQualityIndicator) withObject:nil afterDelay:1];
isFirst=TRUE;
}
- (void) waitBeforeUpdatingCallQualityIndicator
{
[self performSelectorOnMainThread:@selector(updateCallQualityIndicator) withObject:nil waitUntilDone:YES];
[self performSelector:@selector(waitBeforeUpdatingCallQualityIndicator) withObject:nil afterDelay:1];
}
- (void) updateCallQualityIndicator
{
LinphoneCall* call = linphone_core_get_current_call([LinphoneManager getLc]);
if (linphone_call_get_average_quality(call) >= 4) {
[mCallQuality setImage: [[UIImage imageNamed:@"stat_sys_signal_4.png"] retain]];
}
else if (linphone_call_get_average_quality(call) >= 3) {
[mCallQuality setImage: [[UIImage imageNamed:@"stat_sys_signal_3.png"] retain]];
}
else if (linphone_call_get_average_quality(call) >= 2) {
[mCallQuality setImage: [[UIImage imageNamed:@"stat_sys_signal_2.png"] retain]];
}
else if (linphone_call_get_average_quality(call) >= 1) {
[mCallQuality setImage: [[UIImage imageNamed:@"stat_sys_signal_1.png"] retain]];
}
else {
[mCallQuality setImage: [[UIImage imageNamed:@"stat_sys_signal_0.png"] retain]];
}
}
-(void) configureOrientation:(UIInterfaceOrientation) oritentation {
@ -113,6 +145,8 @@
- (void)viewDidUnload
{
[mCallQuality release];
mCallQuality = nil;
[super viewDidUnload];
// Release any retained subviews of the main view.

View file

@ -36,11 +36,9 @@
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIView" id="82063733">
<reference key="NSNextResponder"/>
<nil key="NSNextResponder"/>
<int key="NSvFlags">292</int>
<string key="NSFrameSize">{320, 460}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MCAwIDAAA</bytes>
@ -48,7 +46,7 @@
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIView" id="191373211">
<reference key="NSNextResponder"/>
<nil key="NSNextResponder"/>
<int key="NSvFlags">274</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
@ -57,8 +55,7 @@
<int key="NSvFlags">274</int>
<string key="NSFrameSize">{320, 420}</string>
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="955352536"/>
<reference key="NSNextKeyView" ref="162570569"/>
<int key="IBUIContentMode">1</int>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
@ -68,7 +65,6 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{1, 418}, {108, 62}}</string>
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="695487530"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
@ -107,7 +103,6 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{106, 418}, {106, 63}}</string>
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="383499753"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
@ -132,7 +127,6 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{211, 418}, {108, 62}}</string>
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSWindow"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
@ -154,7 +148,6 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{233, 309}, {80, 106}}</string>
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="477702441"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
@ -165,10 +158,18 @@
</object>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIImageView" id="162570569">
<reference key="NSNextResponder" ref="191373211"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{6, 387}, {28, 28}}</string>
<reference key="NSSuperview" ref="191373211"/>
<reference key="NSNextKeyView" ref="955352536"/>
<string key="NSReuseIdentifierKey">_NS:567</string>
<bool key="IBUIUserInteractionEnabled">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
</object>
<string key="NSFrameSize">{320, 480}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="733070734"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
@ -177,7 +178,7 @@
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIView" id="977413659">
<reference key="NSNextResponder"/>
<nil key="NSNextResponder"/>
<int key="NSvFlags">292</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
@ -186,7 +187,6 @@
<int key="NSvFlags">274</int>
<string key="NSFrameSize">{420, 320}</string>
<reference key="NSSuperview" ref="977413659"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1050670507"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
@ -200,7 +200,6 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{420, 0}, {60, 108}}</string>
<reference key="NSSuperview" ref="977413659"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="335958099"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
@ -228,7 +227,6 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{420, 107}, {60, 106}}</string>
<reference key="NSSuperview" ref="977413659"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="124303267"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
@ -250,7 +248,6 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{420, 212}, {60, 108}}</string>
<reference key="NSSuperview" ref="977413659"/>
<reference key="NSWindow"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
@ -271,7 +268,6 @@
<int key="NSvFlags">274</int>
<string key="NSFrame">{{308, 233}, {106, 80}}</string>
<reference key="NSSuperview" ref="977413659"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="676617489"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
@ -282,8 +278,6 @@
</object>
</object>
<string key="NSFrameSize">{480, 320}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="858597805"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
@ -297,7 +291,7 @@
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIView" id="738244138">
<reference key="NSNextResponder"/>
<nil key="NSNextResponder"/>
<int key="NSvFlags">292</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
@ -306,8 +300,7 @@
<int key="NSvFlags">274</int>
<string key="NSFrame">{{60, 0}, {420, 320}}</string>
<reference key="NSSuperview" ref="738244138"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="689882425"/>
<reference key="NSNextKeyView" ref="81113981"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
@ -320,7 +313,6 @@
<int key="NSvFlags">292</int>
<string key="NSFrameSize">{60, 108}</string>
<reference key="NSSuperview" ref="738244138"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="93544236"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
@ -342,8 +334,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{0, 107}, {60, 106}}</string>
<reference key="NSSuperview" ref="738244138"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="81113981"/>
<reference key="NSNextKeyView" ref="898336236"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
@ -364,7 +355,7 @@
<int key="NSvFlags">292</int>
<string key="NSFrame">{{0, 212}, {60, 108}}</string>
<reference key="NSSuperview" ref="738244138"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="774090532"/>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
@ -385,8 +376,6 @@
<int key="NSvFlags">274</int>
<string key="NSFrame">{{360, 233}, {106, 80}}</string>
<reference key="NSSuperview" ref="738244138"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="898336236"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
@ -396,9 +385,7 @@
</object>
</object>
<string key="NSFrameSize">{480, 320}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="774090532"/>
<reference key="NSNextKeyView" ref="689882425"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
@ -566,6 +553,14 @@
</object>
<int key="connectionID">51</int>
</object>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">mCallQuality</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="162570569"/>
</object>
<int key="connectionID">54</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
@ -608,6 +603,7 @@
<reference ref="695487530"/>
<reference ref="383499753"/>
<reference ref="955352536"/>
<reference ref="162570569"/>
</object>
<reference key="parent" ref="0"/>
<string key="objectName">portrait</string>
@ -731,6 +727,11 @@
<reference key="parent" ref="738244138"/>
<string key="objectName">display</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">52</int>
<reference key="object" ref="162570569"/>
<reference key="parent" ref="191373211"/>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
@ -762,6 +763,7 @@
<string>38.IBPluginDependency</string>
<string>39.IBPluginDependency</string>
<string>5.IBPluginDependency</string>
<string>52.IBPluginDependency</string>
<string>6.CustomClassName</string>
<string>6.IBPluginDependency</string>
<string>7.CustomClassName</string>
@ -797,6 +799,7 @@
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>UIMuteButton</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>UIHangUpButton</string>
@ -818,208 +821,9 @@
<reference key="dict.values" ref="0"/>
</object>
<nil key="sourceID"/>
<int key="maxID">51</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBPartialClassDescription">
<string key="className">UICamSwitch</string>
<string key="superclassName">UIButton</string>
<object class="NSMutableDictionary" key="outlets">
<string key="NS.key.0">preview</string>
<string key="NS.object.0">UIView</string>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
<string key="NS.key.0">preview</string>
<object class="IBToOneOutletInfo" key="NS.object.0">
<string key="name">preview</string>
<string key="candidateClassName">UIView</string>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UICamSwitch.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIHangUpButton</string>
<string key="superclassName">UIButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIHangUpButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIMuteButton</string>
<string key="superclassName">UIToggleButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIMuteButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIToggleButton</string>
<string key="superclassName">UIButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/UIToggleButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">VideoViewController</string>
<string key="superclassName">UIViewController</string>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>mCamSwitch</string>
<string>mCamSwitchLandLeft</string>
<string>mCamSwitchLandRight</string>
<string>mDisplay</string>
<string>mDisplayLandLeft</string>
<string>mDisplayLandRight</string>
<string>mHangUp</string>
<string>mHangUpLandLeft</string>
<string>mHangUpLandRight</string>
<string>mLandscapeLeft</string>
<string>mLandscapeRight</string>
<string>mMute</string>
<string>mMuteLandLeft</string>
<string>mMuteLandRight</string>
<string>mPortrait</string>
<string>mPreview</string>
<string>mPreviewLandLeft</string>
<string>mPreviewLandRight</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>UICamSwitch</string>
<string>UICamSwitch</string>
<string>UICamSwitch</string>
<string>UIView</string>
<string>UIView</string>
<string>UIView</string>
<string>UIHangUpButton</string>
<string>UIHangUpButton</string>
<string>UIHangUpButton</string>
<string>UIView</string>
<string>UIView</string>
<string>UIMuteButton</string>
<string>UIMuteButton</string>
<string>UIMuteButton</string>
<string>UIView</string>
<string>UIView</string>
<string>UIView</string>
<string>UIView</string>
</object>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>mCamSwitch</string>
<string>mCamSwitchLandLeft</string>
<string>mCamSwitchLandRight</string>
<string>mDisplay</string>
<string>mDisplayLandLeft</string>
<string>mDisplayLandRight</string>
<string>mHangUp</string>
<string>mHangUpLandLeft</string>
<string>mHangUpLandRight</string>
<string>mLandscapeLeft</string>
<string>mLandscapeRight</string>
<string>mMute</string>
<string>mMuteLandLeft</string>
<string>mMuteLandRight</string>
<string>mPortrait</string>
<string>mPreview</string>
<string>mPreviewLandLeft</string>
<string>mPreviewLandRight</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBToOneOutletInfo">
<string key="name">mCamSwitch</string>
<string key="candidateClassName">UICamSwitch</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mCamSwitchLandLeft</string>
<string key="candidateClassName">UICamSwitch</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mCamSwitchLandRight</string>
<string key="candidateClassName">UICamSwitch</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mDisplay</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mDisplayLandLeft</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mDisplayLandRight</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mHangUp</string>
<string key="candidateClassName">UIHangUpButton</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mHangUpLandLeft</string>
<string key="candidateClassName">UIHangUpButton</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mHangUpLandRight</string>
<string key="candidateClassName">UIHangUpButton</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mLandscapeLeft</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mLandscapeRight</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mMute</string>
<string key="candidateClassName">UIMuteButton</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mMuteLandLeft</string>
<string key="candidateClassName">UIMuteButton</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mMuteLandRight</string>
<string key="candidateClassName">UIMuteButton</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mPortrait</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mPreview</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mPreviewLandLeft</string>
<string key="candidateClassName">UIView</string>
</object>
<object class="IBToOneOutletInfo">
<string key="name">mPreviewLandRight</string>
<string key="candidateClassName">UIView</string>
</object>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/VideoViewController.h</string>
</object>
</object>
</object>
<int key="maxID">54</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes"/>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">