mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-01-31 02:09:22 +00:00
Merge branch 'master' into apple_store
Conflicts: submodules/build/Makefile
This commit is contained in:
commit
7d26c58154
315 changed files with 16739 additions and 119437 deletions
20
.gitmodules
vendored
20
.gitmodules
vendored
|
|
@ -31,9 +31,9 @@
|
|||
[submodule "submodules/externals/libvpx"]
|
||||
path = submodules/externals/libvpx
|
||||
url = http://git.chromium.org/webm/libvpx.git
|
||||
[submodule "submodules/externals/zrtpcpp"]
|
||||
path = submodules/externals/zrtpcpp
|
||||
url = git://git.linphone.org/zrtpcpp.git
|
||||
[submodule "submodules/bzrtp"]
|
||||
path = submodules/bzrtp
|
||||
url = git://git.linphone.org/bzrtp.git
|
||||
[submodule "submodules/mssilk"]
|
||||
path = submodules/mssilk
|
||||
url = git://git.linphone.org/mssilk.git
|
||||
|
|
@ -54,7 +54,19 @@
|
|||
url = git://git.linphone.org/polarssl.git
|
||||
[submodule "submodules/externals/opus"]
|
||||
path = submodules/externals/opus
|
||||
url = git://git.opus-codec.org/opus.git
|
||||
url = http://git.opus-codec.org/opus.git
|
||||
[submodule "submodules/externals/libxml2"]
|
||||
path = submodules/externals/libxml2
|
||||
url = git://git.gnome.org/libxml2
|
||||
[submodule "submodules/cunit"]
|
||||
path = submodules/cunit
|
||||
url = git://git.linphone.org/cunit.git
|
||||
[submodule "submodules/externals/openh264"]
|
||||
path = submodules/externals/openh264
|
||||
url = https://github.com/cisco/openh264
|
||||
[submodule "submodules/msopenh264"]
|
||||
path = submodules/msopenh264
|
||||
url = git://git.linphone.org/msopenh264.git
|
||||
[submodule "submodules/mswebrtc"]
|
||||
path = submodules/mswebrtc
|
||||
url = git://git.linphone.org/mswebrtc.git
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
#import "AboutViewController.h"
|
||||
#include "ConsoleViewController.h"
|
||||
#import "LinphoneManager.h"
|
||||
#include "lpconfig.h"
|
||||
#include "linphone/lpconfig.h"
|
||||
|
||||
@implementation AboutViewController
|
||||
|
||||
|
|
|
|||
|
|
@ -1,603 +1,88 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">784</int>
|
||||
<string key="IBDocument.SystemVersion">11G63</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">2840</string>
|
||||
<string key="IBDocument.AppKitVersion">1138.51</string>
|
||||
<string key="IBDocument.HIToolboxVersion">569.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">1926</string>
|
||||
</object>
|
||||
<object class="NSArray" key="IBDocument.IntegratedClassDependencies">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>IBProxyObject</string>
|
||||
<string>IBUIImageView</string>
|
||||
<string>IBUILabel</string>
|
||||
<string>IBUIScrollView</string>
|
||||
<string>IBUIView</string>
|
||||
<string>IBUIWebView</string>
|
||||
</object>
|
||||
<object class="NSArray" key="IBDocument.PluginDependencies">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
|
||||
<integer value="1" key="NS.object.0"/>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBProxyObject" id="372490531">
|
||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="975951072">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIScrollView" id="457997634">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrameSize">{320, 460}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIMultipleTouchEnabled">YES</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<double key="IBUIContentInset.top">0.0</double>
|
||||
<double key="IBUIContentInset.bottom">10</double>
|
||||
<double key="IBUIContentInset.left">0.0</double>
|
||||
<double key="IBUIContentInset.right">0.0</double>
|
||||
<bool key="IBUIAlwaysBounceVertical">YES</bool>
|
||||
<bool key="IBUIShowsHorizontalScrollIndicator">NO</bool>
|
||||
<double key="IBUIScrollIndicatorInsets.top">0.0</double>
|
||||
<double key="IBUIScrollIndicatorInsets.bottom">10</double>
|
||||
<double key="IBUIScrollIndicatorInsets.left">0.0</double>
|
||||
<double key="IBUIScrollIndicatorInsets.right">0.0</double>
|
||||
</object>
|
||||
<object class="IBUIView" id="775128611">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<object class="NSMutableArray" key="NSSubviews">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBUIImageView" id="97290309">
|
||||
<reference key="NSNextResponder" ref="775128611"/>
|
||||
<int key="NSvFlags">311</int>
|
||||
<string key="NSFrame">{{124, 20}, {72, 72}}</string>
|
||||
<reference key="NSSuperview" ref="775128611"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="945733244"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<int key="IBUIContentMode">1</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSCustomResource" key="IBUIImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">linphone_logo.png</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUILabel" id="945733244">
|
||||
<reference key="NSNextResponder" ref="775128611"/>
|
||||
<int key="NSvFlags">314</int>
|
||||
<string key="NSFrame">{{10, 100}, {300, 50}}</string>
|
||||
<reference key="NSSuperview" ref="775128611"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="966549235"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">Linphone</string>
|
||||
<object class="NSColor" key="IBUITextColor" id="549716735">
|
||||
<int key="NSColorSpace">2</int>
|
||||
<bytes key="NSRGB">MC4zNTY4NjI3NTM2IDAuMzk2MDc4NDM3NiAwLjQzNTI5NDEyMTUAA</bytes>
|
||||
</object>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">0</int>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription">
|
||||
<int key="type">2</int>
|
||||
<double key="pointSize">35</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">35</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<bool key="IBUIAdjustsFontSizeToFit">NO</bool>
|
||||
</object>
|
||||
<object class="IBUILabel" id="55823705">
|
||||
<reference key="NSNextResponder" ref="775128611"/>
|
||||
<int key="NSvFlags">314</int>
|
||||
<string key="NSFrame">{{10, 200}, {300, 44}}</string>
|
||||
<reference key="NSSuperview" ref="775128611"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="697092436"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">http://www.linphone.org</string>
|
||||
<object class="NSColor" key="IBUITextColor">
|
||||
<int key="NSColorSpace">2</int>
|
||||
<bytes key="NSRGB">MC44MTE3NjQ3MTcxIDAuMjk4MDM5MjI3NyAwLjE2MDc4NDMxOQA</bytes>
|
||||
</object>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription" id="151194520">
|
||||
<int key="type">1</int>
|
||||
<double key="pointSize">17</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont" id="901921461">
|
||||
<string key="NSName">Helvetica</string>
|
||||
<double key="NSSize">17</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUILabel" id="966549235">
|
||||
<reference key="NSNextResponder" ref="775128611"/>
|
||||
<int key="NSvFlags">314</int>
|
||||
<string key="NSFrame">{{10, 150}, {300, 21}}</string>
|
||||
<reference key="NSSuperview" ref="775128611"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="132342957"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">Linphone iPhone 1.0</string>
|
||||
<reference key="IBUITextColor" ref="549716735"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">0</int>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription" id="741880680">
|
||||
<int key="type">1</int>
|
||||
<double key="pointSize">13</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont" id="141611231">
|
||||
<string key="NSName">Helvetica</string>
|
||||
<double key="NSSize">13</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<bool key="IBUIAdjustsFontSizeToFit">NO</bool>
|
||||
</object>
|
||||
<object class="IBUILabel" id="132342957">
|
||||
<reference key="NSNextResponder" ref="775128611"/>
|
||||
<int key="NSvFlags">314</int>
|
||||
<string key="NSFrame">{{10, 172}, {300, 21}}</string>
|
||||
<reference key="NSSuperview" ref="775128611"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="55823705"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">Linphone Core 1.0</string>
|
||||
<reference key="IBUITextColor" ref="549716735"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">0</int>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<reference key="IBUIFontDescription" ref="741880680"/>
|
||||
<reference key="IBUIFont" ref="141611231"/>
|
||||
<bool key="IBUIAdjustsFontSizeToFit">NO</bool>
|
||||
</object>
|
||||
<object class="IBUILabel" id="28600489">
|
||||
<reference key="NSNextResponder" ref="775128611"/>
|
||||
<int key="NSvFlags">314</int>
|
||||
<string key="NSFrame">{{10, 300}, {300, 21}}</string>
|
||||
<reference key="NSSuperview" ref="775128611"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="364833627"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">© 2010-2012 Belledonne Communications </string>
|
||||
<object class="NSColor" key="IBUITextColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MCAwIDAAA</bytes>
|
||||
<string key="IBUIColorCocoaTouchKeyPath">darkTextColor</string>
|
||||
</object>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<reference key="IBUIFontDescription" ref="151194520"/>
|
||||
<reference key="IBUIFont" ref="901921461"/>
|
||||
</object>
|
||||
<object class="IBUILabel" id="697092436">
|
||||
<reference key="NSNextResponder" ref="775128611"/>
|
||||
<int key="NSvFlags">314</int>
|
||||
<string key="NSFrame">{{10, 244}, {300, 36}}</string>
|
||||
<reference key="NSSuperview" ref="775128611"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="28600489"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">GNU General Public License V2 </string>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">0</int>
|
||||
<int key="IBUINumberOfLines">0</int>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<reference key="IBUIFontDescription" ref="151194520"/>
|
||||
<reference key="IBUIFont" ref="901921461"/>
|
||||
<bool key="IBUIAdjustsFontSizeToFit">NO</bool>
|
||||
<double key="preferredMaxLayoutWidth">300</double>
|
||||
</object>
|
||||
<object class="IBUIWebView" id="364833627">
|
||||
<reference key="NSNextResponder" ref="775128611"/>
|
||||
<int key="NSvFlags">298</int>
|
||||
<string key="NSFrame">{{10, 380}, {300, 210}}</string>
|
||||
<reference key="NSSuperview" ref="775128611"/>
|
||||
<reference key="NSWindow"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIDataDetectorTypes">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<string key="NSFrameSize">{320, 600}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="97290309"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MCAwAA</bytes>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<object class="NSMutableArray" key="connectionRecords">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">linkLabel</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="55823705"/>
|
||||
</object>
|
||||
<int key="connectionID">60</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">view</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="457997634"/>
|
||||
</object>
|
||||
<int key="connectionID">63</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">contentView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="775128611"/>
|
||||
</object>
|
||||
<int key="connectionID">64</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">linphoneCoreVersionLabel</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="132342957"/>
|
||||
</object>
|
||||
<int key="connectionID">67</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">linphoneIphoneVersionLabel</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="966549235"/>
|
||||
</object>
|
||||
<int key="connectionID">68</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">licensesView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="364833627"/>
|
||||
</object>
|
||||
<int key="connectionID">70</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">linphoneLabel</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="945733244"/>
|
||||
</object>
|
||||
<int key="connectionID">71</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">copyrightLabel</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="28600489"/>
|
||||
</object>
|
||||
<int key="connectionID">72</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<object class="NSArray" key="orderedObjects">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<object class="NSArray" key="object" id="0">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="372490531"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">File's Owner</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="975951072"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">62</int>
|
||||
<reference key="object" ref="457997634"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">51</int>
|
||||
<reference key="object" ref="775128611"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="97290309"/>
|
||||
<reference ref="945733244"/>
|
||||
<reference ref="132342957"/>
|
||||
<reference ref="55823705"/>
|
||||
<reference ref="966549235"/>
|
||||
<reference ref="697092436"/>
|
||||
<reference ref="28600489"/>
|
||||
<reference ref="364833627"/>
|
||||
</object>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">61</int>
|
||||
<reference key="object" ref="697092436"/>
|
||||
<reference key="parent" ref="775128611"/>
|
||||
<string key="objectName">licenseLabel</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">58</int>
|
||||
<reference key="object" ref="28600489"/>
|
||||
<reference key="parent" ref="775128611"/>
|
||||
<string key="objectName">copyrightLabel</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">57</int>
|
||||
<reference key="object" ref="55823705"/>
|
||||
<reference key="parent" ref="775128611"/>
|
||||
<string key="objectName">linkLabel</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">56</int>
|
||||
<reference key="object" ref="945733244"/>
|
||||
<reference key="parent" ref="775128611"/>
|
||||
<string key="objectName">linphoneLabel</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">55</int>
|
||||
<reference key="object" ref="97290309"/>
|
||||
<reference key="parent" ref="775128611"/>
|
||||
<string key="objectName">iconImageView</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">65</int>
|
||||
<reference key="object" ref="966549235"/>
|
||||
<reference key="parent" ref="775128611"/>
|
||||
<string key="objectName">linphoneIphoneVersionLabel</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">66</int>
|
||||
<reference key="object" ref="132342957"/>
|
||||
<reference key="parent" ref="775128611"/>
|
||||
<string key="objectName">linphoneCoreVersionLabel</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">69</int>
|
||||
<reference key="object" ref="364833627"/>
|
||||
<reference key="parent" ref="775128611"/>
|
||||
<string key="objectName">licenseView</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="flattenedProperties">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>-1.CustomClassName</string>
|
||||
<string>-1.IBPluginDependency</string>
|
||||
<string>-2.CustomClassName</string>
|
||||
<string>-2.IBPluginDependency</string>
|
||||
<string>51.IBPluginDependency</string>
|
||||
<string>55.IBPluginDependency</string>
|
||||
<string>56.IBPluginDependency</string>
|
||||
<string>57.IBPluginDependency</string>
|
||||
<string>58.IBPluginDependency</string>
|
||||
<string>61.IBPluginDependency</string>
|
||||
<string>62.IBPluginDependency</string>
|
||||
<string>65.IBPluginDependency</string>
|
||||
<string>66.IBPluginDependency</string>
|
||||
<string>69.IBPluginDependency</string>
|
||||
</object>
|
||||
<object class="NSArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>AboutViewController</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>UIResponder</string>
|
||||
<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>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<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>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference key="dict.sortedKeys" ref="0"/>
|
||||
<reference key="dict.values" ref="0"/>
|
||||
</object>
|
||||
<nil key="activeLocalization"/>
|
||||
<object class="NSMutableDictionary" key="localizations">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference key="dict.sortedKeys" ref="0"/>
|
||||
<reference key="dict.values" ref="0"/>
|
||||
</object>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">72</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">AboutViewController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<object class="NSMutableDictionary" key="actions">
|
||||
<string key="NS.key.0">onLinkTap:</string>
|
||||
<string key="NS.object.0">id</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||
<string key="NS.key.0">onLinkTap:</string>
|
||||
<object class="IBActionInfo" key="NS.object.0">
|
||||
<string key="name">onLinkTap:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>contentView</string>
|
||||
<string>copyrightLabel</string>
|
||||
<string>licenseLabel</string>
|
||||
<string>licensesView</string>
|
||||
<string>linkLabel</string>
|
||||
<string>linkTapGestureRecognizer</string>
|
||||
<string>linphoneCoreVersionLabel</string>
|
||||
<string>linphoneIphoneVersionLabel</string>
|
||||
<string>linphoneLabel</string>
|
||||
</object>
|
||||
<object class="NSArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>UIView</string>
|
||||
<string>UILabel</string>
|
||||
<string>UILabel</string>
|
||||
<string>UIWebView</string>
|
||||
<string>UILabel</string>
|
||||
<string>UITapGestureRecognizer</string>
|
||||
<string>UILabel</string>
|
||||
<string>UILabel</string>
|
||||
<string>UILabel</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>contentView</string>
|
||||
<string>copyrightLabel</string>
|
||||
<string>licenseLabel</string>
|
||||
<string>licensesView</string>
|
||||
<string>linkLabel</string>
|
||||
<string>linkTapGestureRecognizer</string>
|
||||
<string>linphoneCoreVersionLabel</string>
|
||||
<string>linphoneIphoneVersionLabel</string>
|
||||
<string>linphoneLabel</string>
|
||||
</object>
|
||||
<object class="NSArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">contentView</string>
|
||||
<string key="candidateClassName">UIView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">copyrightLabel</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">licenseLabel</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">licensesView</string>
|
||||
<string key="candidateClassName">UIWebView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">linkLabel</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">linkTapGestureRecognizer</string>
|
||||
<string key="candidateClassName">UITapGestureRecognizer</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">linphoneCoreVersionLabel</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">linphoneIphoneVersionLabel</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">linphoneLabel</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/AboutViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
||||
<integer value="784" key="NS.object.0"/>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
|
||||
<integer value="3000" key="NS.object.0"/>
|
||||
</object>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
||||
<string key="NS.key.0">linphone_logo.png</string>
|
||||
<string key="NS.object.0">{512, 512}</string>
|
||||
</object>
|
||||
<string key="IBCocoaTouchPluginVersion">1926</string>
|
||||
</data>
|
||||
</archive>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4514" systemVersion="13B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1072" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="AboutViewController">
|
||||
<connections>
|
||||
<outlet property="contentView" destination="51" id="64"/>
|
||||
<outlet property="copyrightLabel" destination="58" id="72"/>
|
||||
<outlet property="licensesView" destination="69" id="70"/>
|
||||
<outlet property="linkLabel" destination="57" id="60"/>
|
||||
<outlet property="linphoneCoreVersionLabel" destination="66" id="67"/>
|
||||
<outlet property="linphoneIphoneVersionLabel" destination="65" id="68"/>
|
||||
<outlet property="linphoneLabel" destination="56" id="71"/>
|
||||
<outlet property="view" destination="62" id="63"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" showsHorizontalScrollIndicator="NO" id="62">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="460"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<inset key="contentInset" minX="0.0" minY="0.0" maxX="0.0" maxY="10"/>
|
||||
<inset key="scrollIndicatorInsets" minX="0.0" minY="0.0" maxX="0.0" maxY="10"/>
|
||||
</scrollView>
|
||||
<view contentMode="scaleToFill" id="51">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="600"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" image="linphone_logo.png" id="55" userLabel="iconImageView">
|
||||
<rect key="frame" x="124" y="20" width="72" height="72"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Linphone" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="56" userLabel="linphoneLabel">
|
||||
<rect key="frame" x="10" y="100" width="300" height="50"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="35"/>
|
||||
<color key="textColor" red="0.35686275360000003" green="0.3960784376" blue="0.43529412150000002" alpha="1" colorSpace="deviceRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" text="http://www.linphone.org" textAlignment="center" lineBreakMode="tailTruncation" minimumFontSize="10" id="57" userLabel="linkLabel">
|
||||
<rect key="frame" x="10" y="200" width="300" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" red="0.81176471709999998" green="0.29803922770000002" blue="0.16078431900000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Linphone iPhone 1.0" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="65" userLabel="linphoneIphoneVersionLabel">
|
||||
<rect key="frame" x="10" y="150" width="300" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
||||
<color key="textColor" red="0.35686275360000003" green="0.3960784376" blue="0.43529412150000002" alpha="1" colorSpace="deviceRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Linphone Core 1.0" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="66" userLabel="linphoneCoreVersionLabel">
|
||||
<rect key="frame" x="10" y="172" width="300" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
||||
<color key="textColor" red="0.35686275360000003" green="0.3960784376" blue="0.43529412150000002" alpha="1" colorSpace="deviceRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="© 2010-2012 Belledonne Communications " textAlignment="center" lineBreakMode="tailTruncation" minimumFontSize="10" id="58" userLabel="copyrightLabel">
|
||||
<rect key="frame" x="10" y="300" width="300" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="GNU General Public License V2 " textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="61" userLabel="licenseLabel">
|
||||
<rect key="frame" x="10" y="244" width="300" height="36"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<webView contentMode="scaleToFill" id="69" userLabel="licenseView">
|
||||
<rect key="frame" x="10" y="380" width="300" height="210"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<dataDetectorType key="dataDetectorTypes" link="YES"/>
|
||||
</webView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="linphone_logo.png" width="512" height="512"/>
|
||||
</resources>
|
||||
</document>
|
||||
281
Classes/Base.lproj/ChatRoomViewController.xib
Normal file
281
Classes/Base.lproj/ChatRoomViewController.xib
Normal file
|
|
@ -0,0 +1,281 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4514" systemVersion="13B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ChatRoomViewController">
|
||||
<connections>
|
||||
<outlet property="addressLabel" destination="40" id="43"/>
|
||||
<outlet property="avatarImage" destination="41" id="44"/>
|
||||
<outlet property="cancelTransferButton" destination="75" id="85"/>
|
||||
<outlet property="chatView" destination="49" id="54"/>
|
||||
<outlet property="composeIndicatorView" destination="fx4-ao-53M" id="xk5-nK-lur"/>
|
||||
<outlet property="composeLabel" destination="fpY-Fv-ht2" id="4L6-ik-ZAe"/>
|
||||
<outlet property="editButton" destination="10" id="35"/>
|
||||
<outlet property="headerView" destination="39" id="45"/>
|
||||
<outlet property="imageTransferProgressBar" destination="74" id="79"/>
|
||||
<outlet property="messageBackgroundImage" destination="66" id="90"/>
|
||||
<outlet property="messageField" destination="63" id="64"/>
|
||||
<outlet property="messageView" destination="14" id="89"/>
|
||||
<outlet property="pictureButton" destination="73" id="84"/>
|
||||
<outlet property="sendButton" destination="15" id="27"/>
|
||||
<outlet property="tableController" destination="29" id="32"/>
|
||||
<outlet property="transferBackgroundImage" destination="83" id="88"/>
|
||||
<outlet property="transferView" destination="72" id="86"/>
|
||||
<outlet property="view" destination="6" id="11"/>
|
||||
<outlet property="waitView" destination="91" id="93"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="6">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="460"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" id="49" userLabel="chatView">
|
||||
<rect key="frame" x="0.0" y="44" width="320" height="416"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<view clipsSubviews="YES" contentMode="scaleToFill" id="39" userLabel="headerView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="80"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="avatar_shadow_small.png" id="42" userLabel="avatarShadowBackground">
|
||||
<rect key="frame" x="-13" y="-5" width="131" height="107"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="avatar_unknown_small.png" id="41" userLabel="avatarImage">
|
||||
<rect key="frame" x="20" y="6" width="65" height="65"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Contact's avatar">
|
||||
<accessibilityTraits key="traits" none="YES" image="YES" notEnabled="YES"/>
|
||||
<bool key="isElement" value="YES"/>
|
||||
</accessibility>
|
||||
</imageView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Contact1" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="40" userLabel="addressLabel">
|
||||
<rect key="frame" x="101" y="37" width="199" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Contact's name">
|
||||
<accessibilityTraits key="traits" none="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="22"/>
|
||||
<color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="8" userLabel="tableView">
|
||||
<rect key="frame" x="0.0" y="80" width="320" height="257"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<gestureRecognizers/>
|
||||
<connections>
|
||||
<outlet property="dataSource" destination="29" id="30"/>
|
||||
<outlet property="delegate" destination="29" id="31"/>
|
||||
</connections>
|
||||
</tableView>
|
||||
<view contentMode="scaleToFill" id="fx4-ao-53M" userLabel="composeIndicatorView">
|
||||
<rect key="frame" x="0.0" y="337" width="320" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="%@ is composing..." lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="fpY-Fv-ht2" userLabel="composeLabel">
|
||||
<rect key="frame" x="0.0" y="1" width="320" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label=""/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view hidden="YES" contentMode="scaleToFill" id="72" userLabel="transferView">
|
||||
<rect key="frame" x="0.0" y="359" width="320" height="57"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="chat_progressbar_background.png" id="83" userLabel="transfertBackgroundImage">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="57"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</imageView>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="75" userLabel="cancelTransferButton">
|
||||
<rect key="frame" x="262" y="0.0" width="58" height="57"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Cancel"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" backgroundImage="chat_cancel_default.png">
|
||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="chat_cancel_over.png">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onTransferCancelClick:" destination="-1" eventType="touchUpInside" id="78"/>
|
||||
</connections>
|
||||
</button>
|
||||
<progressView opaque="NO" contentMode="scaleToFill" progress="0.5" id="74" userLabel="transferProgressBar">
|
||||
<rect key="frame" x="20" y="27" width="222" height="2"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Upload or download progression">
|
||||
<accessibilityTraits key="traits" none="YES" notEnabled="YES" updatesFrequently="YES"/>
|
||||
</accessibility>
|
||||
</progressView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="14" userLabel="messageView">
|
||||
<rect key="frame" x="0.0" y="359" width="320" height="57"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="chat_message_background.png" id="66" userLabel="messageBackgroundImage">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="57"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</imageView>
|
||||
<button opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="15" userLabel="sendButton">
|
||||
<rect key="frame" x="262" y="0.0" width="58" height="57"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Send"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="30" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Send" backgroundImage="chat_send_default.png">
|
||||
<color key="titleColor" red="0.35686275360000003" green="0.3960784376" blue="0.43529412150000002" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" backgroundImage="chat_send_disabled.png">
|
||||
<color key="titleColor" red="0.80784313730000001" green="0.81568627449999997" blue="0.82352941180000006" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="chat_send_over.png">
|
||||
<color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onSendClick:" destination="-1" eventType="touchUpInside" id="25"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="73" userLabel="pictureButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="35" height="57"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Send picture"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" backgroundImage="chat_photo_default.png">
|
||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" backgroundImage="chat_photo_disabled.png"/>
|
||||
<state key="highlighted" backgroundImage="chat_photo_over.png">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onPictureClick:" destination="-1" eventType="touchUpInside" id="87"/>
|
||||
</connections>
|
||||
</button>
|
||||
<view contentMode="scaleToFill" id="63" userLabel="messageField" customClass="HPGrowingTextView">
|
||||
<rect key="frame" x="39" y="12" width="218" height="33"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="7" userLabel="toolsView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="toolsbar_background.png" id="47" userLabel="background">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="9" userLabel="backButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="160" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="deviceRGB"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Back" backgroundImage="chat_back_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="chat_back_over.png">
|
||||
<color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="12"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="10" userLabel="editButton" customClass="UIToggleButton">
|
||||
<rect key="frame" x="160" y="0.0" width="160" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Edit"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Edit" backgroundImage="chat_edit_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" title="Ok" backgroundImage="chat_ok_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="chat_edit_over.png">
|
||||
<color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onEditClick:" destination="-1" eventType="touchUpInside" id="13"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view hidden="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="91" userLabel="waitView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="460"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<activityIndicatorView opaque="NO" clearsContextBeforeDrawing="NO" userInteractionEnabled="NO" contentMode="scaleToFill" animating="YES" style="whiteLarge" id="92" userLabel="activityIndicator">
|
||||
<rect key="frame" x="142" y="211" width="37" height="37"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
</activityIndicatorView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="0.66000000000000003" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<gestureRecognizers/>
|
||||
</view>
|
||||
<tableViewController autoresizesArchivedViewToFullSize="NO" id="29" userLabel="tableController" customClass="ChatRoomTableViewController">
|
||||
<extendedEdge key="edgesForExtendedLayout"/>
|
||||
<simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/>
|
||||
<nil key="simulatedTopBarMetrics"/>
|
||||
<nil key="simulatedBottomBarMetrics"/>
|
||||
<simulatedOrientationMetrics key="simulatedOrientationMetrics"/>
|
||||
<nil key="simulatedDestinationMetrics"/>
|
||||
<connections>
|
||||
<outlet property="view" destination="8" id="33"/>
|
||||
</connections>
|
||||
</tableViewController>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="avatar_shadow_small.png" width="262" height="214"/>
|
||||
<image name="avatar_unknown_small.png" width="131" height="131"/>
|
||||
<image name="chat_back_default.png" width="320" height="88"/>
|
||||
<image name="chat_back_over.png" width="320" height="88"/>
|
||||
<image name="chat_cancel_default.png" width="116" height="115"/>
|
||||
<image name="chat_cancel_over.png" width="116" height="115"/>
|
||||
<image name="chat_edit_default.png" width="320" height="88"/>
|
||||
<image name="chat_edit_over.png" width="320" height="88"/>
|
||||
<image name="chat_message_background.png" width="640" height="117"/>
|
||||
<image name="chat_ok_default.png" width="320" height="88"/>
|
||||
<image name="chat_photo_default.png" width="71" height="115"/>
|
||||
<image name="chat_photo_disabled.png" width="71" height="115"/>
|
||||
<image name="chat_photo_over.png" width="71" height="115"/>
|
||||
<image name="chat_progressbar_background.png" width="524" height="115"/>
|
||||
<image name="chat_send_default.png" width="117" height="115"/>
|
||||
<image name="chat_send_disabled.png" width="117" height="115"/>
|
||||
<image name="chat_send_over.png" width="117" height="115"/>
|
||||
<image name="toolsbar_background.png" width="5" height="88"/>
|
||||
</resources>
|
||||
</document>
|
||||
116
Classes/Base.lproj/ChatViewController.xib
Normal file
116
Classes/Base.lproj/ChatViewController.xib
Normal file
|
|
@ -0,0 +1,116 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4514" systemVersion="13B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1072" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ChatViewController">
|
||||
<connections>
|
||||
<outlet property="addressField" destination="25" id="27"/>
|
||||
<outlet property="editButton" destination="9" id="22"/>
|
||||
<outlet property="tableController" destination="4" id="18"/>
|
||||
<outlet property="view" destination="5" id="14"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="5">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="460"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" id="7" userLabel="toolsBar">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="toolsbar_background.png" id="23" userLabel="background">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="10" userLabel="addButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="160" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="New Discussion"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="New discussion" backgroundImage="chat_add_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="chat_add_over.png">
|
||||
<color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onAddClick:" destination="-1" eventType="touchUpInside" id="20"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="9" userLabel="editButton" customClass="UIToggleButton">
|
||||
<rect key="frame" x="160" y="0.0" width="160" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Edit"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Edit" backgroundImage="chat_edit_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" title="Ok" backgroundImage="chat_ok_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="chat_edit_over.png">
|
||||
<color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onEditClick:" destination="-1" eventType="touchUpInside" id="21"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="60" sectionHeaderHeight="22" sectionFooterHeight="22" id="6" userLabel="tableView">
|
||||
<rect key="frame" x="0.0" y="79" width="320" height="381"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<inset key="contentInset" minX="0.0" minY="0.0" maxX="0.0" maxY="10"/>
|
||||
<inset key="scrollIndicatorInsets" minX="0.0" minY="0.0" maxX="0.0" maxY="10"/>
|
||||
<color key="separatorColor" red="0.7254902124" green="0.76862746479999999" blue="0.79607844350000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
<connections>
|
||||
<outlet property="dataSource" destination="4" id="11"/>
|
||||
<outlet property="delegate" destination="4" id="12"/>
|
||||
</connections>
|
||||
</tableView>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="To:" minimumFontSize="17" background="field_background.png" clearButtonMode="whileEditing" id="25" userLabel="addressField" customClass="UILinphoneTextField">
|
||||
<rect key="frame" x="2" y="44" width="316" height="35"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Enter a address"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" keyboardType="URL"/>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="-1" id="28"/>
|
||||
</connections>
|
||||
</textField>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<tableViewController autoresizesArchivedViewToFullSize="NO" id="4" userLabel="tableController" customClass="ChatTableViewController">
|
||||
<extendedEdge key="edgesForExtendedLayout"/>
|
||||
<simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/>
|
||||
<nil key="simulatedTopBarMetrics"/>
|
||||
<nil key="simulatedBottomBarMetrics"/>
|
||||
<simulatedOrientationMetrics key="simulatedOrientationMetrics"/>
|
||||
<nil key="simulatedDestinationMetrics"/>
|
||||
<connections>
|
||||
<outlet property="view" destination="6" id="13"/>
|
||||
</connections>
|
||||
</tableViewController>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="chat_add_default.png" width="320" height="88"/>
|
||||
<image name="chat_add_over.png" width="320" height="88"/>
|
||||
<image name="chat_edit_default.png" width="320" height="88"/>
|
||||
<image name="chat_edit_over.png" width="320" height="88"/>
|
||||
<image name="chat_ok_default.png" width="320" height="88"/>
|
||||
<image name="field_background.png" width="542" height="88"/>
|
||||
<image name="toolsbar_background.png" width="5" height="88"/>
|
||||
</resources>
|
||||
</document>
|
||||
73
Classes/Base.lproj/ContactDetailsLabelViewController.xib
Normal file
73
Classes/Base.lproj/ContactDetailsLabelViewController.xib
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4514" systemVersion="13B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1072" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ContactDetailsLabelViewController">
|
||||
<connections>
|
||||
<outlet property="tableView" destination="5" id="15"/>
|
||||
<outlet property="view" destination="4" id="12"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="4">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="460"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="background.png" id="16" userLabel="background">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="460"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label=""/>
|
||||
</imageView>
|
||||
<view contentMode="scaleToFill" id="6" userLabel="toolsBar">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="toolsbar_background.png" id="10" userLabel="barBackground">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="8" userLabel="backButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="160" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Back" backgroundImage="contact_back_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="contact_back_over.png">
|
||||
<color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="11"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" showsHorizontalScrollIndicator="NO" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="5" userLabel="tableView">
|
||||
<rect key="frame" x="0.0" y="59" width="320" height="401"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
|
||||
<inset key="contentInset" minX="0.0" minY="0.0" maxX="0.0" maxY="10"/>
|
||||
<inset key="scrollIndicatorInsets" minX="0.0" minY="0.0" maxX="0.0" maxY="10"/>
|
||||
<connections>
|
||||
<outlet property="dataSource" destination="-1" id="13"/>
|
||||
<outlet property="delegate" destination="-1" id="14"/>
|
||||
</connections>
|
||||
</tableView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="background.png" width="640" height="523"/>
|
||||
<image name="contact_back_default.png" width="320" height="88"/>
|
||||
<image name="contact_back_over.png" width="320" height="88"/>
|
||||
<image name="toolsbar_background.png" width="5" height="88"/>
|
||||
</resources>
|
||||
</document>
|
||||
149
Classes/Base.lproj/ContactDetailsViewController.xib
Normal file
149
Classes/Base.lproj/ContactDetailsViewController.xib
Normal file
|
|
@ -0,0 +1,149 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4514" systemVersion="13B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1072" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ContactDetailsViewController">
|
||||
<connections>
|
||||
<outlet property="backButton" destination="9" id="50"/>
|
||||
<outlet property="cancelButton" destination="47" id="51"/>
|
||||
<outlet property="editButton" destination="8" id="31"/>
|
||||
<outlet property="tableController" destination="20" id="27"/>
|
||||
<outlet property="view" destination="1" id="3"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="1">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="460"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" id="4" userLabel="toolBar">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="toolsbar_background.png" id="52" userLabel="barBackground">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="9" userLabel="backButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="160" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Back" backgroundImage="contact_back_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="contact_back_over.png"/>
|
||||
<connections>
|
||||
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="10"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="47" userLabel="cancelButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="160" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Cancel"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Cancel" backgroundImage="contact_cancel_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="contact_cancel_over.png">
|
||||
<color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onCancelClick:" destination="-1" eventType="touchUpInside" id="49"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="8" userLabel="editButton" customClass="UIToggleButton">
|
||||
<rect key="frame" x="160" y="0.0" width="160" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Edit"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Edit" backgroundImage="contact_edit_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled">
|
||||
<color key="titleColor" red="0.80784314869999996" green="0.8156862855" blue="0.82352942230000004" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="selected" title="Ok" backgroundImage="contact_ok_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="contact_edit_over.png">
|
||||
<color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onEditClick:" destination="-1" eventType="touchUpInside" id="30"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="grouped" separatorStyle="default" allowsSelectionDuringEditing="YES" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="19" userLabel="tableView">
|
||||
<rect key="frame" x="0.0" y="44" width="320" height="416"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
|
||||
<inset key="contentInset" minX="0.0" minY="0.0" maxX="0.0" maxY="10"/>
|
||||
<inset key="scrollIndicatorInsets" minX="0.0" minY="0.0" maxX="0.0" maxY="10"/>
|
||||
<connections>
|
||||
<outlet property="dataSource" destination="20" id="28"/>
|
||||
<outlet property="delegate" destination="20" id="29"/>
|
||||
</connections>
|
||||
</tableView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<tableViewController id="20" userLabel="tableController" customClass="ContactDetailsTableViewController">
|
||||
<extendedEdge key="edgesForExtendedLayout"/>
|
||||
<simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/>
|
||||
<nil key="simulatedTopBarMetrics"/>
|
||||
<nil key="simulatedBottomBarMetrics"/>
|
||||
<simulatedOrientationMetrics key="simulatedOrientationMetrics"/>
|
||||
<nil key="simulatedDestinationMetrics"/>
|
||||
<connections>
|
||||
<outlet property="contactDetailsDelegate" destination="-1" id="53"/>
|
||||
<outlet property="footerController" destination="57" id="59"/>
|
||||
<outlet property="headerController" destination="58" id="60"/>
|
||||
<outlet property="view" destination="19" id="26"/>
|
||||
</connections>
|
||||
</tableViewController>
|
||||
<viewController nibName="UIContactDetailsFooter" id="57" userLabel="footerController" customClass="UIContactDetailsFooter">
|
||||
<extendedEdge key="edgesForExtendedLayout"/>
|
||||
<simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/>
|
||||
<nil key="simulatedTopBarMetrics"/>
|
||||
<nil key="simulatedBottomBarMetrics"/>
|
||||
<simulatedOrientationMetrics key="simulatedOrientationMetrics"/>
|
||||
<nil key="simulatedDestinationMetrics"/>
|
||||
<connections>
|
||||
<outlet property="contactDetailsDelegate" destination="-1" id="61"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<viewController nibName="UIContactDetailsHeader" id="58" userLabel="headerController" customClass="UIContactDetailsHeader">
|
||||
<extendedEdge key="edgesForExtendedLayout"/>
|
||||
<simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/>
|
||||
<nil key="simulatedTopBarMetrics"/>
|
||||
<nil key="simulatedBottomBarMetrics"/>
|
||||
<simulatedOrientationMetrics key="simulatedOrientationMetrics"/>
|
||||
<nil key="simulatedDestinationMetrics"/>
|
||||
<connections>
|
||||
<outlet property="contactDetailsDelegate" destination="-1" id="62"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="contact_back_default.png" width="320" height="88"/>
|
||||
<image name="contact_back_over.png" width="320" height="88"/>
|
||||
<image name="contact_cancel_default.png" width="320" height="88"/>
|
||||
<image name="contact_cancel_over.png" width="320" height="88"/>
|
||||
<image name="contact_edit_default.png" width="320" height="88"/>
|
||||
<image name="contact_edit_over.png" width="320" height="88"/>
|
||||
<image name="contact_ok_default.png" width="320" height="88"/>
|
||||
<image name="toolsbar_background.png" width="5" height="88"/>
|
||||
</resources>
|
||||
</document>
|
||||
130
Classes/Base.lproj/ContactsViewController.xib
Normal file
130
Classes/Base.lproj/ContactsViewController.xib
Normal file
|
|
@ -0,0 +1,130 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4514" systemVersion="13B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1072" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ContactsViewController">
|
||||
<connections>
|
||||
<outlet property="addButton" destination="6" id="91"/>
|
||||
<outlet property="allButton" destination="4" id="27"/>
|
||||
<outlet property="backButton" destination="87" id="90"/>
|
||||
<outlet property="linphoneButton" destination="5" id="31"/>
|
||||
<outlet property="toolBar" destination="3" id="n95-dF-EoN"/>
|
||||
<outlet property="view" destination="2" id="16"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="2">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="460"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" id="3" userLabel="toolBar">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="toolsbar_background.png" id="92" userLabel="background">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<view contentMode="scaleToFill" id="93" userLabel="switchView">
|
||||
<rect key="frame" x="106" y="0.0" width="214" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="4" userLabel="allButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="107" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="All contacts filter"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="16" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="All" backgroundImage="contacts_all_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" backgroundImage="contacts_all_selected.png">
|
||||
<color key="titleColor" red="0.97647064920000004" green="0.97647064920000004" blue="0.97647064920000004" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="contacts_all_selected.png">
|
||||
<color key="titleColor" red="0.97647064920000004" green="0.97647064920000004" blue="0.97647064920000004" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onAllClick:" destination="-1" eventType="touchUpInside" id="29"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="5" userLabel="linphoneButton">
|
||||
<rect key="frame" x="107" y="0.0" width="107" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Linphone contacts filter"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="16" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Linphone" backgroundImage="contacts_linphone_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" backgroundImage="contacts_linphone_selected.png">
|
||||
<color key="titleColor" red="0.97647064920000004" green="0.97647064920000004" blue="0.97647064920000004" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="contacts_linphone_selected.png">
|
||||
<color key="titleColor" red="0.97647064920000004" green="0.97647064920000004" blue="0.97647064920000004" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onLinphoneClick:" destination="-1" eventType="touchUpInside" id="47"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="6" userLabel="addButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="107" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Add contact"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Add contact" backgroundImage="contacts_add_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="contacts_add_over.png">
|
||||
<color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onAddContactClick:" destination="-1" eventType="touchUpInside" id="86"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="87" userLabel="backButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="107" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Back" backgroundImage="contacts_back_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="contacts_back_over.png">
|
||||
<color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="89"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="contacts_add_default.png" width="214" height="88"/>
|
||||
<image name="contacts_add_over.png" width="214" height="88"/>
|
||||
<image name="contacts_all_default.png" width="213" height="88"/>
|
||||
<image name="contacts_all_selected.png" width="213" height="88"/>
|
||||
<image name="contacts_back_default.png" width="214" height="88"/>
|
||||
<image name="contacts_back_over.png" width="214" height="88"/>
|
||||
<image name="contacts_linphone_default.png" width="213" height="88"/>
|
||||
<image name="contacts_linphone_selected.png" width="213" height="88"/>
|
||||
<image name="toolsbar_background.png" width="5" height="88"/>
|
||||
</resources>
|
||||
</document>
|
||||
366
Classes/Base.lproj/DialerViewController.xib
Normal file
366
Classes/Base.lproj/DialerViewController.xib
Normal file
|
|
@ -0,0 +1,366 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4514" systemVersion="13B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1072" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="DialerViewController">
|
||||
<connections>
|
||||
<outlet property="addCallButton" destination="184" id="227"/>
|
||||
<outlet property="addContactButton" destination="222" id="225"/>
|
||||
<outlet property="addressField" destination="4" id="205"/>
|
||||
<outlet property="backButton" destination="183" id="254"/>
|
||||
<outlet property="callButton" destination="224" id="231"/>
|
||||
<outlet property="eightButton" destination="35" id="204"/>
|
||||
<outlet property="eraseButton" destination="185" id="202"/>
|
||||
<outlet property="fiveButton" destination="31" id="195"/>
|
||||
<outlet property="fourButton" destination="30" id="194"/>
|
||||
<outlet property="nineButton" destination="36" id="200"/>
|
||||
<outlet property="oneButton" destination="38" id="191"/>
|
||||
<outlet property="sevenButton" destination="34" id="197"/>
|
||||
<outlet property="sharpButton" destination="41" id="232"/>
|
||||
<outlet property="sixButton" destination="33" id="196"/>
|
||||
<outlet property="starButton" destination="39" id="199"/>
|
||||
<outlet property="threeButton" destination="29" id="193"/>
|
||||
<outlet property="transferButton" destination="236" id="253"/>
|
||||
<outlet property="twoButton" destination="37" id="192"/>
|
||||
<outlet property="view" destination="171" id="176"/>
|
||||
<outlet property="zeroButton" destination="40" id="198"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="171">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="374"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<view clipsSubviews="YES" contentMode="scaleToFill" id="178" userLabel="dialer">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="80"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="dialer_address_background.png" id="179" userLabel="background">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="80"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</imageView>
|
||||
<textField opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter SIP address or phone number..." adjustsFontSizeToFit="NO" minimumFontSize="15" id="4" userLabel="addressField" customClass="UIAddressTextField">
|
||||
<rect key="frame" x="5" y="0.0" width="310" height="60"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Enter a address"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="36"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" keyboardType="URL"/>
|
||||
<connections>
|
||||
<action selector="onAddressChange:" destination="-1" eventType="editingChanged" id="208"/>
|
||||
<outlet property="delegate" destination="-1" id="190"/>
|
||||
</connections>
|
||||
</textField>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="180" userLabel="pad">
|
||||
<rect key="frame" x="0.0" y="58" width="320" height="260"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="38" userLabel="1" customClass="UIDigitButton">
|
||||
<rect key="frame" x="0.0" y="11" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" red="0.40000001000000002" green="1" blue="1" alpha="0.0" colorSpace="calibratedRGB"/>
|
||||
<accessibility key="accessibilityConfiguration" label="1"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_one_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_one_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="4" id="240"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="37" userLabel="2" customClass="UIDigitButton">
|
||||
<rect key="frame" x="107" y="11" width="106" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="2"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_two_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_two_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="4" id="241"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="29" userLabel="3" customClass="UIDigitButton">
|
||||
<rect key="frame" x="213" y="11" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="3"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_three_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_three_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="4" id="242"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="30" userLabel="4" customClass="UIDigitButton">
|
||||
<rect key="frame" x="0.0" y="73" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="4"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_four_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_four_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="4" id="243"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="31" userLabel="5" customClass="UIDigitButton">
|
||||
<rect key="frame" x="108" y="73" width="106" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="5"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_five_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_five_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="4" id="244"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="33" userLabel="6" customClass="UIDigitButton">
|
||||
<rect key="frame" x="213" y="73" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="6"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_six_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_six_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="4" id="245"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="34" userLabel="7" customClass="UIDigitButton">
|
||||
<rect key="frame" x="0.0" y="135" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="7"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_seven_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_seven_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="4" id="246"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="35" userLabel="8" customClass="UIDigitButton">
|
||||
<rect key="frame" x="107" y="135" width="106" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="8"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_eight_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_eight_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="4" id="247"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="36" userLabel="9" customClass="UIDigitButton">
|
||||
<rect key="frame" x="213" y="135" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="9"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_nine_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_nine_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="4" id="248"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="39" userLabel="*" customClass="UIDigitButton">
|
||||
<rect key="frame" x="0.0" y="197" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Star"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_star_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_star_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="4" id="249"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="40" userLabel="0" customClass="UIDigitButton">
|
||||
<rect key="frame" x="107" y="197" width="106" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="0"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_zero_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_zero_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="4" id="250"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="41" userLabel="#" customClass="UIDigitButton">
|
||||
<rect key="frame" x="213" y="197" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Sharp"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_sharp_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_sharp_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="4" id="251"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="182" userLabel="toolBar">
|
||||
<rect key="frame" x="0.0" y="305" width="320" height="69"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="222" userLabel="addContactButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="106" height="69"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Add to contact"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" image="add_contact_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" image="add_contact_disabled.png"/>
|
||||
<state key="highlighted" image="add_contact_over.png"/>
|
||||
<connections>
|
||||
<action selector="onAddContactClick:" destination="-1" eventType="touchUpInside" id="230"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="183" userLabel="backButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="106" height="69"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" image="back_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" image="back_disabled.png"/>
|
||||
<state key="highlighted" image="back_over.png"/>
|
||||
<connections>
|
||||
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="233"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="224" userLabel="callButton" customClass="UICallButton">
|
||||
<rect key="frame" x="106" y="0.0" width="108" height="69"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Call"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" image="call_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" image="call_disabled.png"/>
|
||||
<state key="highlighted" image="call_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="4" id="235"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button hidden="YES" opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="184" userLabel="addCallButton" customClass="UICallButton">
|
||||
<rect key="frame" x="106" y="0.0" width="108" height="69"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Add call"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" image="add_call_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" image="add_call_disabled.png"/>
|
||||
<state key="highlighted" image="add_call_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="4" id="234"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button hidden="YES" opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="236" userLabel="transferButton" customClass="UITransferButton">
|
||||
<rect key="frame" x="106" y="0.0" width="108" height="69"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Transfer call"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" image="transfer_call_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" image="transfer_call_disabled.png"/>
|
||||
<state key="highlighted" image="transfer_call_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="4" id="237"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="185" userLabel="backspaceButton" customClass="UIEraseButton">
|
||||
<rect key="frame" x="214" y="0.0" width="106" height="69"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Backspace"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" image="backspace_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" image="backspace_disabled.png"/>
|
||||
<state key="highlighted" image="backspace_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="4" id="252"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="0.0" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="add_call_default.png" width="214" height="138"/>
|
||||
<image name="add_call_disabled.png" width="214" height="138"/>
|
||||
<image name="add_call_over.png" width="214" height="138"/>
|
||||
<image name="add_contact_default.png" width="213" height="138"/>
|
||||
<image name="add_contact_disabled.png" width="213" height="138"/>
|
||||
<image name="add_contact_over.png" width="213" height="138"/>
|
||||
<image name="back_default.png" width="213" height="138"/>
|
||||
<image name="back_disabled.png" width="213" height="138"/>
|
||||
<image name="back_over.png" width="213" height="138"/>
|
||||
<image name="backspace_default.png" width="213" height="138"/>
|
||||
<image name="backspace_disabled.png" width="213" height="138"/>
|
||||
<image name="backspace_over.png" width="213" height="138"/>
|
||||
<image name="call_default.png" width="214" height="138"/>
|
||||
<image name="call_disabled.png" width="214" height="138"/>
|
||||
<image name="call_over.png" width="214" height="138"/>
|
||||
<image name="dialer_address_background.png" width="640" height="135"/>
|
||||
<image name="numpad_eight_default.png" width="220" height="113"/>
|
||||
<image name="numpad_eight_over.png" width="220" height="113"/>
|
||||
<image name="numpad_five_default.png" width="220" height="113"/>
|
||||
<image name="numpad_five_over.png" width="220" height="113"/>
|
||||
<image name="numpad_four_default.png" width="210" height="113"/>
|
||||
<image name="numpad_four_over.png" width="210" height="113"/>
|
||||
<image name="numpad_nine_default.png" width="210" height="113"/>
|
||||
<image name="numpad_nine_over.png" width="210" height="113"/>
|
||||
<image name="numpad_one_default.png" width="210" height="113"/>
|
||||
<image name="numpad_one_over.png" width="210" height="113"/>
|
||||
<image name="numpad_seven_default.png" width="210" height="113"/>
|
||||
<image name="numpad_seven_over.png" width="210" height="113"/>
|
||||
<image name="numpad_sharp_default.png" width="210" height="113"/>
|
||||
<image name="numpad_sharp_over.png" width="210" height="113"/>
|
||||
<image name="numpad_six_default.png" width="210" height="113"/>
|
||||
<image name="numpad_six_over.png" width="210" height="113"/>
|
||||
<image name="numpad_star_default.png" width="210" height="113"/>
|
||||
<image name="numpad_star_over.png" width="210" height="113"/>
|
||||
<image name="numpad_three_default.png" width="210" height="113"/>
|
||||
<image name="numpad_three_over.png" width="210" height="113"/>
|
||||
<image name="numpad_two_default.png" width="220" height="113"/>
|
||||
<image name="numpad_two_over.png" width="220" height="113"/>
|
||||
<image name="numpad_zero_default.png" width="220" height="113"/>
|
||||
<image name="numpad_zero_over.png" width="220" height="113"/>
|
||||
<image name="transfer_call_default.png" width="214" height="138"/>
|
||||
<image name="transfer_call_disabled.png" width="214" height="138"/>
|
||||
<image name="transfer_call_over.png" width="214" height="138"/>
|
||||
</resources>
|
||||
</document>
|
||||
404
Classes/Base.lproj/DialerViewController~ipad.xib
Normal file
404
Classes/Base.lproj/DialerViewController~ipad.xib
Normal file
|
|
@ -0,0 +1,404 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="5056" systemVersion="13C1021" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1536" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="DialerViewController">
|
||||
<connections>
|
||||
<outlet property="addCallButton" destination="23" id="42"/>
|
||||
<outlet property="addContactButton" destination="24" id="43"/>
|
||||
<outlet property="addressField" destination="6" id="44"/>
|
||||
<outlet property="backButton" destination="22" id="69"/>
|
||||
<outlet property="backgroundView" destination="76" id="77"/>
|
||||
<outlet property="callButton" destination="21" id="45"/>
|
||||
<outlet property="eightButton" destination="13" id="47"/>
|
||||
<outlet property="eraseButton" destination="25" id="48"/>
|
||||
<outlet property="fiveButton" destination="16" id="49"/>
|
||||
<outlet property="fourButton" destination="15" id="50"/>
|
||||
<outlet property="nineButton" destination="12" id="51"/>
|
||||
<outlet property="oneButton" destination="19" id="52"/>
|
||||
<outlet property="sevenButton" destination="14" id="53"/>
|
||||
<outlet property="sharpButton" destination="11" id="54"/>
|
||||
<outlet property="sixButton" destination="9" id="55"/>
|
||||
<outlet property="starButton" destination="8" id="56"/>
|
||||
<outlet property="threeButton" destination="17" id="57"/>
|
||||
<outlet property="transferButton" destination="20" id="58"/>
|
||||
<outlet property="twoButton" destination="18" id="59"/>
|
||||
<outlet property="videoCameraSwitch" destination="71" id="74"/>
|
||||
<outlet property="videoPreview" destination="70" id="75"/>
|
||||
<outlet property="view" destination="2" id="60"/>
|
||||
<outlet property="zeroButton" destination="10" id="61"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="2">
|
||||
<rect key="frame" x="0.0" y="0.0" width="768" height="900"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" image="logo_linphone_trame_background.png" id="78" userLabel="backgroundImage">
|
||||
<rect key="frame" x="127" y="200" width="510" height="460"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<view contentMode="scaleToFill" id="76" userLabel="backgroundView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="768" height="900"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleAspectFill" id="70" userLabel="preview">
|
||||
<rect key="frame" x="0.0" y="58" width="768" height="842"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="71" userLabel="videoCameraSwitch" customClass="UICamSwitch">
|
||||
<rect key="frame" x="20" y="90" width="85" height="33"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Switch camera"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" backgroundImage="switch_camera_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="switch_camera_over.png"/>
|
||||
<connections>
|
||||
<outlet property="preview" destination="70" id="72"/>
|
||||
</connections>
|
||||
</button>
|
||||
<view contentMode="scaleToFill" id="5" userLabel="dialer">
|
||||
<rect key="frame" x="0.0" y="0.0" width="768" height="80"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="dialer_address_background.png" id="7" userLabel="background">
|
||||
<rect key="frame" x="0.0" y="0.0" width="768" height="80"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</imageView>
|
||||
<textField opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Enter SIP address or phone number..." adjustsFontSizeToFit="NO" minimumFontSize="15" id="6" userLabel="addressField" customClass="UIAddressTextField">
|
||||
<rect key="frame" x="0.0" y="0.0" width="700" height="60"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Enter a address"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica" family="Helvetica" pointSize="36"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" keyboardType="URL"/>
|
||||
<connections>
|
||||
<action selector="onAddressChange:" destination="-1" eventType="editingChanged" id="65"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<button opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="25" userLabel="backspaceButton" customClass="UIEraseButton">
|
||||
<rect key="frame" x="698" y="4" width="70" height="51"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Backscape"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<inset key="contentEdgeInsets" minX="15" minY="15" maxX="15" maxY="15"/>
|
||||
<state key="normal" image="backspace_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" image="backspace_disabled.png"/>
|
||||
<state key="highlighted" image="backspace_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="6" id="39"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="4" userLabel="pad">
|
||||
<rect key="frame" x="0.0" y="640" width="320" height="260"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" tag="2" contentMode="scaleToFill" image="background_alt.png" id="73" userLabel="background">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="280"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
</imageView>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="19" userLabel="1" customClass="UIDigitButton">
|
||||
<rect key="frame" x="0.0" y="11" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" red="0.40000001000000002" green="1" blue="1" alpha="0.0" colorSpace="calibratedRGB"/>
|
||||
<accessibility key="accessibilityConfiguration" label="1"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_one_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_one_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="6" id="34"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="18" userLabel="2" customClass="UIDigitButton">
|
||||
<rect key="frame" x="107" y="11" width="106" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="2"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_two_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_two_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="6" id="33"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="17" userLabel="3" customClass="UIDigitButton">
|
||||
<rect key="frame" x="213" y="11" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="3"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_three_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_three_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="6" id="26"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="15" userLabel="4" customClass="UIDigitButton">
|
||||
<rect key="frame" x="0.0" y="73" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="4"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_four_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_four_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="6" id="27"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="16" userLabel="5" customClass="UIDigitButton">
|
||||
<rect key="frame" x="107" y="73" width="106" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="5"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_five_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_five_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="6" id="28"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="9" userLabel="6" customClass="UIDigitButton">
|
||||
<rect key="frame" x="213" y="73" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="6"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_six_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_six_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="6" id="29"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="14" userLabel="7" customClass="UIDigitButton">
|
||||
<rect key="frame" x="0.0" y="135" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="7"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_seven_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_seven_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="6" id="30"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="13" userLabel="8" customClass="UIDigitButton">
|
||||
<rect key="frame" x="107" y="135" width="106" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="8"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_eight_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_eight_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="6" id="31"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="12" userLabel="9" customClass="UIDigitButton">
|
||||
<rect key="frame" x="213" y="135" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="9"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_nine_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_nine_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="6" id="32"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="8" userLabel="*" customClass="UIDigitButton">
|
||||
<rect key="frame" x="0.0" y="197" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Star"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_star_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_star_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="6" id="35"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="10" userLabel="0" customClass="UIDigitButton">
|
||||
<rect key="frame" x="107" y="197" width="106" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="0"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_zero_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_zero_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="6" id="36"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="11" userLabel="#" customClass="UIDigitButton">
|
||||
<rect key="frame" x="213" y="197" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Sharp"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_sharp_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_sharp_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="6" id="37"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="3" userLabel="toolBar">
|
||||
<rect key="frame" x="456" y="815" width="312" height="85"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="24" userLabel="addContactButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="126" height="85"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Add to Contact"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" image="add_contact_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" image="add_contact_disabled.png"/>
|
||||
<state key="highlighted" image="add_contact_over.png"/>
|
||||
<connections>
|
||||
<action selector="onAddContactClick:" destination="-1" eventType="touchUpInside" id="63"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="22" userLabel="backButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="126" height="85"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" image="back_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" image="back_disabled.png"/>
|
||||
<state key="highlighted" image="back_over.png"/>
|
||||
<connections>
|
||||
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="68"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="21" userLabel="callButton" customClass="UICallButton">
|
||||
<rect key="frame" x="126" y="0.0" width="186" height="85"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Call"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" image="call_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" image="call_disabled.png"/>
|
||||
<state key="highlighted" image="call_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="6" id="40"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button hidden="YES" opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="23" userLabel="addCallButton" customClass="UICallButton">
|
||||
<rect key="frame" x="126" y="0.0" width="186" height="85"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Add call"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" image="add_call_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" image="add_call_disabled.png"/>
|
||||
<state key="highlighted" image="add_call_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="6" id="38"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button hidden="YES" opaque="NO" contentMode="scaleToFill" enabled="NO" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="20" userLabel="transferButton" customClass="UITransferButton">
|
||||
<rect key="frame" x="126" y="0.0" width="186" height="85"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Transfer Call"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" image="transfer_call_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" image="transfer_call_disabled.png"/>
|
||||
<state key="highlighted" image="transfer_call_over.png"/>
|
||||
<connections>
|
||||
<outlet property="addressField" destination="6" id="41"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="0.0" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="add_call_default.png" width="371" height="170"/>
|
||||
<image name="add_call_disabled.png" width="371" height="170"/>
|
||||
<image name="add_call_over.png" width="371" height="170"/>
|
||||
<image name="add_contact_default.png" width="251" height="170"/>
|
||||
<image name="add_contact_disabled.png" width="251" height="170"/>
|
||||
<image name="add_contact_over.png" width="251" height="170"/>
|
||||
<image name="back_default.png" width="251" height="170"/>
|
||||
<image name="back_disabled.png" width="251" height="170"/>
|
||||
<image name="back_over.png" width="251" height="170"/>
|
||||
<image name="background_alt.png" width="640" height="561"/>
|
||||
<image name="backspace_default.png" width="81" height="43"/>
|
||||
<image name="backspace_disabled.png" width="81" height="43"/>
|
||||
<image name="backspace_over.png" width="81" height="43"/>
|
||||
<image name="call_default.png" width="371" height="170"/>
|
||||
<image name="call_disabled.png" width="371" height="170"/>
|
||||
<image name="call_over.png" width="371" height="170"/>
|
||||
<image name="dialer_address_background.png" width="1536" height="117"/>
|
||||
<image name="logo_linphone_trame_background.png" width="1019" height="920"/>
|
||||
<image name="numpad_eight_default.png" width="220" height="113"/>
|
||||
<image name="numpad_eight_over.png" width="220" height="113"/>
|
||||
<image name="numpad_five_default.png" width="220" height="113"/>
|
||||
<image name="numpad_five_over.png" width="220" height="113"/>
|
||||
<image name="numpad_four_default.png" width="210" height="113"/>
|
||||
<image name="numpad_four_over.png" width="210" height="113"/>
|
||||
<image name="numpad_nine_default.png" width="210" height="113"/>
|
||||
<image name="numpad_nine_over.png" width="210" height="113"/>
|
||||
<image name="numpad_one_default.png" width="210" height="113"/>
|
||||
<image name="numpad_one_over.png" width="210" height="113"/>
|
||||
<image name="numpad_seven_default.png" width="210" height="113"/>
|
||||
<image name="numpad_seven_over.png" width="210" height="113"/>
|
||||
<image name="numpad_sharp_default.png" width="210" height="113"/>
|
||||
<image name="numpad_sharp_over.png" width="210" height="113"/>
|
||||
<image name="numpad_six_default.png" width="210" height="113"/>
|
||||
<image name="numpad_six_over.png" width="210" height="113"/>
|
||||
<image name="numpad_star_default.png" width="210" height="113"/>
|
||||
<image name="numpad_star_over.png" width="210" height="113"/>
|
||||
<image name="numpad_three_default.png" width="210" height="113"/>
|
||||
<image name="numpad_three_over.png" width="210" height="113"/>
|
||||
<image name="numpad_two_default.png" width="220" height="113"/>
|
||||
<image name="numpad_two_over.png" width="220" height="113"/>
|
||||
<image name="numpad_zero_default.png" width="220" height="113"/>
|
||||
<image name="numpad_zero_over.png" width="220" height="113"/>
|
||||
<image name="switch_camera_default.png" width="151" height="51"/>
|
||||
<image name="switch_camera_over.png" width="151" height="51"/>
|
||||
<image name="transfer_call_default.png" width="371" height="170"/>
|
||||
<image name="transfer_call_disabled.png" width="371" height="170"/>
|
||||
<image name="transfer_call_over.png" width="371" height="170"/>
|
||||
</resources>
|
||||
</document>
|
||||
94
Classes/Base.lproj/FirstLoginViewController.xib
Normal file
94
Classes/Base.lproj/FirstLoginViewController.xib
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4514" systemVersion="13B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1072" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="FirstLoginViewController">
|
||||
<connections>
|
||||
<outlet property="loginButton" destination="64" id="65"/>
|
||||
<outlet property="passwordField" destination="8" id="60"/>
|
||||
<outlet property="siteButton" destination="35" id="58"/>
|
||||
<outlet property="usernameField" destination="6" id="59"/>
|
||||
<outlet property="view" destination="55" id="56"/>
|
||||
<outlet property="waitView" destination="31" id="57"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="55">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="460"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="64" userLabel="loginButton">
|
||||
<rect key="frame" x="33" y="312" width="255" height="50"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Login"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="20"/>
|
||||
<state key="normal" title="Login" backgroundImage="button_background_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="button_background_over.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onLoginClick:" destination="-1" eventType="touchUpInside" id="66"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button hidden="YES" opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="35" userLabel="siteButton">
|
||||
<rect key="frame" x="60" y="420" width="200" height="37"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal">
|
||||
<color key="titleColor" red="0.19607843" green="0.30980393000000001" blue="0.52156866000000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onSiteClick:" destination="-1" eventType="touchUpInside" id="63"/>
|
||||
</connections>
|
||||
</button>
|
||||
<textField opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Username" minimumFontSize="17" background="field_background.png" id="6" userLabel="usernameField">
|
||||
<rect key="frame" x="60" y="170" width="200" height="31"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Username"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no"/>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="-1" id="39"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<textField opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" placeholder="Password" clearsOnBeginEditing="YES" minimumFontSize="17" background="field_background.png" id="8" userLabel="passwordField">
|
||||
<rect key="frame" x="60" y="220" width="200" height="31"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Password"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" secureTextEntry="YES"/>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="-1" id="17"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<view hidden="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="31" userLabel="waitView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="460"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<activityIndicatorView opaque="NO" clearsContextBeforeDrawing="NO" userInteractionEnabled="NO" contentMode="scaleToFill" animating="YES" style="whiteLarge" id="32" userLabel="activityIndicator">
|
||||
<rect key="frame" x="142" y="211" width="37" height="37"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
</activityIndicatorView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="0.66000000000000003" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="button_background_default.png" width="550" height="101"/>
|
||||
<image name="button_background_over.png" width="550" height="101"/>
|
||||
<image name="field_background.png" width="542" height="88"/>
|
||||
</resources>
|
||||
</document>
|
||||
266
Classes/Base.lproj/HistoryDetailsViewController.xib
Normal file
266
Classes/Base.lproj/HistoryDetailsViewController.xib
Normal file
|
|
@ -0,0 +1,266 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4514" systemVersion="13B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1072" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="HistoryDetailsViewController">
|
||||
<connections>
|
||||
<outlet property="addContactButton" destination="50" id="52"/>
|
||||
<outlet property="addressLabel" destination="25" id="42"/>
|
||||
<outlet property="avatarImage" destination="23" id="43"/>
|
||||
<outlet property="callButton" destination="37" id="61"/>
|
||||
<outlet property="dateHeaderLabel" destination="27" id="44"/>
|
||||
<outlet property="dateLabel" destination="28" id="45"/>
|
||||
<outlet property="durationHeaderLabel" destination="31" id="46"/>
|
||||
<outlet property="durationLabel" destination="32" id="47"/>
|
||||
<outlet property="messageButton" destination="59" id="62"/>
|
||||
<outlet property="plainAddressHeaderLabel" destination="55" id="63"/>
|
||||
<outlet property="plainAddressLabel" destination="56" id="64"/>
|
||||
<outlet property="typeHeaderLabel" destination="36" id="48"/>
|
||||
<outlet property="typeLabel" destination="35" id="49"/>
|
||||
<outlet property="view" destination="4" id="10"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="4">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="460"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" id="6" userLabel="navigationBar">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="toolsbar_background.png" id="8" userLabel="background">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="9" userLabel="backButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="160" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Back" backgroundImage="history_details_back_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="history_details_back_over.png">
|
||||
<color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="11"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="50" userLabel="addButton">
|
||||
<rect key="frame" x="160" y="0.0" width="160" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Add to contact"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Add to contacts" backgroundImage="history_details_add_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="history_details_add_over.png">
|
||||
<color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onAddContactClick:" destination="-1" eventType="touchUpInside" id="53"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="33" userLabel="headerView">
|
||||
<rect key="frame" x="0.0" y="44" width="313" height="100"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="38" userLabel="headerButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="100"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration">
|
||||
<bool key="isElement" value="NO"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal">
|
||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onContactClick:" destination="-1" eventType="touchUpInside" id="40"/>
|
||||
</connections>
|
||||
</button>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="avatar_shadow_small.png" id="24" userLabel="avatarShadowBackground">
|
||||
<rect key="frame" x="-13" y="-5" width="131" height="107"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="avatar_unknown_small.png" id="23" userLabel="avatarImage">
|
||||
<rect key="frame" x="20" y="6" width="65" height="65"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Contact's avatar">
|
||||
<accessibilityTraits key="traits" none="YES" image="YES" notEnabled="YES"/>
|
||||
<bool key="isElement" value="YES"/>
|
||||
</accessibility>
|
||||
</imageView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Contact1" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="25" userLabel="addressLabel">
|
||||
<rect key="frame" x="101" y="37" width="192" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Contact's name"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="22"/>
|
||||
<color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="29" userLabel="dateView">
|
||||
<rect key="frame" x="20" y="152" width="280" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Date:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="27" userLabel="dateHeaderLabel">
|
||||
<rect key="frame" x="0.0" y="0.0" width="49" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration">
|
||||
<bool key="isElement" value="NO"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="11/11/2011 at 10:01" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="28" userLabel="dateLabel">
|
||||
<rect key="frame" x="57" y="0.0" width="223" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Call date">
|
||||
<accessibilityTraits key="traits" none="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="30" userLabel="durationView">
|
||||
<rect key="frame" x="20" y="181" width="280" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Duration:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="31" userLabel="durationHeaderLabel">
|
||||
<rect key="frame" x="0.0" y="0.0" width="80" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration">
|
||||
<bool key="isElement" value="NO"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="9:05" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="32" userLabel="durationLabel">
|
||||
<rect key="frame" x="88" y="0.0" width="192" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Call duration">
|
||||
<accessibilityTraits key="traits" none="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="34" userLabel="typeView">
|
||||
<rect key="frame" x="20" y="210" width="280" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Type:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="36" userLabel="typeHeaderLabel">
|
||||
<rect key="frame" x="0.0" y="0.0" width="57" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration">
|
||||
<bool key="isElement" value="NO"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="outgoing call" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="35" userLabel="typeLabel">
|
||||
<rect key="frame" x="65" y="0.0" width="215" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Call type">
|
||||
<accessibilityTraits key="traits" none="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="54" userLabel="plainAddressView">
|
||||
<rect key="frame" x="20" y="239" width="280" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Address:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="55" userLabel="plainAddressHeaderLabel">
|
||||
<rect key="frame" x="0.0" y="0.0" width="78" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration">
|
||||
<bool key="isElement" value="NO"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="0102030405" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="56" userLabel="plainAddressLabel">
|
||||
<rect key="frame" x="86" y="0.0" width="194" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Address">
|
||||
<accessibilityTraits key="traits" none="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="37" userLabel="callButton">
|
||||
<rect key="frame" x="33" y="268" width="255" height="50"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Callback"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="20"/>
|
||||
<inset key="contentEdgeInsets" minX="10" minY="10" maxX="10" maxY="10"/>
|
||||
<state key="normal" title="Call" backgroundImage="button_background_default.png">
|
||||
<color key="titleColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="button_background_over.png"/>
|
||||
<connections>
|
||||
<action selector="onCallClick:" destination="-1" eventType="touchUpInside" id="65"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="59" userLabel="messageButton">
|
||||
<rect key="frame" x="33" y="326" width="255" height="50"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Send message"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="20"/>
|
||||
<inset key="contentEdgeInsets" minX="10" minY="10" maxX="10" maxY="10"/>
|
||||
<state key="normal" title="Send message" backgroundImage="button_background_default.png">
|
||||
<color key="titleColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="button_background_over.png"/>
|
||||
<connections>
|
||||
<action selector="onMessageClick:" destination="-1" eventType="touchUpInside" id="66"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="avatar_shadow_small.png" width="262" height="214"/>
|
||||
<image name="avatar_unknown_small.png" width="131" height="131"/>
|
||||
<image name="button_background_default.png" width="550" height="101"/>
|
||||
<image name="button_background_over.png" width="550" height="101"/>
|
||||
<image name="history_details_add_default.png" width="320" height="88"/>
|
||||
<image name="history_details_add_over.png" width="320" height="88"/>
|
||||
<image name="history_details_back_default.png" width="320" height="88"/>
|
||||
<image name="history_details_back_over.png" width="320" height="88"/>
|
||||
<image name="toolsbar_background.png" width="5" height="88"/>
|
||||
</resources>
|
||||
</document>
|
||||
158
Classes/Base.lproj/HistoryViewController.xib
Normal file
158
Classes/Base.lproj/HistoryViewController.xib
Normal file
|
|
@ -0,0 +1,158 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4514" systemVersion="13B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1072" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="HistoryViewController">
|
||||
<connections>
|
||||
<outlet property="allButton" destination="4" id="27"/>
|
||||
<outlet property="deleteButton" destination="35" id="36"/>
|
||||
<outlet property="editButton" destination="6" id="33"/>
|
||||
<outlet property="missedButton" destination="5" id="28"/>
|
||||
<outlet property="tableController" destination="18" id="26"/>
|
||||
<outlet property="tableView" destination="17" id="31"/>
|
||||
<outlet property="view" destination="2" id="16"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="2">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="460"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" id="3" userLabel="toolsBar">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="toolsbar_background.png" id="34" userLabel="background">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="35" userLabel="deleteButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="80" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Delete all"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Delete all" backgroundImage="history_delete_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="history_delete_over.png">
|
||||
<color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onDeleteClick:" destination="-1" eventType="touchUpInside" id="37"/>
|
||||
</connections>
|
||||
</button>
|
||||
<view contentMode="scaleToFill" id="38" userLabel="switchView">
|
||||
<rect key="frame" x="80" y="0.0" width="160" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="4" userLabel="allButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="80" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" red="0.97647064920000004" green="0.97647064920000004" blue="0.97647064920000004" alpha="1" colorSpace="deviceRGB"/>
|
||||
<accessibility key="accessibilityConfiguration" label="All contacts filter"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="16" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="All" backgroundImage="history_all_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" backgroundImage="history_all_selected.png">
|
||||
<color key="titleColor" red="0.97647064920000004" green="0.97647064920000004" blue="0.97647064920000004" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="history_all_selected.png">
|
||||
<color key="titleColor" red="0.97647064920000004" green="0.97647064920000004" blue="0.97647064920000004" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onAllClick:" destination="-1" eventType="touchUpInside" id="29"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="5" userLabel="missedButton">
|
||||
<rect key="frame" x="80" y="0.0" width="80" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" red="0.97647064920000004" green="0.97647064920000004" blue="0.97647064920000004" alpha="1" colorSpace="deviceRGB"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Missed contacts filter"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="16" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Missed" backgroundImage="history_missed_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" backgroundImage="history_missed_selected.png">
|
||||
<color key="titleColor" red="0.97647064920000004" green="0.97647064920000004" blue="0.97647064920000004" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="history_missed_selected.png">
|
||||
<color key="titleColor" red="0.97647064920000004" green="0.97647064920000004" blue="0.97647064920000004" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onMissedClick:" destination="-1" eventType="touchUpInside" id="30"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="6" userLabel="editButton" customClass="UIToggleButton">
|
||||
<rect key="frame" x="240" y="0.0" width="80" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Edit"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Edit" backgroundImage="history_edit_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" title="Ok" backgroundImage="history_ok_default.png"/>
|
||||
<state key="highlighted" backgroundImage="history_edit_over.png">
|
||||
<color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onEditClick:" destination="-1" eventType="touchUpInside" id="32"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="17" userLabel="tableView">
|
||||
<rect key="frame" x="0.0" y="44" width="320" height="416"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<inset key="contentInset" minX="0.0" minY="0.0" maxX="0.0" maxY="10"/>
|
||||
<inset key="scrollIndicatorInsets" minX="0.0" minY="0.0" maxX="0.0" maxY="10"/>
|
||||
<color key="separatorColor" red="0.7254902124" green="0.76862746479999999" blue="0.79607844350000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
<connections>
|
||||
<outlet property="dataSource" destination="18" id="23"/>
|
||||
<outlet property="delegate" destination="18" id="24"/>
|
||||
</connections>
|
||||
</tableView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<tableViewController autoresizesArchivedViewToFullSize="NO" id="18" userLabel="tableController" customClass="HistoryTableViewController">
|
||||
<extendedEdge key="edgesForExtendedLayout"/>
|
||||
<simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/>
|
||||
<nil key="simulatedTopBarMetrics"/>
|
||||
<nil key="simulatedBottomBarMetrics"/>
|
||||
<simulatedOrientationMetrics key="simulatedOrientationMetrics"/>
|
||||
<nil key="simulatedDestinationMetrics"/>
|
||||
<connections>
|
||||
<outlet property="view" destination="17" id="25"/>
|
||||
</connections>
|
||||
</tableViewController>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="history_all_default.png" width="160" height="88"/>
|
||||
<image name="history_all_selected.png" width="160" height="88"/>
|
||||
<image name="history_delete_default.png" width="160" height="88"/>
|
||||
<image name="history_delete_over.png" width="160" height="88"/>
|
||||
<image name="history_edit_default.png" width="160" height="88"/>
|
||||
<image name="history_edit_over.png" width="160" height="88"/>
|
||||
<image name="history_missed_default.png" width="160" height="88"/>
|
||||
<image name="history_missed_selected.png" width="160" height="88"/>
|
||||
<image name="history_ok_default.png" width="160" height="88"/>
|
||||
<image name="toolsbar_background.png" width="5" height="88"/>
|
||||
</resources>
|
||||
</document>
|
||||
63
Classes/Base.lproj/ImageViewController.xib
Normal file
63
Classes/Base.lproj/ImageViewController.xib
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4514" systemVersion="13B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1072" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ImageViewController">
|
||||
<connections>
|
||||
<outlet property="backButton" destination="7" id="8"/>
|
||||
<outlet property="scrollView" destination="12" id="13"/>
|
||||
<outlet property="view" destination="1" id="3"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="1">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" id="11" userLabel="toolbar">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="toolsbar_background.png" id="6" userLabel="background">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="7" userLabel="backButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="160" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Back" backgroundImage="image_back_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="image_back_over.png">
|
||||
<color key="titleColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="10"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" minimumZoomScale="0.0" maximumZoomScale="10" id="12" userLabel="scrollView" customClass="UIImageScrollView">
|
||||
<rect key="frame" x="0.0" y="44" width="320" height="436"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</scrollView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="image_back_default.png" width="320" height="88"/>
|
||||
<image name="image_back_over.png" width="320" height="88"/>
|
||||
<image name="toolsbar_background.png" width="5" height="88"/>
|
||||
</resources>
|
||||
</document>
|
||||
95
Classes/Base.lproj/InCallViewController.xib
Normal file
95
Classes/Base.lproj/InCallViewController.xib
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="5056" systemVersion="13C1021" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1536" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="InCallViewController">
|
||||
<connections>
|
||||
<outlet property="callTableController" destination="162" id="167"/>
|
||||
<outlet property="callTableView" destination="106" id="109"/>
|
||||
<outlet property="videoCameraSwitch" destination="160" id="161"/>
|
||||
<outlet property="videoGroup" destination="126" id="129"/>
|
||||
<outlet property="videoPreview" destination="127" id="130"/>
|
||||
<outlet property="videoView" destination="132" id="133"/>
|
||||
<outlet property="videoWaitingForFirstImage" destination="144" id="145"/>
|
||||
<outlet property="view" destination="9" id="23"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="9">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="460"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" id="126" userLabel="video">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="460"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" id="173" userLabel="background">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="460"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="132" userLabel="display">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="460"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleAspectFill" id="127" userLabel="preview">
|
||||
<rect key="frame" x="216" y="323.99999987758844" width="96" height="128"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMinY="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<activityIndicatorView opaque="NO" contentMode="scaleToFill" animating="YES" style="whiteLarge" id="144" userLabel="waitIndicator">
|
||||
<rect key="frame" x="141" y="212" width="37" height="37"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
</activityIndicatorView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" bounces="NO" showsHorizontalScrollIndicator="NO" style="grouped" allowsSelection="NO" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="106" userLabel="callTableView">
|
||||
<rect key="frame" x="0.0" y="-10" width="320" height="480"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<inset key="contentInset" minX="0.0" minY="10" maxX="0.0" maxY="25"/>
|
||||
<inset key="scrollIndicatorInsets" minX="0.0" minY="10" maxX="0.0" maxY="25"/>
|
||||
<color key="separatorColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<connections>
|
||||
<outlet property="dataSource" destination="162" id="168"/>
|
||||
<outlet property="delegate" destination="162" id="169"/>
|
||||
</connections>
|
||||
</tableView>
|
||||
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="160" userLabel="videoCameraSwitch" customClass="UICamSwitch">
|
||||
<rect key="frame" x="0.0" y="35" width="85" height="33"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Switch camera"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" backgroundImage="switch_camera_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="switch_camera_over.png"/>
|
||||
<connections>
|
||||
<outlet property="preview" destination="127" id="172"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<tableViewController id="162" userLabel="callTableController" customClass="InCallTableViewController">
|
||||
<extendedEdge key="edgesForExtendedLayout"/>
|
||||
<simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/>
|
||||
<nil key="simulatedTopBarMetrics"/>
|
||||
<nil key="simulatedBottomBarMetrics"/>
|
||||
<simulatedOrientationMetrics key="simulatedOrientationMetrics"/>
|
||||
<nil key="simulatedDestinationMetrics"/>
|
||||
<connections>
|
||||
<outlet property="view" destination="106" id="166"/>
|
||||
</connections>
|
||||
</tableViewController>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="switch_camera_default.png" width="151" height="51"/>
|
||||
<image name="switch_camera_over.png" width="151" height="51"/>
|
||||
</resources>
|
||||
</document>
|
||||
119
Classes/Base.lproj/IncomingCallViewController.xib
Normal file
119
Classes/Base.lproj/IncomingCallViewController.xib
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4514" systemVersion="13B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1072" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="IncomingCallViewController">
|
||||
<connections>
|
||||
<outlet property="addressLabel" destination="9" id="14"/>
|
||||
<outlet property="avatarImage" destination="19" id="20"/>
|
||||
<outlet property="portraitView" destination="25" id="32"/>
|
||||
<outlet property="view" destination="25" id="26"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="25">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="460"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<view tag="1" contentMode="scaleToFill" id="8">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="395"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" tag="2" contentMode="scaleToFill" image="cell_call_first.png" id="21" userLabel="addressBackgroundImage">
|
||||
<rect key="frame" x="0.0" y="49" width="320" height="63"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" tag="3" contentMode="scaleToFill" image="header_incoming.png" id="12" userLabel="headerBackground">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="68"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="">
|
||||
<accessibilityTraits key="traits" none="YES" image="YES" notEnabled="YES"/>
|
||||
</accessibility>
|
||||
</imageView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="4" contentMode="left" text="Incoming call" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="31" userLabel="headerLabel">
|
||||
<rect key="frame" x="20" y="0.0" width="280" height="50"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Incoming call"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="27"/>
|
||||
<color key="textColor" red="0.7254902124" green="0.76862746479999999" blue="0.79607844350000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label autoresizesSubviews="NO" opaque="NO" userInteractionEnabled="NO" tag="5" contentMode="left" text="0102030405" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="9" userLabel="addressLabel">
|
||||
<rect key="frame" x="10" y="53" width="300" height="51"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Contact's name"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="30"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="scrollViewTexturedBackgroundColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView userInteractionEnabled="NO" tag="6" contentMode="scaleToFill" image="avatar_shadow.png" id="18" userLabel="avatarShadowImage">
|
||||
<rect key="frame" x="0.0" y="96" width="320" height="262"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" tag="7" contentMode="scaleToFill" image="avatar_unknown.png" id="19" userLabel="avatarImage">
|
||||
<rect key="frame" x="80" y="113" width="160" height="170"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Contact's avatar">
|
||||
<accessibilityTraits key="traits" none="YES" image="YES" notEnabled="YES"/>
|
||||
<bool key="isElement" value="YES"/>
|
||||
</accessibility>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view tag="10" contentMode="scaleToFill" id="4" userLabel="tabBar">
|
||||
<rect key="frame" x="0.0" y="383" width="320" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<subviews>
|
||||
<view hidden="YES" userInteractionEnabled="NO" tag="-1" contentMode="scaleToFill" id="5" userLabel="mask">
|
||||
<rect key="frame" x="0.0" y="10" width="320" height="67"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<button opaque="NO" tag="11" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="7" userLabel="acceptButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="160" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Accept"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" backgroundImage="accept_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="accept_over.png"/>
|
||||
<connections>
|
||||
<action selector="onAcceptClick:" destination="-1" eventType="touchUpInside" id="15"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" tag="12" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="6" userLabel="declineButton">
|
||||
<rect key="frame" x="160" y="0.0" width="160" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" heightSizable="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Decline"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" backgroundImage="decline_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="decline_over.png"/>
|
||||
<connections>
|
||||
<action selector="onDeclineClick:" destination="-1" eventType="touchUpInside" id="16"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="accept_default.png" width="320" height="154"/>
|
||||
<image name="accept_over.png" width="320" height="154"/>
|
||||
<image name="avatar_shadow.png" width="640" height="523"/>
|
||||
<image name="avatar_unknown.png" width="320" height="339"/>
|
||||
<image name="cell_call_first.png" width="640" height="125"/>
|
||||
<image name="decline_default.png" width="320" height="154"/>
|
||||
<image name="decline_over.png" width="320" height="154"/>
|
||||
<image name="header_incoming.png" width="640" height="135"/>
|
||||
</resources>
|
||||
</document>
|
||||
215
Classes/Base.lproj/IncomingCallViewController~ipad.xib
Normal file
215
Classes/Base.lproj/IncomingCallViewController~ipad.xib
Normal file
|
|
@ -0,0 +1,215 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="5056" systemVersion="13C1021" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1536" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="IncomingCallViewController">
|
||||
<connections>
|
||||
<outlet property="addressLabel" destination="9" id="14"/>
|
||||
<outlet property="avatarImage" destination="19" id="20"/>
|
||||
<outlet property="landscapeView" destination="61" id="75"/>
|
||||
<outlet property="portraitView" destination="25" id="32"/>
|
||||
<outlet property="view" destination="25" id="26"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="25" userLabel="Portrait View">
|
||||
<rect key="frame" x="0.0" y="0.0" width="768" height="1024"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<view tag="1" contentMode="scaleToFill" id="8">
|
||||
<rect key="frame" x="0.0" y="0.0" width="768" height="958.00000000000011"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" tag="2" contentMode="scaleToFill" image="cell_call_first.png" id="21" userLabel="addressBackgroundImage">
|
||||
<rect key="frame" x="0.0" y="49" width="768" height="63"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" tag="3" contentMode="scaleToFill" image="header_incoming.png" id="12" userLabel="headerBackground">
|
||||
<rect key="frame" x="0.0" y="0.0" width="768" height="68"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="">
|
||||
<accessibilityTraits key="traits" none="YES" image="YES" notEnabled="YES"/>
|
||||
</accessibility>
|
||||
</imageView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="4" contentMode="left" text="Incoming call" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="31" userLabel="headerLabel">
|
||||
<rect key="frame" x="20" y="0.0" width="728" height="50"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Incoming call"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="27"/>
|
||||
<color key="textColor" red="0.7254902124" green="0.76862746479999999" blue="0.79607844350000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label autoresizesSubviews="NO" opaque="NO" userInteractionEnabled="NO" tag="5" contentMode="left" text="0102030405" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="9" userLabel="addressLabel">
|
||||
<rect key="frame" x="10" y="53" width="748" height="51"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Contact's name"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="30"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="scrollViewTexturedBackgroundColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView userInteractionEnabled="NO" tag="6" contentMode="scaleToFill" image="avatar_shadow.png" id="18" userLabel="avatarShadowImage">
|
||||
<rect key="frame" x="224" y="96" width="320" height="262"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" tag="7" contentMode="scaleToFill" image="avatar_unknown.png" id="19" userLabel="avatarImage">
|
||||
<rect key="frame" x="304" y="113" width="160" height="170"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Contact's avatar">
|
||||
<accessibilityTraits key="traits" none="YES" image="YES" notEnabled="YES"/>
|
||||
<bool key="isElement" value="YES"/>
|
||||
</accessibility>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view tag="10" contentMode="scaleToFill" id="4" userLabel="tabBar">
|
||||
<rect key="frame" x="0.0" y="947" width="768" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<subviews>
|
||||
<view hidden="YES" userInteractionEnabled="NO" tag="-1" contentMode="scaleToFill" id="5" userLabel="mask">
|
||||
<rect key="frame" x="0.0" y="10" width="768" height="67"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<button opaque="NO" tag="11" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="7" userLabel="acceptButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="384" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Accept"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" backgroundImage="accept_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="accept_over.png"/>
|
||||
<connections>
|
||||
<action selector="onAcceptClick:" destination="-1" eventType="touchUpInside" id="15"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" tag="12" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="6" userLabel="declineButton">
|
||||
<rect key="frame" x="384" y="0.0" width="384" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" heightSizable="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Decline"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" backgroundImage="decline_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="decline_over.png"/>
|
||||
<connections>
|
||||
<action selector="onDeclineClick:" destination="-1" eventType="touchUpInside" id="16"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="61" userLabel="Landscape View">
|
||||
<rect key="frame" x="0.0" y="0.0" width="1024" height="768"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<view tag="1" contentMode="scaleToFill" id="62">
|
||||
<rect key="frame" x="0.0" y="0.0" width="1024" height="701.99999999999989"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" tag="2" contentMode="scaleToFill" image="cell_call_first.png" id="72" userLabel="addressBackgroundImage">
|
||||
<rect key="frame" x="0.0" y="49" width="1024" height="63"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" tag="3" contentMode="scaleToFill" image="header_incoming.png" id="68" userLabel="headerBackground">
|
||||
<rect key="frame" x="0.0" y="0.0" width="1024" height="68"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="">
|
||||
<accessibilityTraits key="traits" none="YES" image="YES" notEnabled="YES"/>
|
||||
</accessibility>
|
||||
</imageView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="4" contentMode="left" text="Incoming call" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="67" userLabel="headerLabel">
|
||||
<rect key="frame" x="20" y="0.0" width="984" height="50"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Incoming call"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="27"/>
|
||||
<color key="textColor" red="0.7254902124" green="0.76862746479999999" blue="0.79607844350000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label autoresizesSubviews="NO" opaque="NO" userInteractionEnabled="NO" tag="5" contentMode="left" text="0102030405" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="69" userLabel="addressLabel">
|
||||
<rect key="frame" x="10" y="53" width="1004" height="51"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Contact's name"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="30"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="scrollViewTexturedBackgroundColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView userInteractionEnabled="NO" tag="6" contentMode="scaleToFill" image="avatar_shadow.png" id="70" userLabel="avatarShadowImage">
|
||||
<rect key="frame" x="352" y="96" width="320" height="262"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" tag="7" contentMode="scaleToFill" image="avatar_unknown.png" id="71" userLabel="avatarImage">
|
||||
<rect key="frame" x="432" y="113" width="160" height="170"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Contact's avatar">
|
||||
<accessibilityTraits key="traits" none="YES" image="YES" notEnabled="YES"/>
|
||||
<bool key="isElement" value="YES"/>
|
||||
</accessibility>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view tag="10" contentMode="scaleToFill" id="63" userLabel="tabBar">
|
||||
<rect key="frame" x="0.0" y="682" width="1024" height="86"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<subviews>
|
||||
<view hidden="YES" userInteractionEnabled="NO" tag="-1" contentMode="scaleToFill" id="66" userLabel="mask">
|
||||
<rect key="frame" x="0.0" y="19" width="1024" height="67"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<button opaque="NO" tag="11" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="64" userLabel="acceptButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="512" height="86"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Accept"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" backgroundImage="accept_default_landscape.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="accept_over_landscape.png"/>
|
||||
<connections>
|
||||
<action selector="onAcceptClick:" destination="-1" eventType="touchUpInside" id="73"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" tag="12" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="65" userLabel="declineButton">
|
||||
<rect key="frame" x="512" y="0.0" width="512" height="86"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" heightSizable="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Decline"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" backgroundImage="decline_default_landscape.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="decline_over_landscape.png"/>
|
||||
<connections>
|
||||
<action selector="onDeclineClick:" destination="-1" eventType="touchUpInside" id="74"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="accept_default.png" width="320" height="154"/>
|
||||
<image name="accept_default_landscape.png" width="1024" height="171"/>
|
||||
<image name="accept_over.png" width="320" height="154"/>
|
||||
<image name="accept_over_landscape.png" width="1024" height="171"/>
|
||||
<image name="avatar_shadow.png" width="640" height="523"/>
|
||||
<image name="avatar_unknown.png" width="320" height="339"/>
|
||||
<image name="cell_call_first.png" width="640" height="125"/>
|
||||
<image name="decline_default.png" width="320" height="154"/>
|
||||
<image name="decline_default_landscape.png" width="1024" height="171"/>
|
||||
<image name="decline_over.png" width="320" height="154"/>
|
||||
<image name="decline_over_landscape.png" width="1024" height="171"/>
|
||||
<image name="header_incoming.png" width="640" height="135"/>
|
||||
</resources>
|
||||
</document>
|
||||
112
Classes/Base.lproj/WizardViewController.xib
Normal file
112
Classes/Base.lproj/WizardViewController.xib
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4514" systemVersion="13B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1072" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="WizardViewController">
|
||||
<connections>
|
||||
<outlet property="backButton" destination="17" id="27"/>
|
||||
<outlet property="contentView" destination="98" id="99"/>
|
||||
<outlet property="portraitView" destination="12" id="117"/>
|
||||
<outlet property="startButton" destination="16" id="26"/>
|
||||
<outlet property="view" destination="12" id="20"/>
|
||||
<outlet property="waitView" destination="91" id="96"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="12">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="460"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" tag="1" contentMode="scaleToFill" bounces="NO" showsHorizontalScrollIndicator="NO" id="98" userLabel="contentView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="394"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
</scrollView>
|
||||
<view tag="2" contentMode="scaleToFill" id="14" userLabel="tabBar">
|
||||
<rect key="frame" x="0.0" y="383" width="320" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" tag="3" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="18" userLabel="cancelButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="160" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Cancel"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="35" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Cancel" backgroundImage="setup_cancel_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" backgroundImage="setup_cancel_disabled.png"/>
|
||||
<state key="highlighted" backgroundImage="setup_cancel_over.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onCancelClick:" destination="-1" eventType="touchUpInside" id="24"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" tag="4" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="16" userLabel="startButton">
|
||||
<rect key="frame" x="160" y="0.0" width="160" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Start"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="10" minY="35" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Start" backgroundImage="setup_start_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="setup_start_over.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onStartClick:" destination="-1" eventType="touchUpInside" id="25"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button hidden="YES" opaque="NO" tag="5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="17" userLabel="backButton">
|
||||
<rect key="frame" x="160" y="0.0" width="160" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="10" minY="35" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Back" backgroundImage="setup_back_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" backgroundImage="setup_back_disabled.png"/>
|
||||
<state key="highlighted" backgroundImage="setup_back_over.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="23"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view hidden="YES" tag="6" contentMode="scaleToFill" id="91" userLabel="waitView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="460"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<activityIndicatorView opaque="NO" tag="7" contentMode="scaleToFill" animating="YES" style="whiteLarge" id="90" userLabel="activityIndicatorView">
|
||||
<rect key="frame" x="142" y="211" width="37" height="37"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
</activityIndicatorView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="0.5" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="setup_back_default.png" width="320" height="154"/>
|
||||
<image name="setup_back_disabled.png" width="320" height="154"/>
|
||||
<image name="setup_back_over.png" width="320" height="154"/>
|
||||
<image name="setup_cancel_default.png" width="320" height="154"/>
|
||||
<image name="setup_cancel_disabled.png" width="320" height="154"/>
|
||||
<image name="setup_cancel_over.png" width="320" height="154"/>
|
||||
<image name="setup_start_default.png" width="320" height="154"/>
|
||||
<image name="setup_start_over.png" width="320" height="154"/>
|
||||
</resources>
|
||||
</document>
|
||||
203
Classes/Base.lproj/WizardViewController~ipad.xib
Normal file
203
Classes/Base.lproj/WizardViewController~ipad.xib
Normal file
|
|
@ -0,0 +1,203 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="5056" systemVersion="13C1021" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1536" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="WizardViewController">
|
||||
<connections>
|
||||
<outlet property="backButton" destination="17" id="27"/>
|
||||
<outlet property="contentView" destination="98" id="99"/>
|
||||
<outlet property="landscapeView" destination="118" id="134"/>
|
||||
<outlet property="portraitView" destination="12" id="117"/>
|
||||
<outlet property="startButton" destination="16" id="26"/>
|
||||
<outlet property="view" destination="12" id="20"/>
|
||||
<outlet property="waitView" destination="129" id="131"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="12" userLabel="Portrait View">
|
||||
<rect key="frame" x="0.0" y="0.0" width="768" height="1024"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" tag="1" contentMode="scaleToFill" bounces="NO" showsHorizontalScrollIndicator="NO" id="98" userLabel="contentView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="768" height="966"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
</scrollView>
|
||||
<view tag="2" contentMode="scaleToFill" id="14" userLabel="tabBar">
|
||||
<rect key="frame" x="0.0" y="947" width="768" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" tag="3" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="18" userLabel="cancelButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="384" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Cancel"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Cancel" backgroundImage="setup_cancel_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" backgroundImage="setup_cancel_disabled.png"/>
|
||||
<state key="highlighted" backgroundImage="setup_cancel_over.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onCancelClick:" destination="-1" eventType="touchUpInside" id="24"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" tag="4" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="16" userLabel="startButton">
|
||||
<rect key="frame" x="384" y="0.0" width="384" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Start"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="54" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Start" backgroundImage="setup_start_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="setup_start_over.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onStartClick:" destination="-1" eventType="touchUpInside" id="25"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button hidden="YES" opaque="NO" tag="5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="17" userLabel="backButton">
|
||||
<rect key="frame" x="384" y="0.0" width="384" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="54" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Back" backgroundImage="setup_back_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" backgroundImage="setup_back_disabled.png"/>
|
||||
<state key="highlighted" backgroundImage="setup_back_over.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="23"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view hidden="YES" tag="6" contentMode="scaleToFill" id="129" userLabel="waitView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="768" height="1024"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<activityIndicatorView opaque="NO" tag="7" contentMode="scaleToFill" animating="YES" style="whiteLarge" id="130" userLabel="activityIndicatorView">
|
||||
<rect key="frame" x="366" y="492" width="37" height="37"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
</activityIndicatorView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="0.5" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="118" userLabel="Landscape View">
|
||||
<rect key="frame" x="0.0" y="0.0" width="1024" height="768"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" tag="1" contentMode="scaleToFill" bounces="NO" showsHorizontalScrollIndicator="NO" id="119" userLabel="contentView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="1024" height="711"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
</scrollView>
|
||||
<view tag="2" contentMode="scaleToFill" id="120" userLabel="tabBar">
|
||||
<rect key="frame" x="0.0" y="691" width="1024" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" tag="3" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="122" userLabel="cancelButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="512" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Cancel"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Cancel" backgroundImage="setup_cancel_default_landscape.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" backgroundImage="setup_cancel_disabled_landscape.png"/>
|
||||
<state key="highlighted" backgroundImage="setup_cancel_over_landscape.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onCancelClick:" destination="-1" eventType="touchUpInside" id="128"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" tag="4" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="123" userLabel="startButton">
|
||||
<rect key="frame" x="512" y="0.0" width="512" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Start"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="16" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Start" backgroundImage="setup_start_default_landscape.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="setup_start_over_landscape.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onStartClick:" destination="-1" eventType="touchUpInside" id="126"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button hidden="YES" opaque="NO" tag="5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="124" userLabel="backButton">
|
||||
<rect key="frame" x="512" y="0.0" width="512" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="16" minY="18" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Back" backgroundImage="setup_back_default_landscape.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" backgroundImage="setup_back_disabled_landscape.png"/>
|
||||
<state key="highlighted" backgroundImage="setup_back_over_landscape.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onBackClick:" destination="-1" eventType="touchUpInside" id="127"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view hidden="YES" tag="6" contentMode="scaleToFill" id="132" userLabel="waitView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="1024" height="768"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<activityIndicatorView opaque="NO" tag="7" contentMode="scaleToFill" animating="YES" style="whiteLarge" id="133" userLabel="activityIndicatorView">
|
||||
<rect key="frame" x="494" y="364" width="37" height="37"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
</activityIndicatorView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="0.5" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="setup_back_default.png" width="320" height="154"/>
|
||||
<image name="setup_back_default_landscape.png" width="1024" height="171"/>
|
||||
<image name="setup_back_disabled.png" width="320" height="154"/>
|
||||
<image name="setup_back_disabled_landscape.png" width="1024" height="171"/>
|
||||
<image name="setup_back_over.png" width="320" height="154"/>
|
||||
<image name="setup_back_over_landscape.png" width="1024" height="171"/>
|
||||
<image name="setup_cancel_default.png" width="320" height="154"/>
|
||||
<image name="setup_cancel_default_landscape.png" width="1024" height="171"/>
|
||||
<image name="setup_cancel_disabled.png" width="320" height="154"/>
|
||||
<image name="setup_cancel_disabled_landscape.png" width="1024" height="171"/>
|
||||
<image name="setup_cancel_over.png" width="320" height="154"/>
|
||||
<image name="setup_cancel_over_landscape.png" width="1024" height="171"/>
|
||||
<image name="setup_start_default.png" width="320" height="154"/>
|
||||
<image name="setup_start_default_landscape.png" width="1024" height="171"/>
|
||||
<image name="setup_start_over.png" width="320" height="154"/>
|
||||
<image name="setup_start_over_landscape.png" width="1024" height="171"/>
|
||||
</resources>
|
||||
</document>
|
||||
522
Classes/Base.lproj/WizardViews.xib
Normal file
522
Classes/Base.lproj/WizardViews.xib
Normal file
|
|
@ -0,0 +1,522 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="5053" systemVersion="13C64" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1536" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="WizardViewController">
|
||||
<connections>
|
||||
<outlet property="choiceView" destination="33" id="40"/>
|
||||
<outlet property="choiceViewLogoImageView" destination="128" id="136"/>
|
||||
<outlet property="connectAccountButton" destination="38" id="134"/>
|
||||
<outlet property="connectAccountView" destination="52" id="71"/>
|
||||
<outlet property="createAccountButton" destination="36" id="135"/>
|
||||
<outlet property="createAccountView" destination="44" id="70"/>
|
||||
<outlet property="externalAccountButton" destination="39" id="133"/>
|
||||
<outlet property="externalAccountView" destination="56" id="72"/>
|
||||
<outlet property="provisionedAccountView" destination="xVK-hL-6pe" id="jZM-mc-m1Q"/>
|
||||
<outlet property="provisionedDomain" destination="wRB-Sh-K8J" id="Ieb-x8-yL4"/>
|
||||
<outlet property="provisionedPassword" destination="ClH-fT-a8N" id="h61-p1-4qG"/>
|
||||
<outlet property="provisionedUsername" destination="MyR-eX-QTa" id="gmr-FI-hpH"/>
|
||||
<outlet property="remoteProvisioningButton" destination="Kbn-dL-C5h" id="PPk-DJ-nEb"/>
|
||||
<outlet property="validateAccountView" destination="101" id="112"/>
|
||||
<outlet property="welcomeView" destination="21" id="28"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="21" userLabel="welcomeView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="394"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" image="setup_welcome_logo.png" id="19" userLabel="iconImage">
|
||||
<rect key="frame" x="60" y="80" width="201" height="129"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Linphone setup assistant icon">
|
||||
<bool key="isElement" value="YES"/>
|
||||
</accessibility>
|
||||
</imageView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Account setup assistant" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="127" userLabel="title">
|
||||
<rect key="frame" x="31" y="230" width="258" height="40"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Account setup assistant"/>
|
||||
<fontDescription key="fontDescription" type="italicSystem" pointSize="20"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<color key="shadowColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<size key="shadowOffset" width="-1" height="-1"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="This assistant will help you to use a SIP account for your calls." textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="10" adjustsFontSizeToFit="NO" id="22" userLabel="label">
|
||||
<rect key="frame" x="40" y="290" width="240" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="33" userLabel="choiceView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="394"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView hidden="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" image="setup_welcome_logo.png" id="128" userLabel="choiceViewLogoImage">
|
||||
<rect key="frame" x="59" y="72" width="201" height="129"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Linphone setup assistant icon">
|
||||
<bool key="isElement" value="YES"/>
|
||||
</accessibility>
|
||||
</imageView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Account setup assistant" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="126" userLabel="title">
|
||||
<rect key="frame" x="31" y="34" width="258" height="40"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Account setup assistant"/>
|
||||
<fontDescription key="fontDescription" type="italicSystem" pointSize="20"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<color key="shadowColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<size key="shadowOffset" width="-1" height="-1"/>
|
||||
</label>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="36" userLabel="createAccountButton" customClass="UILinphoneButton">
|
||||
<rect key="frame" x="34" y="153" width="255" height="50"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Create linphone.org account">
|
||||
<bool key="isElement" value="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
|
||||
<state key="normal" title="Create an account on linphone.org" backgroundImage="button_background_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="button_background_over.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onCreateAccountClick:" destination="-1" eventType="touchUpInside" id="42"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="38" userLabel="connectAccountButton" customClass="UILinphoneButton">
|
||||
<rect key="frame" x="34" y="211" width="255" height="50"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Sign in linphone.org account">
|
||||
<bool key="isElement" value="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
|
||||
<state key="normal" title="I have already a linphone.org account" backgroundImage="button_background_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="button_background_over.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onConnectAccountClick:" destination="-1" eventType="touchUpInside" id="41"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="39" userLabel="externalAccountButton" customClass="UILinphoneButton">
|
||||
<rect key="frame" x="33" y="269" width="255" height="50"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Sign in SIP account">
|
||||
<bool key="isElement" value="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
|
||||
<state key="normal" title="I have already a SIP account" backgroundImage="button_background_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="button_background_over.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onExternalAccountClick:" destination="-1" eventType="touchUpInside" id="43"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="Kbn-dL-C5h" userLabel="remoteProvisioningButton" customClass="UILinphoneButton">
|
||||
<rect key="frame" x="34" y="327" width="255" height="50"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Sign in SIP account">
|
||||
<bool key="isElement" value="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="13"/>
|
||||
<state key="normal" title="Remote Provisioning" backgroundImage="button_background_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="button_background_over.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onRemoteProvisioningClick:" destination="-1" eventType="touchUpInside" id="7oT-2f-Rrb"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="44" userLabel="createAccountView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="394"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Account setup assistant" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="117" userLabel="title">
|
||||
<rect key="frame" x="31" y="34" width="258" height="40"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Account setup assistant"/>
|
||||
<fontDescription key="fontDescription" type="italicSystem" pointSize="20"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<color key="shadowColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<size key="shadowOffset" width="-1" height="-1"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="200" contentMode="left" text="Enter your username and password with your email address." textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="10" adjustsFontSizeToFit="NO" id="73" userLabel="label">
|
||||
<rect key="frame" x="39" y="80" width="240" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label hidden="YES" opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="404" contentMode="left" text="Invalid character:" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="10" adjustsFontSizeToFit="NO" id="uHm-NE-GLV" userLabel="invalid_char_error">
|
||||
<rect key="frame" x="40" y="118" width="240" height="14"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<textField opaque="NO" clipsSubviews="YES" tag="100" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Username" adjustsFontSizeToFit="NO" minimumFontSize="10" background="field_background.png" id="74" userLabel="usernameField" customClass="UILinphoneTextField">
|
||||
<rect key="frame" x="32" y="140" width="255" height="31"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Username"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no"/>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="-1" id="80"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<textField opaque="NO" clipsSubviews="YES" tag="101" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Password" adjustsFontSizeToFit="NO" minimumFontSize="10" background="field_background.png" id="75" userLabel="passwordField" customClass="UILinphoneTextField">
|
||||
<rect key="frame" x="32" y="185" width="255" height="31"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Password"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" secureTextEntry="YES"/>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="-1" id="82"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<textField opaque="NO" clipsSubviews="YES" tag="102" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Password" adjustsFontSizeToFit="NO" minimumFontSize="10" background="field_background.png" id="76" userLabel="password2Field" customClass="UILinphoneTextField">
|
||||
<rect key="frame" x="32" y="230" width="255" height="31"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Password again"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" secureTextEntry="YES"/>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="-1" id="83"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<textField opaque="NO" clipsSubviews="YES" tag="103" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Email" adjustsFontSizeToFit="NO" minimumFontSize="10" background="field_background.png" id="79" userLabel="emailField" customClass="UILinphoneTextField">
|
||||
<rect key="frame" x="32" y="275" width="255" height="31"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Email"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no"/>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="-1" id="84"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="77" userLabel="registerButton" customClass="UILinphoneButton">
|
||||
<rect key="frame" x="33" y="330" width="255" height="50"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Register"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="20"/>
|
||||
<state key="normal" title="Register" backgroundImage="button_background_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="button_background_over.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onRegisterClick:" destination="-1" eventType="touchUpInside" id="113"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="52" userLabel="connectAccountView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="394"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Account setup assistant" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="122" userLabel="title">
|
||||
<rect key="frame" x="31" y="34" width="258" height="40"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Account setup assistant"/>
|
||||
<fontDescription key="fontDescription" type="italicSystem" pointSize="20"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<color key="shadowColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<size key="shadowOffset" width="-1" height="-1"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="200" contentMode="left" text="Enter your username and password of your linphone.org account." textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="10" adjustsFontSizeToFit="NO" id="67" userLabel="label">
|
||||
<rect key="frame" x="40" y="80" width="240" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<textField opaque="NO" clipsSubviews="YES" tag="101" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Password" adjustsFontSizeToFit="NO" minimumFontSize="10" background="field_background.png" id="66" userLabel="passwordField" customClass="UILinphoneTextField">
|
||||
<rect key="frame" x="32" y="185" width="255" height="31"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Password"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" secureTextEntry="YES"/>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="-1" id="85"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<textField opaque="NO" clipsSubviews="YES" tag="100" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Username" adjustsFontSizeToFit="NO" minimumFontSize="10" background="field_background.png" id="68" userLabel="usernameField" customClass="UILinphoneTextField">
|
||||
<rect key="frame" x="32" y="140" width="255" height="31"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Username"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no"/>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="-1" id="81"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="64" userLabel="signInButton">
|
||||
<rect key="frame" x="32" y="330" width="255" height="50"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Sign in"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="20"/>
|
||||
<state key="normal" title="Sign in" backgroundImage="button_background_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="button_background_over.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onSignInClick:" destination="-1" eventType="touchUpInside" id="116"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="56" userLabel="externalAccountView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="394"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Account setup assistant" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="123" userLabel="title">
|
||||
<rect key="frame" x="31" y="34" width="258" height="40"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Account setup assistant"/>
|
||||
<fontDescription key="fontDescription" type="italicSystem" pointSize="20"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<color key="shadowColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<size key="shadowOffset" width="-1" height="-1"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="200" contentMode="left" text="Enter your username and password with your SIP domain." textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="10" adjustsFontSizeToFit="NO" id="58" userLabel="label">
|
||||
<rect key="frame" x="40" y="82" width="240" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<textField opaque="NO" clipsSubviews="YES" tag="100" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Username" adjustsFontSizeToFit="NO" minimumFontSize="10" background="field_background.png" id="59" userLabel="usernameField" customClass="UILinphoneTextField">
|
||||
<rect key="frame" x="33" y="140" width="255" height="31"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Username"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no"/>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="-1" id="86"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<textField opaque="NO" clipsSubviews="YES" tag="101" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Password" adjustsFontSizeToFit="NO" minimumFontSize="10" background="field_background.png" id="60" userLabel="passwordField" customClass="UILinphoneTextField">
|
||||
<rect key="frame" x="33" y="185" width="255" height="31"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Password"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" secureTextEntry="YES"/>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="-1" id="87"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<textField opaque="NO" clipsSubviews="YES" tag="104" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Domain" adjustsFontSizeToFit="NO" minimumFontSize="10" background="field_background.png" id="61" userLabel="domainField" customClass="UILinphoneTextField">
|
||||
<rect key="frame" x="33" y="230" width="255" height="31"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Domain"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no"/>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="-1" id="88"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="62" userLabel="signInButton" customClass="UILinphoneButton">
|
||||
<rect key="frame" x="34" y="330" width="255" height="50"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Sign in"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="20"/>
|
||||
<state key="normal" title="Sign in" backgroundImage="button_background_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="button_background_over.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onSignInExternalClick:" destination="-1" eventType="touchUpInside" id="115"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="xVK-hL-6pe" userLabel="provisionedAccountView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="394"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Provisioned account" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="YKJ-nv-RUT" userLabel="title">
|
||||
<rect key="frame" x="31" y="34" width="258" height="40"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Account setup assistant"/>
|
||||
<fontDescription key="fontDescription" type="italicSystem" pointSize="20"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<color key="shadowColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<size key="shadowOffset" width="-1" height="-1"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="200" contentMode="left" text="Enter your username and password" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="10" adjustsFontSizeToFit="NO" id="pU9-SC-9uY" userLabel="label">
|
||||
<rect key="frame" x="40" y="82" width="240" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<textField opaque="NO" clipsSubviews="YES" tag="104" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Username" adjustsFontSizeToFit="NO" minimumFontSize="10" background="field_background.png" id="MyR-eX-QTa" userLabel="usernameField" customClass="UILinphoneTextField">
|
||||
<rect key="frame" x="33" y="140" width="255" height="31"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Username"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no"/>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="-1" id="hkA-6W-28S"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<textField opaque="NO" clipsSubviews="YES" tag="105" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Password" adjustsFontSizeToFit="NO" minimumFontSize="10" background="field_background.png" id="ClH-fT-a8N" userLabel="passwordField" customClass="UILinphoneTextField">
|
||||
<rect key="frame" x="33" y="185" width="255" height="31"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Password"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" secureTextEntry="YES"/>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="-1" id="lRN-EH-mjp"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<textField opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="106" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Domain" adjustsFontSizeToFit="NO" minimumFontSize="10" background="field_background.png" id="wRB-Sh-K8J" userLabel="domainField" customClass="UILinphoneTextField">
|
||||
<rect key="frame" x="33" y="230" width="255" height="31"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Domain">
|
||||
<bool key="isElement" value="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no"/>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="-1" id="2Cp-Qo-wte"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="dGS-GB-Sgb" userLabel="signInButton" customClass="UILinphoneButton">
|
||||
<rect key="frame" x="34" y="330" width="255" height="50"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Sign in"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="20"/>
|
||||
<state key="normal" title="Sign in" backgroundImage="button_background_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="button_background_over.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onProvisionedLoginClick:" destination="-1" eventType="touchUpInside" id="vdT-jh-r0K"/>
|
||||
</connections>
|
||||
</button>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="These parameters were retrieved from a remote provisioning profile." textAlignment="center" lineBreakMode="wordWrap" numberOfLines="7" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="RHE-hi-dfB" userLabel="remoteParamsLabel">
|
||||
<rect key="frame" x="34" y="269.0000019583353" width="254" height="53"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="11"/>
|
||||
<color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="101" userLabel="validateAccountView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="394"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Account setup assistant" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="124" userLabel="title">
|
||||
<rect key="frame" x="31" y="34" width="258" height="40"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Account setup assistant"/>
|
||||
<fontDescription key="fontDescription" type="italicSystem" pointSize="20"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<color key="shadowColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<size key="shadowOffset" width="-1" height="-1"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="200" contentMode="left" text="Your account is created. Please check your mails in order to validate your account." textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="10" adjustsFontSizeToFit="NO" id="105" userLabel="label">
|
||||
<rect key="frame" x="40" y="80" width="240" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<textField hidden="YES" opaque="NO" clipsSubviews="YES" tag="101" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Password" adjustsFontSizeToFit="NO" minimumFontSize="10" background="field_background.png" id="106" userLabel="passwordField" customClass="UILinphoneTextField">
|
||||
<rect key="frame" x="32" y="185" width="255" height="31"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration">
|
||||
<bool key="isElement" value="NO"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" secureTextEntry="YES"/>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="-1" id="110"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<textField hidden="YES" opaque="NO" clipsSubviews="YES" tag="100" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="Username" adjustsFontSizeToFit="NO" minimumFontSize="10" background="field_background.png" id="104" userLabel="usernameField" customClass="UILinphoneTextField">
|
||||
<rect key="frame" x="32" y="140" width="255" height="31"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration">
|
||||
<bool key="isElement" value="NO"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no"/>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="-1" id="109"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="103" userLabel="checkValidationButton" customClass="UILinphoneButton">
|
||||
<rect key="frame" x="32" y="330" width="255" height="50"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Check validation"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="20"/>
|
||||
<state key="normal" title="Check validation" backgroundImage="button_background_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="button_background_over.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onCheckValidationClick:" destination="-1" eventType="touchUpInside" id="114"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="button_background_default.png" width="550" height="101"/>
|
||||
<image name="button_background_over.png" width="550" height="101"/>
|
||||
<image name="field_background.png" width="542" height="88"/>
|
||||
<image name="setup_welcome_logo.png" width="179" height="161"/>
|
||||
</resources>
|
||||
</document>
|
||||
|
|
@ -19,26 +19,28 @@
|
|||
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "ChatModel.h"
|
||||
#include "linphone/linphonecore.h"
|
||||
|
||||
@protocol ChatRoomDelegate <NSObject>
|
||||
|
||||
- (BOOL)chatRoomStartImageDownload:(NSURL*)url userInfo:(id)userInfo;
|
||||
- (BOOL)chatRoomStartImageUpload:(UIImage*)image url:(NSURL*)url;
|
||||
- (void)resendChat:(NSString*)message withExternalUrl:(NSString*)url;
|
||||
|
||||
@end
|
||||
|
||||
@interface ChatRoomTableViewController : UITableViewController {
|
||||
@private
|
||||
NSMutableArray *data;
|
||||
LinphoneChatRoom* chatRoom;
|
||||
MSList *messageList;
|
||||
}
|
||||
|
||||
@property (nonatomic, copy) NSString *remoteAddress;
|
||||
@property (nonatomic, retain) id<ChatRoomDelegate> chatRoomDelegate;
|
||||
|
||||
- (void)addChatEntry:(ChatModel*)chat;
|
||||
- (void)addChatEntry:(LinphoneChatMessage*)chat;
|
||||
- (void)scrollToBottom:(BOOL)animated;
|
||||
- (void)scrollToLastUnread:(BOOL)animated;
|
||||
- (void)updateChatEntry:(ChatModel*)chat;
|
||||
- (void)updateChatEntry:(LinphoneChatMessage*)chat;
|
||||
- (void)setChatRoom:(LinphoneChatRoom*)room;
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -27,14 +27,13 @@
|
|||
|
||||
@implementation ChatRoomTableViewController
|
||||
|
||||
@synthesize remoteAddress;
|
||||
@synthesize chatRoomDelegate;
|
||||
|
||||
#pragma mark - Lifecycle Functions
|
||||
|
||||
- (void)dealloc {
|
||||
[remoteAddress release];
|
||||
[chatRoomDelegate release];
|
||||
[self clearMessageList];
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
|
@ -44,80 +43,98 @@
|
|||
- (void)viewWillDisappear:(BOOL)animated {
|
||||
[super viewWillDisappear:animated];
|
||||
[TUNinePatchCache flushCache]; // Clear cache
|
||||
if(data != nil) {
|
||||
[data removeAllObjects];
|
||||
[data release];
|
||||
data = nil;
|
||||
}
|
||||
// [self clearMessageList];
|
||||
// chatRoom = NULL;
|
||||
}
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
[self loadData];
|
||||
[self reloadData];
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
|
||||
- (void)loadData {
|
||||
if(data != nil) {
|
||||
[data removeAllObjects];
|
||||
[data release];
|
||||
- (void)clearMessageList {
|
||||
if (messageList){
|
||||
ms_list_free_with_data(messageList, (void(*)(void*))linphone_chat_message_unref);
|
||||
messageList = nil;
|
||||
}
|
||||
data = [[ChatModel listMessages:remoteAddress] retain];
|
||||
[[self tableView] reloadData];
|
||||
}
|
||||
|
||||
- (void)updateData {
|
||||
if( !chatRoom ) return;
|
||||
[self clearMessageList];
|
||||
self->messageList = linphone_chat_room_get_history(chatRoom, 0);
|
||||
}
|
||||
|
||||
- (void)reloadData {
|
||||
[self updateData];
|
||||
[self.tableView reloadData];
|
||||
[self scrollToLastUnread:false];
|
||||
}
|
||||
|
||||
- (void)addChatEntry:(ChatModel*)chat {
|
||||
if(data == nil) {
|
||||
[LinphoneLogger logc:LinphoneLoggerWarning format:"Cannot add entry: null data"];
|
||||
return;
|
||||
}
|
||||
- (void)addChatEntry:(LinphoneChatMessage*)chat {
|
||||
|
||||
messageList = ms_list_append(messageList, chat);
|
||||
int pos = ms_list_size(messageList) - 1;
|
||||
|
||||
[self.tableView beginUpdates];
|
||||
int pos = [data count];
|
||||
[data insertObject:chat atIndex:pos];
|
||||
[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:pos inSection:0]] withRowAnimation:UITableViewRowAnimationFade];
|
||||
[self.tableView insertRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:pos inSection:0]] withRowAnimation:UITableViewRowAnimationFade];
|
||||
[self.tableView endUpdates];
|
||||
}
|
||||
|
||||
- (void)updateChatEntry:(ChatModel*)chat {
|
||||
if(data == nil) {
|
||||
[LinphoneLogger logc:LinphoneLoggerWarning format:"Cannot update entry: null data"];
|
||||
return;
|
||||
}
|
||||
NSInteger index = [data indexOfObject:chat];
|
||||
- (void)updateChatEntry:(LinphoneChatMessage*)chat {
|
||||
NSInteger index = ms_list_index(self->messageList, chat);
|
||||
if (index<0) {
|
||||
[LinphoneLogger logc:LinphoneLoggerWarning format:"chat entries diesn not exixt"];
|
||||
[LinphoneLogger logc:LinphoneLoggerWarning format:"chat entry doesn't exist"];
|
||||
return;
|
||||
}
|
||||
[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:index inSection:0]] withRowAnimation:FALSE];; //just reload
|
||||
[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:index inSection:0]] withRowAnimation:FALSE]; //just reload
|
||||
return;
|
||||
}
|
||||
|
||||
- (void)scrollToBottom:(BOOL)animated {
|
||||
[self.tableView reloadData];
|
||||
[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:([data count] - 1) inSection:0]
|
||||
atScrollPosition:UITableViewScrollPositionBottom
|
||||
animated:YES];
|
||||
int count = ms_list_size(messageList);
|
||||
if( count ){
|
||||
[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:(count - 1) inSection:0]
|
||||
atScrollPosition:UITableViewScrollPositionBottom
|
||||
animated:YES];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)debugMessages {
|
||||
if( !messageList ){
|
||||
NSLog(@"No data to debug");
|
||||
return;
|
||||
}
|
||||
MSList*item = self->messageList;
|
||||
int count = 0;
|
||||
while (item) {
|
||||
LinphoneChatMessage* msg = (LinphoneChatMessage*)item->data;
|
||||
NSLog(@"Message %d: %s", count++, linphone_chat_message_get_text(msg));
|
||||
item = item->next;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)scrollToLastUnread:(BOOL)animated {
|
||||
if(data == nil) {
|
||||
[LinphoneLogger logc:LinphoneLoggerWarning format:"Cannot add entry: null data"];
|
||||
if(messageList == nil || chatRoom == nil) {
|
||||
return;
|
||||
}
|
||||
|
||||
int index = -1;
|
||||
int count = ms_list_size(messageList);
|
||||
// Find first unread & set all entry read
|
||||
for(int i = 0; i <[data count]; ++i) {
|
||||
ChatModel *chat = [data objectAtIndex:i];
|
||||
if([[chat read] intValue] == 0) {
|
||||
[chat setRead:[NSNumber numberWithInt:1]];
|
||||
for(int i = 0; i <count; ++i) {
|
||||
int read = linphone_chat_message_is_read(ms_list_nth_data(messageList, i));
|
||||
if(read == 0) {
|
||||
if(index == -1)
|
||||
index = i;
|
||||
}
|
||||
}
|
||||
if(index == -1) {
|
||||
index = [data count] - 1;
|
||||
index = count - 1;
|
||||
}
|
||||
|
||||
linphone_chat_room_mark_as_read(chatRoom);
|
||||
|
||||
// Scroll to unread
|
||||
if(index >= 0) {
|
||||
|
|
@ -130,15 +147,11 @@
|
|||
|
||||
#pragma mark - Property Functions
|
||||
|
||||
- (void)setRemoteAddress:(NSString *)aremoteAddress {
|
||||
if(remoteAddress != nil) {
|
||||
[remoteAddress release];
|
||||
}
|
||||
self->remoteAddress = [aremoteAddress copy];
|
||||
[self loadData];
|
||||
- (void)setChatRoom:(LinphoneChatRoom*)room {
|
||||
chatRoom = room;
|
||||
[self reloadData];
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - UITableViewDataSource Functions
|
||||
|
||||
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
|
||||
|
|
@ -146,7 +159,7 @@
|
|||
}
|
||||
|
||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
||||
return [data count];
|
||||
return ms_list_size(self->messageList);
|
||||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
|
|
@ -155,8 +168,9 @@
|
|||
if (cell == nil) {
|
||||
cell = [[[UIChatRoomCell alloc] initWithIdentifier:kCellId] autorelease];
|
||||
}
|
||||
|
||||
[cell setChat:[data objectAtIndex:[indexPath row]]];
|
||||
|
||||
LinphoneChatMessage* chat = ms_list_nth_data(self->messageList, [indexPath row]);
|
||||
[cell setChatMessage:chat];
|
||||
[cell setChatRoomDelegate:chatRoomDelegate];
|
||||
return cell;
|
||||
}
|
||||
|
|
@ -167,11 +181,16 @@
|
|||
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
if(editingStyle == UITableViewCellEditingStyleDelete) {
|
||||
[tableView beginUpdates];
|
||||
ChatModel *chat = [data objectAtIndex:[indexPath row]];
|
||||
[data removeObjectAtIndex:[indexPath row]];
|
||||
[chat delete];
|
||||
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
|
||||
LinphoneChatMessage *chat = ms_list_nth_data(self->messageList, [indexPath row]);
|
||||
if( chat ){
|
||||
|
||||
linphone_chat_room_delete_message(chatRoom, chat);
|
||||
messageList = ms_list_remove(messageList, chat);
|
||||
|
||||
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationBottom];
|
||||
}
|
||||
[tableView endUpdates];
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -184,8 +203,8 @@
|
|||
}
|
||||
|
||||
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
ChatModel *chat = [data objectAtIndex:[indexPath row]];
|
||||
return [UIChatRoomCell height:chat width:[self.view frame].size.width];
|
||||
LinphoneChatMessage* message = ms_list_nth_data(self->messageList, [indexPath row]);
|
||||
return [UIChatRoomCell height:message width:[self.view frame].size.width];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -23,18 +23,18 @@
|
|||
#import "UICompositeViewController.h"
|
||||
#import "ChatRoomTableViewController.h"
|
||||
#import "HPGrowingTextView.h"
|
||||
#import "ChatModel.h"
|
||||
#import "ImagePickerViewController.h"
|
||||
#import "ImageSharing.h"
|
||||
#import "OrderedDictionary.h"
|
||||
|
||||
#include "linphonecore.h"
|
||||
#include "linphone/linphonecore.h"
|
||||
|
||||
@interface ChatRoomViewController : UIViewController<HPGrowingTextViewDelegate, UICompositeViewDelegate, ImagePickerDelegate, ImageSharingDelegate, ChatRoomDelegate> {
|
||||
LinphoneChatRoom *chatRoom;
|
||||
ImageSharing *imageSharing;
|
||||
OrderedDictionary *imageQualities;
|
||||
BOOL scrollOnGrowingEnabled;
|
||||
BOOL composingVisible;
|
||||
}
|
||||
|
||||
@property (nonatomic, retain) IBOutlet ChatRoomTableViewController* tableController;
|
||||
|
|
@ -49,8 +49,9 @@
|
|||
@property (nonatomic, retain) IBOutlet UIImageView *messageBackgroundImage;
|
||||
@property (nonatomic, retain) IBOutlet UIImageView *transferBackgroundImage;
|
||||
@property (nonatomic, retain) IBOutlet UITapGestureRecognizer *listTapGestureRecognizer;
|
||||
@property (retain, nonatomic) IBOutlet UILabel *composeLabel;
|
||||
@property (retain, nonatomic) IBOutlet UIView *composeIndicatorView;
|
||||
|
||||
@property (nonatomic, copy) NSString *remoteAddress;
|
||||
@property (nonatomic, retain) IBOutlet UIButton* pictureButton;
|
||||
@property (nonatomic, retain) IBOutlet UIButton* cancelTransferButton;
|
||||
@property (nonatomic, retain) IBOutlet UIProgressView* imageTransferProgressBar;
|
||||
|
|
@ -65,4 +66,6 @@
|
|||
- (IBAction)onTransferCancelClick:(id)event;
|
||||
- (IBAction)onListTap:(id)sender;
|
||||
|
||||
- (void)setChatRoom:(LinphoneChatRoom*)room;
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -32,8 +32,9 @@
|
|||
@synthesize sendButton;
|
||||
@synthesize messageField;
|
||||
@synthesize editButton;
|
||||
@synthesize remoteAddress;
|
||||
@synthesize addressLabel;
|
||||
@synthesize composeLabel;
|
||||
@synthesize composeIndicatorView;
|
||||
@synthesize avatarImage;
|
||||
@synthesize headerView;
|
||||
@synthesize chatView;
|
||||
|
|
@ -60,6 +61,7 @@
|
|||
[NSNumber numberWithFloat:0.9], NSLocalizedString(@"Maximum", nil),
|
||||
[NSNumber numberWithFloat:0.5], NSLocalizedString(@"Average", nil),
|
||||
[NSNumber numberWithFloat:0.0], NSLocalizedString(@"Minimum", nil), nil];
|
||||
self->composingVisible = TRUE;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
|
@ -70,7 +72,6 @@
|
|||
[messageField release];
|
||||
[sendButton release];
|
||||
[editButton release];
|
||||
[remoteAddress release];
|
||||
[addressLabel release];
|
||||
[avatarImage release];
|
||||
[headerView release];
|
||||
|
|
@ -88,6 +89,8 @@
|
|||
[imageQualities release];
|
||||
[waitView release];
|
||||
|
||||
[composeLabel release];
|
||||
[composeIndicatorView release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
|
|
@ -163,7 +166,10 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
selector:@selector(onMessageChange:)
|
||||
name:UITextViewTextDidChangeNotification
|
||||
object:nil];
|
||||
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||
selector:@selector(textComposeEvent:)
|
||||
name:kLinphoneTextComposeEvent
|
||||
object:nil];
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||
selector:@selector(coreUpdateEvent:)
|
||||
name:kLinphoneCoreUpdate
|
||||
|
|
@ -172,7 +178,7 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
[tableController setEditing:FALSE animated:FALSE];
|
||||
[editButton setOff];
|
||||
[[tableController tableView] reloadData];
|
||||
|
||||
|
||||
[messageBackgroundImage setImage:[TUNinePatchCache imageOfSize:[messageBackgroundImage bounds].size
|
||||
forNinePatchNamed:@"chat_message_background"]];
|
||||
|
||||
|
|
@ -190,11 +196,9 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
}
|
||||
|
||||
[messageField resignFirstResponder];
|
||||
|
||||
if(chatRoom != NULL) {
|
||||
linphone_chat_room_destroy(chatRoom);
|
||||
chatRoom = NULL;
|
||||
}
|
||||
|
||||
[self setComposingVisible:FALSE withDelay:0]; // will hide the "user is composing.." message
|
||||
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:self
|
||||
name:UIApplicationDidBecomeActiveNotification
|
||||
object:nil];
|
||||
|
|
@ -214,12 +218,16 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
[[NSNotificationCenter defaultCenter] removeObserver:self
|
||||
name:kLinphoneCoreUpdate
|
||||
object:nil];
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:self
|
||||
name:kLinphoneTextComposeEvent
|
||||
object:nil];
|
||||
}
|
||||
|
||||
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
|
||||
[super didRotateFromInterfaceOrientation:fromInterfaceOrientation];
|
||||
[messageBackgroundImage setImage:[TUNinePatchCache imageOfSize:[messageBackgroundImage bounds].size
|
||||
forNinePatchNamed:@"chat_message_background"]];
|
||||
[tableController scrollToBottom:true];
|
||||
}
|
||||
|
||||
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
|
||||
|
|
@ -234,46 +242,32 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
|
||||
#pragma mark -
|
||||
|
||||
- (void)setRemoteAddress:(NSString*)aRemoteAddress {
|
||||
if(remoteAddress != nil) {
|
||||
[remoteAddress release];
|
||||
}
|
||||
if ([aRemoteAddress hasPrefix:@"sip:"]) {
|
||||
remoteAddress = [aRemoteAddress copy];
|
||||
} else {
|
||||
char normalizedUserName[256];
|
||||
LinphoneCore *lc = [LinphoneManager getLc];
|
||||
LinphoneProxyConfig* proxyCfg;
|
||||
linphone_core_get_default_proxy(lc,&proxyCfg);
|
||||
LinphoneAddress* linphoneAddress = linphone_address_new(linphone_core_get_identity(lc));
|
||||
linphone_proxy_config_normalize_number(proxyCfg, [aRemoteAddress cStringUsingEncoding:[NSString defaultCStringEncoding]], normalizedUserName, sizeof(normalizedUserName));
|
||||
linphone_address_set_username(linphoneAddress, normalizedUserName);
|
||||
remoteAddress = [[NSString stringWithUTF8String:linphone_address_as_string_uri_only(linphoneAddress)] copy];
|
||||
linphone_address_destroy(linphoneAddress);
|
||||
}
|
||||
- (void)setChatRoom:(LinphoneChatRoom *)room {
|
||||
self->chatRoom = room;
|
||||
[messageField setText:@""];
|
||||
[tableController setChatRoom:room];
|
||||
[self update];
|
||||
[tableController setRemoteAddress: remoteAddress];
|
||||
[ChatModel readConversation:remoteAddress];
|
||||
linphone_chat_room_mark_as_read(chatRoom);
|
||||
[self setComposingVisible:linphone_chat_room_is_remote_composing(chatRoom) withDelay:0];
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:kLinphoneTextReceived object:self];
|
||||
}
|
||||
|
||||
- (void)applicationWillEnterForeground:(NSNotification*)notif {
|
||||
if(remoteAddress != nil) {
|
||||
[ChatModel readConversation:remoteAddress];
|
||||
if(chatRoom != nil) {
|
||||
linphone_chat_room_mark_as_read(chatRoom);
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:kLinphoneTextReceived object:self];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)update {
|
||||
if(remoteAddress == NULL) {
|
||||
if(chatRoom == NULL) {
|
||||
[LinphoneLogger logc:LinphoneLoggerWarning format:"Cannot update chat room header: null contact"];
|
||||
return;
|
||||
}
|
||||
|
||||
NSString *displayName = nil;
|
||||
UIImage *image = nil;
|
||||
LinphoneAddress* linphoneAddress = linphone_core_interpret_url([LinphoneManager getLc], [remoteAddress UTF8String]);
|
||||
const LinphoneAddress* linphoneAddress = linphone_chat_room_get_peer_address(chatRoom);
|
||||
if (linphoneAddress == NULL) {
|
||||
[[PhoneMainView instance] popCurrentView];
|
||||
UIAlertView* error = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Invalid SIP address",nil)
|
||||
|
|
@ -294,8 +288,6 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
displayName = [FastAddressBook getContactDisplayName:acontact];
|
||||
image = [FastAddressBook getContactImage:acontact thumbnail:true];
|
||||
}
|
||||
[remoteAddress release];
|
||||
remoteAddress = [normalizedSipAddress retain];
|
||||
|
||||
// Display name
|
||||
if(displayName == nil) {
|
||||
|
|
@ -309,61 +301,40 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
}
|
||||
[avatarImage setImage:image];
|
||||
|
||||
linphone_address_destroy(linphoneAddress);
|
||||
}
|
||||
|
||||
static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState state,void* ud) {
|
||||
ChatRoomViewController* thiz = (ChatRoomViewController*)ud;
|
||||
ChatModel *chat = (ChatModel *)linphone_chat_message_get_user_data(msg);
|
||||
const char*text = linphone_chat_message_get_text(msg);
|
||||
[LinphoneLogger log:LinphoneLoggerLog
|
||||
format:@"Delivery status for [%@] is [%s]",(chat.message?chat.message:@""),linphone_chat_message_state_to_string(state)];
|
||||
[chat setState:[NSNumber numberWithInt:state]];
|
||||
[chat update];
|
||||
[thiz.tableController updateChatEntry:chat];
|
||||
if (state != LinphoneChatMessageStateInProgress) {
|
||||
linphone_chat_message_set_user_data(msg, NULL);
|
||||
[chat release]; // no longuer need to keep reference
|
||||
}
|
||||
|
||||
format:@"Delivery status for [%s] is [%s]",text,linphone_chat_message_state_to_string(state)];
|
||||
[thiz.tableController updateChatEntry:msg];
|
||||
}
|
||||
|
||||
- (BOOL)sendMessage:(NSString *)message withExterlBodyUrl:(NSURL*)externalUrl withInternalUrl:(NSURL*)internalUrl {
|
||||
- (BOOL)sendMessage:(NSString *)message withExterlBodyUrl:(NSURL*)externalUrl withInternalURL:(NSURL*)internalUrl {
|
||||
if(![LinphoneManager isLcReady]) {
|
||||
[LinphoneLogger logc:LinphoneLoggerWarning format:"Cannot send message: Linphone core not ready"];
|
||||
return FALSE;
|
||||
}
|
||||
if(remoteAddress == nil) {
|
||||
[LinphoneLogger logc:LinphoneLoggerWarning format:"Cannot send message: Null remoteAddress"];
|
||||
if(chatRoom == NULL) {
|
||||
[LinphoneLogger logc:LinphoneLoggerWarning format:"Cannot send message: No chatroom"];
|
||||
return FALSE;
|
||||
}
|
||||
if(chatRoom == NULL) {
|
||||
chatRoom = linphone_core_create_chat_room([LinphoneManager getLc], [remoteAddress UTF8String]);
|
||||
}
|
||||
|
||||
// Save message in database
|
||||
ChatModel *chat = [[ChatModel alloc] init];
|
||||
[chat setRemoteContact:remoteAddress];
|
||||
[chat setLocalContact:@""];
|
||||
if(internalUrl == nil) {
|
||||
[chat setMessage:message];
|
||||
} else {
|
||||
[chat setMessage:[internalUrl absoluteString]];
|
||||
}
|
||||
[chat setDirection:[NSNumber numberWithInt:0]];
|
||||
[chat setTime:[NSDate date]];
|
||||
[chat setRead:[NSNumber numberWithInt:1]];
|
||||
[chat setState:[NSNumber numberWithInt:1]]; //INPROGRESS
|
||||
[chat create];
|
||||
[tableController addChatEntry:chat];
|
||||
[tableController scrollToBottom:true];
|
||||
[chat release];
|
||||
|
||||
LinphoneChatMessage* msg = linphone_chat_room_create_message(chatRoom, [message UTF8String]);
|
||||
linphone_chat_message_set_user_data(msg, [chat retain]);
|
||||
if(externalUrl) {
|
||||
linphone_chat_message_set_external_body_url(msg, [[externalUrl absoluteString] UTF8String]);
|
||||
}
|
||||
|
||||
linphone_chat_room_send_message2(chatRoom, msg, message_status, self);
|
||||
|
||||
if ( internalUrl ) {
|
||||
// internal url is saved in the appdata for display and later save
|
||||
[LinphoneManager setValueInMessageAppData:[internalUrl absoluteString] forKey:@"localimage" inMessage:msg];
|
||||
}
|
||||
|
||||
[tableController addChatEntry:linphone_chat_message_ref(msg)];
|
||||
[tableController scrollToBottom:true];
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
@ -371,28 +342,28 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta
|
|||
if(url == nil) {
|
||||
[waitView setHidden:FALSE];
|
||||
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
||||
[[LinphoneManager instance].photoLibrary writeImageToSavedPhotosAlbum:image.CGImage
|
||||
orientation:(ALAssetOrientation)[image imageOrientation]
|
||||
completionBlock:^(NSURL *assetURL, NSError *error){
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[waitView setHidden:TRUE];
|
||||
if (error) {
|
||||
[LinphoneLogger log:LinphoneLoggerError format:@"Cannot save image data downloaded [%@]", [error localizedDescription]];
|
||||
|
||||
UIAlertView* errorAlert = [UIAlertView alloc];
|
||||
[errorAlert initWithTitle:NSLocalizedString(@"Transfer error", nil)
|
||||
message:NSLocalizedString(@"Cannot write image to photo library", nil)
|
||||
delegate:nil
|
||||
cancelButtonTitle:NSLocalizedString(@"Ok",nil)
|
||||
otherButtonTitles:nil ,nil];
|
||||
[errorAlert show];
|
||||
[errorAlert release];
|
||||
return;
|
||||
}
|
||||
[LinphoneLogger log:LinphoneLoggerLog format:@"Image saved to [%@]", [assetURL absoluteString]];
|
||||
[self chatRoomStartImageUpload:image url:assetURL];
|
||||
});
|
||||
}];
|
||||
[[LinphoneManager instance].photoLibrary
|
||||
writeImageToSavedPhotosAlbum:image.CGImage
|
||||
orientation:(ALAssetOrientation)[image imageOrientation]
|
||||
completionBlock:^(NSURL *assetURL, NSError *error){
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[waitView setHidden:TRUE];
|
||||
if (error) {
|
||||
[LinphoneLogger log:LinphoneLoggerError format:@"Cannot save image data downloaded [%@]", [error localizedDescription]];
|
||||
|
||||
UIAlertView* errorAlert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Transfer error", nil)
|
||||
message:NSLocalizedString(@"Cannot write image to photo library", nil)
|
||||
delegate:nil
|
||||
cancelButtonTitle:NSLocalizedString(@"Ok",nil)
|
||||
otherButtonTitles:nil ,nil];
|
||||
[errorAlert show];
|
||||
[errorAlert release];
|
||||
return;
|
||||
}
|
||||
[LinphoneLogger log:LinphoneLoggerLog format:@"Image saved to [%@]", [assetURL absoluteString]];
|
||||
[self chatRoomStartImageUpload:image url:assetURL];
|
||||
});
|
||||
}];
|
||||
});
|
||||
} else {
|
||||
[self chatRoomStartImageUpload:image url:url];
|
||||
|
|
@ -401,7 +372,7 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta
|
|||
|
||||
- (void)chooseImageQuality:(UIImage*)image url:(NSURL*)url {
|
||||
[waitView setHidden:FALSE];
|
||||
|
||||
|
||||
DTActionSheet *sheet = [[DTActionSheet alloc] initWithTitle:NSLocalizedString(@"Choose the image size", nil)];
|
||||
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
||||
//UIImage *image = [original_image normalizedImage];
|
||||
|
|
@ -409,7 +380,7 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta
|
|||
NSNumber *number = [imageQualities objectForKey:key];
|
||||
NSData *data = UIImageJPEGRepresentation(image, [number floatValue]);
|
||||
NSNumber *size = [NSNumber numberWithInteger:[data length]];
|
||||
|
||||
|
||||
NSString *text = [NSString stringWithFormat:@"%@ (%@)", key, [size toHumanReadableSize]];
|
||||
[sheet addButtonWithTitle:text block:^(){
|
||||
[self saveAndSend:[UIImage imageWithData:data] url:url];
|
||||
|
|
@ -423,6 +394,36 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta
|
|||
});
|
||||
}
|
||||
|
||||
- (void)setComposingVisible:(BOOL)visible withDelay:(CGFloat)delay {
|
||||
|
||||
if( composingVisible == visible ) return;
|
||||
|
||||
CGRect keyboardFrame = [self.messageView frame];
|
||||
CGRect newComposingFrame = [self.composeIndicatorView frame];
|
||||
CGRect newTableFrame = [self.tableController.tableView frame];
|
||||
|
||||
if( visible ){
|
||||
[composeLabel setText:[NSString stringWithFormat:NSLocalizedString(@"%@ is composing...", @""), [addressLabel text]]];
|
||||
// pull up the composing frame and shrink the table view
|
||||
|
||||
newTableFrame.size.height -= newComposingFrame.size.height;
|
||||
newComposingFrame.origin.y = keyboardFrame.origin.y - newComposingFrame.size.height;
|
||||
} else {
|
||||
// pull down the composing frame and widen the tableview
|
||||
newTableFrame.size.height += newComposingFrame.size.height;
|
||||
newComposingFrame.origin.y = keyboardFrame.origin.y;
|
||||
}
|
||||
[UIView animateWithDuration:delay
|
||||
animations:^{
|
||||
self.tableController.tableView.frame = newTableFrame;
|
||||
self.composeIndicatorView.frame = newComposingFrame;
|
||||
}
|
||||
completion:^(BOOL finished) {
|
||||
composingVisible = visible;
|
||||
[self.tableController scrollToBottom:TRUE];
|
||||
}];
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - Event Functions
|
||||
|
||||
|
|
@ -433,31 +434,40 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta
|
|||
}
|
||||
|
||||
- (void)textReceivedEvent:(NSNotification *)notif {
|
||||
//LinphoneChatRoom *room = [[[notif userInfo] objectForKey:@"room"] pointerValue];
|
||||
//NSString *message = [[notif userInfo] objectForKey:@"message"];
|
||||
LinphoneAddress *from = [[[notif userInfo] objectForKey:@"from"] pointerValue];
|
||||
|
||||
ChatModel *chat = [[notif userInfo] objectForKey:@"chat"];
|
||||
LinphoneAddress * from = [[[notif userInfo] objectForKey:@"from_address"] pointerValue];
|
||||
LinphoneChatRoom* room = [[notif.userInfo objectForKey:@"room"] pointerValue];
|
||||
LinphoneChatMessage* chat = [[notif.userInfo objectForKey:@"message"] pointerValue];
|
||||
|
||||
if(from == NULL || chat == NULL) {
|
||||
return;
|
||||
}
|
||||
char *fromStr = linphone_address_as_string_uri_only(from);
|
||||
if(fromStr != NULL) {
|
||||
if([[NSString stringWithUTF8String:fromStr]
|
||||
caseInsensitiveCompare:remoteAddress] == NSOrderedSame) {
|
||||
const LinphoneAddress* cr_from = linphone_chat_room_get_peer_address(chatRoom);
|
||||
char* cr_from_string = linphone_address_as_string_uri_only(cr_from);
|
||||
|
||||
if(fromStr && cr_from_string ) {
|
||||
|
||||
if(strcasecmp(cr_from_string, fromStr) == 0) {
|
||||
if (![[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)]
|
||||
|| [UIApplication sharedApplication].applicationState == UIApplicationStateActive) {
|
||||
[chat setRead:[NSNumber numberWithInt:1]];
|
||||
[chat update];
|
||||
linphone_chat_room_mark_as_read(room);
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:kLinphoneTextReceived object:self];
|
||||
}
|
||||
[tableController addChatEntry:chat];
|
||||
[tableController scrollToLastUnread:TRUE];
|
||||
}
|
||||
ms_free(fromStr);
|
||||
}
|
||||
ms_free(fromStr);
|
||||
ms_free(cr_from_string);
|
||||
}
|
||||
|
||||
- (void)textComposeEvent:(NSNotification*)notif {
|
||||
LinphoneChatRoom* room = [[[notif userInfo] objectForKey:@"room"] pointerValue];
|
||||
if( room && room == chatRoom ){
|
||||
BOOL composing = linphone_chat_room_is_remote_composing(room);
|
||||
[self setComposingVisible:composing withDelay:0.3];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - UITextFieldDelegate Functions
|
||||
|
||||
|
|
@ -475,6 +485,11 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
- (void)growingTextChanged:(HPGrowingTextView *)growingTextView text:(NSString *)text {
|
||||
if( [text length] > 0 && chatRoom )
|
||||
linphone_chat_room_compose(chatRoom);
|
||||
}
|
||||
|
||||
- (void)growingTextView:(HPGrowingTextView *)growingTextView willChangeHeight:(float)height {
|
||||
int diff = height - growingTextView.bounds.size.height;
|
||||
|
||||
|
|
@ -500,6 +515,12 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta
|
|||
|
||||
[messageBackgroundImage setImage:[TUNinePatchCache imageOfSize:[messageBackgroundImage bounds].size
|
||||
forNinePatchNamed:@"chat_message_background"]];
|
||||
// if we're showing the compose message, update it position
|
||||
if ( ![composeLabel isHidden] ) {
|
||||
CGRect frame = [composeLabel frame];
|
||||
frame.origin.y -= diff;
|
||||
[composeLabel setFrame:frame];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -507,6 +528,7 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta
|
|||
#pragma mark - Action Functions
|
||||
|
||||
- (IBAction)onBackClick:(id)event {
|
||||
[self.tableController setChatRoom:NULL];
|
||||
[[PhoneMainView instance] popCurrentView];
|
||||
}
|
||||
|
||||
|
|
@ -516,7 +538,7 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta
|
|||
}
|
||||
|
||||
- (IBAction)onSendClick:(id)event {
|
||||
if([self sendMessage:[messageField text] withExterlBodyUrl:nil withInternalUrl:nil]) {
|
||||
if([self sendMessage:[messageField text] withExterlBodyUrl:nil withInternalURL:nil]) {
|
||||
scrollOnGrowingEnabled = FALSE;
|
||||
[messageField setText:@""];
|
||||
scrollOnGrowingEnabled = TRUE;
|
||||
|
|
@ -593,7 +615,7 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta
|
|||
|
||||
- (BOOL)chatRoomStartImageDownload:(NSURL*)url userInfo:(id)userInfo {
|
||||
if(imageSharing == nil) {
|
||||
imageSharing = [ImageSharing imageSharingDownload:url delegate:self userInfo:userInfo];
|
||||
imageSharing = [ImageSharing newImageSharingDownload:url delegate:self userInfo:userInfo];
|
||||
[messageView setHidden:TRUE];
|
||||
[transferView setHidden:FALSE];
|
||||
return TRUE;
|
||||
|
|
@ -604,7 +626,7 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta
|
|||
- (BOOL)chatRoomStartImageUpload:(UIImage*)image url:(NSURL*)url{
|
||||
if(imageSharing == nil) {
|
||||
NSString *urlString = [[LinphoneManager instance] lpConfigStringForKey:@"sharing_server_preference"];
|
||||
imageSharing = [ImageSharing imageSharingUpload:[NSURL URLWithString:urlString] image:image delegate:self userInfo:url];
|
||||
imageSharing = [ImageSharing newImageSharingUpload:[NSURL URLWithString:urlString] image:image delegate:self userInfo:url];
|
||||
[messageView setHidden:TRUE];
|
||||
[transferView setHidden:FALSE];
|
||||
return TRUE;
|
||||
|
|
@ -612,6 +634,9 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
- (void)resendChat:(NSString *)message withExternalUrl:(NSString *)url {
|
||||
[self sendMessage:message withExterlBodyUrl:[NSURL URLWithString:url] withInternalURL:nil];
|
||||
}
|
||||
|
||||
#pragma mark ImageSharingDelegate
|
||||
|
||||
|
|
@ -622,7 +647,8 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta
|
|||
- (void)imageSharingAborted:(ImageSharing*)aimageSharing {
|
||||
[messageView setHidden:FALSE];
|
||||
[transferView setHidden:TRUE];
|
||||
imageSharing = NULL;
|
||||
[imageSharing release];
|
||||
imageSharing = nil;
|
||||
}
|
||||
|
||||
- (void)imageSharingError:(ImageSharing*)aimageSharing error:(NSError *)error {
|
||||
|
|
@ -631,65 +657,59 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta
|
|||
NSString *url = [aimageSharing.connection.currentRequest.URL absoluteString];
|
||||
if (aimageSharing.upload) {
|
||||
[LinphoneLogger log:LinphoneLoggerError format:@"Cannot upload file to server [%@] because [%@]", url, [error localizedDescription]];
|
||||
UIAlertView* errorAlert = [UIAlertView alloc];
|
||||
[errorAlert initWithTitle:NSLocalizedString(@"Transfer error", nil)
|
||||
message:NSLocalizedString(@"Cannot transfer file to remote contact", nil)
|
||||
delegate:nil
|
||||
cancelButtonTitle:NSLocalizedString(@"Ok",nil)
|
||||
otherButtonTitles:nil ,nil];
|
||||
UIAlertView* errorAlert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Transfer error", nil)
|
||||
message:NSLocalizedString(@"Cannot transfer file to remote contact", nil)
|
||||
delegate:nil
|
||||
cancelButtonTitle:NSLocalizedString(@"Ok",nil)
|
||||
otherButtonTitles:nil ,nil];
|
||||
[errorAlert show];
|
||||
[errorAlert release];
|
||||
} else {
|
||||
[LinphoneLogger log:LinphoneLoggerError format:@"Cannot dowanlod file from [%@] because [%@]", url, [error localizedDescription]];
|
||||
UIAlertView* errorAlert = [UIAlertView alloc];
|
||||
[errorAlert initWithTitle:NSLocalizedString(@"Transfer error", nil)
|
||||
message:NSLocalizedString(@"Cannot transfer file from remote contact", nil)
|
||||
delegate:nil
|
||||
cancelButtonTitle:NSLocalizedString(@"Continue", nil)
|
||||
otherButtonTitles:nil, nil];
|
||||
[LinphoneLogger log:LinphoneLoggerError format:@"Cannot download file from [%@] because [%@]", url, [error localizedDescription]];
|
||||
UIAlertView* errorAlert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Transfer error", nil)
|
||||
message:NSLocalizedString(@"Cannot transfer file from remote contact", nil)
|
||||
delegate:nil
|
||||
cancelButtonTitle:NSLocalizedString(@"Continue", nil)
|
||||
otherButtonTitles:nil, nil];
|
||||
[errorAlert show];
|
||||
[errorAlert release];
|
||||
}
|
||||
imageSharing = NULL;
|
||||
imageSharing = nil;
|
||||
}
|
||||
|
||||
- (void)imageSharingUploadDone:(ImageSharing*)aimageSharing url:(NSURL*)url{
|
||||
NSURL *imageURL = [aimageSharing userInfo];
|
||||
|
||||
[self sendMessage:nil withExterlBodyUrl:url withInternalUrl:imageURL];
|
||||
[self sendMessage:nil withExterlBodyUrl:url withInternalURL:[aimageSharing userInfo] ];
|
||||
|
||||
[messageView setHidden:FALSE];
|
||||
[transferView setHidden:TRUE];
|
||||
imageSharing = NULL;
|
||||
imageSharing = nil;
|
||||
}
|
||||
|
||||
- (void)imageSharingDownloadDone:(ImageSharing*)aimageSharing image:(UIImage *)image {
|
||||
[messageView setHidden:FALSE];
|
||||
[transferView setHidden:TRUE];
|
||||
|
||||
ChatModel *chat = (ChatModel *)[imageSharing userInfo];
|
||||
__block LinphoneChatMessage *chat = (LinphoneChatMessage *)[(NSValue*)[imageSharing userInfo] pointerValue];
|
||||
[[LinphoneManager instance].photoLibrary writeImageToSavedPhotosAlbum:image.CGImage
|
||||
orientation:(ALAssetOrientation)[image imageOrientation]
|
||||
completionBlock:^(NSURL *assetURL, NSError *error){
|
||||
if (error) {
|
||||
[LinphoneLogger log:LinphoneLoggerError format:@"Cannot save image data downloaded [%@]", [error localizedDescription]];
|
||||
|
||||
UIAlertView* errorAlert = [UIAlertView alloc];
|
||||
[errorAlert initWithTitle:NSLocalizedString(@"Transfer error", nil)
|
||||
message:NSLocalizedString(@"Cannot write image to photo library", nil)
|
||||
delegate:nil
|
||||
cancelButtonTitle:NSLocalizedString(@"Ok",nil)
|
||||
otherButtonTitles:nil ,nil];
|
||||
|
||||
UIAlertView* errorAlert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Transfer error", nil)
|
||||
message:NSLocalizedString(@"Cannot write image to photo library", nil)
|
||||
delegate:nil
|
||||
cancelButtonTitle:NSLocalizedString(@"Ok",nil)
|
||||
otherButtonTitles:nil ,nil];
|
||||
[errorAlert show];
|
||||
[errorAlert release];
|
||||
return;
|
||||
}
|
||||
[LinphoneLogger log:LinphoneLoggerLog format:@"Image saved to [%@]", [assetURL absoluteString]];
|
||||
[chat setMessage:[assetURL absoluteString]];
|
||||
[chat update];
|
||||
[LinphoneManager setValueInMessageAppData:[assetURL absoluteString] forKey:@"localimage" inMessage:chat];
|
||||
[tableController updateChatEntry:chat];
|
||||
}];
|
||||
imageSharing = NULL;
|
||||
imageSharing = nil;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -721,6 +741,7 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta
|
|||
[UIView setAnimationDuration:duration];
|
||||
[UIView setAnimationCurve:curve];
|
||||
[UIView setAnimationBeginsFromCurrentState:TRUE];
|
||||
CGFloat composeIndicatorCompensation = composingVisible ? composeIndicatorView.frame.size.height : 0.0f;
|
||||
|
||||
// Resize chat view
|
||||
{
|
||||
|
|
@ -742,7 +763,7 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta
|
|||
CGRect tableFrame = [tableController.view frame];
|
||||
tableFrame.origin.y = [headerView frame].origin.y + [headerView frame].size.height;
|
||||
double diff = tableFrame.size.height;
|
||||
tableFrame.size.height = [messageView frame].origin.y - tableFrame.origin.y;
|
||||
tableFrame.size.height = [messageView frame].origin.y - tableFrame.origin.y - composeIndicatorCompensation;
|
||||
diff = tableFrame.size.height - diff;
|
||||
[tableController.view setFrame:tableFrame];
|
||||
|
||||
|
|
@ -762,6 +783,8 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta
|
|||
CGRect endFrame = [[[notif userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
|
||||
UIViewAnimationCurve curve = [[[notif userInfo] objectForKey:UIKeyboardAnimationCurveUserInfoKey] intValue];
|
||||
NSTimeInterval duration = [[[notif userInfo] objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue];
|
||||
CGFloat composeIndicatorCompensation = composingVisible ? composeIndicatorView.frame.size.height : 0.0f;
|
||||
|
||||
[UIView beginAnimations:@"resize" context:nil];
|
||||
[UIView setAnimationDuration:duration];
|
||||
[UIView setAnimationCurve:curve];
|
||||
|
|
@ -798,7 +821,7 @@ static void message_status(LinphoneChatMessage* msg,LinphoneChatMessageState sta
|
|||
{
|
||||
CGRect tableFrame = [tableController.view frame];
|
||||
tableFrame.origin.y = [headerView frame].origin.y + [headerView frame].size.height;
|
||||
tableFrame.size.height = [messageView frame].origin.y - tableFrame.origin.y;
|
||||
tableFrame.size.height = [messageView frame].origin.y - tableFrame.origin.y - composeIndicatorCompensation;
|
||||
[tableController.view setFrame:tableFrame];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -18,12 +18,10 @@
|
|||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#include "linphone/linphonecore.h"
|
||||
|
||||
@interface ChatTableViewController : UITableViewController {
|
||||
@private
|
||||
NSMutableArray *data;
|
||||
}
|
||||
|
||||
- (void)loadData;
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -20,20 +20,21 @@
|
|||
#import "ChatTableViewController.h"
|
||||
#import "UIChatCell.h"
|
||||
|
||||
#import "linphonecore.h"
|
||||
#import "linphone/linphonecore.h"
|
||||
#import "PhoneMainView.h"
|
||||
#import "UACellBackgroundView.h"
|
||||
#import "UILinphone.h"
|
||||
#import "Utils.h"
|
||||
|
||||
@implementation ChatTableViewController
|
||||
@implementation ChatTableViewController {
|
||||
@private
|
||||
MSList* data;
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - Lifecycle Functions
|
||||
|
||||
- (void)dealloc {
|
||||
if(data != nil)
|
||||
[data release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
|
|
@ -48,10 +49,35 @@
|
|||
|
||||
#pragma mark -
|
||||
|
||||
static int sorted_history_comparison(LinphoneChatRoom *to_insert, LinphoneChatRoom *elem){
|
||||
MSList* new_history = linphone_chat_room_get_history(to_insert, 1);
|
||||
LinphoneChatMessage* last_new_message = new_history? new_history->data : NULL;
|
||||
MSList* elem_history = linphone_chat_room_get_history(elem, 1);
|
||||
LinphoneChatMessage* last_elem_message = elem_history?elem_history->data:NULL;
|
||||
|
||||
if( last_new_message && last_elem_message ){
|
||||
time_t new = linphone_chat_message_get_time(last_new_message);
|
||||
time_t old = linphone_chat_message_get_time(last_elem_message);
|
||||
if ( new < old ) return 1;
|
||||
else if ( new > old) return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
- (MSList*)sortChatRooms {
|
||||
MSList* sorted = nil;
|
||||
MSList* unsorted = linphone_core_get_chat_rooms([LinphoneManager getLc]);
|
||||
MSList* iter = unsorted;
|
||||
|
||||
while (iter) {
|
||||
sorted = ms_list_insert_sorted(sorted, iter->data, (MSCompareFunc)sorted_history_comparison);
|
||||
iter = iter->next;
|
||||
}
|
||||
return sorted;
|
||||
}
|
||||
|
||||
- (void)loadData {
|
||||
if(data != nil)
|
||||
[data release];
|
||||
data = [[ChatModel listConversations] retain];
|
||||
data = [self sortChatRooms];
|
||||
[[self tableView] reloadData];
|
||||
}
|
||||
|
||||
|
|
@ -62,7 +88,7 @@
|
|||
}
|
||||
|
||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
||||
return [data count];
|
||||
return ms_list_size(data);
|
||||
}
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
|
|
@ -78,7 +104,7 @@
|
|||
[selectedBackgroundView setBackgroundColor:LINPHONE_TABLE_CELL_BACKGROUND_COLOR];
|
||||
}
|
||||
|
||||
[cell setChat:[data objectAtIndex:[indexPath row]]];
|
||||
[cell setChatRoom:(LinphoneChatRoom*)ms_list_nth_data(data, [indexPath row])];
|
||||
|
||||
return cell;
|
||||
}
|
||||
|
|
@ -88,12 +114,12 @@
|
|||
|
||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
[tableView deselectRowAtIndexPath:indexPath animated:NO];
|
||||
ChatModel *chat = [data objectAtIndex:[indexPath row]];
|
||||
LinphoneChatRoom *chatRoom = (LinphoneChatRoom*)ms_list_nth_data(data, [indexPath row]);
|
||||
|
||||
// Go to ChatRoom view
|
||||
ChatRoomViewController *controller = DYNAMIC_CAST([[PhoneMainView instance] changeCurrentView:[ChatRoomViewController compositeViewDescription] push:TRUE], ChatRoomViewController);
|
||||
if(controller != nil) {
|
||||
[controller setRemoteAddress:[chat remoteContact]];
|
||||
[controller setChatRoom:chatRoom];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -108,9 +134,12 @@
|
|||
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
if(editingStyle == UITableViewCellEditingStyleDelete) {
|
||||
[tableView beginUpdates];
|
||||
ChatModel *chat = [data objectAtIndex:[indexPath row]];
|
||||
[ChatModel removeConversation:[chat remoteContact]];
|
||||
[data removeObjectAtIndex:[indexPath row]];
|
||||
|
||||
LinphoneChatRoom *chatRoom = (LinphoneChatRoom*)ms_list_nth_data(data, [indexPath row]);
|
||||
linphone_chat_room_delete_history(chatRoom);
|
||||
linphone_chat_room_destroy(chatRoom);
|
||||
data = linphone_core_get_chat_rooms([LinphoneManager getLc]);
|
||||
|
||||
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
|
||||
[tableView endUpdates];
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:kLinphoneTextReceived object:self];
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@
|
|||
#import "ChatViewController.h"
|
||||
#import "PhoneMainView.h"
|
||||
|
||||
#import "ChatModel.h"
|
||||
@implementation ChatViewController
|
||||
|
||||
@synthesize tableController;
|
||||
|
|
@ -113,7 +112,8 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
//Push ChatRoom
|
||||
ChatRoomViewController *controller = DYNAMIC_CAST([[PhoneMainView instance] changeCurrentView:[ChatRoomViewController compositeViewDescription] push:TRUE], ChatRoomViewController);
|
||||
if(controller != nil) {
|
||||
[controller setRemoteAddress:[addressField text]];
|
||||
LinphoneChatRoom* room = linphone_core_get_or_create_chat_room([LinphoneManager getLc], [addressField.text UTF8String]);
|
||||
[controller setChatRoom:room];
|
||||
}
|
||||
addressField.text = @"";
|
||||
|
||||
|
|
|
|||
|
|
@ -1,201 +1,29 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">784</int>
|
||||
<string key="IBDocument.SystemVersion">11E53</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">2840</string>
|
||||
<string key="IBDocument.AppKitVersion">1138.47</string>
|
||||
<string key="IBDocument.HIToolboxVersion">569.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">1926</string>
|
||||
</object>
|
||||
<object class="NSArray" key="IBDocument.IntegratedClassDependencies">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>IBProxyObject</string>
|
||||
<string>IBUIView</string>
|
||||
<string>IBUIWebView</string>
|
||||
</object>
|
||||
<object class="NSArray" key="IBDocument.PluginDependencies">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
|
||||
<integer value="1" key="NS.object.0"/>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBProxyObject" id="372490531">
|
||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="975951072">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="679133499">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<object class="NSMutableArray" key="NSSubviews">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBUIWebView" id="143119813">
|
||||
<reference key="NSNextResponder" ref="679133499"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrameSize">{320, 460}</string>
|
||||
<reference key="NSSuperview" ref="679133499"/>
|
||||
<reference key="NSWindow"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor" id="951155758">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MCAwAA</bytes>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</object>
|
||||
<string key="NSFrameSize">{320, 460}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="143119813"/>
|
||||
<reference key="IBUIBackgroundColor" ref="951155758"/>
|
||||
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<object class="NSMutableArray" key="connectionRecords">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">view</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="679133499"/>
|
||||
</object>
|
||||
<int key="connectionID">14</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">logsView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="143119813"/>
|
||||
</object>
|
||||
<int key="connectionID">19</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<object class="NSArray" key="orderedObjects">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<object class="NSArray" key="object" id="732835941">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="372490531"/>
|
||||
<reference key="parent" ref="732835941"/>
|
||||
<string key="objectName">File's Owner</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="975951072"/>
|
||||
<reference key="parent" ref="732835941"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">4</int>
|
||||
<reference key="object" ref="679133499"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="143119813"/>
|
||||
</object>
|
||||
<reference key="parent" ref="732835941"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">18</int>
|
||||
<reference key="object" ref="143119813"/>
|
||||
<reference key="parent" ref="679133499"/>
|
||||
<string key="objectName">logsView</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="flattenedProperties">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>-1.CustomClassName</string>
|
||||
<string>-1.IBPluginDependency</string>
|
||||
<string>-2.CustomClassName</string>
|
||||
<string>-2.IBPluginDependency</string>
|
||||
<string>18.IBPluginDependency</string>
|
||||
<string>4.IBPluginDependency</string>
|
||||
</object>
|
||||
<object class="NSArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>ConsoleViewController</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>UIResponder</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference key="dict.sortedKeys" ref="732835941"/>
|
||||
<reference key="dict.values" ref="732835941"/>
|
||||
</object>
|
||||
<nil key="activeLocalization"/>
|
||||
<object class="NSMutableDictionary" key="localizations">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference key="dict.sortedKeys" ref="732835941"/>
|
||||
<reference key="dict.values" ref="732835941"/>
|
||||
</object>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">19</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">ConsoleViewController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
<string key="NS.key.0">logsView</string>
|
||||
<string key="NS.object.0">UIWebView</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<string key="NS.key.0">logsView</string>
|
||||
<object class="IBToOneOutletInfo" key="NS.object.0">
|
||||
<string key="name">logsView</string>
|
||||
<string key="candidateClassName">UIWebView</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/ConsoleViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
||||
<integer value="784" key="NS.object.0"/>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
||||
<real value="1536" key="NS.object.0"/>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
|
||||
<integer value="3000" key="NS.object.0"/>
|
||||
</object>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<string key="IBCocoaTouchPluginVersion">1926</string>
|
||||
</data>
|
||||
</archive>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4514" systemVersion="13A603" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1072" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ConsoleViewController">
|
||||
<connections>
|
||||
<outlet property="logsView" destination="18" id="19"/>
|
||||
<outlet property="view" destination="4" id="14"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="4">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="460"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<webView contentMode="scaleToFill" id="18" userLabel="logsView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="460"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<dataDetectorType key="dataDetectorTypes"/>
|
||||
</webView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</objects>
|
||||
</document>
|
||||
|
|
@ -276,13 +276,17 @@ static const ContactSections_e contactSections[ContactSections_MAX] = {ContactSe
|
|||
CFStringRef label = (CFStringRef)[labelArray objectAtIndex:0];
|
||||
ABMultiValueAddValueAndLabel(lMap, lDict, label, &index);
|
||||
}
|
||||
|
||||
if (!ABRecordSetValue(contact, kABPersonInstantMessageProperty, lMap, (CFErrorRef*)&error)) {
|
||||
[LinphoneLogger log:LinphoneLoggerLog format:@"Can't set contact with value [%@] cause [%@]", value,[error localizedDescription]];
|
||||
CFRelease(lMap);
|
||||
} else {
|
||||
if (entry == nil) {
|
||||
entry = [[Entry alloc] initWithData:index];
|
||||
entry = [[[Entry alloc] initWithData:index] autorelease];
|
||||
}
|
||||
CFRelease(lDict);
|
||||
CFRelease(lMap);
|
||||
|
||||
/*check if message type is kept or not*/
|
||||
lcMap = ABRecordCopyValue(contact, kABPersonInstantMessageProperty);
|
||||
lMap = ABMultiValueCreateMutableCopy(lcMap);
|
||||
|
|
@ -294,24 +298,27 @@ static const ContactSections_e contactSections[ContactSections_MAX] = {ContactSe
|
|||
NSString* username = CFDictionaryGetValue(lDict, kABPersonInstantMessageUsernameKey);
|
||||
LinphoneAddress* address = linphone_core_interpret_url([LinphoneManager getLc]
|
||||
,[username UTF8String]);
|
||||
char* uri = linphone_address_as_string_uri_only(address);
|
||||
CFStringRef keys[] = { kABPersonInstantMessageUsernameKey, kABPersonInstantMessageServiceKey};
|
||||
CFTypeRef values[] = { [NSString stringWithCString:uri encoding:[NSString defaultCStringEncoding]], [LinphoneManager instance].contactSipField };
|
||||
CFDictionaryRef lDict2 = CFDictionaryCreate(NULL, (const void **)&keys, (const void **)&values, 2, NULL, NULL);
|
||||
ABMultiValueReplaceValueAtIndex(lMap, lDict2, index);
|
||||
if (!ABRecordSetValue(contact, kABPersonInstantMessageProperty, lMap, (CFErrorRef*)&error)) {
|
||||
[LinphoneLogger log:LinphoneLoggerLog format:@"Can't set contact with value [%@] cause [%@]", value,[error localizedDescription]];
|
||||
}
|
||||
CFRelease(lDict2);
|
||||
linphone_address_destroy(address);
|
||||
ms_free(uri);
|
||||
if(address){
|
||||
char* uri = linphone_address_as_string_uri_only(address);
|
||||
CFStringRef keys[] = { kABPersonInstantMessageUsernameKey, kABPersonInstantMessageServiceKey};
|
||||
CFTypeRef values[] = { [NSString stringWithCString:uri encoding:[NSString defaultCStringEncoding]], [LinphoneManager instance].contactSipField };
|
||||
CFDictionaryRef lDict2 = CFDictionaryCreate(NULL, (const void **)&keys, (const void **)&values, 2, NULL, NULL);
|
||||
ABMultiValueReplaceValueAtIndex(lMap, lDict2, index);
|
||||
if (!ABRecordSetValue(contact, kABPersonInstantMessageProperty, lMap, (CFErrorRef*)&error)) {
|
||||
[LinphoneLogger log:LinphoneLoggerLog format:@"Can't set contact with value [%@] cause [%@]", value,[error localizedDescription]];
|
||||
}
|
||||
CFRelease(lDict2);
|
||||
linphone_address_destroy(address);
|
||||
ms_free(uri);
|
||||
}
|
||||
}
|
||||
CFRelease(lMap);
|
||||
CFRelease(lMap);
|
||||
}
|
||||
CFRelease(lDict);
|
||||
|
||||
return entry;
|
||||
}
|
||||
|
||||
-(void) setSipContactEntry:(Entry *)entry withValue:(NSString*)value {
|
||||
[self setOrCreateSipContactEntry:entry withValue:value];
|
||||
}
|
||||
|
|
@ -335,7 +342,7 @@ static const ContactSections_e contactSections[ContactSections_MAX] = {ContactSe
|
|||
lMap = ABMultiValueCreateMutable(kABStringPropertyType);
|
||||
}
|
||||
CFStringRef label = (CFStringRef)[labelArray objectAtIndex:0];
|
||||
if(!ABMultiValueAddValueAndLabel(lMap, [value copy], label, &identifier)) {
|
||||
if(!ABMultiValueAddValueAndLabel(lMap, [[value copy] autorelease], label, &identifier)) {
|
||||
added = false;
|
||||
}
|
||||
|
||||
|
|
@ -352,7 +359,6 @@ static const ContactSections_e contactSections[ContactSections_MAX] = {ContactSe
|
|||
Entry *entry = [self setOrCreateSipContactEntry:nil withValue:value];
|
||||
if (entry) {
|
||||
[sectionArray addObject:entry];
|
||||
[entry release];
|
||||
added=true;
|
||||
} else {
|
||||
added=false;
|
||||
|
|
@ -369,7 +375,7 @@ static const ContactSections_e contactSections[ContactSections_MAX] = {ContactSe
|
|||
lMap = ABMultiValueCreateMutable(kABStringPropertyType);
|
||||
}
|
||||
CFStringRef label = (CFStringRef)[labelArray objectAtIndex:0];
|
||||
if(!ABMultiValueAddValueAndLabel(lMap, [value copy], label, &identifier)) {
|
||||
if(!ABMultiValueAddValueAndLabel(lMap, [[value copy] autorelease], label, &identifier)) {
|
||||
added = false;
|
||||
}
|
||||
|
||||
|
|
@ -527,7 +533,8 @@ static const ContactSections_e contactSections[ContactSections_MAX] = {ContactSe
|
|||
Entry *entry = [sectionDict objectAtIndex:[indexPath row]];
|
||||
|
||||
NSString *value = @"";
|
||||
NSString *label = @"";
|
||||
// default label is our app name
|
||||
NSString *label = [ContactDetailsTableViewController localizeLabel:[labelArray objectAtIndex:0]];
|
||||
|
||||
if(contactSections[[indexPath section]] == ContactSections_Number) {
|
||||
ABMultiValueRef lMap = ABRecordCopyValue(contact, kABPersonPhoneProperty);
|
||||
|
|
@ -645,7 +652,8 @@ static const ContactSections_e contactSections[ContactSections_MAX] = {ContactSe
|
|||
[[PhoneMainView instance] popToView:[ChatViewController compositeViewDescription]]; // Got to Chat and push ChatRoom
|
||||
ChatRoomViewController *controller = DYNAMIC_CAST([[PhoneMainView instance] changeCurrentView:[ChatRoomViewController compositeViewDescription] push:TRUE], ChatRoomViewController);
|
||||
if(controller != nil) {
|
||||
[controller setRemoteAddress:dest];
|
||||
LinphoneChatRoom* room = linphone_core_get_or_create_chat_room([LinphoneManager getLc], [dest UTF8String]);
|
||||
[controller setChatRoom:room];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ static void sync_address_book (ABAddressBookRef addressBook, CFDictionaryRef inf
|
|||
self = [super initWithNibName:@"ContactDetailsViewController" bundle:[NSBundle mainBundle]];
|
||||
if(self != nil) {
|
||||
inhibUpdate = FALSE;
|
||||
addressBook = ABAddressBookCreate();
|
||||
addressBook = ABAddressBookCreateWithOptions(nil, nil);
|
||||
ABAddressBookRegisterExternalChangeCallback(addressBook, sync_address_book, self);
|
||||
}
|
||||
return self;
|
||||
|
|
@ -140,6 +140,7 @@ static void sync_address_book (ABAddressBookRef addressBook, CFDictionaryRef inf
|
|||
} else {
|
||||
[LinphoneLogger logc:LinphoneLoggerLog format:"Save AddressBook: Success!"];
|
||||
}
|
||||
[[LinphoneManager instance].fastAddressBook reload];
|
||||
}
|
||||
|
||||
- (void)newContact {
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ static void sync_address_book (ABAddressBookRef addressBook, CFDictionaryRef inf
|
|||
addressBookMap = [[OrderedDictionary alloc] init];
|
||||
avatarMap = [[NSMutableDictionary alloc] init];
|
||||
|
||||
addressBook = ABAddressBookCreate();
|
||||
addressBook = ABAddressBookCreateWithOptions(nil, nil);
|
||||
|
||||
ABAddressBookRegisterExternalChangeCallback(addressBook, sync_address_book, self);
|
||||
}
|
||||
|
|
@ -111,12 +111,14 @@ static void sync_address_book (ABAddressBookRef addressBook, CFDictionaryRef inf
|
|||
}
|
||||
CFRelease(lDict);
|
||||
}
|
||||
CFRelease(lMap);
|
||||
}
|
||||
if ((add == false) && [ContactSelection getEmailFilter]) {
|
||||
ABMultiValueRef lMap = ABRecordCopyValue((ABRecordRef)lPerson, kABPersonEmailProperty);
|
||||
if (ABMultiValueGetCount(lMap) > 0) {
|
||||
add = true;
|
||||
}
|
||||
CFRelease(lMap);
|
||||
}
|
||||
if(add) {
|
||||
CFStringRef lFirstName = ABRecordCopyValue((ABRecordRef)lPerson, kABPersonFirstNameProperty);
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <AddressBookUI/ABPeoplePickerNavigationController.h>
|
||||
|
||||
#import "UICompositeViewController.h"
|
||||
#import "ContactsTableViewController.h"
|
||||
|
|
@ -44,11 +45,14 @@ typedef enum _ContactSelectionMode {
|
|||
|
||||
@end
|
||||
|
||||
@interface ContactsViewController : UIViewController<UICompositeViewDelegate> {
|
||||
@interface ContactsViewController : UIViewController<UICompositeViewDelegate,ABPeoplePickerNavigationControllerDelegate> {
|
||||
BOOL use_systemView;
|
||||
}
|
||||
|
||||
@property (nonatomic, retain) IBOutlet ContactsTableViewController* tableController;
|
||||
@property (nonatomic, retain) IBOutlet UITableView *tableView;
|
||||
@property (nonatomic, retain) IBOutlet UINavigationController* sysViewController;
|
||||
@property (retain, nonatomic) IBOutlet UIView *toolBar;
|
||||
@property (nonatomic, retain) IBOutlet UIButton* allButton;
|
||||
@property (nonatomic, retain) IBOutlet UIButton* linphoneButton;
|
||||
@property (nonatomic, retain) IBOutlet UIButton *backButton;
|
||||
|
|
|
|||
|
|
@ -76,10 +76,13 @@ static BOOL sEmailFilter = FALSE;
|
|||
@synthesize tableController;
|
||||
@synthesize tableView;
|
||||
|
||||
@synthesize sysViewController;
|
||||
|
||||
@synthesize allButton;
|
||||
@synthesize linphoneButton;
|
||||
@synthesize backButton;
|
||||
@synthesize addButton;
|
||||
@synthesize toolBar;
|
||||
|
||||
typedef enum _HistoryView {
|
||||
History_All,
|
||||
|
|
@ -130,25 +133,51 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
|
||||
- (void)viewWillDisappear:(BOOL)animated {
|
||||
[super viewWillDisappear:animated];
|
||||
if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) {
|
||||
[tableController viewWillDisappear:animated];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
[super viewWillAppear:animated];
|
||||
if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) {
|
||||
[tableController viewWillAppear:animated];
|
||||
}
|
||||
|
||||
[self update];
|
||||
BOOL use_system = [[LinphoneManager instance] lpConfigBoolForKey:@"use_system_contacts"];
|
||||
if( use_system && !self.sysViewController){// use system contacts
|
||||
ABPeoplePickerNavigationController* picker = [[ABPeoplePickerNavigationController alloc] init];
|
||||
picker.peoplePickerDelegate = self;
|
||||
picker.view.frame = self.view.frame;
|
||||
|
||||
[self.view addSubview:picker.view];
|
||||
|
||||
self.sysViewController = picker;
|
||||
|
||||
} else if( !use_system && !self.tableController ){
|
||||
|
||||
CGRect subViewFrame= self.view.frame;
|
||||
// let the toolBar be visible
|
||||
subViewFrame.origin.y += self.toolBar.frame.size.height;
|
||||
subViewFrame.size.height -= self.toolBar.frame.size.height;
|
||||
|
||||
self.tableController = [[[ContactsTableViewController alloc] init] autorelease];
|
||||
self.tableView = [[[UITableView alloc] init] autorelease];
|
||||
|
||||
self.tableController.view = self.tableView;
|
||||
self.tableView.frame = subViewFrame;
|
||||
|
||||
self.tableView.dataSource = self.tableController;
|
||||
self.tableView.delegate = self.tableController;
|
||||
|
||||
self.tableView.autoresizingMask = UIViewAutoresizingFlexibleHeight |
|
||||
UIViewAutoresizingFlexibleWidth |
|
||||
UIViewAutoresizingFlexibleTopMargin |
|
||||
UIViewAutoresizingFlexibleBottomMargin |
|
||||
UIViewAutoresizingFlexibleLeftMargin |
|
||||
UIViewAutoresizingFlexibleRightMargin;
|
||||
|
||||
[self.view addSubview:tableView];
|
||||
[self update];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)viewDidAppear:(BOOL)animated {
|
||||
[super viewDidAppear:animated];
|
||||
if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) {
|
||||
[tableController viewDidAppear:animated];
|
||||
}
|
||||
if(![FastAddressBook isAuthorized]) {
|
||||
UIAlertView* error = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Address book",nil)
|
||||
message:NSLocalizedString(@"You must authorize the application to have access to address book.\n"
|
||||
|
|
@ -164,9 +193,6 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
|
||||
- (void)viewDidDisappear:(BOOL)animated {
|
||||
[super viewDidDisappear:animated];
|
||||
if ([[UIDevice currentDevice].systemVersion doubleValue] < 5.0) {
|
||||
[tableController viewDidDisappear:animated];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)viewDidLoad {
|
||||
|
|
@ -205,10 +231,10 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
} else {
|
||||
allButton.selected = FALSE;
|
||||
}
|
||||
|
||||
|
||||
if(view == History_Linphone) {
|
||||
[ContactSelection setSipFilter:[LinphoneManager instance].contactFilter];
|
||||
[ContactSelection setEmailFilter:FALSE];
|
||||
[ContactSelection setEmailFilter:FALSE];
|
||||
[tableController loadData];
|
||||
linphoneButton.selected = TRUE;
|
||||
} else {
|
||||
|
|
@ -265,4 +291,42 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
[[PhoneMainView instance] popCurrentView];
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - ABPeoplePickerDelegate
|
||||
|
||||
-(void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker
|
||||
{
|
||||
[[PhoneMainView instance] popCurrentView];
|
||||
return;
|
||||
}
|
||||
|
||||
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker
|
||||
shouldContinueAfterSelectingPerson:(ABRecordRef)person {
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker
|
||||
shouldContinueAfterSelectingPerson:(ABRecordRef)person
|
||||
property:(ABPropertyID)property
|
||||
identifier:(ABMultiValueIdentifier)identifier {
|
||||
|
||||
CFTypeRef multiValue = ABRecordCopyValue(person, property);
|
||||
CFIndex valueIdx = ABMultiValueGetIndexForIdentifier(multiValue,identifier);
|
||||
NSString *phoneNumber = (NSString *)ABMultiValueCopyValueAtIndex(multiValue, valueIdx);
|
||||
// Go to dialer view
|
||||
DialerViewController *controller = DYNAMIC_CAST([[PhoneMainView instance] changeCurrentView:[DialerViewController compositeViewDescription]], DialerViewController);
|
||||
if(controller != nil) {
|
||||
[controller call:phoneNumber displayName:[(NSString*)ABRecordCopyCompositeName(person) autorelease]];
|
||||
}
|
||||
[phoneNumber release];
|
||||
CFRelease(multiValue);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
- (void)viewDidUnload {
|
||||
[self setToolBar:nil];
|
||||
[super viewDidUnload];
|
||||
}
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
#import "PhoneMainView.h"
|
||||
#import "Utils.h"
|
||||
|
||||
#include "linphonecore.h"
|
||||
#include "linphone/linphonecore.h"
|
||||
|
||||
|
||||
@implementation DialerViewController
|
||||
|
|
@ -135,32 +135,45 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
selector:@selector(coreUpdateEvent:)
|
||||
name:kLinphoneCoreUpdate
|
||||
object:nil];
|
||||
|
||||
// technically not needed, but older versions of linphone had this button
|
||||
// disabled by default. In this case, updating by pushing a new version with
|
||||
// xcode would result in the callbutton being disabled all the time.
|
||||
// We force it enabled anyway now.
|
||||
[callButton setEnabled:TRUE];
|
||||
|
||||
// Update on show
|
||||
if([LinphoneManager isLcReady]) {
|
||||
LinphoneManager *mgr=[LinphoneManager instance];
|
||||
LinphoneCore* lc = [LinphoneManager getLc];
|
||||
LinphoneCall* call = linphone_core_get_current_call(lc);
|
||||
LinphoneCallState state = (call != NULL)?linphone_call_get_state(call): 0;
|
||||
[self callUpdate:call state:state];
|
||||
|
||||
|
||||
if([LinphoneManager runningOnIpad]) {
|
||||
if(linphone_core_video_enabled(lc) && linphone_core_video_preview_enabled(lc)) {
|
||||
if(linphone_core_video_enabled(lc) && [mgr lpConfigBoolForKey:@"preview_preference"]) {
|
||||
linphone_core_set_native_preview_window_id(lc, (unsigned long)videoPreview);
|
||||
[backgroundView setHidden:FALSE];
|
||||
[videoCameraSwitch setHidden:FALSE];
|
||||
} else {
|
||||
linphone_core_set_native_preview_window_id(lc, (unsigned long)NULL);
|
||||
linphone_core_enable_video_preview(lc, FALSE);
|
||||
[backgroundView setHidden:TRUE];
|
||||
[videoCameraSwitch setHidden:TRUE];
|
||||
}
|
||||
}
|
||||
|
||||
[addressField setText:@""];
|
||||
|
||||
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_6_0 // attributed string only available since iOS6
|
||||
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
|
||||
// fix placeholder bar color in iOS7
|
||||
UIColor *color = [UIColor grayColor];
|
||||
addressField.attributedPlaceholder = [[NSAttributedString alloc]
|
||||
initWithString:addressField.placeholder
|
||||
attributes:@{NSForegroundColorAttributeName: color}];
|
||||
NSAttributedString* placeHolderString = [[NSAttributedString alloc]
|
||||
initWithString:NSLocalizedString(@"Enter an address", @"Enter an address")
|
||||
attributes:@{NSForegroundColorAttributeName: color}];
|
||||
addressField.attributedPlaceholder = placeHolderString;
|
||||
[placeHolderString release];
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
@ -178,7 +191,6 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
[[NSNotificationCenter defaultCenter] removeObserver:self
|
||||
name:kLinphoneCoreUpdate
|
||||
object:nil];
|
||||
|
||||
}
|
||||
|
||||
- (void)viewDidLoad {
|
||||
|
|
@ -344,13 +356,11 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
if([[addressField text] length] > 0) {
|
||||
[addContactButton setEnabled:TRUE];
|
||||
[eraseButton setEnabled:TRUE];
|
||||
[callButton setEnabled:TRUE];
|
||||
[addCallButton setEnabled:TRUE];
|
||||
[transferButton setEnabled:TRUE];
|
||||
} else {
|
||||
[addContactButton setEnabled:FALSE];
|
||||
[eraseButton setEnabled:FALSE];
|
||||
[callButton setEnabled:FALSE];
|
||||
[addCallButton setEnabled:FALSE];
|
||||
[transferButton setEnabled:FALSE];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "linphonecore.h"
|
||||
#include "linphone/linphonecore.h"
|
||||
|
||||
#import <AddressBook/AddressBook.h>
|
||||
#import "UICompositeViewController.h"
|
||||
|
|
|
|||
|
|
@ -119,6 +119,11 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
[super viewWillAppear:animated];
|
||||
|
||||
BOOL use_system = [[LinphoneManager instance] lpConfigBoolForKey:@"use_system_contacts"];
|
||||
if( use_system ){
|
||||
[addContactButton setHidden:TRUE];
|
||||
}
|
||||
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||
selector:@selector(update)
|
||||
|
|
@ -242,9 +247,10 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
[addressLabel setText:address];
|
||||
|
||||
// Hide/Show add button
|
||||
BOOL use_system = [[LinphoneManager instance] lpConfigBoolForKey:@"use_system_contacts"];
|
||||
if(contact) {
|
||||
[addContactButton setHidden:TRUE];
|
||||
} else {
|
||||
} else if (!use_system) {
|
||||
[addContactButton setHidden:FALSE];
|
||||
}
|
||||
|
||||
|
|
@ -395,7 +401,8 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
[[PhoneMainView instance] changeCurrentView:[ChatViewController compositeViewDescription]];
|
||||
ChatRoomViewController *controller = DYNAMIC_CAST([[PhoneMainView instance] changeCurrentView:[ChatRoomViewController compositeViewDescription] push:TRUE], ChatRoomViewController);
|
||||
if(controller != nil) {
|
||||
[controller setRemoteAddress:[NSString stringWithUTF8String:lAddress]];
|
||||
LinphoneChatRoom* room = linphone_core_get_or_create_chat_room([LinphoneManager getLc], lAddress);
|
||||
[controller setChatRoom:room];
|
||||
}
|
||||
ms_free(lAddress);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,8 +38,8 @@
|
|||
int statusCode;
|
||||
}
|
||||
|
||||
+ (id)imageSharingUpload:(NSURL*)url image:(UIImage*)image delegate:(id<ImageSharingDelegate>)delegate userInfo:(id)userInfo;
|
||||
+ (id)imageSharingDownload:(NSURL*)url delegate:(id<ImageSharingDelegate>)delegate userInfo:(id)userInfo;
|
||||
+ (id)newImageSharingUpload:(NSURL*)url image:(UIImage*)image delegate:(id<ImageSharingDelegate>)delegate userInfo:(id)userInfo;
|
||||
+ (id)newImageSharingDownload:(NSURL*)url delegate:(id<ImageSharingDelegate>)delegate userInfo:(id)userInfo;
|
||||
|
||||
- (void)cancel;
|
||||
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
|
||||
#pragma mark - Lifecycle Functions
|
||||
|
||||
+ (id)imageSharingUpload:(NSURL*)url image:(UIImage*)image delegate:(id<ImageSharingDelegate>)delegate userInfo:(id)auserInfo{
|
||||
+ (id)newImageSharingUpload:(NSURL*)url image:(UIImage*)image delegate:(id<ImageSharingDelegate>)delegate userInfo:(id)auserInfo{
|
||||
ImageSharing *imgs = [[ImageSharing alloc] init];
|
||||
if(imgs != nil) {
|
||||
imgs.userInfo = auserInfo;
|
||||
|
|
@ -45,7 +45,7 @@
|
|||
return imgs;
|
||||
}
|
||||
|
||||
+ (id)imageSharingDownload:(NSURL*)url delegate:(id<ImageSharingDelegate>)delegate userInfo:(id)auserInfo{
|
||||
+ (id)newImageSharingDownload:(NSURL*)url delegate:(id<ImageSharingDelegate>)delegate userInfo:(id)auserInfo{
|
||||
ImageSharing *imgs = [[ImageSharing alloc] init];
|
||||
if(imgs != nil) {
|
||||
imgs.userInfo = auserInfo;
|
||||
|
|
@ -155,7 +155,7 @@
|
|||
[LinphoneLogger log:LinphoneLoggerLog format:@"File transfer status code [%i]", statusCode];
|
||||
|
||||
if (statusCode == 200 && !upload) {
|
||||
totalBytesExpectedToRead = [response expectedContentLength];
|
||||
totalBytesExpectedToRead = (int)[response expectedContentLength];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -173,6 +173,7 @@
|
|||
if(delegate) {
|
||||
[delegate imageSharingUploadDone:self url:[NSURL URLWithString:imageRemoteUrl]];
|
||||
}
|
||||
[imageRemoteUrl release];
|
||||
} else {
|
||||
UIImage* image = [UIImage imageWithData:data];
|
||||
[LinphoneLogger log:LinphoneLoggerLog format:@"File downloaded"];
|
||||
|
|
|
|||
|
|
@ -135,7 +135,6 @@
|
|||
- (void)dealloc {
|
||||
[scrollView release];
|
||||
[backButton release];
|
||||
[image release];
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,11 +21,12 @@
|
|||
|
||||
#import "UICallCell.h"
|
||||
|
||||
#include "linphonecore.h"
|
||||
#include "linphone/linphonecore.h"
|
||||
|
||||
@interface InCallTableViewController : UITableViewController {
|
||||
@private
|
||||
NSTimer *updateTime;
|
||||
BOOL minimized;
|
||||
}
|
||||
|
||||
- (void)minimizeAll;
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ enum TableSection {
|
|||
#pragma mark - Lifecycle Functions
|
||||
|
||||
- (void)initInCallTableViewController {
|
||||
minimized = false;
|
||||
}
|
||||
|
||||
- (id)init{
|
||||
|
|
@ -147,7 +148,7 @@ enum TableSection {
|
|||
if(appData != NULL) {
|
||||
data = [appData->userInfos objectForKey:kLinphoneInCallCellData];
|
||||
if(data == nil) {
|
||||
data = [[[UICallCellData alloc] init:call] autorelease];
|
||||
data = [[[UICallCellData alloc] init:call minimized:minimized] autorelease];
|
||||
[appData->userInfos setObject:data forKey:kLinphoneInCallCellData];
|
||||
}
|
||||
}
|
||||
|
|
@ -179,11 +180,14 @@ enum TableSection {
|
|||
}
|
||||
|
||||
- (void)minimizeAll {
|
||||
|
||||
const MSList *list = linphone_core_get_calls([LinphoneManager getLc]);
|
||||
minimized = true;
|
||||
while(list != NULL) {
|
||||
UICallCellData *data = [self getCallData:(LinphoneCall*)list->data];
|
||||
if(data) {
|
||||
data->minimize = true;
|
||||
} else {
|
||||
}
|
||||
list = list->next;
|
||||
}
|
||||
|
|
@ -192,6 +196,7 @@ enum TableSection {
|
|||
|
||||
- (void)maximizeAll {
|
||||
const MSList *list = linphone_core_get_calls([LinphoneManager getLc]);
|
||||
minimized = false;
|
||||
while(list != NULL) {
|
||||
UICallCellData *data = [self getCallData:(LinphoneCall*)list->data];
|
||||
if(data) {
|
||||
|
|
|
|||
|
|
@ -31,12 +31,14 @@
|
|||
#import "UILinphone.h"
|
||||
#import "DTActionSheet.h"
|
||||
|
||||
#include "linphonecore.h"
|
||||
#include "linphone/linphonecore.h"
|
||||
|
||||
|
||||
const NSInteger SECURE_BUTTON_TAG=5;
|
||||
|
||||
@implementation InCallViewController
|
||||
@implementation InCallViewController {
|
||||
BOOL hiddenVolume;
|
||||
}
|
||||
|
||||
@synthesize callTableController;
|
||||
@synthesize callTableView;
|
||||
|
|
@ -116,6 +118,9 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
[[UIApplication sharedApplication] setIdleTimerDisabled:YES];
|
||||
UIDevice *device = [UIDevice currentDevice];
|
||||
device.proximityMonitoringEnabled = YES;
|
||||
|
||||
[[PhoneMainView instance] setVolumeHidden:TRUE];
|
||||
hiddenVolume = TRUE;
|
||||
}
|
||||
|
||||
- (void)viewWillDisappear:(BOOL)animated {
|
||||
|
|
@ -128,6 +133,10 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
[callTableController viewWillDisappear:animated];
|
||||
}
|
||||
|
||||
if( hiddenVolume ) {
|
||||
[[PhoneMainView instance] setVolumeHidden:FALSE];
|
||||
hiddenVolume = FALSE;
|
||||
}
|
||||
|
||||
// Remove observer
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:self
|
||||
|
|
@ -175,6 +184,7 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
[callTableController viewDidDisappear:animated];
|
||||
}
|
||||
|
||||
[[PhoneMainView instance] fullScreen:false];
|
||||
// Disable tap
|
||||
[singleFingerTap setEnabled:FALSE];
|
||||
}
|
||||
|
|
@ -210,6 +220,12 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
|
||||
- (void)callUpdate:(LinphoneCall *)call state:(LinphoneCallState)state animated:(BOOL)animated {
|
||||
LinphoneCore *lc = [LinphoneManager getLc];
|
||||
|
||||
if( hiddenVolume ){
|
||||
[[PhoneMainView instance] setVolumeHidden:FALSE];
|
||||
hiddenVolume = FALSE;
|
||||
}
|
||||
|
||||
// Update table
|
||||
[callTableView reloadData];
|
||||
|
||||
|
|
@ -278,7 +294,7 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
case LinphoneCallEnd:
|
||||
case LinphoneCallError:
|
||||
{
|
||||
if(linphone_core_get_calls_nb(lc) <= 2) {
|
||||
if(linphone_core_get_calls_nb(lc) <= 2 && !videoShown) {
|
||||
[callTableController maximizeAll];
|
||||
}
|
||||
break;
|
||||
|
|
@ -301,6 +317,7 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
[UIView setAnimationDuration:0.3];
|
||||
[[PhoneMainView instance] showTabBar: true];
|
||||
[[PhoneMainView instance] showStateBar: true];
|
||||
[callTableView setAlpha:1.0];
|
||||
[videoCameraSwitch setAlpha:1.0];
|
||||
[UIView commitAnimations];
|
||||
|
||||
|
|
@ -323,6 +340,7 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
[UIView beginAnimations:nil context:nil];
|
||||
[UIView setAnimationDuration:0.3];
|
||||
[videoCameraSwitch setAlpha:0.0];
|
||||
[callTableView setAlpha:0.0];
|
||||
[UIView commitAnimations];
|
||||
|
||||
|
||||
|
|
@ -360,6 +378,11 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
[videoGroup setAlpha:1.0];
|
||||
[callTableView setAlpha:0.0];
|
||||
|
||||
UIEdgeInsets insets = {33, 0, 25, 0};
|
||||
[callTableView setContentInset:insets];
|
||||
[callTableView setScrollIndicatorInsets:insets];
|
||||
[callTableController minimizeAll];
|
||||
|
||||
if(animation) {
|
||||
[UIView commitAnimations];
|
||||
}
|
||||
|
|
@ -407,6 +430,15 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
|
||||
[videoGroup setAlpha:0.0];
|
||||
[[PhoneMainView instance] showTabBar: true];
|
||||
|
||||
UIEdgeInsets insets = {10, 0, 25, 0};
|
||||
[callTableView setContentInset:insets];
|
||||
[callTableView setScrollIndicatorInsets:insets];
|
||||
[callTableView setAlpha:1.0];
|
||||
if(linphone_core_get_calls_nb([LinphoneManager getLc]) <= 2) {
|
||||
[callTableController maximizeAll];
|
||||
}
|
||||
|
||||
[callTableView setAlpha:1.0];
|
||||
[videoCameraSwitch setHidden:TRUE];
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
#import "UICompositeViewController.h"
|
||||
#import "TPMultiLayoutViewController.h"
|
||||
#include "linphonecore.h"
|
||||
#include "linphone/linphonecore.h"
|
||||
|
||||
@protocol IncomingCallViewDelegate <NSObject>
|
||||
|
||||
|
|
|
|||
|
|
@ -30,14 +30,17 @@
|
|||
@interface LinphoneAppDelegate : NSObject <UIApplicationDelegate,UIAlertViewDelegate> {
|
||||
@private
|
||||
UIWindow *window;
|
||||
UIBackgroundTaskIdentifier bgStartId;
|
||||
BOOL started;
|
||||
int savedMaxCall;
|
||||
|
||||
}
|
||||
|
||||
- (void)processRemoteNotification:(NSDictionary*)userInfo;
|
||||
|
||||
@property (assign) BOOL started;
|
||||
@property (nonatomic, retain) UIAlertView *waitingIndicator;
|
||||
@property (nonatomic, retain) NSString *configURL;
|
||||
|
||||
|
||||
@end
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
#import "LinphoneCoreSettingsStore.h"
|
||||
|
||||
#include "LinphoneManager.h"
|
||||
#include "linphonecore.h"
|
||||
#include "linphone/linphonecore.h"
|
||||
|
||||
@implementation UILinphoneWindow
|
||||
|
||||
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
@implementation LinphoneAppDelegate
|
||||
|
||||
@synthesize started;
|
||||
@synthesize started,configURL;
|
||||
|
||||
|
||||
#pragma mark - Lifecycle Functions
|
||||
|
|
@ -91,65 +91,66 @@
|
|||
|
||||
- (void)applicationDidBecomeActive:(UIApplication *)application {
|
||||
[LinphoneLogger logc:LinphoneLoggerLog format:"applicationDidBecomeActive"];
|
||||
|
||||
[self startApplication];
|
||||
LinphoneManager* instance = [LinphoneManager instance];
|
||||
|
||||
[instance becomeActive];
|
||||
|
||||
[instance becomeActive];
|
||||
|
||||
LinphoneCore* lc = [LinphoneManager getLc];
|
||||
LinphoneCall* call = linphone_core_get_current_call(lc);
|
||||
|
||||
if (call){
|
||||
if (call == instance->currentCallContextBeforeGoingBackground.call) {
|
||||
const LinphoneCallParams* params = linphone_call_get_current_params(call);
|
||||
if (linphone_call_params_video_enabled(params)) {
|
||||
linphone_call_enable_camera(
|
||||
call,
|
||||
instance->currentCallContextBeforeGoingBackground.cameraIsEnabled);
|
||||
}
|
||||
instance->currentCallContextBeforeGoingBackground.call = 0;
|
||||
} else if ( linphone_call_get_state(call) == LinphoneCallIncomingReceived ) {
|
||||
if (call){
|
||||
if (call == instance->currentCallContextBeforeGoingBackground.call) {
|
||||
const LinphoneCallParams* params = linphone_call_get_current_params(call);
|
||||
if (linphone_call_params_video_enabled(params)) {
|
||||
linphone_call_enable_camera(
|
||||
call,
|
||||
instance->currentCallContextBeforeGoingBackground.cameraIsEnabled);
|
||||
}
|
||||
instance->currentCallContextBeforeGoingBackground.call = 0;
|
||||
} else if ( linphone_call_get_state(call) == LinphoneCallIncomingReceived ) {
|
||||
[[PhoneMainView instance ] displayIncomingCall:call];
|
||||
// in this case, the ringing sound comes from the notification.
|
||||
// To stop it we have to do the iOS7 ring fix...
|
||||
[self fixRing];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
|
||||
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeSound|UIRemoteNotificationTypeBadge];
|
||||
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeSound|UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeNewsstandContentAvailability];
|
||||
|
||||
//work around until we can access lpconfig without linphonecore
|
||||
NSDictionary *appDefaults = [NSDictionary dictionaryWithObjectsAndKeys:
|
||||
@"YES", @"start_at_boot_preference",
|
||||
@"YES", @"backgroundmode_preference",
|
||||
#ifdef DEBUG
|
||||
@"YES",@"debugenable_preference",
|
||||
#else
|
||||
@"NO",@"debugenable_preference",
|
||||
#endif
|
||||
nil];
|
||||
[[NSUserDefaults standardUserDefaults] registerDefaults:appDefaults];
|
||||
|
||||
|
||||
LinphoneManager* instance = [LinphoneManager instance];
|
||||
BOOL background_mode = [instance lpConfigBoolForKey:@"backgroundmode_preference"];
|
||||
BOOL start_at_boot = [instance lpConfigBoolForKey:@"start_at_boot_preference"];
|
||||
|
||||
if ([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)]
|
||||
&& [UIApplication sharedApplication].applicationState == UIApplicationStateBackground
|
||||
&& (![[NSUserDefaults standardUserDefaults] boolForKey:@"start_at_boot_preference"] ||
|
||||
![[NSUserDefaults standardUserDefaults] boolForKey:@"backgroundmode_preference"])) {
|
||||
// autoboot disabled, doing nothing
|
||||
&& [UIApplication sharedApplication].applicationState == UIApplicationStateBackground)
|
||||
{
|
||||
// we've been woken up directly to background;
|
||||
if( !start_at_boot || !background_mode ) {
|
||||
// autoboot disabled or no background, and no push: do nothing and wait for a real launch
|
||||
/*output a log with NSLog, because the ortp logging system isn't activated yet at this time*/
|
||||
NSLog(@"Linphone launch doing nothing because start_at_boot or background_mode are not activated.", NULL);
|
||||
return YES;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
bgStartId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
|
||||
[LinphoneLogger log:LinphoneLoggerWarning format:@"Background task for application launching expired."];
|
||||
[[UIApplication sharedApplication] endBackgroundTask:bgStartId];
|
||||
}];
|
||||
[self startApplication];
|
||||
NSDictionary *remoteNotif =[launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
|
||||
if (remoteNotif){
|
||||
[LinphoneLogger log:LinphoneLoggerLog format:@"PushNotification from launch received."];
|
||||
[self processRemoteNotification:remoteNotif];
|
||||
}
|
||||
|
||||
if (bgStartId!=UIBackgroundTaskInvalid) [[UIApplication sharedApplication] endBackgroundTask:bgStartId];
|
||||
[[PhoneMainView instance] updateStatusBar:nil];
|
||||
|
||||
return YES;
|
||||
|
|
@ -171,19 +172,31 @@
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
- (void)applicationWillTerminate:(UIApplication *)application {
|
||||
|
||||
[LinphoneLogger log:LinphoneLoggerLog format:@"Application Will Terminate"];
|
||||
}
|
||||
|
||||
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
|
||||
[self startApplication];
|
||||
if([LinphoneManager isLcReady]) {
|
||||
if([[url scheme] isEqualToString:@"sip"]) {
|
||||
// Go to Dialer view
|
||||
DialerViewController *controller = DYNAMIC_CAST([[PhoneMainView instance] changeCurrentView:[DialerViewController compositeViewDescription]], DialerViewController);
|
||||
if(controller != nil) {
|
||||
[controller setAddress:[url absoluteString]];
|
||||
NSString *scheme = [[url scheme] lowercaseString];
|
||||
if ([scheme isEqualToString:@"linphone-config-http"] || [scheme isEqualToString:@"linphone-config-https"]) {
|
||||
configURL = [[NSString alloc] initWithString:[[url absoluteString] stringByReplacingOccurrencesOfString:@"linphone-config-" withString:@""]];
|
||||
UIAlertView* confirmation = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Remote configuration",nil)
|
||||
message:NSLocalizedString(@"This operation will load a remote configuration. Continue ?",nil)
|
||||
delegate:self
|
||||
cancelButtonTitle:NSLocalizedString(@"No",nil)
|
||||
otherButtonTitles:NSLocalizedString(@"Yes",nil),nil];
|
||||
confirmation.tag = 1;
|
||||
[confirmation show];
|
||||
[confirmation release];
|
||||
} else {
|
||||
[self startApplication];
|
||||
if([LinphoneManager isLcReady]) {
|
||||
if([[url scheme] isEqualToString:@"sip"]) {
|
||||
// Go to Dialer view
|
||||
DialerViewController *controller = DYNAMIC_CAST([[PhoneMainView instance] changeCurrentView:[DialerViewController compositeViewDescription]], DialerViewController);
|
||||
if(controller != nil) {
|
||||
[controller setAddress:[url absoluteString]];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -200,51 +213,87 @@
|
|||
}
|
||||
|
||||
- (void)processRemoteNotification:(NSDictionary*)userInfo{
|
||||
if ([LinphoneManager instance].pushNotificationToken==Nil){
|
||||
[LinphoneLogger log:LinphoneLoggerLog format:@"Ignoring push notification we did not subscribed."];
|
||||
return;
|
||||
}
|
||||
|
||||
NSDictionary *aps = [userInfo objectForKey:@"aps"];
|
||||
|
||||
if(aps != nil) {
|
||||
NSDictionary *alert = [aps objectForKey:@"alert"];
|
||||
if(alert != nil) {
|
||||
NSString *loc_key = [alert objectForKey:@"loc-key"];
|
||||
/*if we receive a remote notification, it is because our TCP background socket was no more working.
|
||||
/*if we receive a remote notification, it is probably because our TCP background socket was no more working.
|
||||
As a result, break it and refresh registers in order to make sure to receive incoming INVITE or MESSAGE*/
|
||||
LinphoneCore *lc = [LinphoneManager getLc];
|
||||
linphone_core_set_network_reachable(lc, FALSE);
|
||||
linphone_core_set_network_reachable(lc, TRUE);
|
||||
if(loc_key != nil) {
|
||||
if([loc_key isEqualToString:@"IM_MSG"]) {
|
||||
[[PhoneMainView instance] addInhibitedEvent:kLinphoneTextReceived];
|
||||
[[PhoneMainView instance] changeCurrentView:[ChatViewController compositeViewDescription]];
|
||||
} else if([loc_key isEqualToString:@"IC_MSG"]) {
|
||||
//it's a call
|
||||
NSString *callid=[userInfo objectForKey:@"call-id"];
|
||||
if (callid)
|
||||
[[LinphoneManager instance] enableAutoAnswerForCallId:callid];
|
||||
else
|
||||
[LinphoneLogger log:LinphoneLoggerError format:@"PushNotification: does not have call-id yet, fix it !"];
|
||||
if (linphone_core_get_calls(lc)==NULL){ //if there are calls, obviously our TCP socket shall be working
|
||||
linphone_core_set_network_reachable(lc, FALSE);
|
||||
[LinphoneManager instance].connectivity=none; /*force connectivity to be discovered again*/
|
||||
if(loc_key != nil) {
|
||||
if([loc_key isEqualToString:@"IM_MSG"]) {
|
||||
[[PhoneMainView instance] addInhibitedEvent:kLinphoneTextReceived];
|
||||
[[PhoneMainView instance] changeCurrentView:[ChatViewController compositeViewDescription]];
|
||||
} else if([loc_key isEqualToString:@"IC_MSG"]) {
|
||||
//it's a call
|
||||
NSString *callid=[userInfo objectForKey:@"call-id"];
|
||||
if (callid)
|
||||
[[LinphoneManager instance] enableAutoAnswerForCallId:callid];
|
||||
else
|
||||
[LinphoneLogger log:LinphoneLoggerError format:@"PushNotification: does not have call-id yet, fix it !"];
|
||||
|
||||
[self fixRing];
|
||||
}
|
||||
}
|
||||
[self fixRing];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
|
||||
[LinphoneLogger log:LinphoneLoggerLog format:@"PushNotification: Receive %@", userInfo];
|
||||
|
||||
[self processRemoteNotification:userInfo];
|
||||
}
|
||||
|
||||
- (LinphoneChatRoom*)findChatRoomForContact:(NSString*)contact {
|
||||
MSList* rooms = linphone_core_get_chat_rooms([LinphoneManager getLc]);
|
||||
const char* from = [contact UTF8String];
|
||||
while (rooms) {
|
||||
const LinphoneAddress* room_from_address = linphone_chat_room_get_peer_address((LinphoneChatRoom*)rooms->data);
|
||||
char* room_from = linphone_address_as_string_uri_only(room_from_address);
|
||||
if( room_from && strcmp(from, room_from)== 0){
|
||||
return rooms->data;
|
||||
}
|
||||
rooms = rooms->next;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
|
||||
[[UIApplication sharedApplication] cancelLocalNotification:notification];
|
||||
|
||||
[self fixRing];
|
||||
|
||||
|
||||
if([notification.userInfo objectForKey:@"callId"] != nil) {
|
||||
[[LinphoneManager instance] acceptCallForCallId:[notification.userInfo objectForKey:@"callId"]];
|
||||
} else if([notification.userInfo objectForKey:@"chat"] != nil) {
|
||||
NSString *remoteContact = (NSString*)[notification.userInfo objectForKey:@"chat"];
|
||||
BOOL auto_answer = TRUE;
|
||||
// some local notifications have an internal timer to relaunch themselves at specified intervals
|
||||
if( [[notification.userInfo objectForKey:@"timer"] intValue] == 1 ){
|
||||
[[LinphoneManager instance] cancelLocalNotifTimerForCallId:[notification.userInfo objectForKey:@"callId"]];
|
||||
auto_answer = [[LinphoneManager instance] lpConfigBoolForKey:@"autoanswer_notif_preference"];
|
||||
}
|
||||
if(auto_answer)
|
||||
{
|
||||
[[LinphoneManager instance] acceptCallForCallId:[notification.userInfo objectForKey:@"callId"]];
|
||||
}
|
||||
} else if([notification.userInfo objectForKey:@"from"] != nil) {
|
||||
NSString *remoteContact = (NSString*)[notification.userInfo objectForKey:@"from"];
|
||||
// Go to ChatRoom view
|
||||
[[PhoneMainView instance] changeCurrentView:[ChatViewController compositeViewDescription]];
|
||||
ChatRoomViewController *controller = DYNAMIC_CAST([[PhoneMainView instance] changeCurrentView:[ChatRoomViewController compositeViewDescription] push:TRUE], ChatRoomViewController);
|
||||
if(controller != nil) {
|
||||
[controller setRemoteAddress:remoteContact];
|
||||
LinphoneChatRoom*room = [self findChatRoomForContact:remoteContact];
|
||||
[controller setChatRoom:room];
|
||||
}
|
||||
} else if([notification.userInfo objectForKey:@"callLog"] != nil) {
|
||||
NSString *callLog = (NSString*)[notification.userInfo objectForKey:@"callLog"];
|
||||
|
|
@ -257,6 +306,39 @@
|
|||
}
|
||||
}
|
||||
|
||||
// this method is implemented for iOS7. It is invoked when receiving a push notification for a call and it has "content-available" in the aps section.
|
||||
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
|
||||
{
|
||||
LinphoneManager* lm = [LinphoneManager instance];
|
||||
|
||||
if (lm.pushNotificationToken==Nil){
|
||||
[LinphoneLogger log:LinphoneLoggerLog format:@"Ignoring push notification we did not subscribed."];
|
||||
return;
|
||||
}
|
||||
|
||||
// check that linphone is still running
|
||||
if( ![LinphoneManager isLcReady] )
|
||||
[lm startLibLinphone];
|
||||
|
||||
[LinphoneLogger log:LinphoneLoggerLog format:@"Silent PushNotification; userInfo %@", userInfo];
|
||||
|
||||
// save the completion handler for later execution.
|
||||
// 2 outcomes:
|
||||
// - if a new call/message is received, the completion handler will be called with "NEWDATA"
|
||||
// - if nothing happens for 15 seconds, the completion handler will be called with "NODATA"
|
||||
lm.silentPushCompletion = completionHandler;
|
||||
[NSTimer scheduledTimerWithTimeInterval:15.0 target:lm selector:@selector(silentPushFailed:) userInfo:nil repeats:FALSE];
|
||||
|
||||
LinphoneCore *lc=[LinphoneManager getLc];
|
||||
// If no call is yet received at this time, then force Linphone to drop the current socket and make new one to register, so that we get
|
||||
// a better chance to receive the INVITE.
|
||||
if (linphone_core_get_calls(lc)==NULL){
|
||||
linphone_core_set_network_reachable(lc, FALSE);
|
||||
lm.connectivity=none; /*force connectivity to be discovered again*/
|
||||
[lm refreshRegisters];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - PushNotification Functions
|
||||
|
||||
|
|
@ -270,4 +352,96 @@
|
|||
[[LinphoneManager instance] setPushNotificationToken:nil];
|
||||
}
|
||||
|
||||
#pragma mark - Remote configuration Functions (URL Handler)
|
||||
|
||||
|
||||
- (void)ConfigurationStateUpdateEvent: (NSNotification*) notif {
|
||||
LinphoneConfiguringState state = [[notif.userInfo objectForKey: @"state"] intValue];
|
||||
if (state == LinphoneConfiguringSuccessful) {
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:self
|
||||
name:kLinphoneConfiguringStateUpdate
|
||||
object:nil];
|
||||
[_waitingIndicator dismissWithClickedButtonIndex:0 animated:true];
|
||||
|
||||
UIAlertView* error = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Success",nil)
|
||||
message:NSLocalizedString(@"Remote configuration successfully fetched and applied.",nil)
|
||||
delegate:nil
|
||||
cancelButtonTitle:NSLocalizedString(@"OK",nil)
|
||||
otherButtonTitles:nil];
|
||||
[error show];
|
||||
[error release];
|
||||
[[PhoneMainView instance] startUp];
|
||||
}
|
||||
if (state == LinphoneConfiguringFailed) {
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:self
|
||||
name:kLinphoneConfiguringStateUpdate
|
||||
object:nil];
|
||||
[_waitingIndicator dismissWithClickedButtonIndex:0 animated:true];
|
||||
UIAlertView* error = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Failure",nil)
|
||||
message:NSLocalizedString(@"Failed configuring from the specified URL." ,nil)
|
||||
delegate:nil
|
||||
cancelButtonTitle:NSLocalizedString(@"OK",nil)
|
||||
otherButtonTitles:nil];
|
||||
[error show];
|
||||
[error release];
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
- (void) showWaitingIndicator {
|
||||
_waitingIndicator = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Fetching remote configuration...",nil) message:@"" delegate:self cancelButtonTitle:nil otherButtonTitles:nil];
|
||||
UIActivityIndicatorView *progress= [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(125, 60, 30, 30)];
|
||||
progress.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;
|
||||
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0){
|
||||
[_waitingIndicator setValue:progress forKey:@"accessoryView"];
|
||||
[progress setColor:[UIColor blackColor]];
|
||||
} else {
|
||||
[_waitingIndicator addSubview:progress];
|
||||
}
|
||||
[progress startAnimating];
|
||||
[progress release];
|
||||
[_waitingIndicator show];
|
||||
|
||||
}
|
||||
|
||||
|
||||
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
|
||||
{
|
||||
if ((alertView.tag == 1) && (buttonIndex==1)) {
|
||||
[self showWaitingIndicator];
|
||||
if([LinphoneManager isLcReady]) {
|
||||
[self attemptRemoteConfiguration];
|
||||
} else {
|
||||
[[LinphoneManager instance] startLibLinphone];
|
||||
[self performSelector:@selector(attemptRemoteConfiguration) withObject:NULL afterDelay:5.0];
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
- (void)attemptRemoteConfiguration {
|
||||
|
||||
if ([LinphoneManager isLcReady]) {
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||
selector:@selector(ConfigurationStateUpdateEvent:)
|
||||
name:kLinphoneConfiguringStateUpdate
|
||||
object:nil];
|
||||
linphone_core_set_provisioning_uri([LinphoneManager getLc] , [configURL UTF8String]);
|
||||
[[LinphoneManager instance] destroyLibLinphone];
|
||||
[[LinphoneManager instance] startLibLinphone];
|
||||
} else {
|
||||
[_waitingIndicator dismissWithClickedButtonIndex:0 animated:true];
|
||||
UIAlertView* error = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Failure",nil)
|
||||
message:NSLocalizedString(@"Linphone is not ready.",nil)
|
||||
delegate:nil
|
||||
cancelButtonTitle:NSLocalizedString(@"OK",nil)
|
||||
otherButtonTitles:nil];
|
||||
[error show];
|
||||
[error release];
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
#import "LinphoneCoreSettingsStore.h"
|
||||
|
||||
#include "lpconfig.h"
|
||||
#include "linphone/lpconfig.h"
|
||||
|
||||
extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
|
||||
|
||||
|
|
@ -49,7 +49,8 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
|
|||
- (void)setString:(const char*)value forKey:(NSString*)key {
|
||||
id obj=Nil;
|
||||
if (value) obj=[[NSString alloc] initWithCString:value encoding:[NSString defaultCStringEncoding] ];
|
||||
[self setObject: obj forKey:key];
|
||||
[self setObject:obj forKey:key];
|
||||
[obj release];
|
||||
}
|
||||
|
||||
- (NSString*)stringForKey:(NSString*) key {
|
||||
|
|
@ -75,6 +76,7 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
|
|||
- (void)transformLinphoneCoreToKeys {
|
||||
LinphoneCore *lc=[LinphoneManager getLc];
|
||||
LinphoneProxyConfig *cfg=NULL;
|
||||
LpConfig* conf = linphone_core_get_config(lc);
|
||||
linphone_core_get_default_proxy(lc,&cfg);
|
||||
if (cfg){
|
||||
const char *identity=linphone_proxy_config_get_identity(cfg);
|
||||
|
|
@ -88,31 +90,43 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
|
|||
[self setString: linphone_address_get_domain(addr) forKey:@"domain_preference"];
|
||||
[self setInteger: linphone_proxy_config_get_expires(cfg) forKey:@"expire_preference"];
|
||||
[self setString: linphone_proxy_config_get_dial_prefix(cfg) forKey:@"prefix_preference"];
|
||||
if (strcmp(linphone_address_get_domain(addr),linphone_address_get_domain(proxy_addr))!=0
|
||||
|| port>0){
|
||||
if (strcmp(linphone_address_get_domain(addr),linphone_address_get_domain(proxy_addr))!=0 || port>0){
|
||||
char tmp[256]={0};
|
||||
if (port>0) {
|
||||
snprintf(tmp,sizeof(tmp)-1,"%s:%i",linphone_address_get_domain(proxy_addr),port);
|
||||
}else snprintf(tmp,sizeof(tmp)-1,"%s",linphone_address_get_domain(proxy_addr));
|
||||
[self setString: tmp forKey:@"proxy_preference"];
|
||||
[self setString:tmp forKey:@"proxy_preference"];
|
||||
}
|
||||
|
||||
const char* tname = "udp";
|
||||
switch (linphone_address_get_transport(proxy_addr)) {
|
||||
case LinphoneTransportTcp: tname = "tcp"; break;
|
||||
case LinphoneTransportTls: tname = "tls"; break;
|
||||
default: break;
|
||||
}
|
||||
[self setString:tname forKey:@"transport_preference"];
|
||||
|
||||
linphone_address_destroy(addr);
|
||||
linphone_address_destroy(proxy_addr);
|
||||
|
||||
|
||||
[self setBool: (linphone_proxy_config_get_route(cfg)!=NULL) forKey:@"outbound_proxy_preference"];
|
||||
[self setBool:linphone_proxy_config_get_dial_escape_plus(cfg) forKey:@"substitute_+_by_00_preference"];
|
||||
[self setBool:linphone_proxy_config_avpf_enabled(cfg) forKey:@"avpf_preference"];
|
||||
|
||||
}
|
||||
} else {
|
||||
[self setInteger: lp_config_get_int(linphone_core_get_config(lc),"default_values","reg_expires", 600) forKey:@"expire_preference"];
|
||||
[self setObject:@"" forKey:@"username_preference"];
|
||||
[self setObject:@"" forKey:@"domain_preference"];
|
||||
[self setObject:@"" forKey:@"proxy_preference"];
|
||||
[self setObject:@"" forKey:@"password_preference"];
|
||||
[self setBool:FALSE forKey:@"outbound_proxy_preference"];
|
||||
[self setInteger: lp_config_get_int(conf,"default_values","reg_expires", 600) forKey:@"expire_preference"];
|
||||
[self setObject:@"" forKey:@"username_preference"];
|
||||
[self setObject:@"" forKey:@"domain_preference"];
|
||||
[self setObject:@"" forKey:@"proxy_preference"];
|
||||
[self setObject:@"" forKey:@"password_preference"];
|
||||
[self setBool:FALSE forKey:@"outbound_proxy_preference"];
|
||||
[self setString:"udp" forKey:@"transport_preference"];
|
||||
[self setBool:FALSE forKey:@"avpf_preference"];
|
||||
|
||||
}
|
||||
|
||||
[self setBool:lp_config_get_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "pushnotification_preference", 0) forKey:@"pushnotification_preference"];
|
||||
|
||||
[self setBool:lp_config_get_int(conf, LINPHONERC_APPLICATION_KEY, "pushnotification_preference", 0) forKey:@"pushnotification_preference"];
|
||||
{
|
||||
LinphoneAddress *parsed = linphone_core_get_primary_contact_parsed(lc);
|
||||
if(parsed != NULL) {
|
||||
|
|
@ -140,38 +154,25 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
|
|||
}
|
||||
}
|
||||
{
|
||||
[self setInteger: linphone_core_get_upload_bandwidth(lc) forKey:@"upload_bandwidth_preference"];
|
||||
[self setInteger: linphone_core_get_upload_bandwidth(lc) forKey:@"upload_bandwidth_preference"];
|
||||
[self setInteger: linphone_core_get_download_bandwidth(lc) forKey:@"download_bandwidth_preference"];
|
||||
}
|
||||
{
|
||||
[self setFloat:linphone_core_get_playback_gain_db(lc) forKey:@"playback_gain_preference"];
|
||||
[self setFloat:linphone_core_get_mic_gain_db(lc) forKey:@"microphone_gain_preference"];
|
||||
[self setFloat:linphone_core_get_mic_gain_db(lc) forKey:@"microphone_gain_preference"];
|
||||
}
|
||||
{
|
||||
LCSipTransports tp;
|
||||
const char *tname = "udp";
|
||||
int port = 5060;
|
||||
linphone_core_get_sip_transports(lc, &tp);
|
||||
if (tp.udp_port>0) {
|
||||
tname = "udp";
|
||||
port = tp.udp_port;
|
||||
} else if (tp.tcp_port>0) {
|
||||
tname = "tcp";
|
||||
port = tp.tcp_port;
|
||||
} else if (tp.tls_port>0) {
|
||||
tname = "tls";
|
||||
port = tp.tls_port;
|
||||
}
|
||||
[self setString:tname forKey:@"transport_preference"];
|
||||
int port = lp_config_get_int(conf, LINPHONERC_APPLICATION_KEY, "port_preference", 5060);
|
||||
[self setInteger:port forKey:@"port_preference"];
|
||||
|
||||
[self setInteger:lp_config_get_int(linphone_core_get_config(lc),"sip","sip_random_port", 1) forKey:@"random_port_preference"];
|
||||
int random_port_preference = lp_config_get_int(conf,LINPHONERC_APPLICATION_KEY,"random_port_preference", 1);
|
||||
[self setInteger:random_port_preference forKey:@"random_port_preference"];
|
||||
}
|
||||
{
|
||||
LinphoneAuthInfo *ai;
|
||||
const MSList *elem=linphone_core_get_auth_info_list(lc);
|
||||
if (elem && (ai=(LinphoneAuthInfo*)elem->data)){
|
||||
[self setString: linphone_auth_info_get_passwd(ai) forKey:@"password_preference"];
|
||||
[self setString: linphone_auth_info_get_ha1(ai) forKey:@"ha1_preference"]; // hidden but useful if provisioned
|
||||
}
|
||||
}
|
||||
{
|
||||
|
|
@ -184,59 +185,35 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
|
|||
[self transformCodecsToKeys: linphone_core_get_audio_codecs(lc)];
|
||||
[self transformCodecsToKeys: linphone_core_get_video_codecs(lc)];
|
||||
[self setBool:linphone_core_adaptive_rate_control_enabled(lc) forKey:@"adaptive_rate_control_preference"];
|
||||
LpConfig *config = linphone_core_get_config(lc);
|
||||
[self setInteger:lp_config_get_int(config, "audio", "codec_bitrate_limit", 36) forKey:@"audio_codec_bitrate_limit_preference"];
|
||||
[self setInteger:lp_config_get_int(conf, "audio", "codec_bitrate_limit", kLinphoneAudioVbrCodecDefaultBitrate) forKey:@"audio_codec_bitrate_limit_preference"];
|
||||
|
||||
PayloadType *pt;
|
||||
const MSList *elem;
|
||||
for (elem=linphone_core_get_audio_codecs(lc);elem!=NULL;elem=elem->next){
|
||||
pt=(PayloadType*)elem->data;
|
||||
if ((strcmp(pt->mime_type, "opus") == 0) || (strcmp(pt->mime_type, "mpeg4-generic") == 0)) {
|
||||
pt->normal_bitrate = [self integerForKey:@"audio_codec_bitrate_limit_preference"] * 1000;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
LinphoneMediaEncryption menc=linphone_core_get_media_encryption(lc);
|
||||
const char *val;
|
||||
switch(menc){
|
||||
case LinphoneMediaEncryptionSRTP:
|
||||
val="SRTP";
|
||||
break;
|
||||
case LinphoneMediaEncryptionZRTP:
|
||||
val="ZRTP";
|
||||
break;
|
||||
default:
|
||||
val="None";
|
||||
case LinphoneMediaEncryptionSRTP: val="SRTP"; break;
|
||||
case LinphoneMediaEncryptionZRTP: val="ZRTP"; break;
|
||||
default: val="None"; break;
|
||||
}
|
||||
[self setString:val forKey:@"media_encryption_preference"];
|
||||
}
|
||||
[self setString: lp_config_get_string(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "rotation_preference", "auto") forKey:@"rotation_preference"];
|
||||
[self setBool: lp_config_get_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "edge_opt_preference", 0) forKey:@"edge_opt_preference"];
|
||||
[self setBool: lp_config_get_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "enable_first_login_view_preference", 0) forKey:@"enable_first_login_view_preference"];
|
||||
[self setBool: lp_config_get_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "debugenable_preference", 0) forKey:@"debugenable_preference"];
|
||||
[self setBool: lp_config_get_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "animations_preference", 1) forKey:@"animations_preference"];
|
||||
[self setBool: lp_config_get_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "wifi_only_preference", 0) forKey:@"wifi_only_preference"];
|
||||
[self setString: lp_config_get_string(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "sharing_server_preference", NULL) forKey:@"sharing_server_preference"];
|
||||
[self setString: lp_config_get_string(conf, LINPHONERC_APPLICATION_KEY, "rotation_preference", "auto") forKey:@"rotation_preference"];
|
||||
[self setBool: lp_config_get_int(conf, LINPHONERC_APPLICATION_KEY, "edge_opt_preference", 0) forKey:@"edge_opt_preference"];
|
||||
[self setBool: lp_config_get_int(conf, LINPHONERC_APPLICATION_KEY, "enable_first_login_view_preference", 0) forKey:@"enable_first_login_view_preference"];
|
||||
[self setBool: lp_config_get_int(conf, LINPHONERC_APPLICATION_KEY, "debugenable_preference", 0) forKey:@"debugenable_preference"];
|
||||
[self setBool: lp_config_get_int(conf, LINPHONERC_APPLICATION_KEY, "animations_preference", 1) forKey:@"animations_preference"];
|
||||
[self setBool: lp_config_get_int(conf, LINPHONERC_APPLICATION_KEY, "wifi_only_preference", 0) forKey:@"wifi_only_preference"];
|
||||
[self setString: lp_config_get_string(conf, LINPHONERC_APPLICATION_KEY, "sharing_server_preference", NULL) forKey:@"sharing_server_preference"];
|
||||
[self setBool:lp_config_get_int(conf, "sip", "use_ipv6", 0) forKey:@"use_ipv6"];
|
||||
|
||||
|
||||
/*keep this one also in the standardUserDefaults so that it can be read before starting liblinphone*/
|
||||
BOOL start_at_boot = TRUE;
|
||||
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"start_at_boot_preference"] != Nil)
|
||||
start_at_boot = [[NSUserDefaults standardUserDefaults] boolForKey:@"start_at_boot_preference"];
|
||||
[self setBool: start_at_boot forKey:@"start_at_boot_preference"];
|
||||
BOOL background_mode = TRUE;
|
||||
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"backgroundmode_preference"] != Nil)
|
||||
background_mode =[[NSUserDefaults standardUserDefaults] boolForKey:@"backgroundmode_preference"];
|
||||
[self setBool: background_mode forKey:@"backgroundmode_preference"];
|
||||
|
||||
if (linphone_core_tunnel_available()){
|
||||
/*FIXME: enhance linphonecore API to handle tunnel more easily in applications */
|
||||
//LinphoneTunnel *tun=linphone_core_get_tunnel(lc);
|
||||
//[self setString: linphone_tunnel_get_servers(tun) forKey:tunnel_address_preference];
|
||||
//[self setInteger: blabla forKey:tunnel_port_preference];
|
||||
//[self setString: forKey:@"tunnel_enabled_preference"];
|
||||
}
|
||||
[self setBool: lp_config_get_int(conf,LINPHONERC_APPLICATION_KEY,"start_at_boot_preference",1) forKey:@"start_at_boot_preference"];
|
||||
[self setBool: lp_config_get_int(conf,LINPHONERC_APPLICATION_KEY,"backgroundmode_preference",1) forKey:@"backgroundmode_preference"];
|
||||
[self setBool: lp_config_get_int(conf,LINPHONERC_APPLICATION_KEY,"autoanswer_notif_preference",1) forKey:@"autoanswer_notif_preference"];
|
||||
|
||||
|
||||
{
|
||||
const LinphoneVideoPolicy *pol;
|
||||
[self setBool: linphone_core_video_enabled(lc) forKey:@"enable_video_preference"];
|
||||
|
|
@ -244,7 +221,8 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
|
|||
[self setBool:(pol->automatically_initiate) forKey:@"start_video_preference"];
|
||||
[self setBool:(pol->automatically_accept) forKey:@"accept_video_preference"];
|
||||
[self setBool:linphone_core_self_view_enabled(lc) forKey:@"self_video_preference"];
|
||||
[self setBool:linphone_core_video_preview_enabled(lc) forKey:@"preview_preference"];
|
||||
BOOL previewEnabled=lp_config_get_int(conf,LINPHONERC_APPLICATION_KEY,"preview_preference",1);
|
||||
[self setBool:previewEnabled forKey:@"preview_preference"];
|
||||
MSVideoSize vsize = linphone_core_get_preferred_video_size(lc);
|
||||
int index;
|
||||
if ((vsize.width == MS_VIDEO_SIZE_720P_W) && (vsize.height == MS_VIDEO_SIZE_720P_H)) {
|
||||
|
|
@ -264,7 +242,20 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
|
|||
[self setInteger:linphone_core_get_in_call_timeout(lc) forKey:@"in_call_timeout_preference"];
|
||||
}
|
||||
|
||||
|
||||
// Tunnel
|
||||
if (linphone_core_tunnel_available()){
|
||||
LinphoneTunnel *tunnel = linphone_core_get_tunnel([LinphoneManager getLc]);
|
||||
[self setString:lp_config_get_string(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "tunnel_mode_preference", "off") forKey:@"tunnel_mode_preference"];
|
||||
const MSList* configs = linphone_tunnel_get_servers(tunnel);
|
||||
if(configs != NULL) {
|
||||
LinphoneTunnelConfig *ltc = (LinphoneTunnelConfig *)configs->data;
|
||||
[self setString:linphone_tunnel_config_get_host(ltc) forKey:@"tunnel_address_preference"];
|
||||
[self setInteger:linphone_tunnel_config_get_port(ltc) forKey:@"tunnel_port_preference"];
|
||||
} else {
|
||||
[self setString:"" forKey:@"tunnel_address_preference"];
|
||||
[self setInteger:443 forKey:@"tunnel_port_preference"];
|
||||
}
|
||||
}
|
||||
|
||||
[changedDict release];
|
||||
changedDict = [[NSMutableDictionary alloc] init];
|
||||
|
|
@ -287,10 +278,23 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
|
|||
return [[changedDict valueForKey:key] boolValue];
|
||||
}
|
||||
|
||||
- (void)alertAccountError:(NSString*)error {
|
||||
UIAlertView* alertview = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error", nil)
|
||||
message:error
|
||||
delegate:nil
|
||||
cancelButtonTitle:NSLocalizedString(@"OK", nil)
|
||||
otherButtonTitles: nil];
|
||||
[alertview show];
|
||||
[alertview release];
|
||||
}
|
||||
|
||||
- (void)synchronizeAccount {
|
||||
LinphoneCore *lc = [LinphoneManager getLc];
|
||||
LpConfig* conf = linphone_core_get_config(lc);
|
||||
LinphoneManager* lLinphoneMgr = [LinphoneManager instance];
|
||||
LinphoneProxyConfig* proxyCfg = NULL;
|
||||
NSString* error = nil;
|
||||
|
||||
/* unregister before modifying any settings */
|
||||
{
|
||||
linphone_core_get_default_proxy(lc, &proxyCfg);
|
||||
|
|
@ -310,69 +314,67 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
|
|||
}
|
||||
}
|
||||
|
||||
NSString* transport = [self stringForKey:@"transport_preference"];
|
||||
int port_preference = [self integerForKey:@"port_preference"];
|
||||
|
||||
BOOL random_port_preference = [self boolForKey:@"random_port_preference"];
|
||||
lp_config_set_int(linphone_core_get_config(lc),"sip","sip_random_port", random_port_preference);
|
||||
lp_config_set_int(linphone_core_get_config(lc),"sip","sip_tcp_random_port", random_port_preference);
|
||||
lp_config_set_int(linphone_core_get_config(lc),"sip","sip_tls_random_port", random_port_preference);
|
||||
lp_config_set_int(conf, LINPHONERC_APPLICATION_KEY, "random_port_preference", random_port_preference);
|
||||
if(random_port_preference) {
|
||||
port_preference = (0xDFFF&random())+1024;
|
||||
[self setInteger:port_preference forKey:@"port_preference"]; // Update back preference
|
||||
port_preference = -1;
|
||||
}
|
||||
|
||||
LCSipTransports transportValue={0};
|
||||
if (transport!=nil) {
|
||||
if (linphone_core_get_sip_transports(lc, &transportValue)) {
|
||||
[LinphoneLogger logc:LinphoneLoggerError format:"cannot get current transport"];
|
||||
}
|
||||
// Only one port can be set at one time, the others's value is 0
|
||||
if ([transport isEqualToString:@"tcp"]) {
|
||||
transportValue.tcp_port=port_preference;
|
||||
transportValue.udp_port=0;
|
||||
transportValue.tls_port=0;
|
||||
} else if ([transport isEqualToString:@"udp"]){
|
||||
transportValue.udp_port=port_preference;
|
||||
transportValue.tcp_port=0;
|
||||
transportValue.tls_port=0;
|
||||
} else if ([transport isEqualToString:@"tls"]){
|
||||
transportValue.tls_port=port_preference;
|
||||
transportValue.tcp_port=0;
|
||||
transportValue.udp_port=0;
|
||||
} else {
|
||||
[LinphoneLogger logc:LinphoneLoggerError format:"unexpected transport [%s]",[transport cStringUsingEncoding:[NSString defaultCStringEncoding]]];
|
||||
}
|
||||
if (linphone_core_set_sip_transports(lc, &transportValue)) {
|
||||
[LinphoneLogger logc:LinphoneLoggerError format:"cannot set transport"];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
LCSipTransports transportValue={ port_preference, port_preference, -1, -1 };
|
||||
|
||||
// will also update the sip_*_port section of the config
|
||||
if (linphone_core_set_sip_transports(lc, &transportValue)) {
|
||||
[LinphoneLogger logc:LinphoneLoggerError format:"cannot set transport"];
|
||||
}
|
||||
|
||||
port_preference = linphone_core_get_sip_port(lc);
|
||||
[self setInteger:port_preference forKey:@"port_preference"]; // Update back preference
|
||||
|
||||
|
||||
BOOL enable_ipv6 = [self boolForKey:@"use_ipv6"];
|
||||
lp_config_set_int(conf, "sip", "use_ipv6", enable_ipv6);
|
||||
if( linphone_core_ipv6_enabled(lc) != enable_ipv6){
|
||||
[LinphoneLogger logc:LinphoneLoggerDebug format:"%@ IPV6", enable_ipv6?@"ENABLING":@"DISABLING"];
|
||||
linphone_core_enable_ipv6(lc, enable_ipv6);
|
||||
}
|
||||
|
||||
|
||||
//configure sip account
|
||||
|
||||
//mandatory parameters
|
||||
NSString* username = [self stringForKey:@"username_preference"];
|
||||
NSString* domain = [self stringForKey:@"domain_preference"];
|
||||
NSString* username = [self stringForKey:@"username_preference"];
|
||||
NSString* domain = [self stringForKey:@"domain_preference"];
|
||||
NSString* transport = [self stringForKey:@"transport_preference"];
|
||||
NSString* accountHa1 = [self stringForKey:@"ha1_preference"];
|
||||
NSString* accountPassword = [self stringForKey:@"password_preference"];
|
||||
bool isOutboundProxy= [self boolForKey:@"outbound_proxy_preference"];
|
||||
|
||||
|
||||
//clear auth info list
|
||||
linphone_core_clear_all_auth_info(lc);
|
||||
//clear existing proxy config
|
||||
linphone_core_clear_proxy_config(lc);
|
||||
bool isOutboundProxy = [self boolForKey:@"outbound_proxy_preference"];
|
||||
BOOL use_avpf = [self boolForKey:@"avpf_preference"];
|
||||
|
||||
if (username && [username length] >0 && domain && [domain length]>0) {
|
||||
NSString* proxyAddress = [self stringForKey:@"proxy_preference"];
|
||||
LinphoneAuthInfo *info = NULL;
|
||||
|
||||
NSString* proxyAddress = [self stringForKey:@"proxy_preference"];
|
||||
if ((!proxyAddress || [proxyAddress length] <1 ) && domain) {
|
||||
proxyAddress = [NSString stringWithFormat:@"sip:%@",domain] ;
|
||||
} else {
|
||||
proxyAddress = [NSString stringWithFormat:@"sip:%@",proxyAddress] ;
|
||||
}
|
||||
|
||||
const char* proxy = [proxyAddress cStringUsingEncoding:[NSString defaultCStringEncoding]];
|
||||
|
||||
|
||||
|
||||
char* proxy = ms_strdup([proxyAddress cStringUsingEncoding:[NSString defaultCStringEncoding]]);
|
||||
LinphoneAddress* proxy_addr = linphone_address_new(proxy);
|
||||
|
||||
if( proxy_addr ){
|
||||
LinphoneTransportType type = LinphoneTransportUdp;
|
||||
if ( [transport isEqualToString:@"tcp"] ) type = LinphoneTransportTcp;
|
||||
else if ( [transport isEqualToString:@"tls"] ) type = LinphoneTransportTls;
|
||||
|
||||
linphone_address_set_transport(proxy_addr, type);
|
||||
ms_free(proxy);
|
||||
proxy = linphone_address_as_string_uri_only(proxy_addr);
|
||||
}
|
||||
|
||||
//possible valid config detected
|
||||
proxyCfg = linphone_core_create_proxy_config(lc);
|
||||
char normalizedUserName[256];
|
||||
|
|
@ -382,23 +384,22 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
|
|||
linphone_address_set_domain(linphoneAddress, [domain cStringUsingEncoding:[NSString defaultCStringEncoding]]);
|
||||
const char* identity = linphone_address_as_string_uri_only(linphoneAddress);
|
||||
const char* password = [accountPassword cStringUsingEncoding:[NSString defaultCStringEncoding]];
|
||||
const char* ha1 = [accountHa1 cStringUsingEncoding:[NSString defaultCStringEncoding]];
|
||||
|
||||
// configure proxy entries
|
||||
linphone_proxy_config_set_identity(proxyCfg, identity);
|
||||
linphone_proxy_config_set_server_addr(proxyCfg, proxy);
|
||||
linphone_proxy_config_enable_register(proxyCfg, true);
|
||||
if( linphone_proxy_config_set_identity(proxyCfg, identity) == -1 ) { error = NSLocalizedString(@"Invalid username or domain",nil); goto bad_proxy; }
|
||||
if( linphone_proxy_config_set_server_addr(proxyCfg, proxy) == -1 ) { error = NSLocalizedString(@"Invalid proxy address", nil); goto bad_proxy; }
|
||||
|
||||
linphone_proxy_config_enable_register(proxyCfg, true);
|
||||
|
||||
linphone_proxy_config_enable_avpf(proxyCfg, use_avpf);
|
||||
|
||||
// add username password
|
||||
LinphoneAddress *from = linphone_address_new(identity);
|
||||
LinphoneAuthInfo *info;
|
||||
if (from != 0){
|
||||
info=linphone_auth_info_new(linphone_address_get_username(from),NULL,password,NULL,NULL,linphone_proxy_config_get_domain(proxyCfg));
|
||||
linphone_core_add_auth_info(lc,info);
|
||||
info=linphone_auth_info_new(linphone_address_get_username(from),NULL,password,ha1,NULL,linphone_proxy_config_get_domain(proxyCfg));
|
||||
linphone_address_destroy(from);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
int expire = [self integerForKey:@"expire_preference"];
|
||||
linphone_proxy_config_expires(proxyCfg,expire);
|
||||
|
|
@ -426,15 +427,30 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
|
|||
}
|
||||
|
||||
BOOL pushnotification = [self boolForKey:@"pushnotification_preference"];
|
||||
lp_config_set_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "pushnotification_preference", pushnotification);
|
||||
lp_config_set_int(conf, LINPHONERC_APPLICATION_KEY, "pushnotification_preference", pushnotification);
|
||||
|
||||
[[LinphoneManager instance] addPushTokenToProxyConfig:proxyCfg];
|
||||
|
||||
|
||||
// We reached here: the new settings are correct, so replace the previous ones.
|
||||
linphone_core_clear_proxy_config(lc);
|
||||
linphone_core_clear_all_auth_info(lc);
|
||||
|
||||
// add proxy and auth info
|
||||
linphone_core_add_proxy_config(lc,proxyCfg);
|
||||
//set to default proxy
|
||||
linphone_core_set_default_proxy(lc,proxyCfg);
|
||||
|
||||
linphone_address_destroy(linphoneAddress);
|
||||
if( info )
|
||||
linphone_core_add_auth_info(lc,info);
|
||||
|
||||
bad_proxy:
|
||||
if( linphoneAddress)
|
||||
linphone_address_destroy(linphoneAddress);
|
||||
if( proxy)
|
||||
ms_free(proxy);
|
||||
if( info )
|
||||
linphone_auth_info_destroy(info);
|
||||
if( error != nil ){
|
||||
[self alertAccountError:error];
|
||||
}
|
||||
}
|
||||
[[[LinphoneManager instance] fastAddressBook] reload];
|
||||
}
|
||||
|
|
@ -486,7 +502,7 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
|
|||
BOOL account_changed;
|
||||
|
||||
account_changed=[self valueChangedForKey:@"username_preference"]
|
||||
|| [self valueChangedForKey:@"password_preference"]
|
||||
|| [self valueChangedForKey:@"password_preference"]
|
||||
|| [self valueChangedForKey:@"domain_preference"]
|
||||
|| [self valueChangedForKey:@"expire_preference"]
|
||||
|| [self valueChangedForKey:@"proxy_preference"]
|
||||
|
|
@ -496,6 +512,8 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
|
|||
|| [self valueChangedForKey:@"random_port_preference"]
|
||||
|| [self valueChangedForKey:@"prefix_preference"]
|
||||
|| [self valueChangedForKey:@"substitute_+_by_00_preference"]
|
||||
|| [self valueChangedForKey:@"use_ipv6"]
|
||||
|| [self valueChangedForKey:@"avpf_preference"]
|
||||
|| [self valueChangedForKey:@"pushnotification_preference"];
|
||||
|
||||
if (account_changed)
|
||||
|
|
@ -510,10 +528,8 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
|
|||
pt=(PayloadType*)elem->data;
|
||||
NSString *pref=[LinphoneManager getPreferenceForCodec:pt->mime_type withRate:pt->clock_rate];
|
||||
linphone_core_enable_payload_type(lc,pt,[self boolForKey: pref]);
|
||||
if ((strcmp(pt->mime_type, "opus") == 0) || (strcmp(pt->mime_type, "mpeg4-generic") == 0)) {
|
||||
pt->normal_bitrate = [self integerForKey:@"audio_codec_bitrate_limit_preference"] * 1000;
|
||||
}
|
||||
}
|
||||
|
||||
for (elem=linphone_core_get_video_codecs(lc);elem!=NULL;elem=elem->next){
|
||||
pt=(PayloadType*)elem->data;
|
||||
NSString *pref=[LinphoneManager getPreferenceForCodec:pt->mime_type withRate:pt->clock_rate];
|
||||
|
|
@ -522,6 +538,7 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
|
|||
|
||||
LpConfig *config = linphone_core_get_config(lc);
|
||||
lp_config_set_int(config, "audio", "codec_bitrate_limit", [self integerForKey:@"audio_codec_bitrate_limit_preference"]);
|
||||
[[LinphoneManager instance] configureVbrCodecs];
|
||||
linphone_core_enable_adaptive_rate_control(lc, [self boolForKey:@"adaptive_rate_control_preference"]);
|
||||
|
||||
linphone_core_set_use_info_for_dtmf(lc, [self boolForKey:@"sipinfo_dtmf_preference"]);
|
||||
|
|
@ -559,7 +576,8 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
|
|||
policy.automatically_initiate = [self boolForKey:@"start_video_preference"];
|
||||
linphone_core_set_video_policy(lc, &policy);
|
||||
linphone_core_enable_self_view(lc, [self boolForKey:@"self_video_preference"]);
|
||||
linphone_core_enable_video_preview(lc, [self boolForKey:@"preview_preference"]);
|
||||
BOOL preview_preference=[self boolForKey:@"preview_preference"];
|
||||
lp_config_set_int(config, LINPHONERC_APPLICATION_KEY, "preview_preference", preview_preference);
|
||||
MSVideoSize vsize;
|
||||
int bw;
|
||||
switch ([self integerForKey:@"video_preferred_size_preference"]) {
|
||||
|
|
@ -634,50 +652,78 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args);
|
|||
} else {
|
||||
isbackgroundModeEnabled = false;
|
||||
}
|
||||
|
||||
lp_config_set_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "backgroundmode_preference", isbackgroundModeEnabled);
|
||||
|
||||
|
||||
lp_config_set_int(config, LINPHONERC_APPLICATION_KEY, "backgroundmode_preference", isbackgroundModeEnabled);
|
||||
lp_config_set_int(config, LINPHONERC_APPLICATION_KEY, "start_at_boot_preference", [self boolForKey:@"start_at_boot_preference"]);
|
||||
lp_config_set_int(config, LINPHONERC_APPLICATION_KEY, "autoanswer_notif_preference", [self boolForKey:@"autoanswer_notif_preference"]);
|
||||
|
||||
|
||||
BOOL firstloginview = [self boolForKey:@"enable_first_login_view_preference"];
|
||||
lp_config_set_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "enable_first_login_view_preference", firstloginview);
|
||||
lp_config_set_int(config, LINPHONERC_APPLICATION_KEY, "enable_first_login_view_preference", firstloginview);
|
||||
|
||||
BOOL edgeOpt = [self boolForKey:@"edge_opt_preference"];
|
||||
lp_config_set_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "edge_opt_preference", edgeOpt);
|
||||
lp_config_set_int(config, LINPHONERC_APPLICATION_KEY, "edge_opt_preference", edgeOpt);
|
||||
|
||||
NSString *landscape = [self stringForKey:@"rotation_preference"];
|
||||
lp_config_set_string(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "rotation_preference", [landscape UTF8String]);
|
||||
lp_config_set_string(config, LINPHONERC_APPLICATION_KEY, "rotation_preference", [landscape UTF8String]);
|
||||
|
||||
BOOL debugmode = [self boolForKey:@"debugenable_preference"];
|
||||
lp_config_set_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "debugenable_preference", debugmode);
|
||||
lp_config_set_int(config, LINPHONERC_APPLICATION_KEY, "debugenable_preference", debugmode);
|
||||
if (debugmode) {
|
||||
linphone_core_enable_logs_with_cb((OrtpLogFunc)linphone_iphone_log_handler);
|
||||
ortp_set_log_level_mask(ORTP_DEBUG|ORTP_MESSAGE|ORTP_WARNING|ORTP_ERROR|ORTP_FATAL);
|
||||
} else {
|
||||
linphone_core_disable_logs();
|
||||
}
|
||||
[[NSUserDefaults standardUserDefaults] setBool:debugmode forKey:@"debugenable_preference"]; //to be used at linphone core startup
|
||||
|
||||
BOOL animations = [self boolForKey:@"animations_preference"];
|
||||
lp_config_set_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "animations_preference", animations);
|
||||
lp_config_set_int(config, LINPHONERC_APPLICATION_KEY, "animations_preference", animations);
|
||||
|
||||
BOOL wifiOnly = [self boolForKey:@"wifi_only_preference"];
|
||||
lp_config_set_int(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "wifi_only_preference", wifiOnly);
|
||||
lp_config_set_int(config, LINPHONERC_APPLICATION_KEY, "wifi_only_preference", wifiOnly);
|
||||
if([self valueChangedForKey:@"wifi_only_preference"]) {
|
||||
[[LinphoneManager instance] setupNetworkReachabilityCallback];
|
||||
}
|
||||
|
||||
NSString* sharing_server = [self stringForKey:@"sharing_server_preference"];
|
||||
[[LinphoneManager instance] lpConfigSetString:sharing_server forKey:@"sharing_server_preference"];
|
||||
|
||||
|
||||
|
||||
/*keep this one also in the standardUserDefaults so that it can be read before starting liblinphone*/
|
||||
BOOL start_at_boot = [self boolForKey:@"start_at_boot_preference"];
|
||||
[[NSUserDefaults standardUserDefaults] setBool: start_at_boot forKey:@"start_at_boot_preference"];
|
||||
BOOL background_mode = [self boolForKey:@"backgroundmode_preference"];
|
||||
[[NSUserDefaults standardUserDefaults] setBool: background_mode forKey:@"backgroundmode_preference"];
|
||||
|
||||
// Force synchronize
|
||||
[[NSUserDefaults standardUserDefaults] synchronize];
|
||||
|
||||
//Tunnel
|
||||
if (linphone_core_tunnel_available()){
|
||||
NSString* lTunnelPrefMode = [self stringForKey:@"tunnel_mode_preference"];
|
||||
NSString* lTunnelPrefAddress = [self stringForKey:@"tunnel_address_preference"];
|
||||
int lTunnelPrefPort = [self integerForKey:@"tunnel_port_preference"];
|
||||
LinphoneTunnel *tunnel = linphone_core_get_tunnel([LinphoneManager getLc]);
|
||||
TunnelMode mode = tunnel_off;
|
||||
int lTunnelPort = 443;
|
||||
if (lTunnelPrefPort) {
|
||||
lTunnelPort = lTunnelPrefPort;
|
||||
}
|
||||
|
||||
linphone_tunnel_clean_servers(tunnel);
|
||||
if (lTunnelPrefAddress && [lTunnelPrefAddress length]) {
|
||||
LinphoneTunnelConfig *ltc = linphone_tunnel_config_new();
|
||||
linphone_tunnel_config_set_host(ltc, [lTunnelPrefAddress UTF8String]);
|
||||
linphone_tunnel_config_set_port(ltc, lTunnelPort);
|
||||
linphone_tunnel_add_server(tunnel, ltc);
|
||||
|
||||
if ([lTunnelPrefMode isEqualToString:@"off"]) {
|
||||
mode = tunnel_off;
|
||||
} else if ([lTunnelPrefMode isEqualToString:@"on"]) {
|
||||
mode = tunnel_on;
|
||||
} else if ([lTunnelPrefMode isEqualToString:@"wwan"]) {
|
||||
mode = tunnel_wwan;
|
||||
} else if ([lTunnelPrefMode isEqualToString:@"auto"]) {
|
||||
mode = tunnel_auto;
|
||||
} else {
|
||||
[LinphoneLogger logc:LinphoneLoggerError format:"Unexpected tunnel mode [%s]",[lTunnelPrefMode cStringUsingEncoding:[NSString defaultCStringEncoding]]];
|
||||
}
|
||||
}
|
||||
|
||||
lp_config_set_string(linphone_core_get_config(lc), LINPHONERC_APPLICATION_KEY, "tunnel_mode_preference", [lTunnelPrefMode UTF8String]);
|
||||
[[LinphoneManager instance] setTunnelMode:mode];
|
||||
}
|
||||
|
||||
[changedDict release];
|
||||
changedDict = [[NSMutableDictionary alloc] init];
|
||||
|
|
|
|||
|
|
@ -32,13 +32,15 @@
|
|||
#import "FastAddressBook.h"
|
||||
#import "Utils.h"
|
||||
|
||||
#include "linphonecore.h"
|
||||
#include "linphone/linphonecore.h"
|
||||
#include "linphone/linphone_tunnel.h"
|
||||
|
||||
extern const char *const LINPHONERC_APPLICATION_KEY;
|
||||
|
||||
extern NSString *const kLinphoneCoreUpdate;
|
||||
extern NSString *const kLinphoneDisplayStatusUpdate;
|
||||
extern NSString *const kLinphoneTextReceived;
|
||||
extern NSString *const kLinphoneTextComposeEvent;
|
||||
extern NSString *const kLinphoneCallUpdate;
|
||||
extern NSString *const kLinphoneRegistrationUpdate;
|
||||
extern NSString *const kLinphoneMainViewChange;
|
||||
|
|
@ -46,6 +48,8 @@ extern NSString *const kLinphoneAddressBookUpdate;
|
|||
extern NSString *const kLinphoneLogsUpdate;
|
||||
extern NSString *const kLinphoneSettingsUpdate;
|
||||
extern NSString *const kLinphoneBluetoothAvailabilityUpdate;
|
||||
extern NSString *const kLinphoneConfiguringStateUpdate;
|
||||
extern NSString *const kLinphoneGlobalStateUpdate;
|
||||
|
||||
typedef enum _NetworkType {
|
||||
network_none = 0,
|
||||
|
|
@ -56,12 +60,21 @@ typedef enum _NetworkType {
|
|||
network_wifi
|
||||
} NetworkType;
|
||||
|
||||
typedef enum _TunnelMode {
|
||||
tunnel_off = 0,
|
||||
tunnel_on,
|
||||
tunnel_wwan,
|
||||
tunnel_auto
|
||||
} TunnelMode;
|
||||
|
||||
typedef enum _Connectivity {
|
||||
wifi,
|
||||
wwan,
|
||||
none
|
||||
} Connectivity;
|
||||
|
||||
extern const int kLinphoneAudioVbrCodecDefaultBitrate;
|
||||
|
||||
/* Application specific call context */
|
||||
typedef struct _CallContext {
|
||||
LinphoneCall* call;
|
||||
|
|
@ -79,15 +92,17 @@ struct NetworkReachabilityContext {
|
|||
UILocalNotification *notification;
|
||||
NSMutableDictionary *userInfos;
|
||||
bool_t videoRequested; /*set when user has requested for video*/
|
||||
NSTimer* timer;
|
||||
};
|
||||
@end
|
||||
|
||||
typedef struct _LinphoneManagerSounds {
|
||||
SystemSoundID call;
|
||||
SystemSoundID message;
|
||||
SystemSoundID vibrate;
|
||||
} LinphoneManagerSounds;
|
||||
|
||||
@interface LinphoneManager : NSObject <AVAudioSessionDelegate> {
|
||||
@interface LinphoneManager : NSObject {
|
||||
@protected
|
||||
SCNetworkReachabilityRef proxyReachability;
|
||||
|
||||
|
|
@ -95,11 +110,10 @@ typedef struct _LinphoneManagerSounds {
|
|||
NSTimer* mIterateTimer;
|
||||
NSMutableArray* pendindCallIdFromRemoteNotif;
|
||||
Connectivity connectivity;
|
||||
BOOL stopWaitingRegisters;
|
||||
UIBackgroundTaskIdentifier pausedCallBgTask;
|
||||
UIBackgroundTaskIdentifier incallBgTask;
|
||||
CTCallCenter* mCallCenter;
|
||||
|
||||
NSDate *mLastKeepAliveDate;
|
||||
@public
|
||||
CallContext currentCallContextBeforeGoingBackground;
|
||||
}
|
||||
|
|
@ -115,8 +129,10 @@ typedef struct _LinphoneManagerSounds {
|
|||
+ (BOOL)isCodecSupported: (const char*)codecName;
|
||||
+ (NSSet *)unsupportedCodecs;
|
||||
+ (NSString *)getUserAgent;
|
||||
+ (int)unreadMessageCount;
|
||||
|
||||
|
||||
- (void)resetLinphoneCore;
|
||||
- (void)startLibLinphone;
|
||||
- (void)destroyLibLinphone;
|
||||
- (BOOL)resignActive;
|
||||
|
|
@ -126,7 +142,8 @@ typedef struct _LinphoneManagerSounds {
|
|||
- (void)addPushTokenToProxyConfig: (LinphoneProxyConfig*)cfg;
|
||||
- (BOOL)shouldAutoAcceptCallForCallId:(NSString*) callId;
|
||||
- (void)acceptCallForCallId:(NSString*)callid;
|
||||
- (void)waitForRegisterToArrive;
|
||||
- (void)cancelLocalNotifTimerForCallId:(NSString*)callid;
|
||||
|
||||
|
||||
+ (void)kickOffNetworkConnection;
|
||||
- (void)setupNetworkReachabilityCallback;
|
||||
|
|
@ -135,6 +152,8 @@ typedef struct _LinphoneManagerSounds {
|
|||
|
||||
- (bool)allowSpeaker;
|
||||
|
||||
- (void)configureVbrCodecs;
|
||||
|
||||
+ (BOOL)copyFile:(NSString*)src destination:(NSString*)dst override:(BOOL)override;
|
||||
+ (NSString*)bundleFile:(NSString*)file;
|
||||
+ (NSString*)documentFile:(NSString*)file;
|
||||
|
|
@ -142,6 +161,10 @@ typedef struct _LinphoneManagerSounds {
|
|||
- (void)acceptCall:(LinphoneCall *)call;
|
||||
- (void)call:(NSString *)address displayName:(NSString*)displayName transfer:(BOOL)transfer;
|
||||
|
||||
|
||||
+(id)getMessageAppDataForKey:(NSString*)key inMessage:(LinphoneChatMessage*)msg;
|
||||
+(void)setValueInMessageAppData:(id)value forKey:(NSString*)key inMessage:(LinphoneChatMessage*)msg;
|
||||
|
||||
- (void)lpConfigSetString:(NSString*)value forKey:(NSString*)key;
|
||||
- (NSString*)lpConfigStringForKey:(NSString*)key;
|
||||
- (NSString*)lpConfigStringForKey:(NSString*)key withDefault:(NSString*)value;
|
||||
|
|
@ -155,7 +178,7 @@ typedef struct _LinphoneManagerSounds {
|
|||
- (BOOL)lpConfigBoolForKey:(NSString*)key;
|
||||
- (void)lpConfigSetBool:(BOOL)value forKey:(NSString*)key forSection:(NSString*)section;
|
||||
- (BOOL)lpConfigBoolForKey:(NSString*)key forSection:(NSString*)section;
|
||||
|
||||
- (void)silentPushFailed:(NSTimer*)timer;
|
||||
|
||||
@property (readonly) FastAddressBook* fastAddressBook;
|
||||
@property Connectivity connectivity;
|
||||
|
|
@ -170,8 +193,12 @@ typedef struct _LinphoneManagerSounds {
|
|||
@property (nonatomic, assign) BOOL bluetoothAvailable;
|
||||
@property (nonatomic, assign) BOOL bluetoothEnabled;
|
||||
@property (readonly) ALAssetsLibrary *photoLibrary;
|
||||
@property (nonatomic, assign) TunnelMode tunnelMode;
|
||||
@property (readonly) NSString* contactSipField;
|
||||
@property (readonly,copy) NSString* contactFilter;
|
||||
@property (copy) void (^silentPushCompletion)(UIBackgroundFetchResult);
|
||||
@property (readonly) BOOL wasRemoteProvisioned;
|
||||
@property (readonly) LpConfig *configDb;
|
||||
|
||||
@end
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
1029
Classes/LinphoneUI/Base.lproj/UICallBar.xib
Normal file
1029
Classes/LinphoneUI/Base.lproj/UICallBar.xib
Normal file
File diff suppressed because it is too large
Load diff
790
Classes/LinphoneUI/Base.lproj/UICallBar~ipad.xib
Normal file
790
Classes/LinphoneUI/Base.lproj/UICallBar~ipad.xib
Normal file
|
|
@ -0,0 +1,790 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="5056" systemVersion="13C1021" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1536" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="UICallBar">
|
||||
<connections>
|
||||
<outlet property="conferenceButton" destination="12" id="64"/>
|
||||
<outlet property="dialerButton" destination="10" id="65"/>
|
||||
<outlet property="eightButton" destination="26" id="66"/>
|
||||
<outlet property="fiveButton" destination="23" id="67"/>
|
||||
<outlet property="fourButton" destination="22" id="68"/>
|
||||
<outlet property="hangupButton" destination="11" id="69"/>
|
||||
<outlet property="landscapeView" destination="2" id="70"/>
|
||||
<outlet property="microButton" destination="16" id="71"/>
|
||||
<outlet property="nineButton" destination="27" id="72"/>
|
||||
<outlet property="oneButton" destination="19" id="73"/>
|
||||
<outlet property="optionsAddButton" destination="31" id="74"/>
|
||||
<outlet property="optionsButton" destination="14" id="75"/>
|
||||
<outlet property="optionsTransferButton" destination="32" id="76"/>
|
||||
<outlet property="optionsView" destination="4" id="77"/>
|
||||
<outlet property="padView" destination="5" id="78"/>
|
||||
<outlet property="pauseButton" destination="13" id="79"/>
|
||||
<outlet property="portraitView" destination="3" id="80"/>
|
||||
<outlet property="sevenButton" destination="25" id="81"/>
|
||||
<outlet property="sharpButton" destination="30" id="82"/>
|
||||
<outlet property="sixButton" destination="24" id="83"/>
|
||||
<outlet property="speakerButton" destination="15" id="84"/>
|
||||
<outlet property="starButton" destination="28" id="85"/>
|
||||
<outlet property="threeButton" destination="21" id="86"/>
|
||||
<outlet property="twoButton" destination="20" id="87"/>
|
||||
<outlet property="videoButton" destination="17" id="88"/>
|
||||
<outlet property="view" destination="3" id="89"/>
|
||||
<outlet property="zeroButton" destination="29" id="90"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view autoresizesSubviews="NO" contentMode="scaleToFill" id="2" userLabel="Landscape View" customClass="UITransparentView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="1024" height="748"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<view hidden="YES" autoresizesSubviews="NO" opaque="NO" clearsContextBeforeDrawing="NO" userInteractionEnabled="NO" tag="-1" contentMode="scaleToFill" id="33" userLabel="mask">
|
||||
<rect key="frame" x="0.0" y="680" width="1024" height="68"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" red="0.0" green="1" blue="0.19194547549999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</view>
|
||||
<view tag="1" contentMode="scaleToFill" id="35" userLabel="padView">
|
||||
<rect key="frame" x="372" y="244" width="281" height="260"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" tag="2" contentMode="scaleToFill" image="dialer_alt_background.png" id="59" userLabel="background">
|
||||
<rect key="frame" x="0.0" y="0.0" width="281" height="260"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
</imageView>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="3" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="58" userLabel="1" customClass="UIDigitButton">
|
||||
<rect key="frame" x="-20" y="10" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" red="0.40000001000000002" green="1" blue="1" alpha="0.0" colorSpace="calibratedRGB"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_one_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_one_over.png"/>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="4" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="57" userLabel="2" customClass="UIDigitButton">
|
||||
<rect key="frame" x="87" y="10" width="106" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_two_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_two_over.png"/>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="56" userLabel="3" customClass="UIDigitButton">
|
||||
<rect key="frame" x="193" y="10" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_three_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_three_over.png"/>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="6" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="55" userLabel="4" customClass="UIDigitButton">
|
||||
<rect key="frame" x="-20" y="72" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_four_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_four_over.png"/>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="7" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="54" userLabel="5" customClass="UIDigitButton">
|
||||
<rect key="frame" x="87" y="72" width="106" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_five_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_five_over.png"/>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="8" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="53" userLabel="6" customClass="UIDigitButton">
|
||||
<rect key="frame" x="193" y="72" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_six_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_six_over.png"/>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="9" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="52" userLabel="7" customClass="UIDigitButton">
|
||||
<rect key="frame" x="-20" y="134" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_seven_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_seven_over.png"/>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="10" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="51" userLabel="8" customClass="UIDigitButton">
|
||||
<rect key="frame" x="87" y="134" width="106" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_eight_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_eight_over.png"/>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="11" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="50" userLabel="9" customClass="UIDigitButton">
|
||||
<rect key="frame" x="193" y="134" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_nine_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_nine_over.png"/>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="12" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="49" userLabel="*" customClass="UIDigitButton">
|
||||
<rect key="frame" x="-20" y="196" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_star_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_star_over.png"/>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="13" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="48" userLabel="0" customClass="UIDigitButton">
|
||||
<rect key="frame" x="87" y="196" width="106" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_zero_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_zero_over.png"/>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="14" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="47" userLabel="#" customClass="UIDigitButton">
|
||||
<rect key="frame" x="193" y="196" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_sharp_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_sharp_over.png"/>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view tag="15" contentMode="scaleToFill" id="34" userLabel="optionsView">
|
||||
<rect key="frame" x="239" y="552" width="81" height="133"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" tag="16" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="61" userLabel="optionsTansferButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="81" height="69"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label=""/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="28" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Transfer" backgroundImage="options_transfer_default_landscape.png">
|
||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" backgroundImage="options_transfer_disabled_landscape.png">
|
||||
<color key="titleColor" red="0.65098039220000004" green="0.70196078429999997" blue="0.74901960779999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="selected">
|
||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="options_transfer_over_landscape.png">
|
||||
<color key="titleColor" red="0.81176470590000005" green="0.29803921570000003" blue="0.16078431369999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
</button>
|
||||
<button opaque="NO" tag="17" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="60" userLabel="optionsAddButton">
|
||||
<rect key="frame" x="0.0" y="65" width="81" height="69"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label=""/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="28" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Add call" backgroundImage="options_add_default_landscape.png">
|
||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" backgroundImage="options_add_disabled_landscape.png">
|
||||
<color key="titleColor" red="0.65098039220000004" green="0.70196078429999997" blue="0.74901960779999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="selected">
|
||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="options_add_over_landscape.png">
|
||||
<color key="titleColor" red="0.81176470590000005" green="0.29803921570000003" blue="0.16078431369999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view tag="18" contentMode="scaleToFill" id="36" userLabel="buttons">
|
||||
<rect key="frame" x="0.0" y="663" width="1024" height="85"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" tag="19" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="40" userLabel="videoButton" customClass="UIVideoButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="80" height="85"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label=""/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="54" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Video" backgroundImage="video_off_default_landscape.png">
|
||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" backgroundImage="video_off_disabled_landscape.png">
|
||||
<color key="titleColor" red="0.65098039220000004" green="0.70196078429999997" blue="0.74901960779999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="selected" backgroundImage="video_on_default_landscape.png">
|
||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="video_off_over_landscape.png">
|
||||
<color key="titleColor" red="0.81176470590000005" green="0.29803921570000003" blue="0.16078431369999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<outlet property="waitView" destination="46" id="63"/>
|
||||
</connections>
|
||||
</button>
|
||||
<activityIndicatorView hidden="YES" opaque="NO" tag="20" contentMode="scaleToFill" hidesWhenStopped="YES" style="whiteLarge" id="46" userLabel="videoWaitView">
|
||||
<rect key="frame" x="20" y="20" width="37" height="37"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
</activityIndicatorView>
|
||||
<button opaque="NO" tag="21" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="41" userLabel="microButton" customClass="UIMicroButton">
|
||||
<rect key="frame" x="80" y="0.0" width="80" height="85"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label=""/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="54" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Micro" backgroundImage="micro_off_default_landscape.png">
|
||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" backgroundImage="micro_off_disabled_landscape.png">
|
||||
<color key="titleColor" red="0.65098039220000004" green="0.70196078429999997" blue="0.74901960779999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="selected" backgroundImage="micro_on_default_landscape.png">
|
||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="micro_off_over_landscape.png">
|
||||
<color key="titleColor" red="0.81176470590000005" green="0.29803921570000003" blue="0.16078431369999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
</button>
|
||||
<button opaque="NO" tag="22" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="42" userLabel="speakerButton" customClass="UISpeakerButton">
|
||||
<rect key="frame" x="160" y="0.0" width="80" height="85"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label=""/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="54" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Speaker" backgroundImage="speaker_off_default_landscape.png">
|
||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" title="Speaker" backgroundImage="speaker_off_disabled_landscape.png">
|
||||
<color key="titleColor" red="0.65098039220000004" green="0.70196078429999997" blue="0.74901960779999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="selected" backgroundImage="speaker_on_default_landscape.png">
|
||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="speaker_off_over_landscape.png">
|
||||
<color key="titleColor" red="0.81176470590000005" green="0.29803921570000003" blue="0.16078431369999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
</button>
|
||||
<button opaque="NO" tag="23" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="39" userLabel="optionsButton" customClass="UIToggleButton">
|
||||
<rect key="frame" x="240" y="0.0" width="80" height="85"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label=""/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="54" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Options" backgroundImage="options_default_landscape.png">
|
||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" backgroundImage="options_disabled_landscape.png">
|
||||
<color key="titleColor" red="0.65098039220000004" green="0.70196078429999997" blue="0.74901960779999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="selected" backgroundImage="options_selected_landscape.png">
|
||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="options_over_landscape.png">
|
||||
<color key="titleColor" red="0.81176470590000005" green="0.29803921570000003" blue="0.16078431369999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
</button>
|
||||
<button opaque="NO" tag="24" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="43" userLabel="pauseButton" customClass="UIPauseButton">
|
||||
<rect key="frame" x="701" y="0.0" width="87" height="85"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label=""/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" image="pause_off_default_landscape.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" image="pause_on_default_landscape.png"/>
|
||||
<state key="highlighted" image="pause_off_over_landscape.png"/>
|
||||
</button>
|
||||
<button hidden="YES" opaque="NO" tag="25" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="44" userLabel="conferenceButton">
|
||||
<rect key="frame" x="701" y="0.0" width="87" height="85"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label=""/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" image="conference_default_landscape.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="conference_over_landscape.png"/>
|
||||
</button>
|
||||
<button opaque="NO" tag="26" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="45" userLabel="hangupButton" customClass="UIHangUpButton">
|
||||
<rect key="frame" x="875" y="0.0" width="149" height="85"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label=""/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" image="hangup_default_landscape.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="hangup_over_landscape.png"/>
|
||||
</button>
|
||||
<button opaque="NO" tag="27" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="38" userLabel="dialerButton" customClass="UIToggleButton">
|
||||
<rect key="frame" x="788" y="0.0" width="87" height="85"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label=""/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" image="dialer_alt_default_landscape.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" image="dialer_alt_default_landscape.png"/>
|
||||
<state key="selected" image="dialer_alt_back_default_landscape.png"/>
|
||||
<state key="highlighted" image="dialer_alt_over_landscape.png"/>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
|
||||
</view>
|
||||
<view autoresizesSubviews="NO" contentMode="scaleToFill" id="3" userLabel="Portrait View" customClass="UITransparentView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="768" height="1004"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<view hidden="YES" autoresizesSubviews="NO" opaque="NO" clearsContextBeforeDrawing="NO" userInteractionEnabled="NO" tag="-1" contentMode="scaleToFill" id="7" userLabel="mask">
|
||||
<rect key="frame" x="0.0" y="936" width="768" height="68"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" red="0.0" green="1" blue="0.19194547549999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</view>
|
||||
<view tag="1" contentMode="scaleToFill" id="5" userLabel="padView">
|
||||
<rect key="frame" x="244" y="372" width="281" height="260"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" tag="2" contentMode="scaleToFill" image="dialer_alt_background.png" id="18" userLabel="background">
|
||||
<rect key="frame" x="0.0" y="0.0" width="281" height="260"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
</imageView>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="3" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="19" userLabel="1" customClass="UIDigitButton">
|
||||
<rect key="frame" x="-20" y="10" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" red="0.40000001000000002" green="1" blue="1" alpha="0.0" colorSpace="calibratedRGB"/>
|
||||
<accessibility key="accessibilityConfiguration" label="1"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_one_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_one_over.png"/>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="4" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="20" userLabel="2" customClass="UIDigitButton">
|
||||
<rect key="frame" x="87" y="10" width="106" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="2"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_two_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_two_over.png"/>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="21" userLabel="3" customClass="UIDigitButton">
|
||||
<rect key="frame" x="193" y="10" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="3"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_three_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_three_over.png"/>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="6" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="22" userLabel="4" customClass="UIDigitButton">
|
||||
<rect key="frame" x="-20" y="72" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="4"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_four_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_four_over.png"/>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="7" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="23" userLabel="5" customClass="UIDigitButton">
|
||||
<rect key="frame" x="87" y="72" width="106" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="5"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_five_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_five_over.png"/>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="8" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="24" userLabel="6" customClass="UIDigitButton">
|
||||
<rect key="frame" x="193" y="72" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="6"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_six_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_six_over.png"/>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="9" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="25" userLabel="7" customClass="UIDigitButton">
|
||||
<rect key="frame" x="-20" y="134" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="7"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_seven_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_seven_over.png"/>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="10" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="26" userLabel="8" customClass="UIDigitButton">
|
||||
<rect key="frame" x="87" y="134" width="106" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="8"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_eight_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_eight_over.png"/>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="11" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="27" userLabel="9" customClass="UIDigitButton">
|
||||
<rect key="frame" x="193" y="134" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="9"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_nine_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_nine_over.png"/>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="12" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="28" userLabel="*" customClass="UIDigitButton">
|
||||
<rect key="frame" x="-20" y="196" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Star"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_star_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_star_over.png"/>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="13" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="29" userLabel="0" customClass="UIDigitButton">
|
||||
<rect key="frame" x="87" y="196" width="106" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="0"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_zero_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_zero_over.png"/>
|
||||
</button>
|
||||
<button opaque="NO" clearsContextBeforeDrawing="NO" tag="14" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="30" userLabel="#" customClass="UIDigitButton">
|
||||
<rect key="frame" x="193" y="196" width="107" height="54"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Sharp"/>
|
||||
<fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="15"/>
|
||||
<state key="normal" image="numpad_sharp_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="numpad_sharp_over.png"/>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view tag="15" contentMode="scaleToFill" id="4" userLabel="optionsView">
|
||||
<rect key="frame" x="239" y="809" width="81" height="133"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" tag="16" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="32" userLabel="optionsTansferButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="81" height="69"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Transfer call"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="28" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Transfer" backgroundImage="options_transfer_default.png">
|
||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" backgroundImage="options_transfer_disabled.png">
|
||||
<color key="titleColor" red="0.65098039220000004" green="0.70196078429999997" blue="0.74901960779999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="selected">
|
||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="options_transfer_over.png">
|
||||
<color key="titleColor" red="0.81176470590000005" green="0.29803921570000003" blue="0.16078431369999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onOptionsTransferClick:" destination="-1" eventType="touchUpInside" id="95"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" tag="17" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="31" userLabel="optionsAddButton">
|
||||
<rect key="frame" x="0.0" y="64" width="81" height="69"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Add call"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="28" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Add call" backgroundImage="options_add_default.png">
|
||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled">
|
||||
<color key="titleColor" red="0.65098039220000004" green="0.70196078429999997" blue="0.74901960779999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="selected">
|
||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="options_add_over.png">
|
||||
<color key="titleColor" red="0.81176470590000005" green="0.29803921570000003" blue="0.16078431369999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onOptionsAddClick:" destination="-1" eventType="touchUpInside" id="94"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view tag="18" contentMode="scaleToFill" id="6" userLabel="buttons">
|
||||
<rect key="frame" x="0.0" y="919" width="768" height="85"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" tag="19" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="17" userLabel="videoButton" customClass="UIVideoButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="80" height="85"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Video"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="54" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Video" backgroundImage="video_off_default.png">
|
||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" backgroundImage="video_off_disabled.png">
|
||||
<color key="titleColor" red="0.65098039220000004" green="0.70196078429999997" blue="0.74901960779999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="selected" backgroundImage="video_on_default.png">
|
||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="video_off_over.png">
|
||||
<color key="titleColor" red="0.81176470590000005" green="0.29803921570000003" blue="0.16078431369999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<outlet property="waitView" destination="9" id="62"/>
|
||||
</connections>
|
||||
</button>
|
||||
<activityIndicatorView hidden="YES" opaque="NO" tag="20" contentMode="scaleToFill" hidesWhenStopped="YES" style="whiteLarge" id="9" userLabel="videoWaitView">
|
||||
<rect key="frame" x="20" y="20" width="37" height="37"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
</activityIndicatorView>
|
||||
<button opaque="NO" tag="21" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="16" userLabel="microButton" customClass="UIMicroButton">
|
||||
<rect key="frame" x="80" y="0.0" width="80" height="85"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Micro"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="54" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Micro" backgroundImage="micro_off_default.png">
|
||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled">
|
||||
<color key="titleColor" red="0.65098039220000004" green="0.70196078429999997" blue="0.74901960779999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="selected" backgroundImage="micro_on_default.png">
|
||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="micro_off_over.png">
|
||||
<color key="titleColor" red="0.81176470590000005" green="0.29803921570000003" blue="0.16078431369999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
</button>
|
||||
<button opaque="NO" tag="22" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="15" userLabel="speakerButton" customClass="UISpeakerButton">
|
||||
<rect key="frame" x="160" y="0.0" width="80" height="85"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Speaker"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="54" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Speaker" backgroundImage="speaker_off_default.png">
|
||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" title="Speaker" backgroundImage="speaker_off_disabled.png">
|
||||
<color key="titleColor" red="0.65098039220000004" green="0.70196078429999997" blue="0.74901960779999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="selected" backgroundImage="speaker_on_default.png">
|
||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="speaker_off_over.png">
|
||||
<color key="titleColor" red="0.81176470590000005" green="0.29803921570000003" blue="0.16078431369999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
</button>
|
||||
<button opaque="NO" tag="23" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="14" userLabel="optionsButton" customClass="UIToggleButton">
|
||||
<rect key="frame" x="240" y="0.0" width="80" height="85"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Options"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="13"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="54" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Options" backgroundImage="options_default.png">
|
||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" backgroundImage="options_disabled.png">
|
||||
<color key="titleColor" red="0.65098039220000004" green="0.70196078429999997" blue="0.74901960779999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="selected" backgroundImage="options_selected.png">
|
||||
<color key="titleColor" red="0.25490196079999999" green="0.28235294119999998" blue="0.30980392159999998" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="options_over.png">
|
||||
<color key="titleColor" red="0.81176470590000005" green="0.29803921570000003" blue="0.16078431369999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onOptionsClick:" destination="-1" eventType="touchUpInside" id="91"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" tag="24" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="13" userLabel="pauseButton" customClass="UIPauseButton">
|
||||
<rect key="frame" x="445" y="0.0" width="87" height="85"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Pause"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" image="pause_off_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" image="pause_on_default.png"/>
|
||||
<state key="highlighted" image="pause_off_over.png"/>
|
||||
</button>
|
||||
<button hidden="YES" opaque="NO" tag="25" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="12" userLabel="conferenceButton">
|
||||
<rect key="frame" x="445" y="0.0" width="87" height="85"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Start conference"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" image="conference_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="conference_over.png"/>
|
||||
<connections>
|
||||
<action selector="onConferenceClick:" destination="-1" eventType="touchUpInside" id="93"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" tag="26" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="11" userLabel="hangupButton" customClass="UIHangUpButton">
|
||||
<rect key="frame" x="619" y="0.0" width="149" height="85"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Hangup"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" image="hangup_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="hangup_over.png"/>
|
||||
</button>
|
||||
<button opaque="NO" tag="27" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="10" userLabel="dialerButton" customClass="UIToggleButton">
|
||||
<rect key="frame" x="532" y="0.0" width="87" height="85"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Back"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" image="dialer_alt_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="disabled" image="dialer_alt_default.png"/>
|
||||
<state key="selected" image="dialer_alt_back_default.png"/>
|
||||
<state key="highlighted" image="dialer_alt_over.png"/>
|
||||
<connections>
|
||||
<action selector="onPadClick:" destination="-1" eventType="touchUpInside" id="92"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="conference_default.png" width="173" height="170"/>
|
||||
<image name="conference_default_landscape.png" width="173" height="170"/>
|
||||
<image name="conference_over.png" width="173" height="170"/>
|
||||
<image name="conference_over_landscape.png" width="173" height="170"/>
|
||||
<image name="dialer_alt_back_default.png" width="173" height="170"/>
|
||||
<image name="dialer_alt_back_default_landscape.png" width="173" height="170"/>
|
||||
<image name="dialer_alt_background.png" width="530" height="526"/>
|
||||
<image name="dialer_alt_default.png" width="173" height="170"/>
|
||||
<image name="dialer_alt_default_landscape.png" width="173" height="170"/>
|
||||
<image name="dialer_alt_over.png" width="173" height="170"/>
|
||||
<image name="dialer_alt_over_landscape.png" width="173" height="170"/>
|
||||
<image name="hangup_default.png" width="297" height="170"/>
|
||||
<image name="hangup_default_landscape.png" width="297" height="170"/>
|
||||
<image name="hangup_over.png" width="297" height="170"/>
|
||||
<image name="hangup_over_landscape.png" width="297" height="170"/>
|
||||
<image name="micro_off_default.png" width="159" height="170"/>
|
||||
<image name="micro_off_default_landscape.png" width="159" height="170"/>
|
||||
<image name="micro_off_disabled_landscape.png" width="159" height="170"/>
|
||||
<image name="micro_off_over.png" width="159" height="170"/>
|
||||
<image name="micro_off_over_landscape.png" width="159" height="170"/>
|
||||
<image name="micro_on_default.png" width="159" height="170"/>
|
||||
<image name="micro_on_default_landscape.png" width="159" height="170"/>
|
||||
<image name="numpad_eight_default.png" width="220" height="113"/>
|
||||
<image name="numpad_eight_over.png" width="220" height="113"/>
|
||||
<image name="numpad_five_default.png" width="220" height="113"/>
|
||||
<image name="numpad_five_over.png" width="220" height="113"/>
|
||||
<image name="numpad_four_default.png" width="210" height="113"/>
|
||||
<image name="numpad_four_over.png" width="210" height="113"/>
|
||||
<image name="numpad_nine_default.png" width="210" height="113"/>
|
||||
<image name="numpad_nine_over.png" width="210" height="113"/>
|
||||
<image name="numpad_one_default.png" width="210" height="113"/>
|
||||
<image name="numpad_one_over.png" width="210" height="113"/>
|
||||
<image name="numpad_seven_default.png" width="210" height="113"/>
|
||||
<image name="numpad_seven_over.png" width="210" height="113"/>
|
||||
<image name="numpad_sharp_default.png" width="210" height="113"/>
|
||||
<image name="numpad_sharp_over.png" width="210" height="113"/>
|
||||
<image name="numpad_six_default.png" width="210" height="113"/>
|
||||
<image name="numpad_six_over.png" width="210" height="113"/>
|
||||
<image name="numpad_star_default.png" width="210" height="113"/>
|
||||
<image name="numpad_star_over.png" width="210" height="113"/>
|
||||
<image name="numpad_three_default.png" width="210" height="113"/>
|
||||
<image name="numpad_three_over.png" width="210" height="113"/>
|
||||
<image name="numpad_two_default.png" width="220" height="113"/>
|
||||
<image name="numpad_two_over.png" width="220" height="113"/>
|
||||
<image name="numpad_zero_default.png" width="220" height="113"/>
|
||||
<image name="numpad_zero_over.png" width="220" height="113"/>
|
||||
<image name="options_add_default.png" width="162" height="137"/>
|
||||
<image name="options_add_default_landscape.png" width="162" height="137"/>
|
||||
<image name="options_add_disabled_landscape.png" width="162" height="137"/>
|
||||
<image name="options_add_over.png" width="162" height="137"/>
|
||||
<image name="options_add_over_landscape.png" width="162" height="137"/>
|
||||
<image name="options_default.png" width="162" height="170"/>
|
||||
<image name="options_default_landscape.png" width="162" height="170"/>
|
||||
<image name="options_disabled.png" width="162" height="170"/>
|
||||
<image name="options_disabled_landscape.png" width="162" height="170"/>
|
||||
<image name="options_over.png" width="162" height="170"/>
|
||||
<image name="options_over_landscape.png" width="162" height="170"/>
|
||||
<image name="options_selected.png" width="162" height="170"/>
|
||||
<image name="options_selected_landscape.png" width="162" height="170"/>
|
||||
<image name="options_transfer_default.png" width="162" height="137"/>
|
||||
<image name="options_transfer_default_landscape.png" width="162" height="137"/>
|
||||
<image name="options_transfer_disabled.png" width="162" height="137"/>
|
||||
<image name="options_transfer_disabled_landscape.png" width="162" height="137"/>
|
||||
<image name="options_transfer_over.png" width="162" height="137"/>
|
||||
<image name="options_transfer_over_landscape.png" width="162" height="137"/>
|
||||
<image name="pause_off_default.png" width="173" height="170"/>
|
||||
<image name="pause_off_default_landscape.png" width="173" height="170"/>
|
||||
<image name="pause_off_over.png" width="173" height="170"/>
|
||||
<image name="pause_off_over_landscape.png" width="173" height="170"/>
|
||||
<image name="pause_on_default.png" width="173" height="170"/>
|
||||
<image name="pause_on_default_landscape.png" width="173" height="170"/>
|
||||
<image name="speaker_off_default.png" width="160" height="170"/>
|
||||
<image name="speaker_off_default_landscape.png" width="160" height="170"/>
|
||||
<image name="speaker_off_disabled.png" width="160" height="170"/>
|
||||
<image name="speaker_off_disabled_landscape.png" width="160" height="170"/>
|
||||
<image name="speaker_off_over.png" width="160" height="170"/>
|
||||
<image name="speaker_off_over_landscape.png" width="160" height="170"/>
|
||||
<image name="speaker_on_default.png" width="160" height="170"/>
|
||||
<image name="speaker_on_default_landscape.png" width="160" height="170"/>
|
||||
<image name="video_off_default.png" width="162" height="170"/>
|
||||
<image name="video_off_default_landscape.png" width="162" height="170"/>
|
||||
<image name="video_off_disabled.png" width="162" height="170"/>
|
||||
<image name="video_off_disabled_landscape.png" width="162" height="170"/>
|
||||
<image name="video_off_over.png" width="162" height="170"/>
|
||||
<image name="video_off_over_landscape.png" width="162" height="170"/>
|
||||
<image name="video_on_default.png" width="162" height="170"/>
|
||||
<image name="video_on_default_landscape.png" width="162" height="170"/>
|
||||
</resources>
|
||||
</document>
|
||||
480
Classes/LinphoneUI/Base.lproj/UICallCell.xib
Normal file
480
Classes/LinphoneUI/Base.lproj/UICallCell.xib
Normal file
|
|
@ -0,0 +1,480 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="5053" systemVersion="13C64" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1536" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="UICallCell">
|
||||
<connections>
|
||||
<outlet property="addressLabel" destination="17" id="28"/>
|
||||
<outlet property="audioCodecHeaderLabel" destination="85" id="113"/>
|
||||
<outlet property="audioCodecLabel" destination="84" id="114"/>
|
||||
<outlet property="audioDownloadBandwidthHeaderLabel" destination="93" id="115"/>
|
||||
<outlet property="audioDownloadBandwidthLabel" destination="94" id="116"/>
|
||||
<outlet property="audioIceConnectivityHeaderLabel" destination="98" id="117"/>
|
||||
<outlet property="audioIceConnectivityLabel" destination="97" id="118"/>
|
||||
<outlet property="audioStatsView" destination="76" id="119"/>
|
||||
<outlet property="audioUploadBandwidthHeaderLabel" destination="91" id="120"/>
|
||||
<outlet property="audioUploadBandwidthLabel" destination="90" id="121"/>
|
||||
<outlet property="avatarImage" destination="29" id="34"/>
|
||||
<outlet property="avatarView" destination="31" id="41"/>
|
||||
<outlet property="backgroundView" destination="45" id="46"/>
|
||||
<outlet property="headerBackgroundHighlightImage" destination="56" id="59"/>
|
||||
<outlet property="headerBackgroundImage" destination="52" id="54"/>
|
||||
<outlet property="headerView" destination="36" id="42"/>
|
||||
<outlet property="otherView" destination="77" id="78"/>
|
||||
<outlet property="pauseButton" destination="47" id="48"/>
|
||||
<outlet property="removeButton" destination="49" id="50"/>
|
||||
<outlet property="selectedBackgroundView" destination="45" id="58"/>
|
||||
<outlet property="stateImage" destination="18" id="33"/>
|
||||
<outlet property="stateLabel" destination="19" id="32"/>
|
||||
<outlet property="videoCodecHeaderLabel" destination="105" id="122"/>
|
||||
<outlet property="videoCodecLabel" destination="106" id="123"/>
|
||||
<outlet property="videoDownloadBandwidthHeaderLabel" destination="110" id="124"/>
|
||||
<outlet property="videoDownloadBandwidthLabel" destination="109" id="125"/>
|
||||
<outlet property="videoIceConnectivityHeaderLabel" destination="111" id="126"/>
|
||||
<outlet property="videoIceConnectivityLabel" destination="112" id="127"/>
|
||||
<outlet property="videoRecvSizeHeaderLabel" destination="nNJ-4U-pl2" id="r20-yj-TG9"/>
|
||||
<outlet property="videoRecvSizeLabel" destination="RxS-YG-dqM" id="fPi-Uk-MHy"/>
|
||||
<outlet property="videoSentSizeHeaderLabel" destination="6PM-O1-cYd" id="G8P-SK-lgu"/>
|
||||
<outlet property="videoSentSizeLabel" destination="CCZ-g0-5g1" id="kgM-NY-RUy"/>
|
||||
<outlet property="videoStatsView" destination="99" id="128"/>
|
||||
<outlet property="videoUploadBandwidthHeaderLabel" destination="107" id="129"/>
|
||||
<outlet property="videoUploadBandwidthLabel" destination="108" id="130"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="16">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="300"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" id="77" userLabel="otherView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="300"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" id="31" userLabel="avatarView">
|
||||
<rect key="frame" x="0.0" y="63" width="320" height="237"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="44">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="250"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<accessibility key="accessibilityConfiguration">
|
||||
<bool key="isElement" value="NO"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal">
|
||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
</button>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="avatar_shadow.png" id="30" userLabel="avatarShadowImage">
|
||||
<rect key="frame" x="0.0" y="-15" width="320" height="262"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="avatar_unknown.png" id="29" userLabel="avatarImage">
|
||||
<rect key="frame" x="80" y="2" width="160" height="170"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Contact's avatar">
|
||||
<accessibilityTraits key="traits" none="YES" image="YES" notEnabled="YES"/>
|
||||
<bool key="isElement" value="YES"/>
|
||||
</accessibility>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="0.5" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="76" userLabel="audioStatsView">
|
||||
<rect key="frame" x="0.0" y="63" width="320" height="237"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Audio" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="95" userLabel="audioLabel">
|
||||
<rect key="frame" x="10" y="21" width="300" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Audio section"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="22"/>
|
||||
<color key="textColor" red="0.35686275360000003" green="0.3960784376" blue="0.43529412150000002" alpha="1" colorSpace="deviceRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<view contentMode="scaleToFill" id="83" userLabel="audioCodecView">
|
||||
<rect key="frame" x="10" y="50" width="300" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Codec:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="85" userLabel="audioCodecHeaderLabel">
|
||||
<rect key="frame" x="0.0" y="0.0" width="60" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration">
|
||||
<bool key="isElement" value="NO"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="SILK" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="84" userLabel="audioCodecLabel">
|
||||
<rect key="frame" x="68" y="0.0" width="232" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Audio codec">
|
||||
<accessibilityTraits key="traits" none="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="89" userLabel="audioUploadBandwidthView">
|
||||
<rect key="frame" x="10" y="80" width="300" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Upload bandwidth:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="91" userLabel="audioUploadBandwidthHeaderLabel">
|
||||
<rect key="frame" x="0.0" y="0.0" width="160" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration">
|
||||
<bool key="isElement" value="NO"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="2 KB/s" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="90" userLabel="audioUploadBandwidthLabel">
|
||||
<rect key="frame" x="168" y="0.0" width="132" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Audio upload bandwidth">
|
||||
<accessibilityTraits key="traits" none="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="92" userLabel="audioDownloadBandwidthView">
|
||||
<rect key="frame" x="10" y="110" width="300" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Download bandwidth:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="93" userLabel="audioDownloadBandwidthHeaderLabel">
|
||||
<rect key="frame" x="0.0" y="0.0" width="182" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration">
|
||||
<bool key="isElement" value="NO"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="10.0 KB/s" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="94" userLabel="audioDownloadBandwidthLabel">
|
||||
<rect key="frame" x="190" y="0.0" width="110.00000000000001" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Video upload bandwidth">
|
||||
<accessibilityTraits key="traits" none="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="96" userLabel="audioIceConnectivityView">
|
||||
<rect key="frame" x="10" y="140" width="300" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="ICE connectivity:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="98" userLabel="audioIceConnectivityHeaderLabel">
|
||||
<rect key="frame" x="0.0" y="0.0" width="142" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration">
|
||||
<bool key="isElement" value="NO"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="not activated" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="97" userLabel="audioIceConnectivityLabel">
|
||||
<rect key="frame" x="150" y="0.0" width="150" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Audio ICE connectivity state">
|
||||
<accessibilityTraits key="traits" none="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="0.5" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="99" userLabel="videoStatsView">
|
||||
<rect key="frame" x="0.0" y="63" width="320" height="237"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Video" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="101" userLabel="videoLabel">
|
||||
<rect key="frame" x="10" y="21" width="300" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Video section"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="22"/>
|
||||
<color key="textColor" red="0.35686275360000003" green="0.3960784376" blue="0.43529412150000002" alpha="1" colorSpace="deviceRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<view contentMode="scaleToFill" id="104" userLabel="videoCodecView">
|
||||
<rect key="frame" x="78" y="23" width="232" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Codec:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="105" userLabel="videoCodecHeaderLabel">
|
||||
<rect key="frame" x="0.0" y="0.0" width="60" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration">
|
||||
<bool key="isElement" value="NO"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="SILK" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="106" userLabel="videoCodecLabel">
|
||||
<rect key="frame" x="68" y="0.0" width="164" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Video codec">
|
||||
<accessibilityTraits key="traits" none="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="103" userLabel="videoUploadBandwidthView">
|
||||
<rect key="frame" x="10" y="113" width="300" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Upload bandwidth:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="107" userLabel="videoUploadBandwidthHeaderLabel">
|
||||
<rect key="frame" x="0.0" y="0.0" width="160" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration">
|
||||
<bool key="isElement" value="NO"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="2 KB/s" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="108" userLabel="videoUploadBandwidthLabel">
|
||||
<rect key="frame" x="168" y="0.0" width="132" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Video upload bandwidth">
|
||||
<accessibilityTraits key="traits" none="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="j5j-bZ-C2L" userLabel="videoSentSizeView">
|
||||
<rect key="frame" x="10" y="50" width="300" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Size sent:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="6PM-O1-cYd" userLabel="videoSentSizeHeaderLabel">
|
||||
<rect key="frame" x="0.0" y="0.0" width="160" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration">
|
||||
<bool key="isElement" value="NO"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="320x240" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="CCZ-g0-5g1" userLabel="videoSentSizeLabel">
|
||||
<rect key="frame" x="168" y="0.0" width="132" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Video upload bandwidth">
|
||||
<accessibilityTraits key="traits" none="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="6oX-23-Ivn" userLabel="videoRecvSizeView">
|
||||
<rect key="frame" x="10" y="79" width="300" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Size received:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="nNJ-4U-pl2" userLabel="videoRecvSizeHeaderLabel">
|
||||
<rect key="frame" x="0.0" y="0.0" width="160" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration">
|
||||
<bool key="isElement" value="NO"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="320x240" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="RxS-YG-dqM" userLabel="videoRecvSizeLabel">
|
||||
<rect key="frame" x="168" y="0.0" width="132" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Video upload bandwidth">
|
||||
<accessibilityTraits key="traits" none="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="102" userLabel="audioDownloadBandwidthView">
|
||||
<rect key="frame" x="10" y="143" width="300" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Download bandwidth:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="110" userLabel="videoDownloadBandwidthHeaderLabel">
|
||||
<rect key="frame" x="0.0" y="0.0" width="182" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration">
|
||||
<bool key="isElement" value="NO"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="10.0 KB/s" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="109" userLabel="videoDownloadBandwidthLabel">
|
||||
<rect key="frame" x="190" y="0.0" width="109.99999999999999" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Audio download bandwidth">
|
||||
<accessibilityTraits key="traits" none="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="100" userLabel="audioIceConnectivityView">
|
||||
<rect key="frame" x="10" y="173" width="300" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="ICE connectivity:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="111" userLabel="videoIceConnectivityHeaderLabel">
|
||||
<rect key="frame" x="0.0" y="0.0" width="142" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration">
|
||||
<bool key="isElement" value="NO"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="not activated" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="112" userLabel="videoIceConnectivityLabel">
|
||||
<rect key="frame" x="150" y="0.0" width="150" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Video ICE connectivity state">
|
||||
<accessibilityTraits key="traits" none="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="0.5" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="36" userLabel="headerView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="63"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="cell_call_first.png" id="52" userLabel="headerBackgroundImage">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="63"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" alpha="0.0" contentMode="scaleToFill" id="56" userLabel="headerBackgroundHighlightImage">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="63"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<label autoresizesSubviews="NO" opaque="NO" userInteractionEnabled="NO" contentMode="left" text="0102030405" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="17" userLabel="addressLabel">
|
||||
<rect key="frame" x="95" y="0.0" width="125" height="51"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Contact's name">
|
||||
<accessibilityTraits key="traits" none="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="30"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" id="18" userLabel="stateImage">
|
||||
<rect key="frame" x="224" y="14" width="25" height="25"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Call state">
|
||||
<accessibilityTraits key="traits" none="YES" image="YES" notEnabled="YES"/>
|
||||
<bool key="isElement" value="YES"/>
|
||||
</accessibility>
|
||||
</imageView>
|
||||
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="49" userLabel="removeButton" customClass="UIPauseButton">
|
||||
<rect key="frame" x="216" y="6" width="41" height="41"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Remove"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<inset key="contentEdgeInsets" minX="8" minY="8" maxX="8" maxY="8"/>
|
||||
<state key="normal" image="call_state_delete_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="call_state_delete_over.png"/>
|
||||
<connections>
|
||||
<action selector="doRemoveClick:" destination="-1" eventType="touchUpInside" id="51"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="47" userLabel="pauseButton" customClass="UIPauseButton">
|
||||
<rect key="frame" x="216" y="6" width="41" height="41"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Pause"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<inset key="contentEdgeInsets" minX="8" minY="8" maxX="8" maxY="8"/>
|
||||
<state key="normal" image="call_state_play_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" image="call_state_pause_default.png"/>
|
||||
<state key="highlighted" image="call_state_play_over.png"/>
|
||||
</button>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="12:34" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="19" userLabel="stateLabel">
|
||||
<rect key="frame" x="262" y="12" width="50" height="29"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Duration">
|
||||
<accessibilityTraits key="traits" none="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="15"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="scrollViewTexturedBackgroundColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="38" userLabel="toggleButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="200" height="63"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Expand"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal">
|
||||
<color key="titleColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="doHeaderClick:" destination="-1" eventType="touchUpInside" id="39"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view autoresizesSubviews="NO" contentMode="scaleToFill" id="45" userLabel="background">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="460"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="avatar_shadow.png" width="640" height="523"/>
|
||||
<image name="avatar_unknown.png" width="320" height="339"/>
|
||||
<image name="call_state_delete_default.png" width="43" height="43"/>
|
||||
<image name="call_state_delete_over.png" width="43" height="43"/>
|
||||
<image name="call_state_pause_default.png" width="43" height="50"/>
|
||||
<image name="call_state_play_default.png" width="43" height="46"/>
|
||||
<image name="call_state_play_over.png" width="43" height="46"/>
|
||||
<image name="cell_call_first.png" width="640" height="125"/>
|
||||
</resources>
|
||||
</document>
|
||||
57
Classes/LinphoneUI/Base.lproj/UIConferenceHeader.xib
Normal file
57
Classes/LinphoneUI/Base.lproj/UIConferenceHeader.xib
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4514" systemVersion="13B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1072" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="UIConferenceHeader">
|
||||
<connections>
|
||||
<outlet property="pauseButton" destination="13" id="14"/>
|
||||
<outlet property="view" destination="4" id="5"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="4">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="68"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="header_conference.png" id="7" userLabel="backgroundImage">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="68"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="">
|
||||
<accessibilityTraits key="traits" none="YES" image="YES" notEnabled="YES"/>
|
||||
<bool key="isElement" value="NO"/>
|
||||
</accessibility>
|
||||
</imageView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="4" contentMode="left" text="Conference" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="15" userLabel="headerLabel">
|
||||
<rect key="frame" x="10" y="-3" width="206" height="50"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Conference"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="27"/>
|
||||
<color key="textColor" red="0.7254902124" green="0.76862746479999999" blue="0.79607844350000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="13" userLabel="pauseButton" customClass="UIPauseButton">
|
||||
<rect key="frame" x="216" y="6" width="41" height="41"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Pause"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<inset key="contentEdgeInsets" minX="8" minY="8" maxX="8" maxY="8"/>
|
||||
<state key="normal" image="call_state_play_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" image="call_state_pause_default.png"/>
|
||||
<state key="highlighted" image="call_state_play_over.png"/>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="call_state_pause_default.png" width="43" height="50"/>
|
||||
<image name="call_state_play_default.png" width="43" height="46"/>
|
||||
<image name="call_state_play_over.png" width="43" height="46"/>
|
||||
<image name="header_conference.png" width="640" height="135"/>
|
||||
</resources>
|
||||
</document>
|
||||
41
Classes/LinphoneUI/Base.lproj/UIContactDetailsFooter.xib
Normal file
41
Classes/LinphoneUI/Base.lproj/UIContactDetailsFooter.xib
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4514" systemVersion="13B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1072" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="UIContactDetailsFooter">
|
||||
<connections>
|
||||
<outlet property="removeButton" destination="5" id="6"/>
|
||||
<outlet property="view" destination="4" id="7"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view clipsSubviews="YES" contentMode="scaleToFill" id="4">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="80"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="5" userLabel="removeButton">
|
||||
<rect key="frame" x="23" y="25" width="275" height="50"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Remove"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="26"/>
|
||||
<state key="normal" title="Remove Contact" backgroundImage="button_alert_background_default.png">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="button_alert_background_over.png"/>
|
||||
<connections>
|
||||
<action selector="onRemoveClick:" destination="-1" eventType="touchUpInside" id="10"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="button_alert_background_default.png" width="550" height="101"/>
|
||||
<image name="button_alert_background_over.png" width="550" height="101"/>
|
||||
</resources>
|
||||
</document>
|
||||
88
Classes/LinphoneUI/Base.lproj/UIContactDetailsHeader.xib
Normal file
88
Classes/LinphoneUI/Base.lproj/UIContactDetailsHeader.xib
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4514" systemVersion="13B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1072" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="UIContactDetailsHeader">
|
||||
<connections>
|
||||
<outlet property="addressLabel" destination="8" id="21"/>
|
||||
<outlet property="avatarImage" destination="6" id="9"/>
|
||||
<outlet property="editView" destination="13" id="16"/>
|
||||
<outlet property="normalView" destination="12" id="17"/>
|
||||
<outlet property="tableView" destination="15" id="20"/>
|
||||
<outlet property="view" destination="4" id="5"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="4">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="170"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="avatar_shadow_small.png" id="7" userLabel="avatarShadowBackground">
|
||||
<rect key="frame" x="-13" y="-5" width="131" height="107"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="avatar_unknown_small.png" id="6" userLabel="avatarImage">
|
||||
<rect key="frame" x="20" y="6" width="65" height="65"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="22" userLabel="avatarButton">
|
||||
<rect key="frame" x="20" y="6" width="65" height="65"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Contact's avatar">
|
||||
<accessibilityTraits key="traits" none="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal">
|
||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onAvatarClick:" destination="-1" eventType="touchUpInside" id="23"/>
|
||||
</connections>
|
||||
</button>
|
||||
<view contentMode="scaleToFill" id="12" userLabel="normalView">
|
||||
<rect key="frame" x="101" y="0.0" width="219" height="80"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Contact1" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="8" userLabel="addressLabel">
|
||||
<rect key="frame" x="0.0" y="37" width="199" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Contact's name"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="22"/>
|
||||
<color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="13" userLabel="editView">
|
||||
<rect key="frame" x="101" y="0.0" width="219" height="160"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="15">
|
||||
<rect key="frame" x="0.0" y="0.0" width="219" height="160"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
|
||||
<connections>
|
||||
<outlet property="dataSource" destination="-1" id="18"/>
|
||||
<outlet property="delegate" destination="-1" id="19"/>
|
||||
</connections>
|
||||
</tableView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="avatar_shadow_small.png" width="262" height="214"/>
|
||||
<image name="avatar_unknown_small.png" width="131" height="131"/>
|
||||
</resources>
|
||||
</document>
|
||||
191
Classes/LinphoneUI/Base.lproj/UIMainBar.xib
Normal file
191
Classes/LinphoneUI/Base.lproj/UIMainBar.xib
Normal file
|
|
@ -0,0 +1,191 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="5056" systemVersion="13C1021" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1536" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="UIMainBar">
|
||||
<connections>
|
||||
<outlet property="chatButton" destination="5" id="28"/>
|
||||
<outlet property="chatNotificationLabel" destination="38" id="40"/>
|
||||
<outlet property="chatNotificationView" destination="37" id="41"/>
|
||||
<outlet property="contactsButton" destination="8" id="27"/>
|
||||
<outlet property="dialerButton" destination="7" id="12"/>
|
||||
<outlet property="historyButton" destination="6" id="13"/>
|
||||
<outlet property="historyNotificationLabel" destination="34" id="35"/>
|
||||
<outlet property="historyNotificationView" destination="32" id="36"/>
|
||||
<outlet property="portraitView" destination="3" id="43"/>
|
||||
<outlet property="settingsButton" destination="9" id="29"/>
|
||||
<outlet property="view" destination="3" id="14"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view autoresizesSubviews="NO" contentMode="scaleToFill" id="3">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<view hidden="YES" autoresizesSubviews="NO" opaque="NO" clearsContextBeforeDrawing="NO" userInteractionEnabled="NO" tag="-1" contentMode="scaleToFill" id="4" userLabel="mask">
|
||||
<rect key="frame" x="0.0" y="11" width="320" height="66"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" red="0.0" green="1" blue="0.090924573910000001" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</view>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="6" userLabel="history">
|
||||
<rect key="frame" x="0.0" y="0.0" width="64" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="History"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="40" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="History" backgroundImage="history_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" backgroundImage="history_selected.png">
|
||||
<color key="titleColor" red="0.81176471709999998" green="0.29803922770000002" blue="0.16078431900000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="history_over.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onHistoryClick:" destination="-1" eventType="touchUpInside" id="22"/>
|
||||
</connections>
|
||||
</button>
|
||||
<view hidden="YES" autoresizesSubviews="NO" userInteractionEnabled="NO" contentMode="scaleToFill" id="32" userLabel="historyNotificationView">
|
||||
<rect key="frame" x="38" y="1" width="21" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="history_notification.png" id="33" userLabel="historyNotificationImage">
|
||||
<rect key="frame" x="0.0" y="0.0" width="21" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
</imageView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="99" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="34" userLabel="historyNotificationLabel">
|
||||
<rect key="frame" x="2" y="2" width="17" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Missed call(s)">
|
||||
<accessibilityTraits key="traits" none="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="8" userLabel="contacts">
|
||||
<rect key="frame" x="64" y="0.0" width="64" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Contacts"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="40" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Contacts" backgroundImage="contacts_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" backgroundImage="contacts_selected.png">
|
||||
<color key="titleColor" red="0.81176471709999998" green="0.29803922770000002" blue="0.16078431900000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="contacts_over.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onContactsClick:" destination="-1" eventType="touchUpInside" id="23"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="9" userLabel="settings">
|
||||
<rect key="frame" x="256" y="0.0" width="64" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Settings"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="40" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Settings" backgroundImage="settings_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" backgroundImage="settings_selected.png">
|
||||
<color key="titleColor" red="0.81176471709999998" green="0.29803922770000002" blue="0.16078431900000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="settings_over.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onSettingsClick:" destination="-1" eventType="touchUpInside" id="25"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="7" userLabel="dialer">
|
||||
<rect key="frame" x="128" y="0.0" width="64" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Dialer"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" image="dialer_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" image="dialer_selected.png"/>
|
||||
<state key="highlighted" image="dialer_over.png"/>
|
||||
<connections>
|
||||
<action selector="onDialerClick:" destination="-1" eventType="touchUpInside" id="24"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="5" userLabel="chat">
|
||||
<rect key="frame" x="192" y="0.0" width="64" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Chat"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="0.0" minY="40" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Chat" backgroundImage="chat_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" backgroundImage="chat_selected.png">
|
||||
<color key="titleColor" red="0.81176471709999998" green="0.29803922770000002" blue="0.16078431900000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="chat_over.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onChatClick:" destination="-1" eventType="touchUpInside" id="26"/>
|
||||
</connections>
|
||||
</button>
|
||||
<view hidden="YES" autoresizesSubviews="NO" userInteractionEnabled="NO" contentMode="scaleToFill" id="37" userLabel="chatNotificationView">
|
||||
<rect key="frame" x="197" y="1" width="21" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="history_notification.png" id="39" userLabel="chatNotificationImage">
|
||||
<rect key="frame" x="0.0" y="0.0" width="21" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
</imageView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="99" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="38" userLabel="chatNotificationLabel">
|
||||
<rect key="frame" x="2" y="2" width="17" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Missed message(s)">
|
||||
<accessibilityTraits key="traits" none="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" red="0.0" green="1" blue="0.19194547549999999" alpha="0.0" colorSpace="calibratedRGB"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="chat_default.png" width="128" height="154"/>
|
||||
<image name="chat_over.png" width="128" height="154"/>
|
||||
<image name="chat_selected.png" width="128" height="154"/>
|
||||
<image name="contacts_default.png" width="128" height="154"/>
|
||||
<image name="contacts_over.png" width="128" height="154"/>
|
||||
<image name="contacts_selected.png" width="128" height="154"/>
|
||||
<image name="dialer_default.png" width="128" height="154"/>
|
||||
<image name="dialer_over.png" width="128" height="154"/>
|
||||
<image name="dialer_selected.png" width="128" height="154"/>
|
||||
<image name="history_default.png" width="128" height="154"/>
|
||||
<image name="history_notification.png" width="43" height="43"/>
|
||||
<image name="history_over.png" width="128" height="154"/>
|
||||
<image name="history_selected.png" width="128" height="154"/>
|
||||
<image name="settings_default.png" width="128" height="154"/>
|
||||
<image name="settings_over.png" width="128" height="154"/>
|
||||
<image name="settings_selected.png" width="128" height="154"/>
|
||||
</resources>
|
||||
</document>
|
||||
331
Classes/LinphoneUI/Base.lproj/UIMainBar~ipad.xib
Normal file
331
Classes/LinphoneUI/Base.lproj/UIMainBar~ipad.xib
Normal file
|
|
@ -0,0 +1,331 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="5056" systemVersion="13C1021" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1536" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="UIMainBar">
|
||||
<connections>
|
||||
<outlet property="chatButton" destination="7" id="44"/>
|
||||
<outlet property="chatNotificationLabel" destination="14" id="46"/>
|
||||
<outlet property="chatNotificationView" destination="3" id="45"/>
|
||||
<outlet property="contactsButton" destination="9" id="47"/>
|
||||
<outlet property="dialerButton" destination="5" id="48"/>
|
||||
<outlet property="historyButton" destination="8" id="49"/>
|
||||
<outlet property="historyNotificationLabel" destination="11" id="50"/>
|
||||
<outlet property="historyNotificationView" destination="4" id="51"/>
|
||||
<outlet property="landscapeView" destination="28" id="43"/>
|
||||
<outlet property="portraitView" destination="2" id="42"/>
|
||||
<outlet property="settingsButton" destination="10" id="52"/>
|
||||
<outlet property="view" destination="2" id="41"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view autoresizesSubviews="NO" contentMode="scaleToFill" id="2" userLabel="Portrait View">
|
||||
<rect key="frame" x="0.0" y="0.0" width="768" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<view hidden="YES" autoresizesSubviews="NO" opaque="NO" clearsContextBeforeDrawing="NO" userInteractionEnabled="NO" tag="-1" contentMode="scaleToFill" id="6" userLabel="mask">
|
||||
<rect key="frame" x="0.0" y="11" width="768" height="66"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" red="0.0" green="1" blue="0.090924573910000001" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</view>
|
||||
<button opaque="NO" tag="1" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="8" userLabel="history">
|
||||
<rect key="frame" x="0.0" y="0.0" width="175" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="History"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="60" minY="10" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="History" backgroundImage="history_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" backgroundImage="history_selected.png">
|
||||
<color key="titleColor" red="0.81176470590000005" green="0.29803921570000003" blue="0.16078431369999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="history_over.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onHistoryClick:" destination="-1" eventType="touchUpInside" id="58"/>
|
||||
</connections>
|
||||
</button>
|
||||
<view hidden="YES" autoresizesSubviews="NO" userInteractionEnabled="NO" tag="2" contentMode="scaleToFill" id="4" userLabel="historyNotificationView">
|
||||
<rect key="frame" x="144" y="1" width="21" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="history_notification.png" id="12" userLabel="historyNotificationImage">
|
||||
<rect key="frame" x="0.0" y="0.0" width="21" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
</imageView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="99" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="11" userLabel="historyNotificationLabel">
|
||||
<rect key="frame" x="2" y="2" width="17" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Missed call(s)">
|
||||
<accessibilityTraits key="traits" none="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<button opaque="NO" tag="3" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="9" userLabel="contacts">
|
||||
<rect key="frame" x="175" y="0.0" width="175" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Contacts"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="60" minY="10" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Contacts" backgroundImage="contacts_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" backgroundImage="contacts_selected.png">
|
||||
<color key="titleColor" red="0.81176470590000005" green="0.29803921570000003" blue="0.16078431369999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="contacts_over.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onContactsClick:" destination="-1" eventType="touchUpInside" id="57"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" tag="4" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="5" userLabel="dialer">
|
||||
<rect key="frame" x="350" y="-1" width="68" height="80"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Dialer"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" backgroundImage="dialer_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" backgroundImage="dialer_selected"/>
|
||||
<state key="highlighted" backgroundImage="dialer_over.png"/>
|
||||
<connections>
|
||||
<action selector="onDialerClick:" destination="-1" eventType="touchUpInside" id="60"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" tag="5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="10" userLabel="settings">
|
||||
<rect key="frame" x="593" y="0.0" width="175" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Settings"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="60" minY="10" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Settings" backgroundImage="settings_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" backgroundImage="settings_selected.png">
|
||||
<color key="titleColor" red="0.81176470590000005" green="0.29803921570000003" blue="0.16078431369999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="settings_over.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onSettingsClick:" destination="-1" eventType="touchUpInside" id="59"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" tag="6" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="7" userLabel="chat">
|
||||
<rect key="frame" x="418" y="0.0" width="175" height="77"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Chat"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="60" minY="10" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Chat" backgroundImage="chat_default.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" backgroundImage="chat_selected.png">
|
||||
<color key="titleColor" red="0.81176470590000005" green="0.29803921570000003" blue="0.16078431369999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="chat_over.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onChatClick:" destination="-1" eventType="touchUpInside" id="56"/>
|
||||
</connections>
|
||||
</button>
|
||||
<view hidden="YES" autoresizesSubviews="NO" userInteractionEnabled="NO" tag="7" contentMode="scaleToFill" id="3" userLabel="chatNotificationView">
|
||||
<rect key="frame" x="428" y="1" width="21" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="history_notification.png" id="13" userLabel="chatNotificationImage">
|
||||
<rect key="frame" x="0.0" y="0.0" width="21" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
</imageView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="99" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="14" userLabel="chatNotificationLabel">
|
||||
<rect key="frame" x="2" y="2" width="17" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Missed message(s)">
|
||||
<accessibilityTraits key="traits" none="YES"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" red="0.0" green="1" blue="0.19194547549999999" alpha="0.0" colorSpace="calibratedRGB"/>
|
||||
</view>
|
||||
<view autoresizesSubviews="NO" contentMode="scaleToFill" id="28" userLabel="Landscape View">
|
||||
<rect key="frame" x="0.0" y="0.0" width="1024" height="86"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<view hidden="YES" autoresizesSubviews="NO" opaque="NO" clearsContextBeforeDrawing="NO" userInteractionEnabled="NO" tag="-1" contentMode="scaleToFill" id="34" userLabel="mask">
|
||||
<rect key="frame" x="0.0" y="19" width="1024" height="67"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" red="0.0" green="1" blue="0.090924573910000001" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</view>
|
||||
<button opaque="NO" tag="1" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="32" userLabel="history">
|
||||
<rect key="frame" x="0.0" y="0.0" width="240" height="86"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label=""/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="60" minY="16" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="History" backgroundImage="history_default_landscape.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" backgroundImage="history_selected_landscape.png">
|
||||
<color key="titleColor" red="0.81176470590000005" green="0.29803921570000003" blue="0.16078431369999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="history_over_landscape.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
</button>
|
||||
<view hidden="YES" autoresizesSubviews="NO" userInteractionEnabled="NO" tag="2" contentMode="scaleToFill" id="36" userLabel="historyNotificationView">
|
||||
<rect key="frame" x="209" y="1" width="21" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="history_notification.png" id="37" userLabel="historyNotificationImage">
|
||||
<rect key="frame" x="0.0" y="0.0" width="21" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
</imageView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="99" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="38" userLabel="historyNotificationLabel">
|
||||
<rect key="frame" x="2" y="2" width="17" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<button opaque="NO" tag="3" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="31" userLabel="contacts">
|
||||
<rect key="frame" x="240" y="0.0" width="240" height="86"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label=""/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="60" minY="16" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Contacts" backgroundImage="contacts_default_landscape.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" backgroundImage="contacts_selected_landscape.png">
|
||||
<color key="titleColor" red="0.81176470590000005" green="0.29803921570000003" blue="0.16078431369999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="contacts_over_landscape.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
</button>
|
||||
<button opaque="NO" tag="4" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="35" userLabel="dialer">
|
||||
<rect key="frame" x="480" y="8" width="68" height="80"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label=""/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" backgroundImage="dialer_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" backgroundImage="dialer_selected"/>
|
||||
<state key="highlighted" backgroundImage="dialer_over.png"/>
|
||||
</button>
|
||||
<button opaque="NO" tag="5" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="30" userLabel="settings">
|
||||
<rect key="frame" x="784" y="0.0" width="240" height="86"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label=""/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="60" minY="16" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Settings" backgroundImage="settings_default_landscape.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" backgroundImage="settings_selected_landscape.png">
|
||||
<color key="titleColor" red="0.81176470590000005" green="0.29803921570000003" blue="0.16078431369999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="settings_over_landscape.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
</button>
|
||||
<button opaque="NO" tag="6" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="33" userLabel="chat">
|
||||
<rect key="frame" x="548" y="0.0" width="240" height="86"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label=""/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<inset key="titleEdgeInsets" minX="60" minY="16" maxX="0.0" maxY="0.0"/>
|
||||
<state key="normal" title="Chat" backgroundImage="chat_default_landscape.png">
|
||||
<color key="titleColor" red="0.35686274509999999" green="0.39607843139999999" blue="0.43529411759999997" alpha="1" colorSpace="deviceRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="selected" backgroundImage="chat_selected_landscape.png">
|
||||
<color key="titleColor" red="0.81176470590000005" green="0.29803921570000003" blue="0.16078431369999999" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="chat_over_landscape.png">
|
||||
<color key="titleColor" red="0.72549019609999998" green="0.76862745099999996" blue="0.79607843140000001" alpha="1" colorSpace="deviceRGB"/>
|
||||
</state>
|
||||
</button>
|
||||
<view hidden="YES" autoresizesSubviews="NO" userInteractionEnabled="NO" tag="7" contentMode="scaleToFill" id="29" userLabel="chatNotificationView">
|
||||
<rect key="frame" x="558" y="1" width="21" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="history_notification.png" id="40" userLabel="chatNotificationImage">
|
||||
<rect key="frame" x="0.0" y="0.0" width="21" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
</imageView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="99" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="10" id="39" userLabel="chatNotificationLabel">
|
||||
<rect key="frame" x="2" y="2" width="17" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" red="0.0" green="1" blue="0.19194547549999999" alpha="0.0" colorSpace="calibratedRGB"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="chat_default.png" width="350" height="153"/>
|
||||
<image name="chat_default_landscape.png" width="480" height="171"/>
|
||||
<image name="chat_over.png" width="350" height="153"/>
|
||||
<image name="chat_over_landscape.png" width="480" height="171"/>
|
||||
<image name="chat_selected.png" width="350" height="153"/>
|
||||
<image name="chat_selected_landscape.png" width="480" height="171"/>
|
||||
<image name="contacts_default.png" width="352" height="153"/>
|
||||
<image name="contacts_default_landscape.png" width="480" height="171"/>
|
||||
<image name="contacts_over.png" width="352" height="153"/>
|
||||
<image name="contacts_over_landscape.png" width="480" height="171"/>
|
||||
<image name="contacts_selected.png" width="352" height="153"/>
|
||||
<image name="contacts_selected_landscape.png" width="480" height="171"/>
|
||||
<image name="dialer_default.png" width="128" height="154"/>
|
||||
<image name="dialer_over.png" width="128" height="154"/>
|
||||
<image name="dialer_selected" width="16" height="16"/>
|
||||
<image name="history_default.png" width="353" height="153"/>
|
||||
<image name="history_default_landscape.png" width="480" height="171"/>
|
||||
<image name="history_notification.png" width="43" height="43"/>
|
||||
<image name="history_over.png" width="353" height="153"/>
|
||||
<image name="history_over_landscape.png" width="480" height="171"/>
|
||||
<image name="history_selected.png" width="353" height="153"/>
|
||||
<image name="history_selected_landscape.png" width="480" height="171"/>
|
||||
<image name="settings_default.png" width="353" height="153"/>
|
||||
<image name="settings_default_landscape.png" width="480" height="171"/>
|
||||
<image name="settings_over.png" width="353" height="153"/>
|
||||
<image name="settings_over_landscape.png" width="480" height="171"/>
|
||||
<image name="settings_selected.png" width="353" height="153"/>
|
||||
<image name="settings_selected_landscape.png" width="480" height="171"/>
|
||||
</resources>
|
||||
</document>
|
||||
|
|
@ -26,4 +26,13 @@
|
|||
[self sendActionsForControlEvents:UIControlEventEditingChanged];
|
||||
}
|
||||
|
||||
-(BOOL)canPerformAction:(SEL)action withSender:(id)sender{
|
||||
// disable "define" option, since it messes with the keyboard
|
||||
if ([[NSStringFromSelector(action) lowercaseString] rangeOfString:@"define"].location != NSNotFound) {
|
||||
return NO;
|
||||
} else {
|
||||
return [super canPerformAction:action withSender:sender];
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
#import <AudioToolbox/AudioToolbox.h>
|
||||
#import "Utils.h"
|
||||
|
||||
#include "linphonecore.h"
|
||||
#include "linphone/linphonecore.h"
|
||||
|
||||
@implementation UIBluetoothButton
|
||||
#define check_auresult(au,method) \
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
#import "Utils.h"
|
||||
#import "CAAnimation+Blocks.h"
|
||||
|
||||
#include "linphonecore.h"
|
||||
#include "linphone/linphonecore.h"
|
||||
|
||||
@implementation UICallBar
|
||||
|
||||
|
|
|
|||
|
|
@ -69,11 +69,47 @@
|
|||
- (void)touchUp:(id) sender {
|
||||
NSString *address = [addressField text];
|
||||
NSString *displayName = nil;
|
||||
ABRecordRef contact = [[[LinphoneManager instance] fastAddressBook] getContact:address];
|
||||
if(contact) {
|
||||
displayName = [FastAddressBook getContactDisplayName:contact];
|
||||
|
||||
if( [address length] == 0){
|
||||
const MSList* logs = linphone_core_get_call_logs([LinphoneManager getLc]);
|
||||
while( logs ){
|
||||
LinphoneCallLog* log = logs->data;
|
||||
if( linphone_call_log_get_dir(log) == LinphoneCallOutgoing ){
|
||||
LinphoneProxyConfig* def_proxy = NULL;
|
||||
LinphoneAddress* to = linphone_call_log_get_to(log);
|
||||
const char* domain = linphone_address_get_domain(to);
|
||||
char* bis_address = NULL;
|
||||
|
||||
linphone_core_get_default_proxy([LinphoneManager getLc], &def_proxy);
|
||||
|
||||
// if the 'to' address is on the default proxy, only present the username
|
||||
if( def_proxy ){
|
||||
const char* def_domain = linphone_proxy_config_get_domain(def_proxy);
|
||||
if( def_domain && domain && !strcmp(domain, def_domain) ){
|
||||
bis_address = ms_strdup(linphone_address_get_username(to));
|
||||
}
|
||||
}
|
||||
|
||||
if( bis_address == NULL ) {
|
||||
bis_address = linphone_address_as_string_uri_only(to);
|
||||
}
|
||||
|
||||
[addressField setText:[NSString stringWithUTF8String:bis_address]];
|
||||
ms_free(bis_address);
|
||||
// return after filling the address, let the user confirm the call by pressing again
|
||||
return;
|
||||
}
|
||||
logs = ms_list_next(logs);
|
||||
}
|
||||
}
|
||||
|
||||
if( [address length] > 0){
|
||||
ABRecordRef contact = [[[LinphoneManager instance] fastAddressBook] getContact:address];
|
||||
if(contact) {
|
||||
displayName = [FastAddressBook getContactDisplayName:contact];
|
||||
}
|
||||
[[LinphoneManager instance] call:address displayName:displayName transfer:FALSE];
|
||||
}
|
||||
[[LinphoneManager instance] call:address displayName:displayName transfer:FALSE];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#include "linphonecore.h"
|
||||
#include "linphone/linphonecore.h"
|
||||
#include "UIPauseButton.h"
|
||||
#import "UITransparentTVCell.h"
|
||||
|
||||
|
|
@ -37,7 +37,7 @@ typedef enum _UICallCellOtherView {
|
|||
LinphoneCall *call;
|
||||
}
|
||||
|
||||
- (id)init:(LinphoneCall*) call;
|
||||
- (id)init:(LinphoneCall*) call minimized:(BOOL)minimized;
|
||||
|
||||
@property (nonatomic, retain) UIImage *image;
|
||||
@property (nonatomic, retain) NSString *address;
|
||||
|
|
@ -77,6 +77,12 @@ typedef enum _UICallCellOtherView {
|
|||
|
||||
@property (nonatomic, retain) IBOutlet UILabel* videoCodecLabel;
|
||||
@property (nonatomic, retain) IBOutlet UILabel* videoCodecHeaderLabel;
|
||||
|
||||
@property (retain, nonatomic) IBOutlet UILabel *videoSentSizeHeaderLabel;
|
||||
@property (retain, nonatomic) IBOutlet UILabel *videoSentSizeLabel;
|
||||
@property (retain, nonatomic) IBOutlet UILabel *videoRecvSizeHeaderLabel;
|
||||
@property (retain, nonatomic) IBOutlet UILabel *videoRecvSizeLabel;
|
||||
|
||||
@property (nonatomic, retain) IBOutlet UILabel* videoUploadBandwidthLabel;
|
||||
@property (nonatomic, retain) IBOutlet UILabel* videoUploadBandwidthHeaderLabel;
|
||||
@property (nonatomic, retain) IBOutlet UILabel* videoDownloadBandwidthLabel;
|
||||
|
|
|
|||
|
|
@ -29,10 +29,10 @@
|
|||
@synthesize address;
|
||||
@synthesize image;
|
||||
|
||||
- (id)init:(LinphoneCall*) acall {
|
||||
- (id)init:(LinphoneCall*)acall minimized:(BOOL)minimized{
|
||||
self = [super init];
|
||||
if(self != nil) {
|
||||
self->minimize = false;
|
||||
self->minimize = minimized;
|
||||
self->view = UICallCellOtherView_Avatar;
|
||||
self->call = acall;
|
||||
image = [[UIImage imageNamed:@"avatar_unknown.png"] retain];
|
||||
|
|
@ -121,14 +121,13 @@
|
|||
|
||||
@synthesize videoStatsView;
|
||||
|
||||
@synthesize videoCodecLabel;
|
||||
@synthesize videoCodecHeaderLabel;
|
||||
@synthesize videoUploadBandwidthLabel;
|
||||
@synthesize videoUploadBandwidthHeaderLabel;
|
||||
@synthesize videoDownloadBandwidthLabel;
|
||||
@synthesize videoDownloadBandwidthHeaderLabel;
|
||||
@synthesize videoIceConnectivityLabel;
|
||||
@synthesize videoIceConnectivityHeaderLabel;
|
||||
@synthesize videoCodecLabel, videoCodecHeaderLabel;
|
||||
@synthesize videoUploadBandwidthLabel, videoUploadBandwidthHeaderLabel;
|
||||
@synthesize videoDownloadBandwidthLabel, videoDownloadBandwidthHeaderLabel;
|
||||
@synthesize videoIceConnectivityLabel, videoIceConnectivityHeaderLabel;
|
||||
|
||||
@synthesize videoRecvSizeHeaderLabel, videoRecvSizeLabel;
|
||||
@synthesize videoSentSizeHeaderLabel, videoSentSizeLabel;
|
||||
|
||||
@synthesize otherView;
|
||||
|
||||
|
|
@ -148,7 +147,7 @@
|
|||
options:nil];
|
||||
|
||||
if ([arrayOfViews count] >= 1) {
|
||||
[self addSubview:[[arrayOfViews objectAtIndex:0] retain]];
|
||||
[self addSubview:[arrayOfViews objectAtIndex:0]];
|
||||
}
|
||||
// Set selected+over background: IB lack !
|
||||
[pauseButton setImage:[UIImage imageNamed:@"call_state_pause_over.png"]
|
||||
|
|
@ -233,7 +232,11 @@
|
|||
|
||||
[detailsLeftSwipeGestureRecognizer release];
|
||||
[detailsRightSwipeGestureRecognizer release];
|
||||
|
||||
|
||||
[videoSentSizeHeaderLabel release];
|
||||
[videoSentSizeLabel release];
|
||||
[videoRecvSizeHeaderLabel release];
|
||||
[videoRecvSizeLabel release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
|
|
@ -340,6 +343,7 @@
|
|||
#pragma mark - Animation Functions
|
||||
|
||||
- (void)startBlinkAnimation:(NSString *)animationID target:(UIView *)target {
|
||||
if( [[LinphoneManager instance] lpConfigBoolForKey:@"animations_preference"]){
|
||||
CABasicAnimation *blink = [CABasicAnimation animationWithKeyPath:@"opacity"];
|
||||
blink.duration = 1.0;
|
||||
blink.fromValue = [NSNumber numberWithDouble:0.0f];
|
||||
|
|
@ -348,6 +352,9 @@
|
|||
blink.autoreverses = TRUE;
|
||||
blink.repeatCount = HUGE_VALF;
|
||||
[target.layer addAnimation:blink forKey:animationID];
|
||||
} else {
|
||||
[target setAlpha:1.0f];
|
||||
}
|
||||
}
|
||||
|
||||
- (BOOL)isBlinkAnimationRunning:(NSString *)animationID target:(UIView *)target {
|
||||
|
|
@ -355,7 +362,9 @@
|
|||
}
|
||||
|
||||
- (void)stopBlinkAnimation:(NSString *)animationID target:(UIView *)target {
|
||||
if( [self isBlinkAnimationRunning:animationID target:target] ){
|
||||
[target.layer removeAnimationForKey:animationID];
|
||||
}
|
||||
[target setAlpha:0.0f];
|
||||
}
|
||||
|
||||
|
|
@ -460,14 +469,23 @@
|
|||
}
|
||||
|
||||
const LinphoneCallStats *stats = linphone_call_get_video_stats(call);
|
||||
|
||||
MSVideoSize sentSize = linphone_call_params_get_sent_video_size(params);
|
||||
MSVideoSize recvSize = linphone_call_params_get_received_video_size(params);
|
||||
|
||||
if(stats != NULL) {
|
||||
[videoUploadBandwidthLabel setText:[NSString stringWithFormat:@"%1.1f kbits/s", stats->upload_bandwidth]];
|
||||
[videoDownloadBandwidthLabel setText:[NSString stringWithFormat:@"%1.1f kbits/s", stats->download_bandwidth]];
|
||||
[videoIceConnectivityLabel setText:[UICallCell iceToString:stats->ice_state]];
|
||||
[videoSentSizeLabel setText:[NSString stringWithFormat:@"%dx%d",sentSize.width, sentSize.height]];
|
||||
[videoRecvSizeLabel setText:[NSString stringWithFormat:@"%dx%d",recvSize.width, recvSize.height]];
|
||||
} else {
|
||||
[videoUploadBandwidthLabel setText:@""];
|
||||
[videoDownloadBandwidthLabel setText:@""];
|
||||
[videoIceConnectivityLabel setText:@""];
|
||||
[videoSentSizeLabel setText:@"0x0"];
|
||||
[videoRecvSizeLabel setText:@"0x0"];
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -501,7 +519,7 @@
|
|||
if(parentTable != nil) {
|
||||
NSIndexPath *index= [parentTable indexPathForCell:self];
|
||||
if(index != nil) {
|
||||
[parentTable reloadRowsAtIndexPaths:[[NSArray alloc] initWithObjects:index, nil] withRowAnimation:false];
|
||||
[parentTable reloadRowsAtIndexPaths:[[[NSArray alloc] initWithObjects:index, nil] autorelease] withRowAnimation:false];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,8 +22,7 @@
|
|||
|
||||
@interface UICamSwitch : UIButton {
|
||||
@private
|
||||
const char* currentCamId;
|
||||
const char* nextCamId;
|
||||
|
||||
}
|
||||
@property (nonatomic, retain) IBOutlet UIView* preview;
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -28,17 +28,6 @@
|
|||
|
||||
- (id)initUICamSwitch {
|
||||
[self addTarget:self action:@selector(touchUp:) forControlEvents:UIControlEventTouchUpInside];
|
||||
currentCamId = (char*)linphone_core_get_video_device([LinphoneManager getLc]);
|
||||
if ([LinphoneManager instance].frontCamId !=nil ) {
|
||||
//ok, we have 2 cameras
|
||||
if (strcmp(currentCamId,[LinphoneManager instance].frontCamId)==0) {
|
||||
nextCamId = [LinphoneManager instance].backCamId;
|
||||
} else {
|
||||
nextCamId = [LinphoneManager instance].frontCamId;
|
||||
}
|
||||
} else {
|
||||
nextCamId=currentCamId;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
|
|
@ -81,15 +70,26 @@
|
|||
[LinphoneLogger logc:LinphoneLoggerWarning format:"Cannot tigger camswitch button: Linphone core not ready"];
|
||||
return;
|
||||
}
|
||||
if (nextCamId != currentCamId) {
|
||||
[LinphoneLogger logc:LinphoneLoggerLog format:"Switching from [%s] to [%s]", currentCamId, nextCamId];
|
||||
linphone_core_set_video_device([LinphoneManager getLc], nextCamId);
|
||||
nextCamId = currentCamId;
|
||||
currentCamId = linphone_core_get_video_device([LinphoneManager getLc]);
|
||||
LinphoneCall *call = linphone_core_get_current_call([LinphoneManager getLc]);
|
||||
const char *currentCamId = (char*)linphone_core_get_video_device([LinphoneManager getLc]);
|
||||
const char **cameras=linphone_core_get_video_devices([LinphoneManager getLc]);
|
||||
const char *newCamId=NULL;
|
||||
int i;
|
||||
|
||||
for (i=0;cameras[i]!=NULL;++i){
|
||||
if (strcmp(cameras[i],"StaticImage: Static picture")==0) continue;
|
||||
if (strcmp(cameras[i],currentCamId)!=0){
|
||||
newCamId=cameras[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (newCamId){
|
||||
[LinphoneLogger logc:LinphoneLoggerLog format:"Switching from [%s] to [%s]", currentCamId, newCamId];
|
||||
linphone_core_set_video_device([LinphoneManager getLc], newCamId);
|
||||
LinphoneCall *call = linphone_core_get_current_call([LinphoneManager getLc]);
|
||||
if(call != NULL) {
|
||||
linphone_core_update_call([LinphoneManager getLc], call, NULL);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -20,13 +20,13 @@
|
|||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "UITransparentTVCell.h"
|
||||
#import "ChatModel.h"
|
||||
|
||||
#include "linphone/linphonecore.h"
|
||||
|
||||
@interface UIChatCell : UITransparentTVCell {
|
||||
LinphoneChatRoom* chatRoom;
|
||||
}
|
||||
|
||||
@property (nonatomic, retain) ChatModel *chat;
|
||||
@property (nonatomic, retain) IBOutlet UIImageView *avatarImage;
|
||||
@property (nonatomic, retain) IBOutlet UILabel* addressLabel;
|
||||
@property (nonatomic, retain) IBOutlet UILabel* chatContentLabel;
|
||||
|
|
@ -38,4 +38,5 @@
|
|||
|
||||
- (IBAction)onDeleteClick:(id)event;
|
||||
|
||||
- (void)setChatRoom:(LinphoneChatRoom *)achat;
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -31,7 +31,6 @@
|
|||
@synthesize unreadMessageLabel;
|
||||
@synthesize unreadMessageView;
|
||||
|
||||
@synthesize chat;
|
||||
|
||||
#pragma mark - Lifecycle Functions
|
||||
|
||||
|
|
@ -42,7 +41,8 @@
|
|||
options:nil];
|
||||
|
||||
if ([arrayOfViews count] >= 1) {
|
||||
[self addSubview:[[arrayOfViews objectAtIndex:0] retain]];
|
||||
|
||||
[self.contentView addSubview:[arrayOfViews objectAtIndex:0]];
|
||||
}
|
||||
[chatContentLabel setAdjustsFontSizeToFitWidth:TRUE]; // Auto shrink: IB lack!
|
||||
}
|
||||
|
|
@ -56,24 +56,15 @@
|
|||
[deleteButton release];
|
||||
[unreadMessageLabel release];
|
||||
[unreadMessageView release];
|
||||
|
||||
[chat release];
|
||||
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - Property Funcitons
|
||||
|
||||
- (void)setChat:(ChatModel *)achat {
|
||||
if(chat == achat)
|
||||
return;
|
||||
if(chat != nil) {
|
||||
[chat release];
|
||||
}
|
||||
if(achat) {
|
||||
chat = [achat retain];
|
||||
}
|
||||
- (void)setChatRoom:(LinphoneChatRoom *)achat {
|
||||
self->chatRoom = achat;
|
||||
[self update];
|
||||
}
|
||||
|
||||
|
|
@ -83,11 +74,12 @@
|
|||
- (void)update {
|
||||
NSString *displayName = nil;
|
||||
UIImage *image = nil;
|
||||
if(chat == nil) {
|
||||
if(chatRoom == nil) {
|
||||
[LinphoneLogger logc:LinphoneLoggerWarning format:"Cannot update chat cell: null chat"];
|
||||
return;
|
||||
}
|
||||
LinphoneAddress* linphoneAddress = linphone_core_interpret_url([LinphoneManager getLc], [[chat remoteContact] UTF8String]);
|
||||
const LinphoneAddress* linphoneAddress = linphone_chat_room_get_peer_address(chatRoom);
|
||||
|
||||
if (linphoneAddress == NULL)
|
||||
return;
|
||||
char *tmp = linphone_address_as_string_uri_only(linphoneAddress);
|
||||
|
|
@ -111,28 +103,39 @@
|
|||
image = [UIImage imageNamed:@"avatar_unknown_small.png"];
|
||||
}
|
||||
[avatarImage setImage:image];
|
||||
|
||||
// Message
|
||||
if([chat isExternalImage] || [chat isInternalImage]) {
|
||||
[chatContentLabel setText:@""];
|
||||
} else {
|
||||
NSString *message = [chat message];
|
||||
// shorten long messages
|
||||
if([message length] > 50)
|
||||
message = [[message substringToIndex:50] stringByAppendingString:@"[...]"];
|
||||
|
||||
[chatContentLabel setText:message];
|
||||
}
|
||||
|
||||
int count = [ChatModel unreadMessages:[chat remoteContact]];
|
||||
if(count > 0) {
|
||||
[unreadMessageView setHidden:FALSE];
|
||||
[unreadMessageLabel setText:[NSString stringWithFormat:@"%i", count]];
|
||||
|
||||
MSList* last_message_list = linphone_chat_room_get_history(chatRoom, 1);
|
||||
LinphoneChatMessage* last_message = last_message_list? last_message_list->data : NULL;
|
||||
|
||||
if( last_message ){
|
||||
|
||||
const char* text = linphone_chat_message_get_text(last_message);
|
||||
const char* url = linphone_chat_message_get_external_body_url(last_message);
|
||||
// Message
|
||||
if(url) {
|
||||
[chatContentLabel setText:@""];
|
||||
} else if (text) {
|
||||
NSString *message = [NSString stringWithUTF8String:text];
|
||||
// shorten long messages
|
||||
if([message length] > 50)
|
||||
message = [[message substringToIndex:50] stringByAppendingString:@"[...]"];
|
||||
|
||||
[chatContentLabel setText:message];
|
||||
}
|
||||
|
||||
int count = linphone_chat_room_get_unread_messages_count(chatRoom);
|
||||
if(count > 0) {
|
||||
[unreadMessageView setHidden:FALSE];
|
||||
[unreadMessageLabel setText:[NSString stringWithFormat:@"%i", count]];
|
||||
} else {
|
||||
[unreadMessageView setHidden:TRUE];
|
||||
}
|
||||
} else {
|
||||
chatContentLabel.text = nil;
|
||||
[unreadMessageView setHidden:TRUE];
|
||||
}
|
||||
|
||||
linphone_address_destroy(linphoneAddress);
|
||||
|
||||
ms_list_free(last_message_list);
|
||||
}
|
||||
|
||||
- (void)setEditing:(BOOL)editing {
|
||||
|
|
@ -158,7 +161,7 @@
|
|||
#pragma mark - Action Functions
|
||||
|
||||
- (IBAction)onDeleteClick: (id) event {
|
||||
if(chat != NULL) {
|
||||
if(chatRoom != NULL) {
|
||||
UIView *view = [self superview];
|
||||
// Find TableViewCell
|
||||
while( view != nil && ![view isKindOfClass:[UITableView class]]) view = [view superview];
|
||||
|
|
|
|||
|
|
@ -1,471 +1,84 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1536</int>
|
||||
<string key="IBDocument.SystemVersion">11G63</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">2840</string>
|
||||
<string key="IBDocument.AppKitVersion">1138.51</string>
|
||||
<string key="IBDocument.HIToolboxVersion">569.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">1926</string>
|
||||
</object>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>IBProxyObject</string>
|
||||
<string>IBUIButton</string>
|
||||
<string>IBUIImageView</string>
|
||||
<string>IBUILabel</string>
|
||||
<string>IBUIView</string>
|
||||
</array>
|
||||
<array key="IBDocument.PluginDependencies">
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</array>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
|
||||
<integer value="1" key="NS.object.0"/>
|
||||
</object>
|
||||
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<object class="IBProxyObject" id="372490531">
|
||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="975951072">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="316763236">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">290</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUIImageView" id="567463562">
|
||||
<reference key="NSNextResponder" ref="316763236"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{10, 8}, {44, 44}}</string>
|
||||
<reference key="NSSuperview" ref="316763236"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="394118737"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSCustomResource" key="IBUIImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">avatar_unknown_small.png</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUILabel" id="394118737">
|
||||
<reference key="NSNextResponder" ref="316763236"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrame">{{62, 2}, {218, 38}}</string>
|
||||
<reference key="NSSuperview" ref="316763236"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="641729677"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:328</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<int key="IBUITag">2</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
|
||||
<string key="IBUIAccessibilityLabel">Firstname</string>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">John</string>
|
||||
<object class="NSColor" key="IBUITextColor" id="829378485">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MCAwIDAAA</bytes>
|
||||
<string key="IBUIColorCocoaTouchKeyPath">darkTextColor</string>
|
||||
</object>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription">
|
||||
<int key="type">1</int>
|
||||
<double key="pointSize">25</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica</string>
|
||||
<double key="NSSize">25</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<bool key="IBUIAdjustsFontSizeToFit">NO</bool>
|
||||
</object>
|
||||
<object class="IBUILabel" id="641729677">
|
||||
<reference key="NSNextResponder" ref="316763236"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrame">{{62, 39}, {218, 21}}</string>
|
||||
<reference key="NSSuperview" ref="316763236"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="186935856"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:328</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<int key="IBUITag">2</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
|
||||
<string key="IBUIAccessibilityLabel">Firstname</string>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">This is a message</string>
|
||||
<reference key="IBUITextColor" ref="829378485"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUINumberOfLines">2</int>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription">
|
||||
<int key="type">1</int>
|
||||
<double key="pointSize">12</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica</string>
|
||||
<double key="NSSize">12</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<bool key="IBUIAdjustsFontSizeToFit">NO</bool>
|
||||
<double key="preferredMaxLayoutWidth">218</double>
|
||||
</object>
|
||||
<object class="IBUIView" id="186935856">
|
||||
<reference key="NSNextResponder" ref="316763236"/>
|
||||
<int key="NSvFlags">257</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUIImageView" id="692798876">
|
||||
<reference key="NSNextResponder" ref="186935856"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrame">{{10, 12}, {24, 20}}</string>
|
||||
<reference key="NSSuperview" ref="186935856"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="960259784"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSCustomResource" key="IBUIImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">bubble.png</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUILabel" id="960259784">
|
||||
<reference key="NSNextResponder" ref="186935856"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{12, 10}, {20, 20}}</string>
|
||||
<reference key="NSSuperview" ref="186935856"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="753878244"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">3</string>
|
||||
<object class="NSColor" key="IBUITextColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MSAxIDEAA</bytes>
|
||||
<object class="NSColorSpace" key="NSCustomColorSpace">
|
||||
<int key="NSID">1</int>
|
||||
</object>
|
||||
</object>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">0</int>
|
||||
<float key="IBUIMinimumFontSize">9</float>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription">
|
||||
<int key="type">1</int>
|
||||
<double key="pointSize">14</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica</string>
|
||||
<double key="NSSize">14</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{276, 8}, {44, 44}}</string>
|
||||
<reference key="NSSuperview" ref="316763236"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="692798876"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor" id="886300225">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MCAwAA</bytes>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIButton" id="753878244">
|
||||
<reference key="NSNextResponder" ref="316763236"/>
|
||||
<int key="NSvFlags">257</int>
|
||||
<string key="NSFrame">{{276, 8}, {44, 44}}</string>
|
||||
<reference key="NSSuperview" ref="316763236"/>
|
||||
<reference key="NSWindow"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<bool key="IBUIAdjustsImageWhenHighlighted">NO</bool>
|
||||
<double key="IBUIImageEdgeInsets.top">11</double>
|
||||
<double key="IBUIImageEdgeInsets.bottom">11</double>
|
||||
<double key="IBUIImageEdgeInsets.left">11</double>
|
||||
<double key="IBUIImageEdgeInsets.right">11</double>
|
||||
<object class="NSColor" key="IBUINormalTitleShadowColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MC41AA</bytes>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUIHighlightedImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">list_delete_over.png</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUINormalImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">list_delete_default.png</string>
|
||||
</object>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription">
|
||||
<int key="type">2</int>
|
||||
<double key="pointSize">15</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">15</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{320, 60}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="567463562"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<reference key="IBUIBackgroundColor" ref="886300225"/>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<array class="NSMutableArray" key="connectionRecords">
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">chatContentLabel</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="641729677"/>
|
||||
</object>
|
||||
<int key="connectionID">24</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">avatarImage</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="567463562"/>
|
||||
</object>
|
||||
<int key="connectionID">30</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">deleteButton</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="753878244"/>
|
||||
</object>
|
||||
<int key="connectionID">34</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">addressLabel</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="394118737"/>
|
||||
</object>
|
||||
<int key="connectionID">38</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">unreadMessageLabel</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="960259784"/>
|
||||
</object>
|
||||
<int key="connectionID">42</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">unreadMessageView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="186935856"/>
|
||||
</object>
|
||||
<int key="connectionID">43</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">onDeleteClick:</string>
|
||||
<reference key="source" ref="753878244"/>
|
||||
<reference key="destination" ref="372490531"/>
|
||||
<int key="IBEventType">7</int>
|
||||
</object>
|
||||
<int key="connectionID">37</int>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<array key="orderedObjects">
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<array key="object" id="0"/>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="372490531"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">File's Owner</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="975951072"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">17</int>
|
||||
<reference key="object" ref="316763236"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="567463562"/>
|
||||
<reference ref="641729677"/>
|
||||
<reference ref="394118737"/>
|
||||
<reference ref="186935856"/>
|
||||
<reference ref="753878244"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">19</int>
|
||||
<reference key="object" ref="567463562"/>
|
||||
<reference key="parent" ref="316763236"/>
|
||||
<string key="objectName">avatarImage</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">20</int>
|
||||
<reference key="object" ref="394118737"/>
|
||||
<reference key="parent" ref="316763236"/>
|
||||
<string key="objectName">addressLabel</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">21</int>
|
||||
<reference key="object" ref="641729677"/>
|
||||
<reference key="parent" ref="316763236"/>
|
||||
<string key="objectName">chatContentLabel</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">32</int>
|
||||
<reference key="object" ref="753878244"/>
|
||||
<reference key="parent" ref="316763236"/>
|
||||
<string key="objectName">deleteButton</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">39</int>
|
||||
<reference key="object" ref="186935856"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="692798876"/>
|
||||
<reference ref="960259784"/>
|
||||
</array>
|
||||
<reference key="parent" ref="316763236"/>
|
||||
<string key="objectName">unreadMessageView</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">40</int>
|
||||
<reference key="object" ref="692798876"/>
|
||||
<reference key="parent" ref="186935856"/>
|
||||
<string key="objectName">unreadMessageImage</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">41</int>
|
||||
<reference key="object" ref="960259784"/>
|
||||
<reference key="parent" ref="186935856"/>
|
||||
<string key="objectName">unreadMessageLabel</string>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||
<string key="-1.CustomClassName">UIChatCell</string>
|
||||
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="-2.CustomClassName">UIResponder</string>
|
||||
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="17.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="19.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="20.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="21.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="32.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<real value="2" key="32.IBUIButtonInspectorSelectedEdgeInsetMetadataKey"/>
|
||||
<real value="1" key="32.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
|
||||
<string key="39.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="40.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="41.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">43</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIChatCell</string>
|
||||
<string key="superclassName">UITableViewCell</string>
|
||||
<object class="NSMutableDictionary" key="actions">
|
||||
<string key="NS.key.0">onDeleteClick:</string>
|
||||
<string key="NS.object.0">id</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||
<string key="NS.key.0">onDeleteClick:</string>
|
||||
<object class="IBActionInfo" key="NS.object.0">
|
||||
<string key="name">onDeleteClick:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="outlets">
|
||||
<string key="addressLabel">UILabel</string>
|
||||
<string key="avatarImage">UIImageView</string>
|
||||
<string key="chatContentLabel">UILabel</string>
|
||||
<string key="deleteButton">UIButton</string>
|
||||
<string key="unreadMessageLabel">UILabel</string>
|
||||
<string key="unreadMessageView">UIView</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<object class="IBToOneOutletInfo" key="addressLabel">
|
||||
<string key="name">addressLabel</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="avatarImage">
|
||||
<string key="name">avatarImage</string>
|
||||
<string key="candidateClassName">UIImageView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="chatContentLabel">
|
||||
<string key="name">chatContentLabel</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="deleteButton">
|
||||
<string key="name">deleteButton</string>
|
||||
<string key="candidateClassName">UIButton</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="unreadMessageLabel">
|
||||
<string key="name">unreadMessageLabel</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="unreadMessageView">
|
||||
<string key="name">unreadMessageView</string>
|
||||
<string key="candidateClassName">UIView</string>
|
||||
</object>
|
||||
</dictionary>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/UIChatCell.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
||||
<string key="avatar_unknown_small.png">{131, 131}</string>
|
||||
<string key="bubble.png">{47, 40}</string>
|
||||
<string key="list_delete_default.png">{45, 45}</string>
|
||||
<string key="list_delete_over.png">{45, 45}</string>
|
||||
</dictionary>
|
||||
<string key="IBCocoaTouchPluginVersion">1926</string>
|
||||
</data>
|
||||
</archive>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4514" systemVersion="13B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1072" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="UIChatCell">
|
||||
<connections>
|
||||
<outlet property="addressLabel" destination="20" id="38"/>
|
||||
<outlet property="avatarImage" destination="19" id="30"/>
|
||||
<outlet property="chatContentLabel" destination="21" id="24"/>
|
||||
<outlet property="deleteButton" destination="32" id="34"/>
|
||||
<outlet property="unreadMessageLabel" destination="41" id="42"/>
|
||||
<outlet property="unreadMessageView" destination="39" id="43"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="17">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="60"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="avatar_unknown_small.png" id="19" userLabel="avatarImage">
|
||||
<rect key="frame" x="10" y="8" width="44" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="2" contentMode="left" text="John" lineBreakMode="tailTruncation" minimumFontSize="10" adjustsFontSizeToFit="NO" id="20" userLabel="addressLabel">
|
||||
<rect key="frame" x="62" y="2" width="218" height="38"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Firstname"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="25"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="2" contentMode="left" text="This is a message" lineBreakMode="tailTruncation" numberOfLines="2" minimumFontSize="10" adjustsFontSizeToFit="NO" id="21" userLabel="chatContentLabel">
|
||||
<rect key="frame" x="62" y="39" width="218" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Firstname"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<view contentMode="scaleToFill" id="39" userLabel="unreadMessageView">
|
||||
<rect key="frame" x="276" y="8" width="44" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="bubble.png" id="40" userLabel="unreadMessageImage">
|
||||
<rect key="frame" x="10" y="12" width="24" height="20"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
</imageView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="3" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" id="41" userLabel="unreadMessageLabel">
|
||||
<rect key="frame" x="12" y="10" width="20" height="20"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="32" userLabel="deleteButton">
|
||||
<rect key="frame" x="276" y="8" width="44" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<inset key="imageEdgeInsets" minX="11" minY="11" maxX="11" maxY="11"/>
|
||||
<state key="normal" image="list_delete_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="list_delete_over.png"/>
|
||||
<connections>
|
||||
<action selector="onDeleteClick:" destination="-1" eventType="touchUpInside" id="37"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="avatar_unknown_small.png" width="131" height="131"/>
|
||||
<image name="bubble.png" width="47" height="40"/>
|
||||
<image name="list_delete_default.png" width="45" height="45"/>
|
||||
<image name="list_delete_over.png" width="45" height="45"/>
|
||||
</resources>
|
||||
</document>
|
||||
|
|
@ -19,29 +19,31 @@
|
|||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "ChatModel.h"
|
||||
#import "ChatRoomTableViewController.h"
|
||||
#import "UILoadingImageView.h"
|
||||
#import "UITransparentTVCell.h"
|
||||
#import "UITextViewNoDefine.h"
|
||||
#include "linphone/linphonecore.h"
|
||||
|
||||
|
||||
@interface UIChatRoomCell : UITransparentTVCell {
|
||||
LinphoneChatMessage* chat;
|
||||
}
|
||||
|
||||
@property (nonatomic, retain) ChatModel *chat;
|
||||
@property (nonatomic, retain) IBOutlet UIView *innerView;
|
||||
@property (nonatomic, retain) IBOutlet UIView *bubbleView;
|
||||
@property (nonatomic, retain) IBOutlet UIImageView* backgroundImage;
|
||||
@property (nonatomic, retain) IBOutlet UITextView *messageText;
|
||||
@property (nonatomic, retain) IBOutlet UITextViewNoDefine *messageText;
|
||||
@property (nonatomic, retain) IBOutlet UILoadingImageView *messageImageView;
|
||||
@property (nonatomic, retain) IBOutlet UIButton *deleteButton;
|
||||
@property (nonatomic, retain) IBOutlet UILabel *dateLabel;
|
||||
@property (nonatomic, retain) IBOutlet UIImageView* statusImage;
|
||||
@property (nonatomic, retain) IBOutlet UIButton* downloadButton;
|
||||
@property (nonatomic, retain) IBOutlet UITapGestureRecognizer* imageTapGestureRecognizer;
|
||||
@property (nonatomic, retain) IBOutlet UITapGestureRecognizer* resendTapGestureRecognizer;
|
||||
|
||||
- (id)initWithIdentifier:(NSString*)identifier;
|
||||
+ (CGFloat)height:(ChatModel*)chat width:(int)width;
|
||||
+ (CGFloat)height:(LinphoneChatMessage*)chatMessage width:(int)width;
|
||||
|
||||
@property (nonatomic, retain) id<ChatRoomDelegate> chatRoomDelegate;
|
||||
|
||||
|
|
@ -49,4 +51,6 @@
|
|||
- (IBAction)onDownloadClick:(id)event;
|
||||
- (IBAction)onImageClick:(id)event;
|
||||
|
||||
- (void)setChatMessage:(LinphoneChatMessage*)message;
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
#import <AssetsLibrary/ALAsset.h>
|
||||
#import <AssetsLibrary/ALAssetRepresentation.h>
|
||||
#import <NinePatch.h>
|
||||
#include "linphonecore.h"
|
||||
#include "linphone/linphonecore.h"
|
||||
|
||||
@implementation UIChatRoomCell
|
||||
|
||||
|
|
@ -37,11 +37,11 @@
|
|||
@synthesize messageText;
|
||||
@synthesize deleteButton;
|
||||
@synthesize dateLabel;
|
||||
@synthesize chat;
|
||||
@synthesize statusImage;
|
||||
@synthesize downloadButton;
|
||||
@synthesize chatRoomDelegate;
|
||||
@synthesize imageTapGestureRecognizer;
|
||||
@synthesize resendTapGestureRecognizer;
|
||||
|
||||
static const CGFloat CELL_MIN_HEIGHT = 50.0f;
|
||||
static const CGFloat CELL_MIN_WIDTH = 150.0f;
|
||||
|
|
@ -62,6 +62,10 @@ static UIFont *CELL_FONT = nil;
|
|||
options:nil];
|
||||
imageTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onImageClick:)];
|
||||
[messageImageView addGestureRecognizer:imageTapGestureRecognizer];
|
||||
|
||||
resendTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onResendClick:)];
|
||||
[dateLabel addGestureRecognizer:resendTapGestureRecognizer];
|
||||
|
||||
[self addSubview:innerView];
|
||||
[deleteButton setAlpha:0.0f];
|
||||
|
||||
|
|
@ -71,6 +75,7 @@ static UIFont *CELL_FONT = nil;
|
|||
messageCoords.origin.y += 2;
|
||||
messageCoords.size.width -= 5;
|
||||
[messageText setFrame:messageCoords];
|
||||
messageText.allowSelectAll = TRUE;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
|
@ -85,31 +90,17 @@ static UIFont *CELL_FONT = nil;
|
|||
[deleteButton release];
|
||||
[dateLabel release];
|
||||
[statusImage release];
|
||||
[chat release];
|
||||
[downloadButton release];
|
||||
[imageTapGestureRecognizer release];
|
||||
[resendTapGestureRecognizer release];
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void)prepareForReuse {
|
||||
|
||||
}
|
||||
|
||||
|
||||
#pragma mark -
|
||||
|
||||
- (void)setChat:(ChatModel *)achat {
|
||||
if(chat != achat) {
|
||||
if(chat != nil) {
|
||||
[chat release];
|
||||
chat = nil;
|
||||
}
|
||||
|
||||
if(achat != nil) {
|
||||
chat = [achat retain];
|
||||
}
|
||||
}
|
||||
- (void)setChatMessage:(LinphoneChatMessage *)message {
|
||||
self->chat = message;
|
||||
[self update];
|
||||
|
||||
}
|
||||
|
|
@ -119,30 +110,35 @@ static UIFont *CELL_FONT = nil;
|
|||
[LinphoneLogger logc:LinphoneLoggerWarning format:"Cannot update chat room cell: null chat"];
|
||||
return;
|
||||
}
|
||||
|
||||
if([chat isExternalImage]) {
|
||||
const char* url = linphone_chat_message_get_external_body_url(chat);
|
||||
const char* text = linphone_chat_message_get_text(chat);
|
||||
BOOL is_external = url && (strstr(url, "http") == url);
|
||||
NSString* localImage = [LinphoneManager getMessageAppDataForKey:@"localimage" inMessage:chat];
|
||||
|
||||
|
||||
if(is_external && !localImage ) {
|
||||
[messageText setHidden:TRUE];
|
||||
|
||||
[messageImageView setImage:nil];
|
||||
[messageImageView setHidden:TRUE];
|
||||
|
||||
[downloadButton setHidden:FALSE];
|
||||
} else if([chat isInternalImage]) {
|
||||
|
||||
} else if(localImage) {
|
||||
|
||||
NSURL* imageUrl = [NSURL URLWithString:localImage];
|
||||
|
||||
[messageText setHidden:TRUE];
|
||||
[messageImageView setImage:nil];
|
||||
[messageImageView startLoading];
|
||||
ChatModel *achat = chat;
|
||||
[[LinphoneManager instance].photoLibrary assetForURL:[NSURL URLWithString:[chat message]] resultBlock:^(ALAsset *asset) {
|
||||
__block LinphoneChatMessage *achat = chat;
|
||||
[[LinphoneManager instance].photoLibrary assetForURL:imageUrl resultBlock:^(ALAsset *asset) {
|
||||
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, (unsigned long)NULL), ^(void) {
|
||||
ALAssetRepresentation* representation = [asset defaultRepresentation];
|
||||
UIImage *image = [UIImage imageWithCGImage:[representation fullResolutionImage]
|
||||
scale:representation.scale
|
||||
orientation:(UIImageOrientation)representation.orientation];
|
||||
image = [UIImage decodedImageWithImage:image];
|
||||
UIImage* image = [[UIImage alloc] initWithCGImage:[asset thumbnail]];
|
||||
if(achat == self->chat) { //Avoid glitch and scrolling
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[messageImageView setImage:image];
|
||||
[messageImageView setFullImageUrl:asset];
|
||||
[messageImageView stopLoading];
|
||||
[image release];
|
||||
});
|
||||
}
|
||||
});
|
||||
|
|
@ -153,9 +149,21 @@ static UIFont *CELL_FONT = nil;
|
|||
[messageImageView setHidden:FALSE];
|
||||
[downloadButton setHidden:TRUE];
|
||||
} else {
|
||||
// simple text message
|
||||
[messageText setHidden:FALSE];
|
||||
[messageText setText:[chat message]];
|
||||
|
||||
if (text ){
|
||||
/* We need to use an attributed string here so that data detector don't mess
|
||||
* with the text style. See http://stackoverflow.com/a/20669356 */
|
||||
NSAttributedString* attr_text = [[NSAttributedString alloc]
|
||||
initWithString:[NSString stringWithUTF8String:text]
|
||||
attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:17.0],
|
||||
NSForegroundColorAttributeName:[UIColor darkGrayColor]}];
|
||||
messageText.attributedText = attr_text;
|
||||
[attr_text release];
|
||||
} else {
|
||||
messageText.text = @"";
|
||||
}
|
||||
|
||||
[messageImageView setImage:nil];
|
||||
[messageImageView setHidden:TRUE];
|
||||
|
||||
|
|
@ -163,24 +171,34 @@ static UIFont *CELL_FONT = nil;
|
|||
}
|
||||
|
||||
// Date
|
||||
NSDate* message_date = [NSDate dateWithTimeIntervalSince1970:linphone_chat_message_get_time(chat)];
|
||||
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
|
||||
[dateFormatter setTimeStyle:NSDateFormatterMediumStyle];
|
||||
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
|
||||
NSLocale *locale = [NSLocale currentLocale];
|
||||
[dateFormatter setLocale:locale];
|
||||
[dateLabel setText:[dateFormatter stringFromDate:[chat time]]];
|
||||
[dateLabel setText:[dateFormatter stringFromDate:message_date]];
|
||||
[dateFormatter release];
|
||||
if ([chat.state intValue] == LinphoneChatMessageStateInProgress) {
|
||||
|
||||
LinphoneChatMessageState state = linphone_chat_message_get_state(chat);
|
||||
|
||||
if( !linphone_chat_message_is_outgoing(chat) ){
|
||||
statusImage.hidden = TRUE; // not useful for incoming chats..
|
||||
} else if (state== LinphoneChatMessageStateInProgress) {
|
||||
[statusImage setImage:[UIImage imageNamed:@"chat_message_inprogress.png"]];
|
||||
statusImage.hidden = FALSE;
|
||||
} else if ([chat.state intValue] == LinphoneChatMessageStateDelivered) {
|
||||
} else if (state == LinphoneChatMessageStateDelivered) {
|
||||
[statusImage setImage:[UIImage imageNamed:@"chat_message_delivered.png"]];
|
||||
statusImage.hidden = FALSE;
|
||||
} else if ([chat.state intValue] == LinphoneChatMessageStateNotDelivered) {
|
||||
} else {
|
||||
[statusImage setImage:[UIImage imageNamed:@"chat_message_not_delivered.png"]];
|
||||
statusImage.hidden = FALSE;
|
||||
} else {
|
||||
statusImage.hidden = TRUE;
|
||||
|
||||
NSAttributedString* resend_text = [[NSAttributedString alloc]
|
||||
initWithString:NSLocalizedString(@"Resend", @"Resend")
|
||||
attributes:@{NSForegroundColorAttributeName: [UIColor redColor]}];
|
||||
[dateLabel setAttributedText:resend_text];
|
||||
[resend_text release];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -203,9 +221,12 @@ static UIFont *CELL_FONT = nil;
|
|||
}
|
||||
}
|
||||
|
||||
+ (CGSize)viewSize:(ChatModel*)chat width:(int)width {
|
||||
+ (CGSize)viewSize:(LinphoneChatMessage*)chat width:(int)width {
|
||||
CGSize messageSize;
|
||||
if(!([chat isExternalImage] || [chat isInternalImage])) {
|
||||
const char* url = linphone_chat_message_get_external_body_url(chat);
|
||||
const char* text = linphone_chat_message_get_text(chat);
|
||||
NSString* messageText = text ? [NSString stringWithUTF8String:text] : @"";
|
||||
if(url == nil) {
|
||||
if(CELL_FONT == nil) {
|
||||
CELL_FONT = [UIFont systemFontOfSize:CELL_FONT_SIZE];
|
||||
}
|
||||
|
|
@ -213,15 +234,15 @@ static UIFont *CELL_FONT = nil;
|
|||
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000
|
||||
|
||||
if( [[[UIDevice currentDevice] systemVersion] doubleValue] >= 7){
|
||||
NSDictionary *stringAttributes = [NSDictionary dictionaryWithObject:CELL_FONT forKey: NSFontAttributeName];
|
||||
messageSize = [[chat message] boundingRectWithSize:CGSizeMake(width - CELL_MESSAGE_X_MARGIN, CGFLOAT_MAX)
|
||||
options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingTruncatesLastVisibleLine|NSStringDrawingUsesFontLeading)
|
||||
attributes:stringAttributes
|
||||
context:nil].size;
|
||||
messageSize = [messageText
|
||||
boundingRectWithSize:CGSizeMake(width - CELL_MESSAGE_X_MARGIN, CGFLOAT_MAX)
|
||||
options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingTruncatesLastVisibleLine|NSStringDrawingUsesFontLeading)
|
||||
attributes:@{NSFontAttributeName: CELL_FONT}
|
||||
context:nil].size;
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
messageSize = [[chat message] sizeWithFont: CELL_FONT
|
||||
messageSize = [messageText sizeWithFont: CELL_FONT
|
||||
constrainedToSize: CGSizeMake(width - CELL_MESSAGE_X_MARGIN, 10000.0f)
|
||||
lineBreakMode: NSLineBreakByTruncatingTail];
|
||||
}
|
||||
|
|
@ -237,8 +258,8 @@ static UIFont *CELL_FONT = nil;
|
|||
return messageSize;
|
||||
}
|
||||
|
||||
+ (CGFloat)height:(ChatModel*)chat width:(int)width {
|
||||
return [UIChatRoomCell viewSize:chat width:width].height;
|
||||
+ (CGFloat)height:(LinphoneChatMessage*)chatMessage width:(int)width {
|
||||
return [UIChatRoomCell viewSize:chatMessage width:width].height;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -249,8 +270,9 @@ static UIFont *CELL_FONT = nil;
|
|||
if(chat != nil) {
|
||||
// Resize inner
|
||||
CGRect innerFrame;
|
||||
BOOL is_outgoing = linphone_chat_message_is_outgoing(chat);
|
||||
innerFrame.size = [UIChatRoomCell viewSize:chat width:[self frame].size.width];
|
||||
if([[chat direction] intValue]) { // Inverted
|
||||
if(!is_outgoing) { // Inverted
|
||||
innerFrame.origin.x = 0.0f;
|
||||
innerFrame.origin.y = 0.0f;
|
||||
} else {
|
||||
|
|
@ -261,7 +283,7 @@ static UIFont *CELL_FONT = nil;
|
|||
|
||||
CGRect messageFrame = [bubbleView frame];
|
||||
messageFrame.origin.y = ([innerView frame].size.height - messageFrame.size.height)/2;
|
||||
if([[chat direction] intValue]) { // Inverted
|
||||
if(!is_outgoing) { // Inverted
|
||||
[backgroundImage setImage:[TUNinePatchCache imageOfSize:[backgroundImage bounds].size
|
||||
forNinePatchNamed:@"chat_bubble_incoming"]];
|
||||
messageFrame.origin.y += 5;
|
||||
|
|
@ -291,16 +313,40 @@ static UIFont *CELL_FONT = nil;
|
|||
}
|
||||
|
||||
- (IBAction)onDownloadClick:(id)event {
|
||||
[chatRoomDelegate chatRoomStartImageDownload:[NSURL URLWithString:chat.message] userInfo:chat];
|
||||
NSURL* url = [NSURL URLWithString:[NSString stringWithUTF8String:linphone_chat_message_get_external_body_url(chat)]];
|
||||
[chatRoomDelegate chatRoomStartImageDownload:url userInfo:[NSValue valueWithPointer:chat]];
|
||||
|
||||
}
|
||||
|
||||
- (IBAction)onImageClick:(id)event {
|
||||
if(![messageImageView isLoading]) {
|
||||
ImageViewController *controller = DYNAMIC_CAST([[PhoneMainView instance] changeCurrentView:[ImageViewController compositeViewDescription] push:TRUE], ImageViewController);
|
||||
if(controller != nil) {
|
||||
[controller setImage:messageImageView.image];
|
||||
CGImageRef fullScreenRef = [[messageImageView.fullImageUrl defaultRepresentation] fullScreenImage];
|
||||
UIImage* fullScreen = [UIImage imageWithCGImage:fullScreenRef];
|
||||
[controller setImage:fullScreen];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (IBAction)onResendClick:(id)event {
|
||||
if( chat == nil ) return;
|
||||
|
||||
LinphoneChatMessageState state = linphone_chat_message_get_state(self->chat);
|
||||
if (state == LinphoneChatMessageStateNotDelivered) {
|
||||
const char* text = linphone_chat_message_get_text(self->chat);
|
||||
const char* url = linphone_chat_message_get_external_body_url(self->chat);
|
||||
NSString* message = text ? [NSString stringWithUTF8String:text] : nil;
|
||||
NSString* exturl = url ? [NSString stringWithUTF8String:url] : nil;
|
||||
|
||||
[self onDeleteClick:nil];
|
||||
|
||||
double delayInSeconds = 0.4;
|
||||
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
|
||||
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
|
||||
[chatRoomDelegate resendChat:message withExternalUrl:exturl];
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -1,638 +1,119 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1536</int>
|
||||
<string key="IBDocument.SystemVersion">11E53</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">2840</string>
|
||||
<string key="IBDocument.AppKitVersion">1138.47</string>
|
||||
<string key="IBDocument.HIToolboxVersion">569.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">1926</string>
|
||||
</object>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>IBProxyObject</string>
|
||||
<string>IBUIButton</string>
|
||||
<string>IBUIImageView</string>
|
||||
<string>IBUILabel</string>
|
||||
<string>IBUITextView</string>
|
||||
<string>IBUIView</string>
|
||||
</array>
|
||||
<array key="IBDocument.PluginDependencies">
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</array>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
|
||||
<integer value="1" key="NS.object.0"/>
|
||||
</object>
|
||||
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<object class="IBProxyObject" id="841351856">
|
||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="371349661">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="579600281">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUIImageView" id="340144998">
|
||||
<reference key="NSNextResponder" ref="579600281"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrame">{{5, 5}, {310, 130}}</string>
|
||||
<reference key="NSSuperview" ref="579600281"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="456806949"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSCustomResource" key="IBUIImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">chat_bubble_incoming.png</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUIView" id="456806949">
|
||||
<reference key="NSNextResponder" ref="579600281"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUIView" id="773132586">
|
||||
<reference key="NSNextResponder" ref="456806949"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUIImageView" id="546512518">
|
||||
<reference key="NSNextResponder" ref="773132586"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrameSize">{294, 104}</string>
|
||||
<reference key="NSSuperview" ref="773132586"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="872109847"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<int key="IBUIContentMode">1</int>
|
||||
<array key="IBUIGestureRecognizers" id="0"/>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUITextView" id="796660967">
|
||||
<reference key="NSNextResponder" ref="773132586"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrame">{{-8, -11}, {310, 126}}</string>
|
||||
<reference key="NSSuperview" ref="773132586"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="546512518"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor" id="765717609">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MCAwAA</bytes>
|
||||
</object>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIMultipleTouchEnabled">YES</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<bool key="IBUIScrollEnabled">NO</bool>
|
||||
<bool key="IBUIShowsHorizontalScrollIndicator">NO</bool>
|
||||
<bool key="IBUIShowsVerticalScrollIndicator">NO</bool>
|
||||
<bool key="IBUIEditable">NO</bool>
|
||||
<string key="IBUIText">They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety.</string>
|
||||
<object class="NSColor" key="IBUITextColor">
|
||||
<int key="NSColorSpace">2</int>
|
||||
<bytes key="NSRGB">MC4zNTY4NjI3NTM2IDAuMzk2MDc4NDM3NiAwLjQzNTI5NDEyMTUAA</bytes>
|
||||
</object>
|
||||
<object class="IBUITextInputTraits" key="IBUITextInputTraits">
|
||||
<int key="IBUIAutocapitalizationType">2</int>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<int key="IBUIDataDetectorTypes">2</int>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription">
|
||||
<int key="type">1</int>
|
||||
<double key="pointSize">17</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica</string>
|
||||
<double key="NSSize">17</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUIButton" id="872109847">
|
||||
<reference key="NSNextResponder" ref="773132586"/>
|
||||
<int key="NSvFlags">301</int>
|
||||
<string key="NSFrame">{{81, 33}, {132, 37}}</string>
|
||||
<reference key="NSSuperview" ref="773132586"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="859609488"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<string key="IBUINormalTitle">Download image</string>
|
||||
<object class="NSColor" key="IBUIHighlightedTitleColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUINormalTitleShadowColor" id="479423909">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MC41AA</bytes>
|
||||
</object>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription" id="178165125">
|
||||
<int key="type">2</int>
|
||||
<double key="pointSize">15</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont" id="126548582">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">15</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{294, 104}</string>
|
||||
<reference key="NSSuperview" ref="456806949"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="796660967"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<reference key="IBUIBackgroundColor" ref="765717609"/>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUILabel" id="504194589">
|
||||
<reference key="NSNextResponder" ref="456806949"/>
|
||||
<int key="NSvFlags">265</int>
|
||||
<string key="NSFrame">{{0, 104}, {280, 10}}</string>
|
||||
<reference key="NSSuperview" ref="456806949"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="197441422"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<reference key="IBUIBackgroundColor" ref="765717609"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">09/09/2009 at 09:09</string>
|
||||
<reference key="IBUITextColor" ref="479423909"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">0</int>
|
||||
<float key="IBUIMinimumFontSize">8</float>
|
||||
<int key="IBUITextAlignment">2</int>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription">
|
||||
<int key="type">1</int>
|
||||
<double key="pointSize">9</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica</string>
|
||||
<double key="NSSize">9</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<bool key="IBUIAdjustsFontSizeToFit">NO</bool>
|
||||
</object>
|
||||
<object class="IBUIImageView" id="197441422">
|
||||
<reference key="NSNextResponder" ref="456806949"/>
|
||||
<int key="NSvFlags">265</int>
|
||||
<string key="NSFrame">{{284, 104}, {10, 10}}</string>
|
||||
<reference key="NSSuperview" ref="456806949"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSCustomResource" key="IBUIImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">chat_message_not_delivered.png</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUIButton" id="859609488">
|
||||
<reference key="NSNextResponder" ref="456806949"/>
|
||||
<int key="NSvFlags">289</int>
|
||||
<string key="NSFrame">{{250, 0}, {44, 44}}</string>
|
||||
<reference key="NSSuperview" ref="456806949"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="504194589"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<bool key="IBUIAdjustsImageWhenHighlighted">NO</bool>
|
||||
<double key="IBUIImageEdgeInsets.top">2</double>
|
||||
<double key="IBUIImageEdgeInsets.bottom">20</double>
|
||||
<double key="IBUIImageEdgeInsets.left">20</double>
|
||||
<double key="IBUIImageEdgeInsets.right">2</double>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="479423909"/>
|
||||
<object class="NSCustomResource" key="IBUIHighlightedImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">list_delete_over.png</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUINormalImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">list_delete_default.png</string>
|
||||
</object>
|
||||
<reference key="IBUIFontDescription" ref="178165125"/>
|
||||
<reference key="IBUIFont" ref="126548582"/>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{13, 13}, {294, 114}}</string>
|
||||
<reference key="NSSuperview" ref="579600281"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="773132586"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<reference key="IBUIBackgroundColor" ref="765717609"/>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{320, 140}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="340144998"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<reference key="IBUIBackgroundColor" ref="765717609"/>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUITag">10</int>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="369753676">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrameSize">{100, 100}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<reference key="IBUIBackgroundColor" ref="765717609"/>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="111268450">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrameSize">{100, 100}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<reference key="IBUIBackgroundColor" ref="765717609"/>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<array class="NSMutableArray" key="connectionRecords">
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">backgroundView</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="369753676"/>
|
||||
</object>
|
||||
<int key="connectionID">10</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">backgroundImage</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="340144998"/>
|
||||
</object>
|
||||
<int key="connectionID">11</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">selectedBackgroundView</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="111268450"/>
|
||||
</object>
|
||||
<int key="connectionID">13</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">deleteButton</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="859609488"/>
|
||||
</object>
|
||||
<int key="connectionID">19</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">dateLabel</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="504194589"/>
|
||||
</object>
|
||||
<int key="connectionID">24</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">innerView</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="579600281"/>
|
||||
</object>
|
||||
<int key="connectionID">25</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">statusImage</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="197441422"/>
|
||||
</object>
|
||||
<int key="connectionID">27</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">bubbleView</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="456806949"/>
|
||||
</object>
|
||||
<int key="connectionID">30</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">messageImageView</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="546512518"/>
|
||||
</object>
|
||||
<int key="connectionID">31</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">downloadButton</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="872109847"/>
|
||||
</object>
|
||||
<int key="connectionID">34</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">messageText</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="796660967"/>
|
||||
</object>
|
||||
<int key="connectionID">44</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">onDeleteClick:</string>
|
||||
<reference key="source" ref="859609488"/>
|
||||
<reference key="destination" ref="841351856"/>
|
||||
<int key="IBEventType">7</int>
|
||||
</object>
|
||||
<int key="connectionID">32</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">onDownloadClick:</string>
|
||||
<reference key="source" ref="872109847"/>
|
||||
<reference key="destination" ref="841351856"/>
|
||||
<int key="IBEventType">7</int>
|
||||
</object>
|
||||
<int key="connectionID">39</int>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<array key="orderedObjects">
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<reference key="object" ref="0"/>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="841351856"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">File's Owner</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="371349661"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">2</int>
|
||||
<reference key="object" ref="579600281"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="340144998"/>
|
||||
<reference ref="456806949"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">innerView</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">7</int>
|
||||
<reference key="object" ref="369753676"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">backgroundView</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">9</int>
|
||||
<reference key="object" ref="111268450"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">selectedBackgroundView</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">3</int>
|
||||
<reference key="object" ref="340144998"/>
|
||||
<reference key="parent" ref="579600281"/>
|
||||
<string key="objectName">backgroundImage</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">16</int>
|
||||
<reference key="object" ref="456806949"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="504194589"/>
|
||||
<reference ref="859609488"/>
|
||||
<reference ref="197441422"/>
|
||||
<reference ref="773132586"/>
|
||||
</array>
|
||||
<reference key="parent" ref="579600281"/>
|
||||
<string key="objectName">bubbleView</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">18</int>
|
||||
<reference key="object" ref="859609488"/>
|
||||
<reference key="parent" ref="456806949"/>
|
||||
<string key="objectName">deleteButton</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">22</int>
|
||||
<reference key="object" ref="504194589"/>
|
||||
<reference key="parent" ref="456806949"/>
|
||||
<string key="objectName">timestampLabel</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">26</int>
|
||||
<reference key="object" ref="197441422"/>
|
||||
<reference key="parent" ref="456806949"/>
|
||||
<string key="objectName">status</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">29</int>
|
||||
<reference key="object" ref="773132586"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="546512518"/>
|
||||
<reference ref="872109847"/>
|
||||
<reference ref="796660967"/>
|
||||
</array>
|
||||
<reference key="parent" ref="456806949"/>
|
||||
<string key="objectName">messageView</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">28</int>
|
||||
<reference key="object" ref="546512518"/>
|
||||
<array class="NSMutableArray" key="children"/>
|
||||
<reference key="parent" ref="773132586"/>
|
||||
<string key="objectName">messageImageView</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">33</int>
|
||||
<reference key="object" ref="872109847"/>
|
||||
<reference key="parent" ref="773132586"/>
|
||||
<string key="objectName">downloadButton</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">43</int>
|
||||
<reference key="object" ref="796660967"/>
|
||||
<reference key="parent" ref="773132586"/>
|
||||
<string key="objectName">messageText</string>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||
<string key="-1.CustomClassName">UIChatRoomCell</string>
|
||||
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="-2.CustomClassName">UIResponder</string>
|
||||
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="16.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="18.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<real value="2" key="18.IBUIButtonInspectorSelectedEdgeInsetMetadataKey"/>
|
||||
<real value="0.0" key="18.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
|
||||
<string key="2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="22.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="26.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="28.CustomClassName">UILoadingImageView</string>
|
||||
<string key="28.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="29.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="3.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="33.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="43.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="7.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="9.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">44</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIChatRoomCell</string>
|
||||
<string key="superclassName">UITableViewCell</string>
|
||||
<dictionary class="NSMutableDictionary" key="actions">
|
||||
<string key="onDeleteClick:">id</string>
|
||||
<string key="onDownloadClick:">id</string>
|
||||
<string key="onImageClick:">id</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="actionInfosByName">
|
||||
<object class="IBActionInfo" key="onDeleteClick:">
|
||||
<string key="name">onDeleteClick:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBActionInfo" key="onDownloadClick:">
|
||||
<string key="name">onDownloadClick:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBActionInfo" key="onImageClick:">
|
||||
<string key="name">onImageClick:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="outlets">
|
||||
<string key="backgroundImage">UIImageView</string>
|
||||
<string key="bubbleView">UIView</string>
|
||||
<string key="dateLabel">UILabel</string>
|
||||
<string key="deleteButton">UIButton</string>
|
||||
<string key="downloadButton">UIButton</string>
|
||||
<string key="imageTapGestureRecognizer">UITapGestureRecognizer</string>
|
||||
<string key="innerView">UIView</string>
|
||||
<string key="messageImageView">UILoadingImageView</string>
|
||||
<string key="messageText">UITextView</string>
|
||||
<string key="statusImage">UIImageView</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<object class="IBToOneOutletInfo" key="backgroundImage">
|
||||
<string key="name">backgroundImage</string>
|
||||
<string key="candidateClassName">UIImageView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="bubbleView">
|
||||
<string key="name">bubbleView</string>
|
||||
<string key="candidateClassName">UIView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="dateLabel">
|
||||
<string key="name">dateLabel</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="deleteButton">
|
||||
<string key="name">deleteButton</string>
|
||||
<string key="candidateClassName">UIButton</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="downloadButton">
|
||||
<string key="name">downloadButton</string>
|
||||
<string key="candidateClassName">UIButton</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="imageTapGestureRecognizer">
|
||||
<string key="name">imageTapGestureRecognizer</string>
|
||||
<string key="candidateClassName">UITapGestureRecognizer</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="innerView">
|
||||
<string key="name">innerView</string>
|
||||
<string key="candidateClassName">UIView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="messageImageView">
|
||||
<string key="name">messageImageView</string>
|
||||
<string key="candidateClassName">UILoadingImageView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="messageText">
|
||||
<string key="name">messageText</string>
|
||||
<string key="candidateClassName">UITextView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="statusImage">
|
||||
<string key="name">statusImage</string>
|
||||
<string key="candidateClassName">UIImageView</string>
|
||||
</object>
|
||||
</dictionary>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/UIChatRoomCell.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UILoadingImageView</string>
|
||||
<string key="superclassName">UIImageView</string>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
<string key="NS.key.0">waitIndicatorView</string>
|
||||
<string key="NS.object.0">UIActivityIndicatorView</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<string key="NS.key.0">waitIndicatorView</string>
|
||||
<object class="IBToOneOutletInfo" key="NS.object.0">
|
||||
<string key="name">waitIndicatorView</string>
|
||||
<string key="candidateClassName">UIActivityIndicatorView</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/UILoadingImageView.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
||||
<string key="chat_bubble_incoming.png">{71, 46}</string>
|
||||
<string key="chat_message_not_delivered.png">{18, 17}</string>
|
||||
<string key="list_delete_default.png">{45, 45}</string>
|
||||
<string key="list_delete_over.png">{45, 45}</string>
|
||||
</dictionary>
|
||||
<string key="IBCocoaTouchPluginVersion">1926</string>
|
||||
</data>
|
||||
</archive>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4514" systemVersion="13B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="UIChatRoomCell">
|
||||
<connections>
|
||||
<outlet property="backgroundImage" destination="3" id="11"/>
|
||||
<outlet property="backgroundView" destination="7" id="10"/>
|
||||
<outlet property="bubbleView" destination="16" id="30"/>
|
||||
<outlet property="dateLabel" destination="22" id="24"/>
|
||||
<outlet property="deleteButton" destination="18" id="19"/>
|
||||
<outlet property="downloadButton" destination="33" id="34"/>
|
||||
<outlet property="innerView" destination="2" id="25"/>
|
||||
<outlet property="messageImageView" destination="28" id="31"/>
|
||||
<outlet property="messageText" destination="43" id="44"/>
|
||||
<outlet property="selectedBackgroundView" destination="9" id="13"/>
|
||||
<outlet property="statusImage" destination="26" id="27"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view clipsSubviews="YES" tag="10" contentMode="scaleToFill" id="2" userLabel="innerView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="140"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="chat_bubble_incoming.png" id="3" userLabel="backgroundImage">
|
||||
<rect key="frame" x="5" y="5" width="310" height="130"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
</imageView>
|
||||
<view contentMode="scaleToFill" id="16" userLabel="bubbleView">
|
||||
<rect key="frame" x="13" y="13" width="294" height="114"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" id="29" userLabel="messageView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="294" height="104"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView contentMode="scaleAspectFit" id="28" userLabel="messageImageView" customClass="UILoadingImageView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="294" height="104"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<gestureRecognizers/>
|
||||
</imageView>
|
||||
<textView clipsSubviews="YES" contentMode="scaleToFill" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" editable="NO" text="They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety." id="43" userLabel="messageText" customClass="UITextViewNoDefine">
|
||||
<rect key="frame" x="-8" y="-11" width="310" height="126"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<color key="textColor" red="0.35686275360000003" green="0.3960784376" blue="0.43529412150000002" alpha="1" colorSpace="deviceRGB"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
|
||||
<dataDetectorType key="dataDetectorTypes" link="YES"/>
|
||||
</textView>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="33" userLabel="downloadButton">
|
||||
<rect key="frame" x="81" y="33" width="132" height="37"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal" title="Download image">
|
||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="onDownloadClick:" destination="-1" eventType="touchUpInside" id="39"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<label opaque="NO" clipsSubviews="YES" contentMode="left" text="09/09/2009 at 09:09" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="8" adjustsFontSizeToFit="NO" id="22" userLabel="timestampLabel">
|
||||
<rect key="frame" x="0.0" y="104" width="280" height="10"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="9"/>
|
||||
<color key="textColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="chat_message_not_delivered.png" id="26" userLabel="status">
|
||||
<rect key="frame" x="284" y="104" width="10" height="10"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/>
|
||||
</imageView>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="18" userLabel="deleteButton">
|
||||
<rect key="frame" x="250" y="0.0" width="44" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<inset key="imageEdgeInsets" minX="20" minY="2" maxX="2" maxY="20"/>
|
||||
<state key="normal" image="list_delete_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="list_delete_over.png"/>
|
||||
<connections>
|
||||
<action selector="onDeleteClick:" destination="-1" eventType="touchUpInside" id="32"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="7" userLabel="backgroundView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="100" height="100"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="9" userLabel="selectedBackgroundView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="100" height="100"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="chat_bubble_incoming.png" width="71" height="46"/>
|
||||
<image name="chat_message_not_delivered.png" width="18" height="17"/>
|
||||
<image name="list_delete_default.png" width="45" height="45"/>
|
||||
<image name="list_delete_over.png" width="45" height="45"/>
|
||||
</resources>
|
||||
</document>
|
||||
|
|
@ -606,6 +606,10 @@
|
|||
tabFrame.origin.y -= tabFrame.size.height;
|
||||
tabFrame.origin.x -= tabFrame.size.width;
|
||||
contentFrame.size.height = tabFrame.origin.y - contentFrame.origin.y;
|
||||
|
||||
// for some views, we need the content to overlap, in which case
|
||||
// we insert in the tab XIB a mask with tag -1 and with y = the amount of
|
||||
// points that the content should overlap.
|
||||
for (UIView *view in self.tabBarViewController.view.subviews) {
|
||||
if(view.tag == -1) {
|
||||
contentFrame.size.height += view.frame.origin.y;
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@
|
|||
options:nil];
|
||||
|
||||
if ([arrayOfViews count] >= 1) {
|
||||
[self addSubview:[[arrayOfViews objectAtIndex:0] retain]];
|
||||
[self.contentView addSubview:[arrayOfViews objectAtIndex:0] ];
|
||||
}
|
||||
}
|
||||
return self;
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
*/
|
||||
|
||||
#import "UIDigitButton.h"
|
||||
#include "linphonecore.h"
|
||||
#include "linphone/linphonecore.h"
|
||||
#import "LinphoneManager.h"
|
||||
|
||||
@implementation UIDigitButton
|
||||
|
|
|
|||
|
|
@ -31,10 +31,11 @@
|
|||
{
|
||||
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
|
||||
if (self) {
|
||||
self.detailTextField = [[UITextField alloc] init];
|
||||
[self.detailTextField setHidden:TRUE];
|
||||
[self.detailTextField setClearButtonMode: UITextFieldViewModeWhileEditing];
|
||||
[self.detailTextField setContentVerticalAlignment: UIControlContentVerticalAlignmentCenter];
|
||||
UITextField* tf = [[UITextField alloc] init];
|
||||
[tf setHidden:TRUE];
|
||||
[tf setClearButtonMode: UITextFieldViewModeWhileEditing];
|
||||
[tf setContentVerticalAlignment: UIControlContentVerticalAlignmentCenter];
|
||||
self.detailTextField = tf;
|
||||
|
||||
UIFont *font = [UIFont fontWithName:@"Helvetica-Bold" size:[UIFont systemFontSize]];
|
||||
[self.detailTextLabel setFont:font];
|
||||
|
|
@ -42,16 +43,22 @@
|
|||
[self.contentView addSubview:detailTextField];
|
||||
|
||||
// a vertical separator that will come between the text and detailed text
|
||||
self.verticalSep = [[UIView alloc] initWithFrame:CGRectMake(80, 5, 1, 34)];
|
||||
verticalSep.backgroundColor = [UIColor lightGrayColor];
|
||||
[self.verticalSep setHidden:TRUE];
|
||||
UIView* v = [[UIView alloc] initWithFrame:CGRectMake(80, 5, 1, 34)];
|
||||
[v setBackgroundColor:[UIColor lightGrayColor]];
|
||||
[v setHidden:TRUE];
|
||||
|
||||
self.verticalSep = v;
|
||||
|
||||
[self.contentView addSubview:verticalSep];
|
||||
|
||||
[tf release];
|
||||
[v release];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)dealloc {
|
||||
[self.detailTextField release];
|
||||
self.detailTextField = nil;
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "UITransparentTVCell.h"
|
||||
#include "linphonecore.h"
|
||||
#include "linphone/linphonecore.h"
|
||||
|
||||
@interface UIHistoryCell : UITransparentTVCell {
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@
|
|||
options:nil];
|
||||
|
||||
if ([arrayOfViews count] >= 1) {
|
||||
[self addSubview:[[arrayOfViews objectAtIndex:0] retain]];
|
||||
[self.contentView addSubview:[arrayOfViews objectAtIndex:0]];
|
||||
}
|
||||
|
||||
self->callLog = NULL;
|
||||
|
|
|
|||
|
|
@ -1,359 +1,69 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1536</int>
|
||||
<string key="IBDocument.SystemVersion">11E53</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">2840</string>
|
||||
<string key="IBDocument.AppKitVersion">1138.47</string>
|
||||
<string key="IBDocument.HIToolboxVersion">569.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">1926</string>
|
||||
</object>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>IBProxyObject</string>
|
||||
<string>IBUIButton</string>
|
||||
<string>IBUIImageView</string>
|
||||
<string>IBUILabel</string>
|
||||
<string>IBUIView</string>
|
||||
</array>
|
||||
<array key="IBDocument.PluginDependencies">
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</array>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
|
||||
<integer value="1" key="NS.object.0"/>
|
||||
</object>
|
||||
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<object class="IBProxyObject" id="841351856">
|
||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="371349661">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="702431052">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUIImageView" id="811339934">
|
||||
<reference key="NSNextResponder" ref="702431052"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{10, 8}, {27, 27}}</string>
|
||||
<reference key="NSSuperview" ref="702431052"/>
|
||||
<reference key="NSNextKeyView" ref="123093962"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUILabel" id="123093962">
|
||||
<reference key="NSNextResponder" ref="702431052"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrame">{{45, 0}, {236, 44}}</string>
|
||||
<reference key="NSSuperview" ref="702431052"/>
|
||||
<reference key="NSNextKeyView" ref="364135044"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:328</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<int key="IBUITag">2</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
|
||||
<string key="IBUIAccessibilityLabel">Firstname</string>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">John</string>
|
||||
<object class="NSColor" key="IBUITextColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MCAwIDAAA</bytes>
|
||||
<string key="IBUIColorCocoaTouchKeyPath">darkTextColor</string>
|
||||
</object>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription">
|
||||
<int key="type">1</int>
|
||||
<double key="pointSize">25</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica</string>
|
||||
<double key="NSSize">25</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<bool key="IBUIAdjustsFontSizeToFit">NO</bool>
|
||||
</object>
|
||||
<object class="IBUIButton" id="364135044">
|
||||
<reference key="NSNextResponder" ref="702431052"/>
|
||||
<int key="NSvFlags">257</int>
|
||||
<string key="NSFrame">{{276, 0}, {44, 44}}</string>
|
||||
<reference key="NSSuperview" ref="702431052"/>
|
||||
<reference key="NSNextKeyView" ref="192050775"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<bool key="IBUIAdjustsImageWhenHighlighted">NO</bool>
|
||||
<double key="IBUIImageEdgeInsets.top">11</double>
|
||||
<double key="IBUIImageEdgeInsets.bottom">11</double>
|
||||
<double key="IBUIImageEdgeInsets.left">11</double>
|
||||
<double key="IBUIImageEdgeInsets.right">11</double>
|
||||
<object class="NSColor" key="IBUINormalTitleShadowColor" id="936824754">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MC41AA</bytes>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUIHighlightedImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">list_details_over.png</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUINormalImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">list_details_default.png</string>
|
||||
</object>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription" id="954936864">
|
||||
<int key="type">2</int>
|
||||
<double key="pointSize">15</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont" id="377778557">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">15</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUIButton" id="192050775">
|
||||
<reference key="NSNextResponder" ref="702431052"/>
|
||||
<int key="NSvFlags">257</int>
|
||||
<string key="NSFrame">{{276, 0}, {44, 44}}</string>
|
||||
<reference key="NSSuperview" ref="702431052"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<bool key="IBUIAdjustsImageWhenHighlighted">NO</bool>
|
||||
<double key="IBUIImageEdgeInsets.top">11</double>
|
||||
<double key="IBUIImageEdgeInsets.bottom">11</double>
|
||||
<double key="IBUIImageEdgeInsets.left">11</double>
|
||||
<double key="IBUIImageEdgeInsets.right">11</double>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="936824754"/>
|
||||
<object class="NSCustomResource" key="IBUIHighlightedImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">list_delete_over.png</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUINormalImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">list_delete_default.png</string>
|
||||
</object>
|
||||
<reference key="IBUIFontDescription" ref="954936864"/>
|
||||
<reference key="IBUIFont" ref="377778557"/>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{320, 44}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSNextKeyView" ref="811339934"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MCAwAA</bytes>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<array class="NSMutableArray" key="connectionRecords">
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">imageView</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="811339934"/>
|
||||
</object>
|
||||
<int key="connectionID">11</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">deleteButton</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="192050775"/>
|
||||
</object>
|
||||
<int key="connectionID">16</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">detailsButton</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="364135044"/>
|
||||
</object>
|
||||
<int key="connectionID">17</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">addressLabel</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="123093962"/>
|
||||
</object>
|
||||
<int key="connectionID">25</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">onDetails:</string>
|
||||
<reference key="source" ref="364135044"/>
|
||||
<reference key="destination" ref="841351856"/>
|
||||
<int key="IBEventType">7</int>
|
||||
</object>
|
||||
<int key="connectionID">19</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">onDelete:</string>
|
||||
<reference key="source" ref="192050775"/>
|
||||
<reference key="destination" ref="841351856"/>
|
||||
<int key="IBEventType">7</int>
|
||||
</object>
|
||||
<int key="connectionID">18</int>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<array key="orderedObjects">
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<array key="object" id="0"/>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="841351856"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">File's Owner</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="371349661"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">12</int>
|
||||
<reference key="object" ref="702431052"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="123093962"/>
|
||||
<reference ref="811339934"/>
|
||||
<reference ref="364135044"/>
|
||||
<reference ref="192050775"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">6</int>
|
||||
<reference key="object" ref="811339934"/>
|
||||
<reference key="parent" ref="702431052"/>
|
||||
<string key="objectName">imageView</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">5</int>
|
||||
<reference key="object" ref="123093962"/>
|
||||
<reference key="parent" ref="702431052"/>
|
||||
<string key="objectName">displayNameLabel</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">7</int>
|
||||
<reference key="object" ref="364135044"/>
|
||||
<reference key="parent" ref="702431052"/>
|
||||
<string key="objectName">detailsButton</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">15</int>
|
||||
<reference key="object" ref="192050775"/>
|
||||
<reference key="parent" ref="702431052"/>
|
||||
<string key="objectName">deleteButton</string>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||
<string key="-1.CustomClassName">UIHistoryCell</string>
|
||||
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="-2.CustomClassName">UIResponder</string>
|
||||
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="12.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="15.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<real value="2" key="15.IBUIButtonInspectorSelectedEdgeInsetMetadataKey"/>
|
||||
<real value="1" key="15.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
|
||||
<string key="5.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="7.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<real value="2" key="7.IBUIButtonInspectorSelectedEdgeInsetMetadataKey"/>
|
||||
<real value="0.0" key="7.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">25</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIHistoryCell</string>
|
||||
<string key="superclassName">UITableViewCell</string>
|
||||
<dictionary class="NSMutableDictionary" key="actions">
|
||||
<string key="onDelete:">id</string>
|
||||
<string key="onDetails:">id</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="actionInfosByName">
|
||||
<object class="IBActionInfo" key="onDelete:">
|
||||
<string key="name">onDelete:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBActionInfo" key="onDetails:">
|
||||
<string key="name">onDetails:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="outlets">
|
||||
<string key="addressLabel">UILabel</string>
|
||||
<string key="deleteButton">UIButton</string>
|
||||
<string key="detailsButton">UIButton</string>
|
||||
<string key="imageView">UIImageView</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<object class="IBToOneOutletInfo" key="addressLabel">
|
||||
<string key="name">addressLabel</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="deleteButton">
|
||||
<string key="name">deleteButton</string>
|
||||
<string key="candidateClassName">UIButton</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="detailsButton">
|
||||
<string key="name">detailsButton</string>
|
||||
<string key="candidateClassName">UIButton</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="imageView">
|
||||
<string key="name">imageView</string>
|
||||
<string key="candidateClassName">UIImageView</string>
|
||||
</object>
|
||||
</dictionary>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/UIHistoryCell.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
||||
<real value="1536" key="NS.object.0"/>
|
||||
</object>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
||||
<string key="list_delete_default.png">{45, 45}</string>
|
||||
<string key="list_delete_over.png">{45, 45}</string>
|
||||
<string key="list_details_default.png">{45, 45}</string>
|
||||
<string key="list_details_over.png">{45, 45}</string>
|
||||
</dictionary>
|
||||
<string key="IBCocoaTouchPluginVersion">1926</string>
|
||||
</data>
|
||||
</archive>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4514" systemVersion="13A603" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1280" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="UIHistoryCell">
|
||||
<connections>
|
||||
<outlet property="addressLabel" destination="5" id="25"/>
|
||||
<outlet property="deleteButton" destination="15" id="16"/>
|
||||
<outlet property="detailsButton" destination="7" id="17"/>
|
||||
<outlet property="imageView" destination="6" id="11"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="12">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" id="6" userLabel="imageView">
|
||||
<rect key="frame" x="10" y="8" width="27" height="27"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="2" contentMode="left" text="John" lineBreakMode="tailTruncation" minimumFontSize="10" adjustsFontSizeToFit="NO" id="5" userLabel="displayNameLabel">
|
||||
<rect key="frame" x="45" y="0.0" width="236" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Firstname"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="25"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="7" userLabel="detailsButton">
|
||||
<rect key="frame" x="276" y="0.0" width="44" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<inset key="imageEdgeInsets" minX="11" minY="11" maxX="11" maxY="11"/>
|
||||
<state key="normal" image="list_details_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="list_details_over.png"/>
|
||||
<connections>
|
||||
<action selector="onDetails:" destination="-1" eventType="touchUpInside" id="19"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" id="15" userLabel="deleteButton">
|
||||
<rect key="frame" x="276" y="0.0" width="44" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<inset key="imageEdgeInsets" minX="11" minY="11" maxX="11" maxY="11"/>
|
||||
<state key="normal" image="list_delete_default.png">
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" image="list_delete_over.png"/>
|
||||
<connections>
|
||||
<action selector="onDelete:" destination="-1" eventType="touchUpInside" id="18"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="list_delete_default.png" width="45" height="45"/>
|
||||
<image name="list_delete_over.png" width="45" height="45"/>
|
||||
<image name="list_details_default.png" width="45" height="45"/>
|
||||
<image name="list_details_over.png" width="45" height="45"/>
|
||||
</resources>
|
||||
</document>
|
||||
|
|
@ -18,6 +18,8 @@
|
|||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <AssetsLibrary/ALAsset.h>
|
||||
#import <AssetsLibrary/ALAssetRepresentation.h>
|
||||
|
||||
@interface UILoadingImageView : UIImageView
|
||||
|
||||
|
|
@ -26,6 +28,7 @@
|
|||
- (BOOL)isLoading;
|
||||
- (void)stopLoading;
|
||||
|
||||
@property (nonatomic, retain) ALAsset* fullImageUrl;
|
||||
@property (nonatomic, readonly) IBOutlet UIActivityIndicatorView *waitIndicatorView;
|
||||
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@
|
|||
|
||||
#import "UIMainBar.h"
|
||||
#import "PhoneMainView.h"
|
||||
#import "ChatModel.h"
|
||||
#import "CAAnimation+Blocks.h"
|
||||
|
||||
@implementation UIMainBar
|
||||
|
|
@ -243,7 +242,7 @@ static NSString * const kDisappearAnimation = @"disappear";
|
|||
}
|
||||
|
||||
- (void)textReceived:(NSNotification*)notif {
|
||||
[self updateUnreadMessage:[ChatModel unreadMessages] appear:TRUE];
|
||||
[self updateUnreadMessage:TRUE];
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -256,10 +255,11 @@ static NSString * const kDisappearAnimation = @"disappear";
|
|||
} else {
|
||||
[self updateMissedCall:0 appear:TRUE];
|
||||
}
|
||||
[self updateUnreadMessage:[ChatModel unreadMessages] appear:appear];
|
||||
[self updateUnreadMessage:appear];
|
||||
}
|
||||
|
||||
- (void)updateUnreadMessage:(int)unreadMessage appear:(BOOL)appear{
|
||||
- (void)updateUnreadMessage:(BOOL)appear{
|
||||
int unreadMessage = [LinphoneManager unreadMessageCount];
|
||||
if (unreadMessage > 0) {
|
||||
if([chatNotificationView isHidden]) {
|
||||
[chatNotificationView setHidden:FALSE];
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
#import "UIToggleButton.h"
|
||||
|
||||
#import "linphonecore.h"
|
||||
#include "linphone/linphonecore.h"
|
||||
|
||||
typedef enum _UIPauseButtonType {
|
||||
UIPauseButtonType_CurrentCall,
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
#import "UIPauseButton.h"
|
||||
#import "LinphoneManager.h"
|
||||
|
||||
#include "linphonecore.h"
|
||||
#include "linphone/linphonecore.h"
|
||||
|
||||
|
||||
@implementation UIPauseButton
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
#import "Utils.h"
|
||||
#import "LinphoneManager.h"
|
||||
|
||||
#include "linphonecore.h"
|
||||
#include "linphone/linphonecore.h"
|
||||
|
||||
@implementation UISpeakerButton
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
#import "TPMultiLayoutViewController.h"
|
||||
#import "DTActionSheet.h"
|
||||
|
||||
@interface UIStateBar : TPMultiLayoutViewController {
|
||||
@interface UIStateBar : TPMultiLayoutViewController<UIActionSheetDelegate> {
|
||||
DTActionSheet *securitySheet;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -86,7 +86,10 @@ NSTimer *callSecurityTimer;
|
|||
name:kLinphoneRegistrationUpdate
|
||||
object:nil];
|
||||
|
||||
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||
selector:@selector(globalStateUpdate:)
|
||||
name:kLinphoneGlobalStateUpdate
|
||||
object:nil];
|
||||
[callQualityImage setHidden: true];
|
||||
[callSecurityImage setHidden: true];
|
||||
|
||||
|
|
@ -104,7 +107,9 @@ NSTimer *callSecurityTimer;
|
|||
[[NSNotificationCenter defaultCenter] removeObserver:self
|
||||
name:kLinphoneRegistrationUpdate
|
||||
object:nil];
|
||||
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:self
|
||||
name:kLinphoneGlobalStateUpdate
|
||||
object:nil];
|
||||
if(callQualityTimer != nil) {
|
||||
[callQualityTimer invalidate];
|
||||
callQualityTimer = nil;
|
||||
|
|
@ -124,15 +129,23 @@ NSTimer *callSecurityTimer;
|
|||
[self proxyConfigUpdate:config];
|
||||
}
|
||||
|
||||
- (void) globalStateUpdate:(NSNotification*) notif {
|
||||
if ([LinphoneManager isLcReady]) [self registrationUpdate:notif];
|
||||
}
|
||||
|
||||
|
||||
#pragma mark -
|
||||
|
||||
- (void)proxyConfigUpdate: (LinphoneProxyConfig*) config {
|
||||
LinphoneRegistrationState state;
|
||||
LinphoneRegistrationState state = LinphoneRegistrationNone;
|
||||
NSString* message = nil;
|
||||
UIImage* image = nil;
|
||||
LinphoneCore* lc = [LinphoneManager getLc];
|
||||
LinphoneGlobalState gstate = linphone_core_get_global_state(lc);
|
||||
|
||||
if (config == NULL) {
|
||||
if( gstate == LinphoneGlobalConfiguring ){
|
||||
message = NSLocalizedString(@"Fetching remote configuration", nil);
|
||||
} else if (config == NULL) {
|
||||
state = LinphoneRegistrationNone;
|
||||
if(![LinphoneManager isLcReady] || linphone_core_is_network_reachable([LinphoneManager getLc]))
|
||||
message = NSLocalizedString(@"No SIP account configured", nil);
|
||||
|
|
@ -266,14 +279,15 @@ NSTimer *callSecurityTimer;
|
|||
message = [NSString stringWithFormat:NSLocalizedString(@"Confirm the following SAS with the peer:\n%s",nil),
|
||||
linphone_call_get_authentication_token(call)];
|
||||
}
|
||||
if(securitySheet == nil) {
|
||||
if( securitySheet == nil ){
|
||||
securitySheet = [[DTActionSheet alloc] initWithTitle:message];
|
||||
[securitySheet setDelegate:self];
|
||||
[securitySheet addButtonWithTitle:NSLocalizedString(@"Ok",nil) block:^(){
|
||||
linphone_call_set_authentication_token_verified(call, !valid);
|
||||
[securitySheet release];
|
||||
securitySheet = nil;
|
||||
}];
|
||||
|
||||
|
||||
[securitySheet addDestructiveButtonWithTitle:NSLocalizedString(@"Cancel",nil) block:^(){
|
||||
[securitySheet release];
|
||||
securitySheet = nil;
|
||||
|
|
@ -285,6 +299,10 @@ NSTimer *callSecurityTimer;
|
|||
}
|
||||
}
|
||||
|
||||
-(void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex{
|
||||
[securitySheet release];
|
||||
securitySheet = nil;
|
||||
}
|
||||
|
||||
#pragma mark - TPMultiLayoutViewController Functions
|
||||
|
||||
|
|
|
|||
|
|
@ -1,617 +1,125 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1536</int>
|
||||
<string key="IBDocument.SystemVersion">11G63</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">2840</string>
|
||||
<string key="IBDocument.AppKitVersion">1138.51</string>
|
||||
<string key="IBDocument.HIToolboxVersion">569.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">1926</string>
|
||||
</object>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>IBProxyObject</string>
|
||||
<string>IBUIButton</string>
|
||||
<string>IBUIImageView</string>
|
||||
<string>IBUILabel</string>
|
||||
<string>IBUIView</string>
|
||||
</array>
|
||||
<array key="IBDocument.PluginDependencies">
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</array>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
|
||||
<integer value="1" key="NS.object.0"/>
|
||||
</object>
|
||||
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<object class="IBProxyObject" id="372490531">
|
||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="975951072">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="848661322">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">290</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUIImageView" id="393098359">
|
||||
<reference key="NSNextResponder" ref="848661322"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrameSize">{320, 23}</string>
|
||||
<reference key="NSSuperview" ref="848661322"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="332800514"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<int key="IBUITag">1</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSCustomResource" key="IBUIImage" id="534509476">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">statebar_background.png</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUIImageView" id="332800514">
|
||||
<reference key="NSNextResponder" ref="848661322"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{6, 6}, {10, 10}}</string>
|
||||
<reference key="NSSuperview" ref="848661322"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="200467549"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:567</string>
|
||||
<int key="IBUITag">2</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
|
||||
<string key="IBUIAccessibilityLabel">Registration state</string>
|
||||
<boolean value="YES" key="IBUIIsAccessibilityElement"/>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSCustomResource" key="IBUIImage" id="1048926494">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">led_disconnected.png</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUILabel" id="200467549">
|
||||
<reference key="NSNextResponder" ref="848661322"/>
|
||||
<int key="NSvFlags">290</int>
|
||||
<string key="NSFrame">{{22, 0}, {222, 20}}</string>
|
||||
<reference key="NSSuperview" ref="848661322"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="327031870"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:328</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<int key="IBUITag">3</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
|
||||
<string key="IBUIAccessibilityLabel">Registration state</string>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">CARAMBA</string>
|
||||
<object class="NSColor" key="IBUITextColor" id="511295248">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
|
||||
</object>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription" id="745016149">
|
||||
<int key="type">1</int>
|
||||
<double key="pointSize">17</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont" id="588587366">
|
||||
<string key="NSName">Helvetica</string>
|
||||
<double key="NSSize">17</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUIImageView" id="327031870">
|
||||
<reference key="NSNextResponder" ref="848661322"/>
|
||||
<int key="NSvFlags">289</int>
|
||||
<string key="NSFrame">{{252, 3}, {27, 17}}</string>
|
||||
<reference key="NSSuperview" ref="848661322"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="661488590"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:567</string>
|
||||
<int key="IBUITag">4</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
|
||||
<string key="IBUIAccessibilityLabel">Call quality</string>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIImageView" id="522045680">
|
||||
<reference key="NSNextResponder" ref="848661322"/>
|
||||
<int key="NSvFlags">289</int>
|
||||
<string key="NSFrame">{{287, 3}, {27, 17}}</string>
|
||||
<reference key="NSSuperview" ref="848661322"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:567</string>
|
||||
<int key="IBUIContentMode">1</int>
|
||||
<int key="IBUITag">5</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
|
||||
<string key="IBUIAccessibilityLabel">Security state</string>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIButton" id="661488590">
|
||||
<reference key="NSNextResponder" ref="848661322"/>
|
||||
<int key="NSvFlags">289</int>
|
||||
<string key="NSFrame">{{284, 0}, {33, 23}}</string>
|
||||
<reference key="NSSuperview" ref="848661322"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="522045680"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<int key="IBUITag">6</int>
|
||||
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
|
||||
<boolean value="NO" key="IBUIIsAccessibilityElement"/>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<bool key="IBUIAdjustsImageWhenHighlighted">NO</bool>
|
||||
<bool key="IBUIAdjustsImageWhenDisabled">NO</bool>
|
||||
<object class="NSColor" key="IBUIHighlightedTitleColor" id="995736910">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUINormalTitleShadowColor" id="863984655">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MC41AA</bytes>
|
||||
</object>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription" id="373967111">
|
||||
<int key="type">2</int>
|
||||
<double key="pointSize">15</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont" id="568467497">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">15</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{320, 23}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="393098359"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:196</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor" id="139297653">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MCAwAA</bytes>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="572911811">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">290</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUIImageView" id="274257756">
|
||||
<reference key="NSNextResponder" ref="572911811"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrameSize">{480, 23}</string>
|
||||
<reference key="NSSuperview" ref="572911811"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="404338830"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<int key="IBUITag">1</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<reference key="IBUIImage" ref="534509476"/>
|
||||
</object>
|
||||
<object class="IBUIImageView" id="404338830">
|
||||
<reference key="NSNextResponder" ref="572911811"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{6, 6}, {10, 10}}</string>
|
||||
<reference key="NSSuperview" ref="572911811"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="314750323"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:567</string>
|
||||
<int key="IBUITag">2</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<reference key="IBUIImage" ref="1048926494"/>
|
||||
</object>
|
||||
<object class="IBUILabel" id="314750323">
|
||||
<reference key="NSNextResponder" ref="572911811"/>
|
||||
<int key="NSvFlags">290</int>
|
||||
<string key="NSFrame">{{22, 0}, {382, 20}}</string>
|
||||
<reference key="NSSuperview" ref="572911811"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="408451884"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:328</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<int key="IBUITag">3</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">CARAMBA</string>
|
||||
<reference key="IBUITextColor" ref="511295248"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<reference key="IBUIFontDescription" ref="745016149"/>
|
||||
<reference key="IBUIFont" ref="588587366"/>
|
||||
</object>
|
||||
<object class="IBUIImageView" id="408451884">
|
||||
<reference key="NSNextResponder" ref="572911811"/>
|
||||
<int key="NSvFlags">289</int>
|
||||
<string key="NSFrame">{{412, 3}, {27, 17}}</string>
|
||||
<reference key="NSSuperview" ref="572911811"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="695121572"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:567</string>
|
||||
<int key="IBUITag">4</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIImageView" id="695121572">
|
||||
<reference key="NSNextResponder" ref="572911811"/>
|
||||
<int key="NSvFlags">289</int>
|
||||
<string key="NSFrame">{{447, 3}, {27, 17}}</string>
|
||||
<reference key="NSSuperview" ref="572911811"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="1027488456"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:567</string>
|
||||
<int key="IBUIContentMode">1</int>
|
||||
<int key="IBUITag">5</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIButton" id="1027488456">
|
||||
<reference key="NSNextResponder" ref="572911811"/>
|
||||
<int key="NSvFlags">289</int>
|
||||
<string key="NSFrame">{{444, 0}, {33, 23}}</string>
|
||||
<reference key="NSSuperview" ref="572911811"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<int key="IBUITag">6</int>
|
||||
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
|
||||
<boolean value="NO" key="IBUIIsAccessibilityElement"/>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<bool key="IBUIAdjustsImageWhenHighlighted">NO</bool>
|
||||
<bool key="IBUIAdjustsImageWhenDisabled">NO</bool>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="995736910"/>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="863984655"/>
|
||||
<reference key="IBUIFontDescription" ref="373967111"/>
|
||||
<reference key="IBUIFont" ref="568467497"/>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{480, 23}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="274257756"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:196</string>
|
||||
<reference key="IBUIBackgroundColor" ref="139297653"/>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<array class="NSMutableArray" key="connectionRecords">
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">view</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="848661322"/>
|
||||
</object>
|
||||
<int key="connectionID">11</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">registrationStateImage</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="332800514"/>
|
||||
</object>
|
||||
<int key="connectionID">14</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">registrationStateLabel</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="200467549"/>
|
||||
</object>
|
||||
<int key="connectionID">15</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">callQualityImage</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="327031870"/>
|
||||
</object>
|
||||
<int key="connectionID">16</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">callSecurityImage</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="522045680"/>
|
||||
</object>
|
||||
<int key="connectionID">18</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">portraitView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="848661322"/>
|
||||
</object>
|
||||
<int key="connectionID">25</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">landscapeView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="572911811"/>
|
||||
</object>
|
||||
<int key="connectionID">26</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">callSecurityButton</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="661488590"/>
|
||||
</object>
|
||||
<int key="connectionID">29</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">doSecurityClick:</string>
|
||||
<reference key="source" ref="661488590"/>
|
||||
<reference key="destination" ref="372490531"/>
|
||||
<int key="IBEventType">7</int>
|
||||
</object>
|
||||
<int key="connectionID">30</int>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<array key="orderedObjects">
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<array key="object" id="0"/>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="372490531"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">File's Owner</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="975951072"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">4</int>
|
||||
<reference key="object" ref="848661322"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="332800514"/>
|
||||
<reference ref="200467549"/>
|
||||
<reference ref="393098359"/>
|
||||
<reference ref="327031870"/>
|
||||
<reference ref="522045680"/>
|
||||
<reference ref="661488590"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">Portrait View</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">6</int>
|
||||
<reference key="object" ref="200467549"/>
|
||||
<reference key="parent" ref="848661322"/>
|
||||
<string key="objectName">registrationStateLabel</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">5</int>
|
||||
<reference key="object" ref="332800514"/>
|
||||
<reference key="parent" ref="848661322"/>
|
||||
<string key="objectName">registrationStateImage</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">12</int>
|
||||
<reference key="object" ref="393098359"/>
|
||||
<reference key="parent" ref="848661322"/>
|
||||
<string key="objectName">background</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">13</int>
|
||||
<reference key="object" ref="327031870"/>
|
||||
<reference key="parent" ref="848661322"/>
|
||||
<string key="objectName">callQualityImage</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">17</int>
|
||||
<reference key="object" ref="522045680"/>
|
||||
<reference key="parent" ref="848661322"/>
|
||||
<string key="objectName">callSecurityImage</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">19</int>
|
||||
<reference key="object" ref="572911811"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="274257756"/>
|
||||
<reference ref="314750323"/>
|
||||
<reference ref="404338830"/>
|
||||
<reference ref="408451884"/>
|
||||
<reference ref="695121572"/>
|
||||
<reference ref="1027488456"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">Landscape View</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">20</int>
|
||||
<reference key="object" ref="695121572"/>
|
||||
<reference key="parent" ref="572911811"/>
|
||||
<string key="objectName">callSecurityImage</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">21</int>
|
||||
<reference key="object" ref="408451884"/>
|
||||
<reference key="parent" ref="572911811"/>
|
||||
<string key="objectName">callQualityImage</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">22</int>
|
||||
<reference key="object" ref="274257756"/>
|
||||
<reference key="parent" ref="572911811"/>
|
||||
<string key="objectName">background</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">23</int>
|
||||
<reference key="object" ref="314750323"/>
|
||||
<reference key="parent" ref="572911811"/>
|
||||
<string key="objectName">registrationStateLabel</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">24</int>
|
||||
<reference key="object" ref="404338830"/>
|
||||
<reference key="parent" ref="572911811"/>
|
||||
<string key="objectName">registrationStateImage</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">27</int>
|
||||
<reference key="object" ref="661488590"/>
|
||||
<reference key="parent" ref="848661322"/>
|
||||
<string key="objectName">callSecurityButton</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">28</int>
|
||||
<reference key="object" ref="1027488456"/>
|
||||
<reference key="parent" ref="572911811"/>
|
||||
<string key="objectName">callSecurityButton</string>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||
<string key="-1.CustomClassName">UIStateBar</string>
|
||||
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="-2.CustomClassName">UIResponder</string>
|
||||
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="12.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="13.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="17.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="19.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="20.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="21.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="22.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="23.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="24.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="27.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<real value="2" key="27.IBUIButtonInspectorSelectedEdgeInsetMetadataKey"/>
|
||||
<string key="28.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<real value="2" key="28.IBUIButtonInspectorSelectedEdgeInsetMetadataKey"/>
|
||||
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="5.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">30</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">TPMultiLayoutViewController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<dictionary class="NSMutableDictionary" key="outlets">
|
||||
<string key="landscapeView">UIView</string>
|
||||
<string key="portraitView">UIView</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<object class="IBToOneOutletInfo" key="landscapeView">
|
||||
<string key="name">landscapeView</string>
|
||||
<string key="candidateClassName">UIView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="portraitView">
|
||||
<string key="name">portraitView</string>
|
||||
<string key="candidateClassName">UIView</string>
|
||||
</object>
|
||||
</dictionary>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/TPMultiLayoutViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIStateBar</string>
|
||||
<string key="superclassName">TPMultiLayoutViewController</string>
|
||||
<object class="NSMutableDictionary" key="actions">
|
||||
<string key="NS.key.0">doSecurityClick:</string>
|
||||
<string key="NS.object.0">id</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||
<string key="NS.key.0">doSecurityClick:</string>
|
||||
<object class="IBActionInfo" key="NS.object.0">
|
||||
<string key="name">doSecurityClick:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="outlets">
|
||||
<string key="callQualityImage">UIImageView</string>
|
||||
<string key="callSecurityButton">UIButton</string>
|
||||
<string key="callSecurityImage">UIImageView</string>
|
||||
<string key="registrationStateImage">UIImageView</string>
|
||||
<string key="registrationStateLabel">UILabel</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<object class="IBToOneOutletInfo" key="callQualityImage">
|
||||
<string key="name">callQualityImage</string>
|
||||
<string key="candidateClassName">UIImageView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="callSecurityButton">
|
||||
<string key="name">callSecurityButton</string>
|
||||
<string key="candidateClassName">UIButton</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="callSecurityImage">
|
||||
<string key="name">callSecurityImage</string>
|
||||
<string key="candidateClassName">UIImageView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="registrationStateImage">
|
||||
<string key="name">registrationStateImage</string>
|
||||
<string key="candidateClassName">UIImageView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="registrationStateLabel">
|
||||
<string key="name">registrationStateLabel</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
</dictionary>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/UIStateBar.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
||||
<string key="led_disconnected.png">{18, 17}</string>
|
||||
<string key="statebar_background.png">{640, 46}</string>
|
||||
</dictionary>
|
||||
<string key="IBCocoaTouchPluginVersion">1926</string>
|
||||
</data>
|
||||
</archive>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4514" systemVersion="13A603" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment defaultVersion="1280" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3747"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="UIStateBar">
|
||||
<connections>
|
||||
<outlet property="callQualityImage" destination="13" id="16"/>
|
||||
<outlet property="callSecurityButton" destination="27" id="29"/>
|
||||
<outlet property="callSecurityImage" destination="17" id="18"/>
|
||||
<outlet property="landscapeView" destination="19" id="26"/>
|
||||
<outlet property="portraitView" destination="4" id="25"/>
|
||||
<outlet property="registrationStateImage" destination="5" id="14"/>
|
||||
<outlet property="registrationStateLabel" destination="6" id="15"/>
|
||||
<outlet property="view" destination="4" id="11"/>
|
||||
</connections>
|
||||
</placeholder>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="4" userLabel="Portrait View">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="23"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" tag="1" contentMode="scaleToFill" image="statebar_background.png" id="12" userLabel="background">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="23"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" tag="2" contentMode="scaleToFill" image="led_disconnected.png" id="5" userLabel="registrationStateImage">
|
||||
<rect key="frame" x="6" y="6" width="10" height="10"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Registration state">
|
||||
<bool key="isElement" value="YES"/>
|
||||
</accessibility>
|
||||
</imageView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="3" contentMode="left" text="CARAMBA" lineBreakMode="tailTruncation" minimumFontSize="10" id="6" userLabel="registrationStateLabel">
|
||||
<rect key="frame" x="22" y="0.0" width="222" height="20"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Registration state"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView userInteractionEnabled="NO" tag="4" contentMode="scaleToFill" id="13" userLabel="callQualityImage">
|
||||
<rect key="frame" x="252" y="3" width="27" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Call quality"/>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" tag="5" contentMode="scaleAspectFit" id="17" userLabel="callSecurityImage">
|
||||
<rect key="frame" x="287" y="3" width="27" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" label="Security state"/>
|
||||
</imageView>
|
||||
<button opaque="NO" tag="6" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="27" userLabel="callSecurityButton">
|
||||
<rect key="frame" x="284" y="0.0" width="33" height="23"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration">
|
||||
<bool key="isElement" value="NO"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal">
|
||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<connections>
|
||||
<action selector="doSecurityClick:" destination="-1" eventType="touchUpInside" id="30"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" id="19" userLabel="Landscape View">
|
||||
<rect key="frame" x="0.0" y="0.0" width="480" height="23"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" tag="1" contentMode="scaleToFill" image="statebar_background.png" id="22" userLabel="background">
|
||||
<rect key="frame" x="0.0" y="0.0" width="480" height="23"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" tag="2" contentMode="scaleToFill" image="led_disconnected.png" id="24" userLabel="registrationStateImage">
|
||||
<rect key="frame" x="6" y="6" width="10" height="10"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="3" contentMode="left" text="CARAMBA" lineBreakMode="tailTruncation" minimumFontSize="10" id="23" userLabel="registrationStateLabel">
|
||||
<rect key="frame" x="22" y="0.0" width="382" height="20"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView userInteractionEnabled="NO" tag="4" contentMode="scaleToFill" id="21" userLabel="callQualityImage">
|
||||
<rect key="frame" x="412" y="3" width="27" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<imageView userInteractionEnabled="NO" tag="5" contentMode="scaleAspectFit" id="20" userLabel="callSecurityImage">
|
||||
<rect key="frame" x="447" y="3" width="27" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
</imageView>
|
||||
<button opaque="NO" tag="6" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" adjustsImageWhenHighlighted="NO" adjustsImageWhenDisabled="NO" lineBreakMode="middleTruncation" id="28" userLabel="callSecurityButton">
|
||||
<rect key="frame" x="444" y="0.0" width="33" height="23"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration">
|
||||
<bool key="isElement" value="NO"/>
|
||||
</accessibility>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<state key="normal">
|
||||
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="led_disconnected.png" width="18" height="17"/>
|
||||
<image name="statebar_background.png" width="640" height="46"/>
|
||||
</resources>
|
||||
</document>
|
||||
15
Classes/LinphoneUI/UITextViewNoDefine.h
Normal file
15
Classes/LinphoneUI/UITextViewNoDefine.h
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
//
|
||||
// UITextFieldNoDefine.h
|
||||
// linphone
|
||||
//
|
||||
// Created by guillaume on 05/03/2014.
|
||||
//
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface UITextViewNoDefine : UITextView
|
||||
|
||||
@property BOOL allowSelectAll;
|
||||
|
||||
@end
|
||||
26
Classes/LinphoneUI/UITextViewNoDefine.m
Normal file
26
Classes/LinphoneUI/UITextViewNoDefine.m
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
//
|
||||
// UITextViewNoDefine.m
|
||||
// linphone
|
||||
//
|
||||
// Created by guillaume on 05/03/2014.
|
||||
//
|
||||
//
|
||||
|
||||
#import "UITextViewNoDefine.h"
|
||||
|
||||
@implementation UITextViewNoDefine
|
||||
|
||||
@synthesize allowSelectAll;
|
||||
|
||||
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender{
|
||||
// disable "define" option, since it messes with the keyboard
|
||||
if ([[NSStringFromSelector(action) lowercaseString] rangeOfString:@"define"].location != NSNotFound) {
|
||||
return NO;
|
||||
} else if(action == @selector(selectAll:) && allowSelectAll ) {
|
||||
return YES;
|
||||
} else {
|
||||
return [super canPerformAction:action withSender:sender];
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
@ -18,7 +18,7 @@
|
|||
*/
|
||||
|
||||
#import "VideoZoomHandler.h"
|
||||
#include "linphonecore.h"
|
||||
#include "linphone/linphonecore.h"
|
||||
#import "LinphoneManager.h"
|
||||
|
||||
@implementation VideoZoomHandler
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -1,298 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1536</int>
|
||||
<string key="IBDocument.SystemVersion">11E53</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">2840</string>
|
||||
<string key="IBDocument.AppKitVersion">1138.47</string>
|
||||
<string key="IBDocument.HIToolboxVersion">569.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">1926</string>
|
||||
</object>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>IBProxyObject</string>
|
||||
<string>IBUIButton</string>
|
||||
<string>IBUIImageView</string>
|
||||
<string>IBUILabel</string>
|
||||
<string>IBUIView</string>
|
||||
</array>
|
||||
<array key="IBDocument.PluginDependencies">
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</array>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
|
||||
<integer value="1" key="NS.object.0"/>
|
||||
</object>
|
||||
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<object class="IBProxyObject" id="372490531">
|
||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="975951072">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="232140160">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">290</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUIImageView" id="1047549470">
|
||||
<reference key="NSNextResponder" ref="232140160"/>
|
||||
<int key="NSvFlags">290</int>
|
||||
<string key="NSFrameSize">{320, 68}</string>
|
||||
<reference key="NSSuperview" ref="232140160"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="35074700"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
|
||||
<string key="IBUIAccessibilityLabel"/>
|
||||
<integer value="260" key="IBUIAccessibilityTraits"/>
|
||||
<boolean value="NO" key="IBUIIsAccessibilityElement"/>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSCustomResource" key="IBUIImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">header_conference.png</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUILabel" id="35074700">
|
||||
<reference key="NSNextResponder" ref="232140160"/>
|
||||
<int key="NSvFlags">290</int>
|
||||
<string key="NSFrame">{{10, -3}, {206, 50}}</string>
|
||||
<reference key="NSSuperview" ref="232140160"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="735354432"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<int key="IBUITag">4</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
|
||||
<string key="IBUIAccessibilityLabel">Conference</string>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">Conference</string>
|
||||
<object class="NSColor" key="IBUITextColor">
|
||||
<int key="NSColorSpace">2</int>
|
||||
<bytes key="NSRGB">MC43MjU0OTAyMTI0IDAuNzY4NjI3NDY0OCAwLjc5NjA3ODQ0MzUAA</bytes>
|
||||
</object>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">0</int>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription">
|
||||
<int key="type">2</int>
|
||||
<double key="pointSize">27</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">27</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<bool key="IBUIAdjustsFontSizeToFit">NO</bool>
|
||||
</object>
|
||||
<object class="IBUIButton" id="735354432">
|
||||
<reference key="NSNextResponder" ref="232140160"/>
|
||||
<int key="NSvFlags">289</int>
|
||||
<string key="NSFrame">{{216, 6}, {41, 41}}</string>
|
||||
<reference key="NSSuperview" ref="232140160"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
|
||||
<string key="IBUIAccessibilityLabel">Pause</string>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<bool key="IBUIAdjustsImageWhenHighlighted">NO</bool>
|
||||
<bool key="IBUIAdjustsImageWhenDisabled">NO</bool>
|
||||
<double key="IBUIContentEdgeInsets.top">8</double>
|
||||
<double key="IBUIContentEdgeInsets.bottom">8</double>
|
||||
<double key="IBUIContentEdgeInsets.left">8</double>
|
||||
<double key="IBUIContentEdgeInsets.right">8</double>
|
||||
<object class="NSColor" key="IBUINormalTitleShadowColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MC41AA</bytes>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUIHighlightedImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">call_state_play_over.png</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUISelectedImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">call_state_pause_default.png</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUINormalImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">call_state_play_default.png</string>
|
||||
</object>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription">
|
||||
<int key="type">2</int>
|
||||
<double key="pointSize">15</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">15</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{320, 68}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="1047549470"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
<object class="NSColorSpace" key="NSCustomColorSpace">
|
||||
<int key="NSID">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<array class="NSMutableArray" key="connectionRecords">
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">view</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="232140160"/>
|
||||
</object>
|
||||
<int key="connectionID">5</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">pauseButton</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="735354432"/>
|
||||
</object>
|
||||
<int key="connectionID">14</int>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<array key="orderedObjects">
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<array key="object" id="0"/>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="372490531"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">File's Owner</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="975951072"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">4</int>
|
||||
<reference key="object" ref="232140160"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="1047549470"/>
|
||||
<reference ref="735354432"/>
|
||||
<reference ref="35074700"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">7</int>
|
||||
<reference key="object" ref="1047549470"/>
|
||||
<reference key="parent" ref="232140160"/>
|
||||
<string key="objectName">backgroundImage</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">13</int>
|
||||
<reference key="object" ref="735354432"/>
|
||||
<reference key="parent" ref="232140160"/>
|
||||
<string key="objectName">pauseButton</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">15</int>
|
||||
<reference key="object" ref="35074700"/>
|
||||
<reference key="parent" ref="232140160"/>
|
||||
<string key="objectName">headerLabel</string>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||
<string key="-1.CustomClassName">UIConferenceHeader</string>
|
||||
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="-2.CustomClassName">UIResponder</string>
|
||||
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="13.CustomClassName">UIPauseButton</string>
|
||||
<string key="13.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<real value="0.0" key="13.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
|
||||
<string key="15.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="7.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">15</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIConferenceHeader</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<dictionary class="NSMutableDictionary" key="outlets">
|
||||
<string key="pauseButton">UIPauseButton</string>
|
||||
<string key="stateImage">UIImageView</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<object class="IBToOneOutletInfo" key="pauseButton">
|
||||
<string key="name">pauseButton</string>
|
||||
<string key="candidateClassName">UIPauseButton</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="stateImage">
|
||||
<string key="name">stateImage</string>
|
||||
<string key="candidateClassName">UIImageView</string>
|
||||
</object>
|
||||
</dictionary>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/UIConferenceHeader.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIPauseButton</string>
|
||||
<string key="superclassName">UIToggleButton</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/UIPauseButton.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>
|
||||
</array>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
||||
<string key="call_state_pause_default.png">{43, 50}</string>
|
||||
<string key="call_state_play_default.png">{43, 46}</string>
|
||||
<string key="call_state_play_over.png">{43, 46}</string>
|
||||
<string key="header_conference.png">{640, 135}</string>
|
||||
</dictionary>
|
||||
<string key="IBCocoaTouchPluginVersion">1926</string>
|
||||
</data>
|
||||
</archive>
|
||||
|
|
@ -1,177 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1536</int>
|
||||
<string key="IBDocument.SystemVersion">11E53</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">2840</string>
|
||||
<string key="IBDocument.AppKitVersion">1138.47</string>
|
||||
<string key="IBDocument.HIToolboxVersion">569.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">1926</string>
|
||||
</object>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>IBProxyObject</string>
|
||||
<string>IBUIButton</string>
|
||||
<string>IBUIView</string>
|
||||
</array>
|
||||
<array key="IBDocument.PluginDependencies">
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</array>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
|
||||
<integer value="1" key="NS.object.0"/>
|
||||
</object>
|
||||
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<object class="IBProxyObject" id="372490531">
|
||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="975951072">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="380043078">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUIButton" id="439465593">
|
||||
<reference key="NSNextResponder" ref="380043078"/>
|
||||
<int key="NSvFlags">301</int>
|
||||
<string key="NSFrame">{{23, 25}, {275, 50}}</string>
|
||||
<reference key="NSSuperview" ref="380043078"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor" id="245863526">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MCAwAA</bytes>
|
||||
</object>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
|
||||
<string key="IBUIAccessibilityLabel">Remove</string>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<string key="IBUINormalTitle">Remove Contact</string>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUIHighlightedBackgroundImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">button_alert_background_over.png</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUINormalBackgroundImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">button_alert_background_default.png</string>
|
||||
</object>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription">
|
||||
<int key="type">2</int>
|
||||
<double key="pointSize">26</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">26</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{320, 80}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSNextKeyView" ref="439465593"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<reference key="IBUIBackgroundColor" ref="245863526"/>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<array class="NSMutableArray" key="connectionRecords">
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">removeButton</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="439465593"/>
|
||||
</object>
|
||||
<int key="connectionID">6</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">view</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="380043078"/>
|
||||
</object>
|
||||
<int key="connectionID">7</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">onRemoveClick:</string>
|
||||
<reference key="source" ref="439465593"/>
|
||||
<reference key="destination" ref="372490531"/>
|
||||
<int key="IBEventType">7</int>
|
||||
</object>
|
||||
<int key="connectionID">10</int>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<array key="orderedObjects">
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<array key="object" id="0"/>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="372490531"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">File's Owner</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="975951072"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">4</int>
|
||||
<reference key="object" ref="380043078"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="439465593"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">5</int>
|
||||
<reference key="object" ref="439465593"/>
|
||||
<reference key="parent" ref="380043078"/>
|
||||
<string key="objectName">removeButton</string>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||
<string key="-1.CustomClassName">UIContactDetailsFooter</string>
|
||||
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="-2.CustomClassName">UIResponder</string>
|
||||
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="5.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<real value="0.0" key="5.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">10</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes"/>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
||||
<string key="button_alert_background_default.png">{550, 101}</string>
|
||||
<string key="button_alert_background_over.png">{550, 101}</string>
|
||||
</dictionary>
|
||||
<string key="IBCocoaTouchPluginVersion">1926</string>
|
||||
</data>
|
||||
</archive>
|
||||
|
|
@ -1,449 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1536</int>
|
||||
<string key="IBDocument.SystemVersion">11G63</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">2840</string>
|
||||
<string key="IBDocument.AppKitVersion">1138.51</string>
|
||||
<string key="IBDocument.HIToolboxVersion">569.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">1926</string>
|
||||
</object>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>IBProxyObject</string>
|
||||
<string>IBUIButton</string>
|
||||
<string>IBUIImageView</string>
|
||||
<string>IBUILabel</string>
|
||||
<string>IBUITableView</string>
|
||||
<string>IBUIView</string>
|
||||
</array>
|
||||
<array key="IBDocument.PluginDependencies">
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</array>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
|
||||
<integer value="1" key="NS.object.0"/>
|
||||
</object>
|
||||
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<object class="IBProxyObject" id="372490531">
|
||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="975951072">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="1033790597">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUIImageView" id="452773126">
|
||||
<reference key="NSNextResponder" ref="1033790597"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{-13, -5}, {131, 107}}</string>
|
||||
<reference key="NSSuperview" ref="1033790597"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="906825234"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSCustomResource" key="IBUIImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">avatar_shadow_small.png</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUIImageView" id="906825234">
|
||||
<reference key="NSNextResponder" ref="1033790597"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 6}, {65, 65}}</string>
|
||||
<reference key="NSSuperview" ref="1033790597"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="854571707"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSCustomResource" key="IBUIImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">avatar_unknown_small.png</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUIButton" id="854571707">
|
||||
<reference key="NSNextResponder" ref="1033790597"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{20, 6}, {65, 65}}</string>
|
||||
<reference key="NSSuperview" ref="1033790597"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="959860357"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
|
||||
<string key="IBUIAccessibilityLabel">Contact's avatar</string>
|
||||
<integer value="0" key="IBUIAccessibilityTraits"/>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<object class="NSColor" key="IBUIHighlightedTitleColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUINormalTitleShadowColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MC41AA</bytes>
|
||||
</object>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription">
|
||||
<int key="type">2</int>
|
||||
<double key="pointSize">15</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">15</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUIView" id="959860357">
|
||||
<reference key="NSNextResponder" ref="1033790597"/>
|
||||
<int key="NSvFlags">290</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUILabel" id="683404399">
|
||||
<reference key="NSNextResponder" ref="959860357"/>
|
||||
<int key="NSvFlags">290</int>
|
||||
<string key="NSFrame">{{0, 37}, {199, 43}}</string>
|
||||
<reference key="NSSuperview" ref="959860357"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="451441616"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
|
||||
<string key="IBUIAccessibilityLabel">Contact's name</string>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">Contact1</string>
|
||||
<object class="NSColor" key="IBUITextColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MC4zMzMzMzMzMzMzAA</bytes>
|
||||
</object>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">0</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription">
|
||||
<int key="type">1</int>
|
||||
<double key="pointSize">22</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica</string>
|
||||
<double key="NSSize">22</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{101, 0}, {219, 80}}</string>
|
||||
<reference key="NSSuperview" ref="1033790597"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="683404399"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor" id="813032296">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MCAwAA</bytes>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="451441616">
|
||||
<reference key="NSNextResponder" ref="1033790597"/>
|
||||
<int key="NSvFlags">290</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUITableView" id="579848711">
|
||||
<reference key="NSNextResponder" ref="451441616"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrameSize">{219, 160}</string>
|
||||
<reference key="NSSuperview" ref="451441616"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MCAwIDAgMAA</bytes>
|
||||
<string key="IBUIColorCocoaTouchKeyPath">groupTableViewBackgroundColor</string>
|
||||
</object>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<bool key="IBUIAlwaysBounceVertical">YES</bool>
|
||||
<int key="IBUIStyle">1</int>
|
||||
<int key="IBUISeparatorStyle">2</int>
|
||||
<int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
|
||||
<bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
|
||||
<float key="IBUIRowHeight">44</float>
|
||||
<float key="IBUISectionHeaderHeight">10</float>
|
||||
<float key="IBUISectionFooterHeight">10</float>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{101, 0}, {219, 160}}</string>
|
||||
<reference key="NSSuperview" ref="1033790597"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="579848711"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<reference key="IBUIBackgroundColor" ref="813032296"/>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{320, 170}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="452773126"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<reference key="IBUIBackgroundColor" ref="813032296"/>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<array class="NSMutableArray" key="connectionRecords">
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">view</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="1033790597"/>
|
||||
</object>
|
||||
<int key="connectionID">5</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">avatarImage</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="906825234"/>
|
||||
</object>
|
||||
<int key="connectionID">9</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">editView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="451441616"/>
|
||||
</object>
|
||||
<int key="connectionID">16</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">normalView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="959860357"/>
|
||||
</object>
|
||||
<int key="connectionID">17</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">tableView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="579848711"/>
|
||||
</object>
|
||||
<int key="connectionID">20</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">addressLabel</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="683404399"/>
|
||||
</object>
|
||||
<int key="connectionID">21</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">dataSource</string>
|
||||
<reference key="source" ref="579848711"/>
|
||||
<reference key="destination" ref="372490531"/>
|
||||
</object>
|
||||
<int key="connectionID">18</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">delegate</string>
|
||||
<reference key="source" ref="579848711"/>
|
||||
<reference key="destination" ref="372490531"/>
|
||||
</object>
|
||||
<int key="connectionID">19</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">onAvatarClick:</string>
|
||||
<reference key="source" ref="854571707"/>
|
||||
<reference key="destination" ref="372490531"/>
|
||||
<int key="IBEventType">7</int>
|
||||
</object>
|
||||
<int key="connectionID">23</int>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<array key="orderedObjects">
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<array key="object" id="0"/>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="372490531"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">File's Owner</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="975951072"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">4</int>
|
||||
<reference key="object" ref="1033790597"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="452773126"/>
|
||||
<reference ref="906825234"/>
|
||||
<reference ref="959860357"/>
|
||||
<reference ref="451441616"/>
|
||||
<reference ref="854571707"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">6</int>
|
||||
<reference key="object" ref="906825234"/>
|
||||
<reference key="parent" ref="1033790597"/>
|
||||
<string key="objectName">avatarImage</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">7</int>
|
||||
<reference key="object" ref="452773126"/>
|
||||
<reference key="parent" ref="1033790597"/>
|
||||
<string key="objectName">avatarShadowBackground</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">13</int>
|
||||
<reference key="object" ref="451441616"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="579848711"/>
|
||||
</array>
|
||||
<reference key="parent" ref="1033790597"/>
|
||||
<string key="objectName">editView</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">12</int>
|
||||
<reference key="object" ref="959860357"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="683404399"/>
|
||||
</array>
|
||||
<reference key="parent" ref="1033790597"/>
|
||||
<string key="objectName">normalView</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">8</int>
|
||||
<reference key="object" ref="683404399"/>
|
||||
<reference key="parent" ref="959860357"/>
|
||||
<string key="objectName">addressLabel</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">15</int>
|
||||
<reference key="object" ref="579848711"/>
|
||||
<reference key="parent" ref="451441616"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">22</int>
|
||||
<reference key="object" ref="854571707"/>
|
||||
<reference key="parent" ref="1033790597"/>
|
||||
<string key="objectName">avatarButton</string>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||
<string key="-1.CustomClassName">UIContactDetailsHeader</string>
|
||||
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="-2.CustomClassName">UIResponder</string>
|
||||
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="12.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="13.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="15.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="22.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="7.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="8.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">23</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIContactDetailsHeader</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<object class="NSMutableDictionary" key="actions">
|
||||
<string key="NS.key.0">onAvatarClick:</string>
|
||||
<string key="NS.object.0">id</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||
<string key="NS.key.0">onAvatarClick:</string>
|
||||
<object class="IBActionInfo" key="NS.object.0">
|
||||
<string key="name">onAvatarClick:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="outlets">
|
||||
<string key="addressLabel">UILabel</string>
|
||||
<string key="avatarImage">UIImageView</string>
|
||||
<string key="contactDetailsDelegate">id</string>
|
||||
<string key="editView">UIView</string>
|
||||
<string key="normalView">UIView</string>
|
||||
<string key="tableView">UITableView</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<object class="IBToOneOutletInfo" key="addressLabel">
|
||||
<string key="name">addressLabel</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="avatarImage">
|
||||
<string key="name">avatarImage</string>
|
||||
<string key="candidateClassName">UIImageView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="contactDetailsDelegate">
|
||||
<string key="name">contactDetailsDelegate</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="editView">
|
||||
<string key="name">editView</string>
|
||||
<string key="candidateClassName">UIView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="normalView">
|
||||
<string key="name">normalView</string>
|
||||
<string key="candidateClassName">UIView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="tableView">
|
||||
<string key="name">tableView</string>
|
||||
<string key="candidateClassName">UITableView</string>
|
||||
</object>
|
||||
</dictionary>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/UIContactDetailsHeader.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
||||
<string key="avatar_shadow_small.png">{262, 214}</string>
|
||||
<string key="avatar_unknown_small.png">{131, 131}</string>
|
||||
</dictionary>
|
||||
<string key="IBCocoaTouchPluginVersion">1926</string>
|
||||
</data>
|
||||
</archive>
|
||||
|
|
@ -1,727 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1536</int>
|
||||
<string key="IBDocument.SystemVersion">11E53</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">2840</string>
|
||||
<string key="IBDocument.AppKitVersion">1138.47</string>
|
||||
<string key="IBDocument.HIToolboxVersion">569.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">1926</string>
|
||||
</object>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>IBProxyObject</string>
|
||||
<string>IBUIButton</string>
|
||||
<string>IBUIImageView</string>
|
||||
<string>IBUILabel</string>
|
||||
<string>IBUIView</string>
|
||||
</array>
|
||||
<array key="IBDocument.PluginDependencies">
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</array>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
|
||||
<integer value="1" key="NS.object.0"/>
|
||||
</object>
|
||||
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<object class="IBProxyObject" id="372490531">
|
||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="975951072">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="1018893129">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUIView" id="83510153">
|
||||
<reference key="NSNextResponder" ref="1018893129"/>
|
||||
<int key="NSvFlags">-2147483356</int>
|
||||
<string key="NSFrame">{{0, 11}, {320, 66}}</string>
|
||||
<reference key="NSSuperview" ref="1018893129"/>
|
||||
<reference key="NSNextKeyView" ref="698962606"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MCAxIDAuMDkwOTI0NTczOTEAA</bytes>
|
||||
</object>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIAutoresizesSubviews">NO</bool>
|
||||
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
||||
<int key="IBUITag">-1</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="760939856">
|
||||
<reference key="NSNextResponder" ref="1018893129"/>
|
||||
<int key="NSvFlags">290</int>
|
||||
<string key="NSFrame">{{0, 77}, {320, 2000}}</string>
|
||||
<reference key="NSSuperview" ref="1018893129"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xNDkwMTk2MDc4IDAuMTY0NzA1ODgyNCAwLjE4MDM5MjE1NjkAA</bytes>
|
||||
</object>
|
||||
<int key="IBUITag">28</int>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIButton" id="318948703">
|
||||
<reference key="NSNextResponder" ref="1018893129"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrameSize">{64, 77}</string>
|
||||
<reference key="NSSuperview" ref="1018893129"/>
|
||||
<reference key="NSNextKeyView" ref="83510153"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
|
||||
<string key="IBUIAccessibilityLabel">History</string>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<bool key="IBUIAdjustsImageWhenHighlighted">NO</bool>
|
||||
<double key="IBUITitleEdgeInsets.top">40</double>
|
||||
<double key="IBUITitleEdgeInsets.bottom">0.0</double>
|
||||
<double key="IBUITitleEdgeInsets.left">0.0</double>
|
||||
<double key="IBUITitleEdgeInsets.right">0.0</double>
|
||||
<string key="IBUINormalTitle">History</string>
|
||||
<object class="NSColor" key="IBUIHighlightedTitleColor" id="431727078">
|
||||
<int key="NSColorSpace">2</int>
|
||||
<bytes key="NSRGB">MC43MjU0OTAxOTYxIDAuNzY4NjI3NDUxIDAuNzk2MDc4NDMxNAA</bytes>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUISelectedTitleColor" id="778491501">
|
||||
<int key="NSColorSpace">2</int>
|
||||
<bytes key="NSRGB">MC44MTE3NjQ3MTcxIDAuMjk4MDM5MjI3NyAwLjE2MDc4NDMxOQA</bytes>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUINormalTitleColor" id="581321397">
|
||||
<int key="NSColorSpace">2</int>
|
||||
<bytes key="NSRGB">MC4zNTY4NjI3NDUxIDAuMzk2MDc4NDMxNCAwLjQzNTI5NDExNzYAA</bytes>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUINormalTitleShadowColor" id="260229542">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MC41AA</bytes>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUIHighlightedBackgroundImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">history_over.png</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUISelectedBackgroundImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">history_selected.png</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUINormalBackgroundImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">history_default.png</string>
|
||||
</object>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription" id="984701795">
|
||||
<int key="type">1</int>
|
||||
<double key="pointSize">14</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont" id="483848729">
|
||||
<string key="NSName">Helvetica</string>
|
||||
<double key="NSSize">14</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUIView" id="698962606">
|
||||
<reference key="NSNextResponder" ref="1018893129"/>
|
||||
<int key="NSvFlags">-2147483356</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUIImageView" id="307047814">
|
||||
<reference key="NSNextResponder" ref="698962606"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrameSize">{21, 21}</string>
|
||||
<reference key="NSSuperview" ref="698962606"/>
|
||||
<reference key="NSNextKeyView" ref="364959328"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSCustomResource" key="IBUIImage" id="968674702">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">history_notification.png</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUILabel" id="364959328">
|
||||
<reference key="NSNextResponder" ref="698962606"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<string key="NSFrame">{{2, 2}, {17, 17}}</string>
|
||||
<reference key="NSSuperview" ref="698962606"/>
|
||||
<reference key="NSNextKeyView" ref="617445003"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
|
||||
<string key="IBUIAccessibilityLabel">Missed call(s)</string>
|
||||
<integer value="0" key="IBUIAccessibilityTraits"/>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">99</string>
|
||||
<object class="NSColor" key="IBUITextColor" id="46823297">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
</object>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">0</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<reference key="IBUIFontDescription" ref="984701795"/>
|
||||
<reference key="IBUIFont" ref="483848729"/>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{38, 1}, {21, 21}}</string>
|
||||
<reference key="NSSuperview" ref="1018893129"/>
|
||||
<reference key="NSNextKeyView" ref="307047814"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor" id="41402419">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MCAwAA</bytes>
|
||||
</object>
|
||||
<bool key="IBUIAutoresizesSubviews">NO</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIButton" id="617445003">
|
||||
<reference key="NSNextResponder" ref="1018893129"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{64, 0}, {64, 77}}</string>
|
||||
<reference key="NSSuperview" ref="1018893129"/>
|
||||
<reference key="NSNextKeyView" ref="562688945"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
|
||||
<string key="IBUIAccessibilityLabel">Contacts</string>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<bool key="IBUIAdjustsImageWhenHighlighted">NO</bool>
|
||||
<double key="IBUITitleEdgeInsets.top">40</double>
|
||||
<double key="IBUITitleEdgeInsets.bottom">0.0</double>
|
||||
<double key="IBUITitleEdgeInsets.left">0.0</double>
|
||||
<double key="IBUITitleEdgeInsets.right">0.0</double>
|
||||
<string key="IBUINormalTitle">Contacts</string>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="431727078"/>
|
||||
<reference key="IBUISelectedTitleColor" ref="778491501"/>
|
||||
<reference key="IBUINormalTitleColor" ref="581321397"/>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="260229542"/>
|
||||
<object class="NSCustomResource" key="IBUIHighlightedBackgroundImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">contacts_over.png</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUISelectedBackgroundImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">contacts_selected.png</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUINormalBackgroundImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">contacts_default.png</string>
|
||||
</object>
|
||||
<reference key="IBUIFontDescription" ref="984701795"/>
|
||||
<reference key="IBUIFont" ref="483848729"/>
|
||||
</object>
|
||||
<object class="IBUIButton" id="60891552">
|
||||
<reference key="NSNextResponder" ref="1018893129"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{256, 0}, {64, 77}}</string>
|
||||
<reference key="NSSuperview" ref="1018893129"/>
|
||||
<reference key="NSNextKeyView" ref="55915342"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
|
||||
<string key="IBUIAccessibilityLabel">Settings</string>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<bool key="IBUIAdjustsImageWhenHighlighted">NO</bool>
|
||||
<double key="IBUITitleEdgeInsets.top">40</double>
|
||||
<double key="IBUITitleEdgeInsets.bottom">0.0</double>
|
||||
<double key="IBUITitleEdgeInsets.left">0.0</double>
|
||||
<double key="IBUITitleEdgeInsets.right">0.0</double>
|
||||
<string key="IBUINormalTitle">Settings</string>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="431727078"/>
|
||||
<reference key="IBUISelectedTitleColor" ref="778491501"/>
|
||||
<reference key="IBUINormalTitleColor" ref="581321397"/>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="260229542"/>
|
||||
<object class="NSCustomResource" key="IBUIHighlightedBackgroundImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">settings_over.png</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUISelectedBackgroundImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">settings_selected.png</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUINormalBackgroundImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">settings_default.png</string>
|
||||
</object>
|
||||
<reference key="IBUIFontDescription" ref="984701795"/>
|
||||
<reference key="IBUIFont" ref="483848729"/>
|
||||
</object>
|
||||
<object class="IBUIButton" id="562688945">
|
||||
<reference key="NSNextResponder" ref="1018893129"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{128, 0}, {64, 77}}</string>
|
||||
<reference key="NSSuperview" ref="1018893129"/>
|
||||
<reference key="NSNextKeyView" ref="60891552"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
|
||||
<string key="IBUIAccessibilityLabel">Dialer</string>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<bool key="IBUIAdjustsImageWhenHighlighted">NO</bool>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="260229542"/>
|
||||
<object class="NSCustomResource" key="IBUIHighlightedImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">dialer_over.png</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUISelectedImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">dialer_selected.png</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUINormalImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">dialer_default.png</string>
|
||||
</object>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription">
|
||||
<int key="type">2</int>
|
||||
<double key="pointSize">15</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">15</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUIButton" id="55915342">
|
||||
<reference key="NSNextResponder" ref="1018893129"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{192, 0}, {64, 77}}</string>
|
||||
<reference key="NSSuperview" ref="1018893129"/>
|
||||
<reference key="NSNextKeyView" ref="154031566"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
|
||||
<string key="IBUIAccessibilityLabel">Chat</string>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<bool key="IBUIAdjustsImageWhenHighlighted">NO</bool>
|
||||
<double key="IBUITitleEdgeInsets.top">40</double>
|
||||
<double key="IBUITitleEdgeInsets.bottom">0.0</double>
|
||||
<double key="IBUITitleEdgeInsets.left">0.0</double>
|
||||
<double key="IBUITitleEdgeInsets.right">0.0</double>
|
||||
<string key="IBUINormalTitle">Chat</string>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="431727078"/>
|
||||
<reference key="IBUISelectedTitleColor" ref="778491501"/>
|
||||
<reference key="IBUINormalTitleColor" ref="581321397"/>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="260229542"/>
|
||||
<object class="NSCustomResource" key="IBUIHighlightedBackgroundImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">chat_over.png</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUISelectedBackgroundImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">chat_selected.png</string>
|
||||
</object>
|
||||
<object class="NSCustomResource" key="IBUINormalBackgroundImage">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">chat_default.png</string>
|
||||
</object>
|
||||
<reference key="IBUIFontDescription" ref="984701795"/>
|
||||
<reference key="IBUIFont" ref="483848729"/>
|
||||
</object>
|
||||
<object class="IBUIView" id="154031566">
|
||||
<reference key="NSNextResponder" ref="1018893129"/>
|
||||
<int key="NSvFlags">-2147483356</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUIImageView" id="651674302">
|
||||
<reference key="NSNextResponder" ref="154031566"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrameSize">{21, 21}</string>
|
||||
<reference key="NSSuperview" ref="154031566"/>
|
||||
<reference key="NSNextKeyView" ref="540244639"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<reference key="IBUIImage" ref="968674702"/>
|
||||
</object>
|
||||
<object class="IBUILabel" id="540244639">
|
||||
<reference key="NSNextResponder" ref="154031566"/>
|
||||
<int key="NSvFlags">256</int>
|
||||
<string key="NSFrame">{{2, 2}, {17, 17}}</string>
|
||||
<reference key="NSSuperview" ref="154031566"/>
|
||||
<reference key="NSNextKeyView" ref="760939856"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<object class="IBUIAccessibilityConfiguration" key="IBUIAccessibilityConfiguration">
|
||||
<string key="IBUIAccessibilityLabel">Missed message(s)</string>
|
||||
<integer value="0" key="IBUIAccessibilityTraits"/>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">99</string>
|
||||
<reference key="IBUITextColor" ref="46823297"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">0</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<reference key="IBUIFontDescription" ref="984701795"/>
|
||||
<reference key="IBUIFont" ref="483848729"/>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{197, 1}, {21, 21}}</string>
|
||||
<reference key="NSSuperview" ref="1018893129"/>
|
||||
<reference key="NSNextKeyView" ref="651674302"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<reference key="IBUIBackgroundColor" ref="41402419"/>
|
||||
<bool key="IBUIAutoresizesSubviews">NO</bool>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{320, 77}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSNextKeyView" ref="318948703"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MCAxIDAuMTkxOTQ1NDc1NSAwAA</bytes>
|
||||
</object>
|
||||
<bool key="IBUIAutoresizesSubviews">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<array class="NSMutableArray" key="connectionRecords">
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">historyButton</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="318948703"/>
|
||||
</object>
|
||||
<int key="connectionID">13</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">view</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="1018893129"/>
|
||||
</object>
|
||||
<int key="connectionID">14</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">contactsButton</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="617445003"/>
|
||||
</object>
|
||||
<int key="connectionID">27</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">chatButton</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="55915342"/>
|
||||
</object>
|
||||
<int key="connectionID">28</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">settingsButton</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="60891552"/>
|
||||
</object>
|
||||
<int key="connectionID">29</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">dialerButton</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="562688945"/>
|
||||
</object>
|
||||
<int key="connectionID">12</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">historyNotificationLabel</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="364959328"/>
|
||||
</object>
|
||||
<int key="connectionID">35</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">historyNotificationView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="698962606"/>
|
||||
</object>
|
||||
<int key="connectionID">36</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">chatNotificationLabel</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="540244639"/>
|
||||
</object>
|
||||
<int key="connectionID">40</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">chatNotificationView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="154031566"/>
|
||||
</object>
|
||||
<int key="connectionID">41</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">portraitView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="1018893129"/>
|
||||
</object>
|
||||
<int key="connectionID">43</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">onChatClick:</string>
|
||||
<reference key="source" ref="55915342"/>
|
||||
<reference key="destination" ref="372490531"/>
|
||||
<int key="IBEventType">7</int>
|
||||
</object>
|
||||
<int key="connectionID">26</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">onHistoryClick:</string>
|
||||
<reference key="source" ref="318948703"/>
|
||||
<reference key="destination" ref="372490531"/>
|
||||
<int key="IBEventType">7</int>
|
||||
</object>
|
||||
<int key="connectionID">22</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">onDialerClick:</string>
|
||||
<reference key="source" ref="562688945"/>
|
||||
<reference key="destination" ref="372490531"/>
|
||||
<int key="IBEventType">7</int>
|
||||
</object>
|
||||
<int key="connectionID">24</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">onContactsClick:</string>
|
||||
<reference key="source" ref="617445003"/>
|
||||
<reference key="destination" ref="372490531"/>
|
||||
<int key="IBEventType">7</int>
|
||||
</object>
|
||||
<int key="connectionID">23</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">onSettingsClick:</string>
|
||||
<reference key="source" ref="60891552"/>
|
||||
<reference key="destination" ref="372490531"/>
|
||||
<int key="IBEventType">7</int>
|
||||
</object>
|
||||
<int key="connectionID">25</int>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<array key="orderedObjects">
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<array key="object" id="0"/>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="372490531"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">File's Owner</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="975951072"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">3</int>
|
||||
<reference key="object" ref="1018893129"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="60891552"/>
|
||||
<reference ref="617445003"/>
|
||||
<reference ref="318948703"/>
|
||||
<reference ref="55915342"/>
|
||||
<reference ref="562688945"/>
|
||||
<reference ref="698962606"/>
|
||||
<reference ref="154031566"/>
|
||||
<reference ref="83510153"/>
|
||||
<reference ref="760939856"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">4</int>
|
||||
<reference key="object" ref="83510153"/>
|
||||
<array class="NSMutableArray" key="children"/>
|
||||
<reference key="parent" ref="1018893129"/>
|
||||
<string key="objectName">mask</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">5</int>
|
||||
<reference key="object" ref="55915342"/>
|
||||
<reference key="parent" ref="1018893129"/>
|
||||
<string key="objectName">chat</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">6</int>
|
||||
<reference key="object" ref="318948703"/>
|
||||
<reference key="parent" ref="1018893129"/>
|
||||
<string key="objectName">history</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">8</int>
|
||||
<reference key="object" ref="617445003"/>
|
||||
<reference key="parent" ref="1018893129"/>
|
||||
<string key="objectName">contacts</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">7</int>
|
||||
<reference key="object" ref="562688945"/>
|
||||
<reference key="parent" ref="1018893129"/>
|
||||
<string key="objectName">dialer</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">32</int>
|
||||
<reference key="object" ref="698962606"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="307047814"/>
|
||||
<reference ref="364959328"/>
|
||||
</array>
|
||||
<reference key="parent" ref="1018893129"/>
|
||||
<string key="objectName">historyNotificationView</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">33</int>
|
||||
<reference key="object" ref="307047814"/>
|
||||
<reference key="parent" ref="698962606"/>
|
||||
<string key="objectName">historyNotificationImage</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">34</int>
|
||||
<reference key="object" ref="364959328"/>
|
||||
<reference key="parent" ref="698962606"/>
|
||||
<string key="objectName">historyNotificationLabel</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">37</int>
|
||||
<reference key="object" ref="154031566"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="540244639"/>
|
||||
<reference ref="651674302"/>
|
||||
</array>
|
||||
<reference key="parent" ref="1018893129"/>
|
||||
<string key="objectName">chatNotificationView</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">38</int>
|
||||
<reference key="object" ref="540244639"/>
|
||||
<reference key="parent" ref="154031566"/>
|
||||
<string key="objectName">chatNotificationLabel</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">39</int>
|
||||
<reference key="object" ref="651674302"/>
|
||||
<reference key="parent" ref="154031566"/>
|
||||
<string key="objectName">chatNotificationImage</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">45</int>
|
||||
<reference key="object" ref="760939856"/>
|
||||
<reference key="parent" ref="1018893129"/>
|
||||
<string key="objectName">background</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">9</int>
|
||||
<reference key="object" ref="60891552"/>
|
||||
<reference key="parent" ref="1018893129"/>
|
||||
<string key="objectName">settings</string>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||
<string key="-1.CustomClassName">UIMainBar</string>
|
||||
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="-2.CustomClassName">UIResponder</string>
|
||||
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<dictionary class="NSMutableDictionary" key="3.IBAttributePlaceholdersKey"/>
|
||||
<string key="3.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="32.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="33.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="34.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="37.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="38.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="39.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="45.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="5.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<real value="1" key="5.IBUIButtonInspectorSelectedEdgeInsetMetadataKey"/>
|
||||
<real value="0.0" key="5.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
|
||||
<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<real value="1" key="6.IBUIButtonInspectorSelectedEdgeInsetMetadataKey"/>
|
||||
<real value="0.0" key="6.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
|
||||
<string key="7.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<real value="0.0" key="7.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
|
||||
<string key="8.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<real value="1" key="8.IBUIButtonInspectorSelectedEdgeInsetMetadataKey"/>
|
||||
<real value="0.0" key="8.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
|
||||
<string key="9.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<real value="1" key="9.IBUIButtonInspectorSelectedEdgeInsetMetadataKey"/>
|
||||
<real value="0.0" key="9.IBUIButtonInspectorSelectedStateConfigurationMetadataKey"/>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">45</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes"/>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
||||
<string key="chat_default.png">{128, 154}</string>
|
||||
<string key="chat_over.png">{128, 154}</string>
|
||||
<string key="chat_selected.png">{128, 154}</string>
|
||||
<string key="contacts_default.png">{128, 154}</string>
|
||||
<string key="contacts_over.png">{128, 154}</string>
|
||||
<string key="contacts_selected.png">{128, 154}</string>
|
||||
<string key="dialer_default.png">{128, 154}</string>
|
||||
<string key="dialer_over.png">{128, 154}</string>
|
||||
<string key="dialer_selected.png">{128, 154}</string>
|
||||
<string key="history_default.png">{128, 154}</string>
|
||||
<string key="history_notification.png">{43, 43}</string>
|
||||
<string key="history_over.png">{128, 154}</string>
|
||||
<string key="history_selected.png">{128, 154}</string>
|
||||
<string key="settings_default.png">{128, 154}</string>
|
||||
<string key="settings_over.png">{128, 154}</string>
|
||||
<string key="settings_selected.png">{128, 154}</string>
|
||||
</dictionary>
|
||||
<string key="IBCocoaTouchPluginVersion">1926</string>
|
||||
</data>
|
||||
</archive>
|
||||
File diff suppressed because it is too large
Load diff
138
Classes/LinphoneUI/fr.lproj/UICallBar.strings
Normal file
138
Classes/LinphoneUI/fr.lproj/UICallBar.strings
Normal file
|
|
@ -0,0 +1,138 @@
|
|||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "Retour"; ObjectID = "6"; */
|
||||
"6.accessibilityLabel" = "Retour";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "Raccrocher"; ObjectID = "7"; */
|
||||
"7.accessibilityLabel" = "Raccrocher";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "Pause"; ObjectID = "8"; */
|
||||
"8.accessibilityLabel" = "Pause";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "Haut parleur"; ObjectID = "9"; */
|
||||
"9.accessibilityLabel" = "Haut parleur";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Haut parleur"; ObjectID = "9"; */
|
||||
"9.normalTitle" = "Haut parleur";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "Options"; ObjectID = "10"; */
|
||||
"10.accessibilityLabel" = "Options";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Options"; ObjectID = "10"; */
|
||||
"10.normalTitle" = "Options";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "Micro"; ObjectID = "11"; */
|
||||
"11.accessibilityLabel" = "Micro";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Micro"; ObjectID = "11"; */
|
||||
"11.normalTitle" = "Micro";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "Vidéo"; ObjectID = "12"; */
|
||||
"12.accessibilityLabel" = "Vidéo";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Vidéo"; ObjectID = "12"; */
|
||||
"12.normalTitle" = "Vidéo";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "Démarrer une conférence"; ObjectID = "21"; */
|
||||
"21.accessibilityLabel" = "Démarrer une conférence";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "Étoile"; ObjectID = "62"; */
|
||||
"62.accessibilityLabel" = "Étoile";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "6"; ObjectID = "63"; */
|
||||
"63.accessibilityLabel" = "6";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "0"; ObjectID = "64"; */
|
||||
"64.accessibilityLabel" = "0";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "Dièse"; ObjectID = "65"; */
|
||||
"65.accessibilityLabel" = "Dièse";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "9"; ObjectID = "66"; */
|
||||
"66.accessibilityLabel" = "9";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "8"; ObjectID = "67"; */
|
||||
"67.accessibilityLabel" = "8";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "7"; ObjectID = "68"; */
|
||||
"68.accessibilityLabel" = "7";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "4"; ObjectID = "69"; */
|
||||
"69.accessibilityLabel" = "4";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "5"; ObjectID = "70"; */
|
||||
"70.accessibilityLabel" = "5";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "3"; ObjectID = "71"; */
|
||||
"71.accessibilityLabel" = "3";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "2"; ObjectID = "72"; */
|
||||
"72.accessibilityLabel" = "2";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "1"; ObjectID = "73"; */
|
||||
"73.accessibilityLabel" = "1";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "Ajouter un appel"; ObjectID = "88"; */
|
||||
"88.accessibilityLabel" = "Ajouter un appel";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Ajouter un appel"; ObjectID = "88"; */
|
||||
"88.normalTitle" = "Ajouter un appel";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "Transferer l'appel"; ObjectID = "90"; */
|
||||
"90.accessibilityLabel" = "Transferer l'appel";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Transfert"; ObjectID = "90"; */
|
||||
"90.normalTitle" = "Transfert";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Options"; ObjectID = "110"; */
|
||||
"110.normalTitle" = "Options";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Haut parleur"; ObjectID = "111"; */
|
||||
"111.normalTitle" = "Haut parleur";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Micro"; ObjectID = "112"; */
|
||||
"112.normalTitle" = "Micro";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Vidéo"; ObjectID = "113"; */
|
||||
"113.normalTitle" = "Vidéo";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Ajouter appel"; ObjectID = "127"; */
|
||||
"127.normalTitle" = "Ajouter appel";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Transfert"; ObjectID = "128"; */
|
||||
"128.normalTitle" = "Transfert";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "Route"; ObjectID = "164"; */
|
||||
"164.accessibilityLabel" = "Route";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Route"; ObjectID = "164"; */
|
||||
"164.normalTitle" = "Route";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "Haut parleur"; ObjectID = "168"; */
|
||||
"168.accessibilityLabel" = "Haut parleur";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Haut parleur"; ObjectID = "168"; */
|
||||
"168.normalTitle" = "Haut parleur";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "Écouteur"; ObjectID = "169"; */
|
||||
"169.accessibilityLabel" = "Écouteur";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Écouteur"; ObjectID = "169"; */
|
||||
"169.normalTitle" = "Écouteur";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "Bluetooth"; ObjectID = "174"; */
|
||||
"174.accessibilityLabel" = "Bluetooth";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Bluetooth"; ObjectID = "174"; */
|
||||
"174.normalTitle" = "Bluetooth";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Route"; ObjectID = "183"; */
|
||||
"183.normalTitle" = "Route";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Haut parleur"; ObjectID = "187"; */
|
||||
"187.normalTitle" = "Haut parleur";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Écouteur"; ObjectID = "188"; */
|
||||
"188.normalTitle" = "Écouteur";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Bluetooth"; ObjectID = "193"; */
|
||||
"193.normalTitle" = "Bluetooth";
|
||||
File diff suppressed because it is too large
Load diff
108
Classes/LinphoneUI/fr.lproj/UICallBar~ipad.strings
Normal file
108
Classes/LinphoneUI/fr.lproj/UICallBar~ipad.strings
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "Retour"; ObjectID = "10"; */
|
||||
"10.accessibilityLabel" = "Retour";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "Raccrocher"; ObjectID = "11"; */
|
||||
"11.accessibilityLabel" = "Raccrocher";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "Démarrer une conférence"; ObjectID = "12"; */
|
||||
"12.accessibilityLabel" = "Démarrer une conférence";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "Pause"; ObjectID = "13"; */
|
||||
"13.accessibilityLabel" = "Pause";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "Options"; ObjectID = "14"; */
|
||||
"14.accessibilityLabel" = "Options";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Options"; ObjectID = "14"; */
|
||||
"14.normalTitle" = "Options";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "Haut parleur"; ObjectID = "15"; */
|
||||
"15.accessibilityLabel" = "Haut parleur";
|
||||
|
||||
/* Class = "IBUIButton"; disabledTitle = "Haut parleur"; ObjectID = "15"; */
|
||||
"15.disabledTitle" = "Haut parleur";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Haut parleur"; ObjectID = "15"; */
|
||||
"15.normalTitle" = "Haut parleur";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "Micro"; ObjectID = "16"; */
|
||||
"16.accessibilityLabel" = "Micro";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Micro"; ObjectID = "16"; */
|
||||
"16.normalTitle" = "Micro";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "Vidéo"; ObjectID = "17"; */
|
||||
"17.accessibilityLabel" = "Vidéo";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Vidéo"; ObjectID = "17"; */
|
||||
"17.normalTitle" = "Vidéo";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "1"; ObjectID = "19"; */
|
||||
"19.accessibilityLabel" = "1";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "2"; ObjectID = "20"; */
|
||||
"20.accessibilityLabel" = "2";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "3"; ObjectID = "21"; */
|
||||
"21.accessibilityLabel" = "3";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "4"; ObjectID = "22"; */
|
||||
"22.accessibilityLabel" = "4";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "5"; ObjectID = "23"; */
|
||||
"23.accessibilityLabel" = "5";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "6"; ObjectID = "24"; */
|
||||
"24.accessibilityLabel" = "6";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "7"; ObjectID = "25"; */
|
||||
"25.accessibilityLabel" = "7";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "8"; ObjectID = "26"; */
|
||||
"26.accessibilityLabel" = "8";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "9"; ObjectID = "27"; */
|
||||
"27.accessibilityLabel" = "9";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "Étoile"; ObjectID = "28"; */
|
||||
"28.accessibilityLabel" = "Étoile";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "0"; ObjectID = "29"; */
|
||||
"29.accessibilityLabel" = "0";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "Dièse"; ObjectID = "30"; */
|
||||
"30.accessibilityLabel" = "Dièse";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "Ajouter un appel"; ObjectID = "31"; */
|
||||
"31.accessibilityLabel" = "Ajouter un appel";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Ajouter appel"; ObjectID = "31"; */
|
||||
"31.normalTitle" = "Ajouter appel";
|
||||
|
||||
/* Class = "IBUIButton"; accessibilityLabel = "Transferer l'appel"; ObjectID = "32"; */
|
||||
"32.accessibilityLabel" = "Transferer l'appel";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Transfert"; ObjectID = "32"; */
|
||||
"32.normalTitle" = "Transfert";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Options"; ObjectID = "39"; */
|
||||
"39.normalTitle" = "Options";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Vidéo"; ObjectID = "40"; */
|
||||
"40.normalTitle" = "Vidéo";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Micro"; ObjectID = "41"; */
|
||||
"41.normalTitle" = "Micro";
|
||||
|
||||
/* Class = "IBUIButton"; disabledTitle = "Haut parleur"; ObjectID = "42"; */
|
||||
"42.disabledTitle" = "Haut parleur";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Haut parleur"; ObjectID = "42"; */
|
||||
"42.normalTitle" = "Haut parleur";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Ajouter appel"; ObjectID = "60"; */
|
||||
"60.normalTitle" = "Ajouter appel";
|
||||
|
||||
/* Class = "IBUIButton"; normalTitle = "Transfert"; ObjectID = "61"; */
|
||||
"61.normalTitle" = "Transfert";
|
||||
File diff suppressed because it is too large
Load diff
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue