Fixed an issue with crashing on VoiceMac, fixed MGMXML issue with VoiceMail, added a load more cell for VoiceMob inbox, added a SMS text view for VoiceMob.

This commit is contained in:
GRMrGecko 2010-10-01 22:03:15 -05:00
parent 0f54277480
commit ce445dcff2
52 changed files with 10215 additions and 9083 deletions

View File

@ -14,7 +14,7 @@
@class MGMInstance, MGMURLConnectionManager;
#define MGMInboxDebug 1
#define MGMInboxDebug 0
extern NSString * const MGMIDelegate;
extern NSString * const MGMIDidReceiveInfo;

View File

@ -280,7 +280,14 @@ const BOOL MGMInboxInvisible = YES;
int type = [[thisInfo objectForKey:MGMIType] intValue];
if (type==MGMIVoicemailType) {
[thisInfo setObject:[NSNumber numberWithBool:[[message XMLString] containsString:@"gc-message-transcript-rate-up-active"]] forKey:MGMIUseful];
NSString *transcript = [[[[[message childAtIndex:0] nodesForXPath:[NSString stringWithFormat:@"/html[1]/body[1]/div[%d]/div[1]/div[2]/table[1]/tr[1]/td[3]/div[1]/table[1]/tr[2]/td[2]/table[1]/tr[2]/td[1]/div[1]/div[1]/table[1]/tr[1]/td[2]/div[1]/div[1]/table[1]/tr[1]/td[1]/div[1]", i+1] error:nil] objectAtIndex:0] stringValue] flattenHTML];
NSMutableString *transcript = [NSMutableString string];
NSArray *words = [[[[message childAtIndex:0] nodesForXPath:[NSString stringWithFormat:@"/html[1]/body[1]/div[%d]/div[1]/div[2]/table[1]/tr[1]/td[3]/div[1]/table[1]/tr[2]/td[2]/table[1]/tr[2]/td[1]/div[1]/div[1]/table[1]/tr[1]/td[2]/div[1]/div[1]/table[1]/tr[1]/td[1]/div[1]", i+1] error:nil] objectAtIndex:0] elementsForName:@"span"];
for (unsigned int w=0; w<[words count]; w++) {
if (w==0)
[transcript appendString:[[words objectAtIndex:w] stringValue]];
else
[transcript appendFormat:@" %@", [[words objectAtIndex:w] stringValue]];
}
[thisInfo setObject:transcript forKey:MGMIText];
} else if (type==MGMISMSIn || type==MGMISMSOut) {
NSArray *messagesXML = [[message childAtIndex:0] nodesForXPath:[NSString stringWithFormat:@"/html[1]/body[1]/div[%d]/div[1]/div[2]/table[1]/tr[1]/td[3]/div[1]/table[1]/tr[2]/td[2]/table[1]/tr[2]/td[1]/div[1]/div[1]/table[1]/tr[1]/td[2]/div[1]/div[1]/div[1]/div", i+1] error:nil];

View File

@ -7,24 +7,6 @@
*
*/
#if TARGET_OS_IPHONE
#import <MGMAddons.h>
#import <MGMInstance.h>
#import <MGMInbox.h>
#import <MGMContactsProtocol.h>
#import <MGMContacts.h>
#import <MGMAddressBook.h>
#import <MGMGoogleContacts.h>
#import <MGMSound.h>
#import <MGMThemeManager.h>
#import <MGMXML.h>
//MGMSIP Stuff
#import <MGMSIP.h>
#import <MGMSIPAccount.h>
#import <MGMSIPCall.h>
#import <MGMSIPURL.h>
#else
#import <VoiceBase/MGMAddons.h>
#import <VoiceBase/MGMInstance.h>
#import <VoiceBase/MGMInbox.h>
@ -41,4 +23,3 @@
#import <VoiceBase/MGMSIPAccount.h>
#import <VoiceBase/MGMSIPCall.h>
#import <VoiceBase/MGMSIPURL.h>
#endif

View File

@ -7,18 +7,9 @@
*
*/
#if TARGET_OS_IPHONE
#import <MGMXMLNode.h>
#import <MGMXMLElement.h>
#import <MGMXMLDocument.h>
#import <MGMXMLDTD.h>
#import <MGMXMLDTDNode.h>
#import <MGMXMLNodeOptions.h>
#else
#import <VoiceBase/MGMXMLNode.h>
#import <VoiceBase/MGMXMLElement.h>
#import <VoiceBase/MGMXMLDocument.h>
#import <VoiceBase/MGMXMLDTD.h>
#import <VoiceBase/MGMXMLDTDNode.h>
#import <VoiceBase/MGMXMLNodeOptions.h>
#endif

View File

@ -8,11 +8,10 @@
#if TARGET_OS_IPHONE
#import <UIKit/UIKit.h>
#import <MGMXMLNode.h>
#else
#import <Cocoa/Cocoa.h>
#import <VoiceBase/MGMXMLNode.h>
#endif
#import <VoiceBase/MGMXMLNode.h>
@interface MGMXMLDTD : MGMXMLNode {

View File

@ -8,11 +8,10 @@
#if TARGET_OS_IPHONE
#import <UIKit/UIKit.h>
#import <MGMXMLNode.h>
#else
#import <Cocoa/Cocoa.h>
#import <VoiceBase/MGMXMLNode.h>
#endif
#import <VoiceBase/MGMXMLNode.h>
@interface MGMXMLDTDNode : MGMXMLNode {

View File

@ -8,11 +8,10 @@
#if TARGET_OS_IPHONE
#import <UIKit/UIKit.h>
#import <MGMXMLNode.h>
#else
#import <Cocoa/Cocoa.h>
#import <VoiceBase/MGMXMLNode.h>
#endif
#import <VoiceBase/MGMXMLNode.h>
#define MGMXMLDocPtr (xmlDocPtr)commonXML

View File

@ -8,11 +8,10 @@
#if TARGET_OS_IPHONE
#import <UIKit/UIKit.h>
#import <MGMXMLNode.h>
#else
#import <Cocoa/Cocoa.h>
#import <VoiceBase/MGMXMLNode.h>
#endif
#import <VoiceBase/MGMXMLNode.h>
@interface MGMXMLElement : MGMXMLNode {

View File

@ -8,11 +8,10 @@
#if TARGET_OS_IPHONE
#import <UIKit/UIKit.h>
#import <MGMXMLNodeOptions.h>
#else
#import <Cocoa/Cocoa.h>
#import <VoiceBase/MGMXMLNodeOptions.h>
#endif
#import <VoiceBase/MGMXMLNodeOptions.h>
#import <libxml/parser.h>
#import <libxml/tree.h>
#import <libxml/xpath.h>

View File

@ -419,6 +419,7 @@ NSString * const MGMLoading = @"Loading...";
[[NSNotificationCenter defaultCenter] postNotificationName:MGMContactsControllersChangedNotification object:self];
}
- (void)contactsControllerBecameCurrent:(MGMContactsController *)theContactsController {
if (quitting) return;
if ([contactsControllers containsObject:theContactsController])
currentContactsController = [contactsControllers indexOfObject:theContactsController];
else

View File

@ -36,20 +36,21 @@ const float MGMHLEBlue = 0.607843;
float controlY = theRadiusY * ellipse;
NSRect edges = NSInsetRect(theRect, theRadiusX, theRadiusY);
// bottom right corner
[path moveToPoint:NSMakePoint(edges.origin.x, theRect.origin.y)];
// top right corner
[path lineToPoint:NSMakePoint(NSMaxX(edges), theRect.origin.y)];
[path curveToPoint:NSMakePoint(NSMaxX(theRect), edges.origin.y) controlPoint1:NSMakePoint(NSMaxX(edges) + controlX, theRect.origin.y) controlPoint2:NSMakePoint(NSMaxX(theRect), edges.origin.y - controlY)];
// top right corner
// bottom right corner
[path lineToPoint:NSMakePoint(NSMaxX(theRect), NSMaxY(edges))];
[path curveToPoint:NSMakePoint(NSMaxX(edges), NSMaxY(theRect)) controlPoint1:NSMakePoint(NSMaxX(theRect), NSMaxY(edges) + controlY) controlPoint2:NSMakePoint(NSMaxX(edges) + controlX, NSMaxY(theRect))];
// top left corner
// bottom left corner
[path lineToPoint:NSMakePoint(edges.origin.x, NSMaxY(theRect))];
[path curveToPoint:NSMakePoint(theRect.origin.x, NSMaxY(edges)) controlPoint1:NSMakePoint(edges.origin.x - controlX, NSMaxY(theRect)) controlPoint2:NSMakePoint(theRect.origin.x, NSMaxY(edges) + controlY)];
// bottom left corner
// top left corner
[path lineToPoint:NSMakePoint(theRect.origin.x, edges.origin.y)];
[path curveToPoint:NSMakePoint(edges.origin.x, theRect.origin.y) controlPoint1:NSMakePoint(theRect.origin.x, edges.origin.y - controlY) controlPoint2:NSMakePoint(edges.origin.x - controlX, theRect.origin.y)];

View File

@ -14,7 +14,7 @@
#import "MGMVMAddons.h"
#import "MGMAccountSetup.h"
#import <MGMUsers/MGMUsers.h>
#import <VoiceBase.h>
#import <VoiceBase/VoiceBase.h>
NSString * const MGMLastContactsController = @"MGMLastContactsController";

View File

@ -10,7 +10,7 @@
#import "MGMController.h"
#import "MGMSIPUser.h"
#import "MGMVMAddons.h"
#import <VoiceBase.h>
#import <VoiceBase/VoiceBase.h>
#import <MGMUsers/MGMUsers.h>
NSString * const MGMRadioButton = @"Radio";

View File

@ -11,7 +11,7 @@
#import "MGMAccountSetup.h"
#import "MGMVMAddons.h"
#import <MGMUsers/MGMUsers.h>
#import <VoiceBase.h>
#import <VoiceBase/VoiceBase.h>
NSString * const MGMAccountCellIdentifier = @"MGMAccountCellIdentifier";

View File

@ -10,7 +10,7 @@
#import "MGMContactView.h"
#import "MGMAccountController.h"
#import "MGMController.h"
#import <VoiceBase.h>
#import <VoiceBase/VoiceBase.h>
NSString * const MGMContactViewCellIdentifier = @"MGMContactViewCellIdentifier";

View File

@ -11,7 +11,7 @@
#import "MGMAccountSetup.h"
#import "MGMVMAddons.h"
#import <MGMUsers/MGMUsers.h>
#import <VoiceBase.h>
#import <VoiceBase/VoiceBase.h>
@implementation MGMController
- (void)awakeFromNib {

View File

@ -0,0 +1,72 @@
//
// MGMPath.h
// VoiceMob
//
// Created by Mr. Gecko on 10/1/10.
// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/
//
#import <UIKit/UIKit.h>
@interface MGMPath : NSObject {
CGMutablePathRef pathRef;
CGFloat *lineDashPattern;
NSUInteger lineDashPatternCount;
CGFloat lineDashPhase;
CGFloat lineWidth;
CGFloat miterLimit;
CGFloat flatness;
CGLineCap lineCapStyle;
CGLineJoin lineJoinStyle;
}
+ (MGMPath *)path;
+ (MGMPath *)pathWithRect:(CGRect)theRect;
//+ (MGMPath *)pathWithOvalInRect:(CGRect)theRect;
+ (MGMPath *)pathWithRoundedRect:(CGRect)theRect cornerRadius:(CGFloat)theRadius;
+ (MGMPath *)pathWithRoundedRect:(CGRect)theRect cornerRadiusX:(CGFloat)theRadiusX cornerRadiusY:(CGFloat)theRadiusY;
//+ (MGMPath *)pathWithRoundedRect:(CGRect)theRect byRoundingCorners:(UIRectCorner)corners cornerRadii:(CGSize)cornerRadii;
//+ (MGMPath *)pathWithArcCenter:(CGPoint)center radius:(CGFloat)radius startAngle:(CGFloat)startAngle endAngle:(CGFloat)endAngle clockwise:(BOOL)clockwise;
//+ (MGMPath *)pathWithCGPath:(CGPathRef)CGPath;
- (CGMutablePathRef)CGPath;
- (void)moveToPoint:(CGPoint)thePoint;
- (void)addLineToPoint:(CGPoint)thePoint;
- (void)addCurveToPoint:(CGPoint)endPoint controlPoint1:(CGPoint)controlPoint1 controlPoint2:(CGPoint)controlPoint2;
- (void)addQuadCurveToPoint:(CGPoint)endPoint controlPoint:(CGPoint)controlPoint;
- (void)addArcWithCenter:(CGPoint)center radius:(CGFloat)radius startAngle:(CGFloat)startAngle endAngle:(CGFloat)endAngle clockwise:(BOOL)clockwise;
- (void)closePath;
//- (void)removeAllPoints;
- (void)appendPath:(MGMPath *)thePath;
//- (void)applyTransform:(CGAffineTransform)transform;
- (BOOL)isEmpty;
- (CGRect)bounds;
- (CGPoint)currentPoint;
- (BOOL)containsPoint:(CGPoint)point;
- (void)setLineWidth:(CGFloat)theWidth;
- (CGFloat)lineWidth;
- (void)setLineJoinStyle:(CGLineJoin)theLineJoinStyle;
- (CGLineJoin)lineJoinStyle;
- (void)setLineCapStyle:(CGLineCap)theLineCapStyle;
- (CGLineCap)lineCapStyle;
- (void)setMiterLimit:(CGFloat)theMiterLimit;
- (CGFloat)miterLimit;
- (void)setFlatness:(CGFloat)theFlatness;
- (CGFloat)flatness;
- (void)setLineDash:(const CGFloat *)pattern count:(NSInteger)count phase:(CGFloat)phase;
- (void)getLineDash:(CGFloat *)pattern count:(NSInteger *)count phase:(CGFloat *)phase;
- (void)fill;
- (void)fillGradientFrom:(UIColor *)theStartColor to:(UIColor *)theEndColor;
- (void)stroke;
//- (void)fillWithBlendMode:(CGBlendMode)blendMode alpha:(CGFloat)alpha;
//- (void)strokeWithBlendMode:(CGBlendMode)blendMode alpha:(CGFloat)alpha;
- (void)addClip;
@end

228
Classes/VoiceMob/MGMPath.m Normal file
View File

@ -0,0 +1,228 @@
//
// MGMPath.m
// VoiceMob
//
// Created by Mr. Gecko on 10/1/10.
// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/
//
#import "MGMPath.h"
@implementation MGMPath
+ (MGMPath *)path {
return [[[self alloc] init] autorelease];
}
+ (MGMPath *)pathWithRect:(CGRect)theRect {
MGMPath *path = [self path];
CGPathAddRect([path CGPath], NULL, theRect);
return path;
}
+ (MGMPath *)pathWithRoundedRect:(CGRect)theRect cornerRadius:(CGFloat)theRadius {
return [self pathWithRoundedRect:theRect cornerRadiusX:theRadius cornerRadiusY:theRadius];
}
+ (MGMPath *)pathWithRoundedRect:(CGRect)theRect cornerRadiusX:(CGFloat)theRadiusX cornerRadiusY:(CGFloat)theRadiusY {
MGMPath *path = [self path];
float maxRadiusX = theRect.size.width / 2.0;
float maxRadiusY = theRect.size.height / 2.0;
theRadiusX = (theRadiusX<maxRadiusX ? theRadiusX : maxRadiusX);
theRadiusY = (theRadiusY<maxRadiusY ? theRadiusY : maxRadiusY);
float ellipse = 0.55228474983079;
float controlX = theRadiusX * ellipse;
float controlY = theRadiusY * ellipse;
CGRect edges = CGRectInset(theRect, theRadiusX, theRadiusY);
[path moveToPoint:CGPointMake(edges.origin.x, theRect.origin.y)];
// top right corner
[path addLineToPoint:CGPointMake(CGRectGetMaxX(edges), theRect.origin.y)];
[path addCurveToPoint:CGPointMake(CGRectGetMaxX(theRect), edges.origin.y) controlPoint1:CGPointMake(CGRectGetMaxX(edges) + controlX, theRect.origin.y) controlPoint2:CGPointMake(CGRectGetMaxX(theRect), edges.origin.y - controlY)];
// bottom right corner
[path addLineToPoint:CGPointMake(CGRectGetMaxX(theRect), CGRectGetMaxY(edges))];
[path addCurveToPoint:CGPointMake(CGRectGetMaxX(edges), CGRectGetMaxY(theRect)) controlPoint1:CGPointMake(CGRectGetMaxX(theRect), CGRectGetMaxY(edges) + controlY) controlPoint2:CGPointMake(CGRectGetMaxX(edges) + controlX, CGRectGetMaxY(theRect))];
// bottom left corner
[path addLineToPoint:CGPointMake(edges.origin.x, CGRectGetMaxY(theRect))];
[path addCurveToPoint:CGPointMake(theRect.origin.x, CGRectGetMaxY(edges)) controlPoint1:CGPointMake(edges.origin.x - controlX, CGRectGetMaxY(theRect)) controlPoint2:CGPointMake(theRect.origin.x, CGRectGetMaxY(edges) + controlY)];
// top left corner
[path addLineToPoint:CGPointMake(theRect.origin.x, edges.origin.y)];
[path addCurveToPoint:CGPointMake(edges.origin.x, theRect.origin.y) controlPoint1:CGPointMake(theRect.origin.x, edges.origin.y - controlY) controlPoint2:CGPointMake(edges.origin.x - controlX, theRect.origin.y)];
[path closePath];
return path;
}
- (id)init {
if (self = [super init]) {
pathRef = CGPathCreateMutable();
lineWidth = 1.0;
lineCapStyle = kCGLineCapButt;
lineJoinStyle = kCGLineJoinMiter;
miterLimit = 10.0;
flatness = 0.6;
}
return self;
}
- (void)dealloc {
if (pathRef!=NULL)
CGPathRelease(pathRef);
if (lineDashPattern!=NULL)
free(lineDashPattern);
[super dealloc];
}
- (CGMutablePathRef)CGPath {
return pathRef;
}
- (BOOL)isEqual:(id)object {
if ([object isKindOfClass:[MGMPath class]]) {
return CGPathEqualToPath(pathRef, [object CGPath]);
}
return NO;
}
- (void)moveToPoint:(CGPoint)thePoint {
CGPathMoveToPoint(pathRef, NULL, thePoint.x, thePoint.y);
}
- (void)addLineToPoint:(CGPoint)thePoint {
CGPathAddLineToPoint(pathRef, NULL, thePoint.x, thePoint.y);
}
- (void)addCurveToPoint:(CGPoint)endPoint controlPoint1:(CGPoint)controlPoint1 controlPoint2:(CGPoint)controlPoint2 {
CGPathAddCurveToPoint(pathRef, NULL, controlPoint1.x, controlPoint1.y, controlPoint2.x, controlPoint2.y, endPoint.x, endPoint.y);
}
- (void)addArcWithCenter:(CGPoint)center radius:(CGFloat)radius startAngle:(CGFloat)startAngle endAngle:(CGFloat)endAngle clockwise:(BOOL)clockwise {
CGPathAddArc(pathRef, NULL, center.x, center.y, radius, startAngle, endAngle, clockwise);
}
- (void)addQuadCurveToPoint:(CGPoint)endPoint controlPoint:(CGPoint)controlPoint {
CGPathAddQuadCurveToPoint(pathRef, NULL, controlPoint.x, controlPoint.y, endPoint.x, endPoint.y);
}
- (void)closePath {
CGPathCloseSubpath(pathRef);
}
- (void)appendPath:(MGMPath *)thePath {
CGPathAddPath(pathRef, NULL, [thePath CGPath]);
}
- (BOOL)isEmpty {
return CGPathIsEmpty(pathRef);
}
- (CGRect)bounds {
return CGPathGetBoundingBox(pathRef);
}
- (CGPoint)currentPoint {
return CGPathGetCurrentPoint(pathRef);
}
- (BOOL)containsPoint:(CGPoint)point {
return CGPathContainsPoint(pathRef, NULL, point, NO);
}
- (void)setLineWidth:(CGFloat)theWidth {
lineWidth = theWidth;
}
- (CGFloat)lineWidth {
return lineWidth;
}
- (void)setLineJoinStyle:(CGLineJoin)theLineJoinStyle {
lineJoinStyle = theLineJoinStyle;
}
- (CGLineJoin)lineJoinStyle {
return lineJoinStyle;
}
- (void)setLineCapStyle:(CGLineCap)theLineCapStyle {
lineCapStyle = theLineCapStyle;
}
- (CGLineCap)lineCapStyle {
return lineCapStyle;
}
- (void)setMiterLimit:(CGFloat)theMiterLimit {
miterLimit = theMiterLimit;
}
- (CGFloat)miterLimit {
return miterLimit;
}
- (void)setFlatness:(CGFloat)theFlatness {
flatness = theFlatness;
}
- (CGFloat)flatness {
return flatness;
}
- (void)setLineDash:(const CGFloat *)pattern count:(NSInteger)count phase:(CGFloat)phase {
if (lineDashPattern!=NULL) {
free(lineDashPattern);
lineDashPattern = NULL;
}
if (pattern!=NULL) {
lineDashPattern = malloc(sizeof(CGFloat)*count);
memcpy(lineDashPattern, pattern, sizeof(pattern));
}
lineDashPatternCount = count;
lineDashPhase = phase;
}
- (void)getLineDash:(CGFloat *)pattern count:(NSInteger *)count phase:(CGFloat *)phase {
if (pattern!=NULL) {
memcpy(pattern, lineDashPattern, sizeof(CGFloat)*lineDashPatternCount);
}
*count = lineDashPatternCount;
*phase = lineDashPhase;
}
- (void)setContextOptions:(CGContextRef)theContext {
CGContextSetLineWidth(theContext, lineWidth);
CGContextSetLineCap(theContext, lineCapStyle);
CGContextSetLineJoin(theContext, lineJoinStyle);
CGContextSetMiterLimit(theContext, miterLimit);
CGContextSetFlatness(theContext, flatness);
if (lineDashPattern!=NULL)
CGContextSetLineDash(theContext, lineDashPhase, lineDashPattern, lineDashPatternCount);
}
- (void)fill {
CGContextRef currentContext = UIGraphicsGetCurrentContext();
CGContextSaveGState(currentContext);
CGContextAddPath(currentContext, pathRef);
[self setContextOptions:currentContext];
CGContextFillPath(currentContext);
CGContextRestoreGState(currentContext);
}
- (void)fillGradientFrom:(UIColor *)theStartColor to:(UIColor *)theEndColor {
CGRect bounds = [self bounds];
CGContextRef currentContext = UIGraphicsGetCurrentContext();
CGContextSaveGState(currentContext);
[self addClip];
CGColorRef colorsRef[2];
colorsRef[0] = [theStartColor CGColor];
colorsRef[1] = [theEndColor CGColor];
CFArrayRef colors = CFArrayCreate(NULL, (const void **)colorsRef, sizeof(colorsRef) / sizeof(CGColorRef), &kCFTypeArrayCallBacks);
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, colors, NULL);
CGPoint start = bounds.origin;
bounds.origin.y += bounds.size.height;
CGPoint end = bounds.origin;
CGContextDrawLinearGradient(currentContext, gradient, start, end, 0);
CGColorSpaceRelease(colorSpace);
CFRelease(colors);
CGGradientRelease(gradient);
CGContextRestoreGState(currentContext);
}
- (void)stroke {
CGContextRef currentContext = UIGraphicsGetCurrentContext();
CGContextSaveGState(currentContext);
CGContextAddPath(currentContext, pathRef);
[self setContextOptions:currentContext];
CGContextStrokePath(currentContext);
CGContextRestoreGState(currentContext);
}
- (void)addClip {
CGContextRef currentContext = UIGraphicsGetCurrentContext();
CGContextAddPath(currentContext, pathRef);
[self setContextOptions:currentContext];
CGContextClip(currentContext);
}
@end

View File

@ -12,3 +12,7 @@
- (BOOL)isPad;
- (NSString *)appendDeviceSuffixToString:(NSString *)theString;
@end
@interface UIColor (MGMVMAddons)
- (UIColor *)colorWithDifference:(CGFloat)theDifference;
@end

View File

@ -21,3 +21,26 @@
return [theString stringByAppendingString:@"_iPhone"];
}
@end
@implementation UIColor (MGMVMAddons)
- (UIColor *)colorWithDifference:(CGFloat)theDifference {
CGColorRef colorRef = [self CGColor];
CGColorSpaceRef colorspace = CGColorGetColorSpace(colorRef);
size_t componentsCount = CGColorGetNumberOfComponents(colorRef);
const CGFloat *componentsRef = CGColorGetComponents(colorRef);
CGFloat *components = malloc(sizeof(CGFloat)*componentsCount);
memcpy(components, componentsRef, sizeof(CGFloat)*componentsCount);
CGFloat *colorComponents = components;
for (size_t i=0; i<(componentsCount-1); i++) {
CGFloat value = *components+theDifference;
if (value>=0.0 && value<=1.0)
*components = value;
components++;
}
CGColorRef newColor = CGColorCreate(colorspace, colorComponents);
UIColor *color = [UIColor colorWithCGColor:newColor];
CGColorRelease(newColor);
free(colorComponents);
return color;
}
@end

View File

@ -9,7 +9,7 @@
#import "MGMSIPUser.h"
#import "MGMVMAddons.h"
#import <MGMUsers/MGMUsers.h>
#import <VoiceBase.h>
#import <VoiceBase/VoiceBase.h>
NSString * const MGMSIPUserAreaCode = @"MGMVSIPUserAreaCode";

View File

@ -7,7 +7,7 @@
//
#import "MGMContactView.h"
#import <VoiceBase.h>
#import <VoiceBase/VoiceBase.h>
@implementation MGMContactView
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {

View File

@ -0,0 +1,18 @@
//
// MGMGradientButton.h
// VoiceMob
//
// Created by Mr. Gecko on 10/1/10.
// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/
//
#import <UIKit/UIKit.h>
@interface MGMGradientButton : UIButton {
UIColor *buttonColor;
UIColor *buttonTouchColor;
UIColor *buttonDisabledColor;
BOOL touching;
}
@end

View File

@ -0,0 +1,113 @@
//
// MGMGradientButton.m
// VoiceMob
//
// Created by Mr. Gecko on 10/1/10.
// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/
//
#import "MGMGradientButton.h"
#import "MGMPath.h"
#import "MGMVMAddons.h"
@implementation MGMGradientButton
- (void)awakeFromNib {
buttonColor = [[self backgroundColor] retain];
buttonTouchColor = [[buttonColor colorWithDifference:-0.1] retain];
buttonDisabledColor = [[buttonColor colorWithDifference:0.1] retain];
[self setBackgroundColor:[UIColor clearColor]];
}
- (void)dealloc {
if (buttonColor!=nil)
[buttonColor release];
if (buttonTouchColor!=nil)
[buttonTouchColor release];
if (buttonDisabledColor!=nil)
[buttonDisabledColor release];
[super dealloc];
}
- (void)setTouching:(BOOL)isTouching {
touching = isTouching;
[self setNeedsDisplay];
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesBegan:touches withEvent:event];
[self setTouching:YES];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesEnded:touches withEvent:event];
[self setTouching:NO];
}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesCancelled:touches withEvent:event];
[self setTouching:NO];
}
- (UIEdgeInsets)titleEdgeInsets {
return UIEdgeInsetsMake(-2.0, 0.0, 0.0, 0.0);
}
- (void)drawRect:(CGRect)frameRect {
UIColor *color = nil;
if (![self isEnabled])
color = buttonDisabledColor;
else if (touching)
color = buttonTouchColor;
else
color = buttonColor;
CGRect whitePathBounds = [self bounds];
CGRect pathBounds = whitePathBounds;
whitePathBounds.size.width -= 2.0;
whitePathBounds.origin.x += 1.0;
whitePathBounds.size.height -= 2.0;
whitePathBounds.origin.y += 0.7;
MGMPath *whitePath = [MGMPath pathWithRoundedRect:whitePathBounds cornerRadius:12];
[[UIColor colorWithWhite:1.0 alpha:1.0] setStroke];
[whitePath setLineWidth:2.0];
[whitePath stroke];
pathBounds.size.width -= 1.0;
pathBounds.origin.x += 0.5;
pathBounds.size.height -= 2.0;
pathBounds.origin.y += 0.5;
MGMPath *path = [MGMPath pathWithRoundedRect:pathBounds cornerRadius:12];
[path setLineWidth:1.0];
[color setFill];
[[color colorWithDifference:-0.1] setStroke];
[path fill];
[path stroke];
CGRect gradientRect = pathBounds;
gradientRect.size.width -= 1.0;
gradientRect.origin.x += 0.5;
gradientRect.size.height -= 0.5;
gradientRect.origin.y += 0.5;
CGFloat gradientRadius = 12.0;
MGMPath *gradientPath = [MGMPath path];
float maxRadiusX = gradientRect.size.width / 2.0;
float maxRadiusY = gradientRect.size.height / 2.0;
gradientRadius = (gradientRadius<maxRadiusX ? gradientRadius : maxRadiusX);
gradientRadius = (gradientRadius<maxRadiusY ? gradientRadius : maxRadiusY);
float ellipse = 0.55228474983079;
float controlX = gradientRadius * ellipse;
float controlY = gradientRadius * ellipse;
CGRect edges = CGRectInset(gradientRect, gradientRadius, gradientRadius);
[gradientPath moveToPoint:CGPointMake(edges.origin.x, gradientRect.origin.y)];
// top right corner
[gradientPath addLineToPoint:CGPointMake(CGRectGetMaxX(edges), gradientRect.origin.y)];
[gradientPath addCurveToPoint:CGPointMake(CGRectGetMaxX(gradientRect), edges.origin.y) controlPoint1:CGPointMake(CGRectGetMaxX(edges) + controlX, gradientRect.origin.y) controlPoint2:CGPointMake(CGRectGetMaxX(gradientRect), edges.origin.y - controlY)];
[gradientPath addLineToPoint:CGPointMake(CGRectGetMaxX(gradientRect), CGRectGetMidY(gradientRect))];
[gradientPath addLineToPoint:CGPointMake(CGRectGetMidX(gradientRect), CGRectGetMidY(gradientRect))];
// top left corner
[gradientPath addLineToPoint:CGPointMake(gradientRect.origin.x, edges.origin.y)];
[gradientPath addCurveToPoint:CGPointMake(edges.origin.x, gradientRect.origin.y) controlPoint1:CGPointMake(gradientRect.origin.x, edges.origin.y - controlY) controlPoint2:CGPointMake(edges.origin.x - controlX, gradientRect.origin.y)];
[gradientPath closePath];
[gradientPath fillGradientFrom:[UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.6] to:[UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.2]];
[super drawRect:frameRect];
}
@end

View File

@ -7,7 +7,7 @@
//
#import "MGMInboxMessageView.h"
#import <VoiceBase.h>
#import <VoiceBase/VoiceBase.h>
@implementation MGMInboxMessageView
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {

View File

@ -7,6 +7,7 @@
//
#import "MGMNumberView.h"
#import "MGMPath.h"
NSString * const MGMFontName = @"Helvetica";
@ -105,51 +106,31 @@ NSString * const MGMFontName = @"Helvetica";
[self setTouching:NO];
}
- (void)drawRect:(CGRect)rect {
CGContextRef currentContext = UIGraphicsGetCurrentContext();
CGContextSaveGState(currentContext);
CGMutablePathRef path = CGPathCreateMutable();
CGRect bounds = [self bounds];
CGPathAddRect(path, NULL, bounds);
CGContextAddPath(currentContext, path);
CGContextClip(currentContext);
CGColorRef colorsRef[2];
- (void)drawRect:(CGRect)frameRect {
UIColor *startColor = nil;
UIColor *endColor = nil;
if (touching) {
colorsRef[0] = [[UIColor colorWithRed:0.5 green:0.5 blue:1.0 alpha:1.0] CGColor];
colorsRef[1] = [[UIColor colorWithRed:0.1 green:0.1 blue:0.5 alpha:1.0] CGColor];
startColor = [UIColor colorWithRed:0.5 green:0.5 blue:1.0 alpha:1.0];
endColor = [UIColor colorWithRed:0.1 green:0.1 blue:0.5 alpha:1.0];
} else {
if ([self tag]==13) {
colorsRef[0] = [[UIColor colorWithRed:0.5 green:1.0 blue:0.5 alpha:1.0] CGColor];
colorsRef[1] = [[UIColor colorWithRed:0.1 green:0.5 blue:0.1 alpha:1.0] CGColor];
startColor = [UIColor colorWithRed:0.5 green:1.0 blue:0.5 alpha:1.0];
endColor = [UIColor colorWithRed:0.1 green:0.5 blue:0.1 alpha:1.0];
} else if ([self tag]==14) {
colorsRef[0] = [[UIColor colorWithRed:1.0 green:0.5 blue:0.5 alpha:1.0] CGColor];
colorsRef[1] = [[UIColor colorWithRed:0.5 green:0.1 blue:0.1 alpha:1.0] CGColor];
startColor = [UIColor colorWithRed:1.0 green:0.5 blue:0.5 alpha:1.0];
endColor = [UIColor colorWithRed:0.5 green:0.1 blue:0.1 alpha:1.0];
} else {
colorsRef[0] = [[UIColor colorWithRed:0.5 green:0.5 blue:0.5 alpha:1.0] CGColor];
colorsRef[1] = [[UIColor colorWithRed:0.1 green:0.1 blue:0.1 alpha:1.0] CGColor];
startColor = [UIColor colorWithRed:0.5 green:0.5 blue:0.5 alpha:1.0];
endColor = [UIColor colorWithRed:0.1 green:0.1 blue:0.1 alpha:1.0];
}
}
CFArrayRef colors = CFArrayCreate(NULL, (const void **)colorsRef, sizeof(colorsRef) / sizeof(CGColorRef), &kCFTypeArrayCallBacks);
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, colors, NULL);
CFRelease(colorSpace);
CFRelease(colors);
CGPoint start = bounds.origin;
bounds.origin.y += bounds.size.height;
CGPoint end = bounds.origin;
CGContextDrawLinearGradient(currentContext, gradient, start, end, 0);
CFRelease(gradient);
CFRelease(path);
CGRect strokeRect = bounds;
strokeRect.origin.x = 0;
strokeRect.origin.y = 0;
CGContextSetStrokeColorWithColor(currentContext, [[UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0] CGColor]);
CGContextStrokeRectWithWidth(currentContext, strokeRect, 2.0);
CGContextRestoreGState(currentContext);
CGRect bounds = [self bounds];
MGMPath *path = [MGMPath pathWithRect:bounds];
[path setLineWidth:2.0];
[[UIColor colorWithWhite:1.0 alpha:1.0] setStroke];
[path fillGradientFrom:startColor to:endColor];
[path stroke];
[[UIColor whiteColor] set];
if ([self number]!=nil) {

View File

@ -0,0 +1,15 @@
//
// MGMSMSBottomView.h
// VoiceMob
//
// Created by Mr. Gecko on 10/1/10.
// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/
//
#import <UIKit/UIKit.h>
@interface MGMSMSBottomView : UIView {
}
@end

View File

@ -0,0 +1,29 @@
//
// MGMSMSBottomView.m
// VoiceMob
//
// Created by Mr. Gecko on 10/1/10.
// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/
//
#import "MGMSMSBottomView.h"
#import "MGMPath.h"
@implementation MGMSMSBottomView
- (void)drawRect:(CGRect)frameRect {
UIColor *startColor = [UIColor colorWithRed:0.968627 green:0.972549 blue:0.972549 alpha:1.0];
UIColor *endColor = [UIColor colorWithRed:0.772549 green:0.780392 blue:0.796078 alpha:1.0];
MGMPath *path = [MGMPath pathWithRect:[self bounds]];
[path fillGradientFrom:startColor to:endColor];
CGRect lineRect = [self bounds];
lineRect.size.height = 1;
MGMPath *linePath = [MGMPath pathWithRect:lineRect];
[[UIColor colorWithWhite:0.7 alpha:1.0] setFill];
[linePath fill];
lineRect.origin.y += 1;
MGMPath *line2Path = [MGMPath pathWithRect:lineRect];
[[UIColor colorWithWhite:1.0 alpha:1.0] setFill];
[line2Path fill];
}
@end

View File

@ -0,0 +1,15 @@
//
// MGMSMSTextView.h
// VoiceMob
//
// Created by Mr. Gecko on 10/1/10.
// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/
//
#import <UIKit/UIKit.h>
@interface MGMSMSTextView : UITextView {
}
@end

View File

@ -0,0 +1,44 @@
//
// MGMSMSTextView.m
// VoiceMob
//
// Created by Mr. Gecko on 10/1/10.
// Copyright (c) 2010 Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/
//
#import "MGMSMSTextView.h"
#import "MGMPath.h"
@implementation MGMSMSTextView
- (void)awakeFromNib {
[self setBackgroundColor:[UIColor clearColor]];
[self setContentInset:UIEdgeInsetsMake(-6.0, 3.0, 0.0, -3.0)];
}
- (void)drawRect:(CGRect)theRect {
CGRect whitePathBounds = [self bounds];
CGRect pathBounds = whitePathBounds;
whitePathBounds.size.width -= 2.0;
whitePathBounds.origin.x += 1.0;
whitePathBounds.size.height -= 2.0;
whitePathBounds.origin.y += 0.7;
MGMPath *whitePath = [MGMPath pathWithRoundedRect:whitePathBounds cornerRadius:13];
[[UIColor colorWithWhite:1.0 alpha:1.0] setStroke];
[whitePath setLineWidth:2.0];
[whitePath stroke];
pathBounds.size.height -= 1.0;
MGMPath *path = [MGMPath pathWithRoundedRect:pathBounds cornerRadius:13];
[[UIColor colorWithWhite:0.95 alpha:1.0] setFill];
[[UIColor colorWithWhite:0.4 alpha:1.0] setStroke];
[path fill];
CGContextRef currentContext = UIGraphicsGetCurrentContext();
CGContextSaveGState(currentContext);
[path addClip];
CGContextAddPath(currentContext, [path CGPath]);
CGContextSetShadowWithColor(currentContext, CGSizeMake(0, 1), 3.0, [[UIColor colorWithWhite:0.0 alpha:1.0] CGColor]);
CGContextStrokePath(currentContext);
CGContextRestoreGState(currentContext);
[super drawRect:theRect];
}
@end

View File

@ -9,7 +9,7 @@
#import "MGMVoiceContacts.h"
#import "MGMVoiceUser.h"
#import "MGMVMAddons.h"
#import <VoiceBase.h>
#import <VoiceBase/VoiceBase.h>
@implementation MGMVoiceContacts
+ (id)tabWithVoiceUser:(MGMVoiceUser *)theVoiceUser {

View File

@ -12,11 +12,11 @@
@interface MGMVoiceInbox : NSObject {
MGMVoiceUser *voiceUser;
MGMInstance *instance;
IBOutlet UITableView *inboxesTable;
IBOutlet UITableView *messagesTable;
MGMProgressView *progressView;
int currentView;
NSArray *inboxItems;
NSArray *messagesItems;
@ -45,5 +45,6 @@
- (void)stopProgress;
- (void)loadInbox;
- (void)addData:(NSArray *)theData;
- (int)currentInbox;
@end

View File

@ -12,7 +12,7 @@
#import "MGMInboxMessageView.h"
#import "MGMProgressView.h"
#import "MGMVMAddons.h"
#import <VoiceBase.h>
#import <VoiceBase/VoiceBase.h>
static NSMutableArray *MGMInboxItems;
@ -21,6 +21,7 @@ NSString * const MGMSID = @"id";
NSString * const MGMInboxesCellIdentifier = @"MGMInboxesCellIdentifier";
NSString * const MGMInboxMessageCellIdentifier = @"MGMInboxMessageCellIdentifier";
NSString * const MGMInboxMessageLoadCellIdentifier = @"MGMInboxMessageLoadCellIdentifier";
@implementation MGMVoiceInbox
+ (id)tabWithVoiceUser:(MGMVoiceUser *)theVoiceUser {
@ -42,8 +43,11 @@ NSString * const MGMInboxMessageCellIdentifier = @"MGMInboxMessageCellIdentifier
[MGMInboxItems addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"Missed", MGMSName, [NSNumber numberWithInt:9], MGMSID, nil]];
}
voiceUser = theVoiceUser;
instance = [voiceUser instance];
currentView = -1;
currentInbox = 0;
maxResults = 10;
start = 0;
resultsCount = 0;
inboxItems = [[NSArray arrayWithObjects:[[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:NULL] autorelease], [[[UIBarButtonItem alloc] initWithTitle:@"Settings" style:UIBarButtonItemStyleBordered target:[voiceUser accountController] action:@selector(showSettings:)] autorelease], nil] retain];
messagesItems = [[NSArray arrayWithObjects:[[[UIBarButtonItem alloc] initWithTitle:@"Inboxes" style:UIBarButtonItemStyleBordered target:self action:@selector(showInboxes:)] autorelease], [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:NULL] autorelease], [[[UIBarButtonItem alloc] initWithTitle:@"Settings" style:UIBarButtonItemStyleBordered target:[voiceUser accountController] action:@selector(showSettings:)] autorelease], nil] retain];
currentData = [NSMutableArray new];
@ -60,19 +64,28 @@ NSString * const MGMInboxMessageCellIdentifier = @"MGMInboxMessageCellIdentifier
}
- (UIView *)view {
if (currentView==-1) {
currentView = 1;
[self loadInbox];
}
if (inboxesTable==nil) {
if (![[NSBundle mainBundle] loadNibNamed:[[UIDevice currentDevice] appendDeviceSuffixToString:@"VoiceInbox"] owner:self options:nil]) {
NSLog(@"Unable to load Voice Inbox");
[self release];
self = nil;
} else {
[[[voiceUser accountController] toolbar] setItems:inboxItems animated:YES];
CGSize contentSize = [[voiceUser tabView] frame].size;
progressView = [[MGMProgressView alloc] initWithFrame:CGRectMake(0, 0, contentSize.width, contentSize.height)];
[progressView setProgressTitle:@"Loading..."];
[progressView setHidden:(progressStartCount<=0)];
if (currentView==1)
[[[voiceUser accountController] toolbar] setItems:messagesItems animated:YES];
else
[[[voiceUser accountController] toolbar] setItems:inboxItems animated:YES];
}
}
if (currentView==1)
return messagesTable;
return inboxesTable;
}
- (void)releaseView {
@ -94,7 +107,6 @@ NSString * const MGMInboxMessageCellIdentifier = @"MGMInboxMessageCellIdentifier
if (progressView!=nil) {
if ([progressView superview]==nil)
[[voiceUser tabView] addSubview:progressView];
[progressView setHidden:NO];
[progressView startProgess];
[progressView becomeFirstResponder];
}
@ -103,39 +115,84 @@ NSString * const MGMInboxMessageCellIdentifier = @"MGMInboxMessageCellIdentifier
- (void)stopProgress {
if (progressView!=nil) {
if (progressStartCount==1) {
[progressView setHidden:YES];
[progressView stopProgess];
[progressView removeFromSuperview];
}
}
progressStartCount--;
}
- (IBAction)showInboxes:(id)sender {
CGRect inViewFrame = [inboxesTable frame];
inViewFrame.origin.x -= inViewFrame.size.width;
[inboxesTable setFrame:inViewFrame];
[[voiceUser tabView] addSubview:inboxesTable];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(inboxesAnimationDidStop:finished:context:)];
[inboxesTable setFrame:[messagesTable frame]];
CGRect outViewFrame = [messagesTable frame];
outViewFrame.origin.x += outViewFrame.size.width;
[messagesTable setFrame:outViewFrame];
[UIView commitAnimations];
[[[voiceUser accountController] toolbar] setItems:inboxItems animated:YES];
currentView = 0;
}
- (void)inboxesAnimationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {
[messagesTable removeFromSuperview];
currentInbox = -1;
start = 0;
resultsCount = 0;
[currentData removeAllObjects];
[messagesTable reloadData];
[[messagesItems objectAtIndex:1] setEnabled:YES];
}
- (NSInteger)tableView:(UITableView *)theTableView numberOfRowsInSection:(NSInteger)section {
if (theTableView==inboxesTable)
return [MGMInboxItems count];
else if (theTableView==messagesTable)
return [currentData count];
return (resultsCount==maxResults ? [currentData count]+1 : [currentData count]);
return 0;
}
- (UITableViewCell *)tableView:(UITableView *)theTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = nil;
if (theTableView==inboxesTable) {
cell = [inboxesTable dequeueReusableCellWithIdentifier:MGMInboxesCellIdentifier];
UITableViewCell *cell = [inboxesTable dequeueReusableCellWithIdentifier:MGMInboxesCellIdentifier];
if (cell==nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MGMInboxesCellIdentifier] autorelease];
[cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
}
[cell setText:[[MGMInboxItems objectAtIndex:[indexPath indexAtPosition:1]] objectForKey:MGMSName]];
return cell;
} else if (theTableView==messagesTable) {
cell = (MGMInboxMessageView *)[messagesTable dequeueReusableCellWithIdentifier:MGMInboxMessageCellIdentifier];
if ([currentData count]<=[indexPath indexAtPosition:1]) {
UITableViewCell *cell = [inboxesTable dequeueReusableCellWithIdentifier:MGMInboxMessageLoadCellIdentifier];
if (cell==nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MGMInboxMessageLoadCellIdentifier] autorelease];
[cell setText:@"Load More..."];
if ([cell respondsToSelector:@selector(textLabel)]) {
[[cell textLabel] setTextColor:[UIColor blueColor]];
[[cell textLabel] setTextAlignment:UITextAlignmentCenter];
} else {
[cell setTextColor:[UIColor blueColor]];
[cell setTextAlignment:UITextAlignmentCenter];
}
}
return cell;
} else {
MGMInboxMessageView *cell = (MGMInboxMessageView *)[messagesTable dequeueReusableCellWithIdentifier:MGMInboxMessageCellIdentifier];
if (cell==nil) {
cell = [[[MGMInboxMessageView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MGMInboxMessageCellIdentifier] autorelease];
[cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
[cell setInstance:instance];
[cell setInstance:[voiceUser instance]];
}
[cell setMessageData:[currentData objectAtIndex:[indexPath indexAtPosition:1]]];
}
return cell;
}
}
return nil;
}
- (BOOL)tableView:(UITableView *)theTableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
if (theTableView==inboxesTable)
@ -154,10 +211,6 @@ NSString * const MGMInboxMessageCellIdentifier = @"MGMInboxMessageCellIdentifier
- (void)tableView:(UITableView *)theTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (theTableView==inboxesTable) {
currentInbox = [[[MGMInboxItems objectAtIndex:[indexPath indexAtPosition:1]] objectForKey:MGMSID] intValue];
[currentData removeAllObjects];
start = 0;
resultsCount = 0;
[self loadInbox];
[[messagesItems objectAtIndex:1] setEnabled:NO];
[[[voiceUser accountController] toolbar] setItems:messagesItems animated:YES];
@ -175,6 +228,15 @@ NSString * const MGMInboxMessageCellIdentifier = @"MGMInboxMessageCellIdentifier
outViewFrame.origin.x -= outViewFrame.size.width;
[inboxesTable setFrame:outViewFrame];
[UIView commitAnimations];
currentView = 1;
[self loadInbox];
} else if (theTableView==messagesTable) {
if ([indexPath indexAtPosition:1]>=[currentData count]) {
start += maxResults;
[self loadInbox];
} else {
}
}
}
- (void)messagesAnimationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {
@ -188,34 +250,34 @@ NSString * const MGMInboxMessageCellIdentifier = @"MGMInboxMessageCellIdentifier
[self startProgress];
switch (currentInbox) {
case 0:
[[instance inbox] getInboxForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
[[[voiceUser instance] inbox] getInboxForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
break;
case 1:
[[instance inbox] getStarredForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
[[[voiceUser instance] inbox] getStarredForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
break;
case 2:
[[instance inbox] getSpamForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
[[[voiceUser instance] inbox] getSpamForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
break;
case 3:
[[instance inbox] getTrashForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
[[[voiceUser instance] inbox] getTrashForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
break;
case 4:
[[instance inbox] getVoicemailForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
[[[voiceUser instance] inbox] getVoicemailForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
break;
case 5:
[[instance inbox] getSMSForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
[[[voiceUser instance] inbox] getSMSForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
break;
case 6:
[[instance inbox] getRecordedCallsForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
[[[voiceUser instance] inbox] getRecordedCallsForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
break;
case 7:
[[instance inbox] getPlacedCallsForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
[[[voiceUser instance] inbox] getPlacedCallsForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
break;
case 8:
[[instance inbox] getReceivedCallsForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
[[[voiceUser instance] inbox] getReceivedCallsForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
break;
case 9:
[[instance inbox] getMissedCallsForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
[[[voiceUser instance] inbox] getMissedCallsForPage:page delegate:self didFailWithError:@selector(inbox:didFailWithError:instance:) didReceiveInfo:@selector(inboxGotInfo:instance:)];
break;
}
}
@ -230,13 +292,17 @@ NSString * const MGMInboxMessageCellIdentifier = @"MGMInboxMessageCellIdentifier
}
- (void)inboxGotInfo:(NSArray *)theInfo instance:(MGMInstance *)theInstance {
if (theInfo!=nil) {
[currentData addObjectsFromArray:theInfo];
[messagesTable reloadData];
[self addData:theInfo];
} else {
NSLog(@"Error 234554: Hold on, this should never happen.");
}
[self stopProgress];
}
- (void)addData:(NSArray *)theData {
resultsCount = [theData count];
[currentData addObjectsFromArray:theData];
[messagesTable reloadData];
}
- (int)currentInbox {
return currentInbox;
}

View File

@ -10,7 +10,7 @@
#import "MGMVoiceUser.h"
#import "MGMNumberView.h"
#import "MGMVMAddons.h"
#import <VoiceBase.h>
#import <VoiceBase/VoiceBase.h>
@implementation MGMVoicePad
+ (id)tabWithVoiceUser:(MGMVoiceUser *)theVoiceUser {

View File

@ -13,7 +13,7 @@
@interface MGMVoiceSMS : NSObject {
MGMVoiceUser *voiceUser;
IBOutlet UIView *view;
IBOutlet UIView *messageView;
}
+ (id)tabWithVoiceUser:(MGMVoiceUser *)theVoiceUser;
- (id)initWithVoiceUser:(MGMVoiceUser *)theVoiceUser;

View File

@ -9,7 +9,7 @@
#import "MGMVoiceSMS.h"
#import "MGMVoiceUser.h"
#import "MGMVMAddons.h"
#import <VoiceBase.h>
#import <VoiceBase/VoiceBase.h>
@implementation MGMVoiceSMS
+ (id)tabWithVoiceUser:(MGMVoiceUser *)theVoiceUser {
@ -31,7 +31,7 @@
}
- (UIView *)view {
if (view==nil) {
if (messageView==nil) {
if (![[NSBundle mainBundle] loadNibNamed:[[UIDevice currentDevice] appendDeviceSuffixToString:@"VoiceSMS"] owner:self options:nil]) {
NSLog(@"Unable to load Voice SMS");
[self release];
@ -40,12 +40,12 @@
}
}
return view;
return messageView;
}
- (void)releaseView {
if (view!=nil) {
[view release];
view = nil;
if (messageView!=nil) {
[messageView release];
messageView = nil;
}
}
@end

View File

@ -15,7 +15,7 @@
#import "MGMAccountController.h"
#import "MGMVMAddons.h"
#import <MGMUsers/MGMUsers.h>
#import <VoiceBase.h>
#import <VoiceBase/VoiceBase.h>
@implementation MGMVoiceUser
+ (id)voiceUser:(MGMUser *)theUser accountController:(MGMAccountController *)theAccountController {
@ -26,15 +26,15 @@
accountController = theAccountController;
user = [theUser retain];
if ([user isStarted])
instance = [[MGMInstance instanceWithUser:user delegate:self] retain];
currentTab = 0;
currentTab = 2;
tabObjects = [NSMutableArray new];
[tabObjects addObject:[MGMVoicePad tabWithVoiceUser:self]];
[tabObjects addObject:[MGMVoiceContacts tabWithVoiceUser:self]];
[tabObjects addObject:[MGMVoiceSMS tabWithVoiceUser:self]];
[tabObjects addObject:[MGMVoiceInbox tabWithVoiceUser:self]];
//if ([user isStarted])
//instance = [[MGMInstance instanceWithUser:user delegate:self] retain];
}
return self;
}
@ -74,7 +74,7 @@
} else {
[tabView addSubview:[[tabObjects objectAtIndex:currentTab] view]];
[tabBar setSelectedItem:[[tabBar items] objectAtIndex:currentTab]];
if (![instance isLoggedIn]) {
/*if (![instance isLoggedIn]) {
CGSize contentSize = [view frame].size;
progressView = [[MGMProgressView alloc] initWithFrame:CGRectMake(0, 0, contentSize.width, contentSize.height)];
[progressView setProgressTitle:@"Logging In"];
@ -83,7 +83,7 @@
[progressView becomeFirstResponder];
} else {
[self setInstanceInfo];
}
}*/
}
}
return view;

View File

@ -206,15 +206,16 @@
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUIView" id="882170606">
<nil key="NSNextResponder"/>
<reference key="NSNextResponder"/>
<int key="NSvFlags">292</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUITextView" id="174950381">
<reference key="NSNextResponder" ref="882170606"/>
<int key="NSvFlags">274</int>
<string key="NSFrameSize">{320, 116}</string>
<string key="NSFrameSize">{320, 136}</string>
<reference key="NSSuperview" ref="882170606"/>
<reference key="NSWindow"/>
<reference key="IBUIBackgroundColor" ref="815808359"/>
<bool key="IBUIClipsSubviews">YES</bool>
<bool key="IBUIMultipleTouchEnabled">YES</bool>
@ -222,7 +223,6 @@
<bool key="IBUIScrollEnabled">NO</bool>
<bool key="IBUIEditable">NO</bool>
<string key="IBUIText">Choose an account type to set up and press continue. When you set up a Google Voice account, it will automatically add a second account for Google Contacts to receive contacts from that account.</string>
<reference key="IBUITextColor" ref="815808359"/>
<object class="NSFont" key="IBUIFont">
<string key="NSName">Helvetica</string>
<double key="NSSize">16</double>
@ -236,8 +236,9 @@
<object class="IBUIButton" id="989292267">
<reference key="NSNextResponder" ref="882170606"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{20, 124}, {29, 29}}</string>
<string key="NSFrame">{{20, 144}, {29, 29}}</string>
<reference key="NSSuperview" ref="882170606"/>
<reference key="NSWindow"/>
<reference key="IBUIBackgroundColor" ref="815808359"/>
<bool key="IBUIOpaque">NO</bool>
<int key="IBUITag">1</int>
@ -266,8 +267,9 @@
<object class="IBUIButton" id="365343775">
<reference key="NSNextResponder" ref="882170606"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{20, 161}, {29, 29}}</string>
<string key="NSFrame">{{20, 181}, {29, 29}}</string>
<reference key="NSSuperview" ref="882170606"/>
<reference key="NSWindow"/>
<reference key="IBUIBackgroundColor" ref="815808359"/>
<bool key="IBUIOpaque">NO</bool>
<int key="IBUITag">2</int>
@ -289,8 +291,9 @@
<object class="IBUIButton" id="580254480">
<reference key="NSNextResponder" ref="882170606"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{20, 198}, {29, 29}}</string>
<string key="NSFrame">{{20, 218}, {29, 29}}</string>
<reference key="NSSuperview" ref="882170606"/>
<reference key="NSWindow"/>
<reference key="IBUIBackgroundColor" ref="815808359"/>
<bool key="IBUIOpaque">NO</bool>
<int key="IBUITag">3</int>
@ -309,8 +312,9 @@
<object class="IBUIButton" id="330324968">
<reference key="NSNextResponder" ref="882170606"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{57, 127}, {242, 21}}</string>
<string key="NSFrame">{{57, 147}, {242, 21}}</string>
<reference key="NSSuperview" ref="882170606"/>
<reference key="NSWindow"/>
<bool key="IBUIOpaque">NO</bool>
<int key="IBUITag">1</int>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
@ -331,8 +335,9 @@
<object class="IBUIButton" id="385142519">
<reference key="NSNextResponder" ref="882170606"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{58, 165}, {242, 21}}</string>
<string key="NSFrame">{{58, 185}, {242, 21}}</string>
<reference key="NSSuperview" ref="882170606"/>
<reference key="NSWindow"/>
<bool key="IBUIOpaque">NO</bool>
<int key="IBUITag">2</int>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
@ -346,8 +351,9 @@
<object class="IBUIButton" id="206235771">
<reference key="NSNextResponder" ref="882170606"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{58, 202}, {242, 21}}</string>
<string key="NSFrame">{{58, 222}, {242, 21}}</string>
<reference key="NSSuperview" ref="882170606"/>
<reference key="NSWindow"/>
<bool key="IBUIOpaque">NO</bool>
<int key="IBUITag">3</int>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
@ -360,6 +366,8 @@
</object>
</object>
<string key="NSFrameSize">{320, 373}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="IBUIBackgroundColor" ref="815808359"/>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
@ -1581,9 +1589,9 @@
<reference ref="989292267"/>
<reference ref="365343775"/>
<reference ref="580254480"/>
<reference ref="330324968"/>
<reference ref="385142519"/>
<reference ref="206235771"/>
<reference ref="330324968"/>
</object>
<reference key="parent" ref="0"/>
<string key="objectName">Account Type</string>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

View File

@ -8,8 +8,6 @@
<string>${PRODUCT_NAME}</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string>VoiceMob.png</string>
<key>UIPrerenderedIcon</key>
<true/>
<key>CFBundleIdentifier</key>

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 409 B

After

Width:  |  Height:  |  Size: 3.7 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 533 B

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -12,6 +12,7 @@
</object>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
<integer value="5"/>
<integer value="3"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
@ -40,13 +41,126 @@
<object class="IBUIView" id="355112807">
<reference key="NSNextResponder"/>
<int key="NSvFlags">274</int>
<string key="NSFrameSize">{322, 369}</string>
<reference key="NSSuperview"/>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUIView" id="545711008">
<reference key="NSNextResponder" ref="355112807"/>
<int key="NSvFlags">266</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBUITextView" id="826280752">
<reference key="NSNextResponder" ref="545711008"/>
<int key="NSvFlags">274</int>
<string key="NSFrame">{{7, 8}, {238, 26}}</string>
<reference key="NSSuperview" ref="545711008"/>
<object class="NSColor" key="IBUIBackgroundColor" id="136061801">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MSAxIDEAA</bytes>
</object>
<bool key="IBUIClipsSubviews">YES</bool>
<bool key="IBUIMultipleTouchEnabled">YES</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<bool key="IBUIScrollEnabled">NO</bool>
<string key="IBUIText"/>
<object class="IBUITextInputTraits" key="IBUITextInputTraits">
<int key="IBUIAutocapitalizationType">2</int>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
</object>
<object class="IBUIButton" id="853973562">
<reference key="NSNextResponder" ref="545711008"/>
<int key="NSvFlags">265</int>
<string key="NSFrame">{{252, 8}, {61, 26}}</string>
<reference key="NSSuperview" ref="545711008"/>
<object class="NSColor" key="IBUIBackgroundColor">
<int key="NSColorSpace">1</int>
<bytes key="NSRGB">MC4xMTc2NDcwNTkzIDAuMzgwMzkyMTY0IDAuNzg0MzEzNzM4MwA</bytes>
</object>
<bool key="IBUIOpaque">NO</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<int key="IBUIContentHorizontalAlignment">0</int>
<int key="IBUIContentVerticalAlignment">0</int>
<object class="NSFont" key="IBUIFont">
<string key="NSName">Helvetica-Bold</string>
<double key="NSSize">16</double>
<int key="NSfFlags">16</int>
</object>
<string key="IBUINormalTitle">Send</string>
<object class="NSColor" key="IBUIHighlightedTitleColor" id="338535607">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
<reference key="IBUINormalTitleColor" ref="338535607"/>
<object class="NSColor" key="IBUINormalTitleShadowColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MCAwAA</bytes>
</object>
</object>
<object class="IBUILabel" id="1055111431">
<reference key="NSNextResponder" ref="545711008"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{265, -21}, {29, 21}}</string>
<reference key="NSSuperview" ref="545711008"/>
<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">160</string>
<object class="NSFont" key="IBUIFont">
<string key="NSName">Helvetica</string>
<double key="NSSize">17</double>
<int key="NSfFlags">16</int>
</object>
<object class="NSColor" key="IBUITextColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC4zMzMzMzMzNDMzAA</bytes>
</object>
<nil key="IBUIHighlightedColor"/>
<int key="IBUIBaselineAdjustment">1</int>
<float key="IBUIMinimumFontSize">10</float>
</object>
</object>
<string key="NSFrame">{{0, 329}, {320, 40}}</string>
<reference key="NSSuperview" ref="355112807"/>
<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>
<object class="IBUIWebView" id="394150452">
<reference key="NSNextResponder" ref="355112807"/>
<int key="NSvFlags">292</int>
<string key="NSFrameSize">{320, 329}</string>
<reference key="NSSuperview" ref="355112807"/>
<reference key="IBUIBackgroundColor" ref="136061801"/>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<int key="IBUIDataDetectorTypes">1</int>
<bool key="IBUIDetectsPhoneNumbers">YES</bool>
</object>
</object>
<string key="NSFrameSize">{320, 369}</string>
<reference key="NSSuperview"/>
<reference key="IBUIBackgroundColor" ref="338535607"/>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
<object class="IBUITableView" id="908766037">
<reference key="NSNextResponder"/>
<int key="NSvFlags">274</int>
<string key="NSFrameSize">{320, 369}</string>
<reference key="NSSuperview"/>
<reference key="IBUIBackgroundColor" ref="338535607"/>
<bool key="IBUIClipsSubviews">YES</bool>
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
<bool key="IBUIAlwaysBounceVertical">YES</bool>
<int key="IBUISeparatorStyle">1</int>
<int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
<bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
<float key="IBUIRowHeight">60</float>
</object>
</object>
<object class="IBObjectContainer" key="IBDocument.Objects">
@ -54,11 +168,11 @@
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">view</string>
<string key="label">messageView</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="355112807"/>
</object>
<int key="connectionID">4</int>
<int key="connectionID">14</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
@ -84,7 +198,50 @@
<object class="IBObjectRecord">
<int key="objectID">3</int>
<reference key="object" ref="355112807"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="545711008"/>
<reference ref="394150452"/>
</object>
<reference key="parent" ref="0"/>
<string key="objectName">Message View</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">5</int>
<reference key="object" ref="908766037"/>
<reference key="parent" ref="0"/>
<string key="objectName">SMS Messages</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">15</int>
<reference key="object" ref="545711008"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="826280752"/>
<reference ref="853973562"/>
<reference ref="1055111431"/>
</object>
<reference key="parent" ref="355112807"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">12</int>
<reference key="object" ref="826280752"/>
<reference key="parent" ref="545711008"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">16</int>
<reference key="object" ref="853973562"/>
<reference key="parent" ref="545711008"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">19</int>
<reference key="object" ref="394150452"/>
<reference key="parent" ref="355112807"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">20</int>
<reference key="object" ref="1055111431"/>
<reference key="parent" ref="545711008"/>
</object>
</object>
</object>
@ -94,14 +251,34 @@
<bool key="EncodedWithXMLCoder">YES</bool>
<string>-1.CustomClassName</string>
<string>-2.CustomClassName</string>
<string>12.CustomClassName</string>
<string>12.IBPluginDependency</string>
<string>15.CustomClassName</string>
<string>15.IBPluginDependency</string>
<string>16.CustomClassName</string>
<string>16.IBPluginDependency</string>
<string>19.IBPluginDependency</string>
<string>20.IBPluginDependency</string>
<string>3.IBEditorWindowLastContentRect</string>
<string>3.IBPluginDependency</string>
<string>5.IBEditorWindowLastContentRect</string>
<string>5.IBPluginDependency</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>MGMVoiceSMS</string>
<string>UIResponder</string>
<string>{{525, 191}, {322, 369}}</string>
<string>MGMSMSTextView</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>MGMSMSBottomView</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>MGMGradientButton</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>{{525, 192}, {320, 369}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
<string>{{177, 335}, {320, 369}}</string>
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
</object>
</object>
@ -121,22 +298,46 @@
</object>
</object>
<nil key="sourceID"/>
<int key="maxID">4</int>
<int key="maxID">20</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBPartialClassDescription">
<string key="className">MGMGradientButton</string>
<string key="superclassName">UIButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">Classes/VoiceMob/Views/MGMGradientButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">MGMSMSBottomView</string>
<string key="superclassName">UIView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">Classes/VoiceMob/Views/MGMSMSBottomView.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">MGMSMSTextView</string>
<string key="superclassName">UITextView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">Classes/VoiceMob/Views/MGMSMSTextView.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">MGMVoiceSMS</string>
<string key="superclassName">NSObject</string>
<object class="NSMutableDictionary" key="outlets">
<string key="NS.key.0">view</string>
<string key="NS.key.0">messageView</string>
<string key="NS.object.0">UIView</string>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
<string key="NS.key.0">view</string>
<string key="NS.key.0">messageView</string>
<object class="IBToOneOutletInfo" key="NS.object.0">
<string key="name">view</string>
<string key="name">messageView</string>
<string key="candidateClassName">UIView</string>
</object>
</object>
@ -239,11 +440,59 @@
<string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIButton</string>
<string key="superclassName">UIControl</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIControl</string>
<string key="superclassName">UIView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UILabel</string>
<string key="superclassName">UIView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIResponder</string>
<string key="superclassName">NSObject</string>
<reference key="sourceIdentifier" ref="86538169"/>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIScrollView</string>
<string key="superclassName">UIView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">UIKit.framework/Headers/UIScrollView.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UITableView</string>
<string key="superclassName">UIScrollView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">UIKit.framework/Headers/UITableView.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UITextView</string>
<string key="superclassName">UIScrollView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">UIKit.framework/Headers/UITextView.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
@ -259,6 +508,14 @@
<string key="minorKey">UIKit.framework/Headers/UIView.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">UIWebView</string>
<string key="superclassName">UIView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">UIKit.framework/Headers/UIWebView.h</string>
</object>
</object>
</object>
</object>
<int key="IBDocument.localizationMode">0</int>

BIN
Resources/VoiceMob/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -63,30 +63,30 @@
2A487CBC124BE1E600E8EE4E /* MGMXMLDTDNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A487C9A124BE0AB00E8EE4E /* MGMXMLDTDNode.m */; };
2A487CBD124BE1E600E8EE4E /* MGMXMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A487C9C124BE0AB00E8EE4E /* MGMXMLElement.m */; };
2A487CBE124BE1E600E8EE4E /* MGMXMLNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A487C9E124BE0AB00E8EE4E /* MGMXMLNode.m */; };
2A487CC1124BE22E00E8EE4E /* MGMAddressBook.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A1171A51245676A00D119B5 /* MGMAddressBook.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CC2124BE22E00E8EE4E /* MGMContacts.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A1171A71245676A00D119B5 /* MGMContacts.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CC3124BE22E00E8EE4E /* MGMContactsProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A1171A91245676A00D119B5 /* MGMContactsProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CC4124BE22E00E8EE4E /* MGMGoogleContacts.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A1171AB1245676A00D119B5 /* MGMGoogleContacts.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CC5124BE22E00E8EE4E /* MGMAddons.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A1171AD1245676A00D119B5 /* MGMAddons.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CC6124BE22E00E8EE4E /* MGMInbox.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A1171AF1245676A00D119B5 /* MGMInbox.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CC7124BE22E00E8EE4E /* MGMInstance.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A1171B11245676A00D119B5 /* MGMInstance.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CC8124BE22E00E8EE4E /* MGMThemeManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A1171B31245676A00D119B5 /* MGMThemeManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CC9124BE22E00E8EE4E /* MGMSIP.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A1171B61245676A00D119B5 /* MGMSIP.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CCA124BE22E00E8EE4E /* MGMSIPAccount.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A1171B81245676A00D119B5 /* MGMSIPAccount.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CCB124BE22E00E8EE4E /* MGMSIPCall.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A1171BA1245676A00D119B5 /* MGMSIPCall.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CCC124BE22E00E8EE4E /* MGMSIPURL.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A1171BC1245676A00D119B5 /* MGMSIPURL.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CCD124BE22E00E8EE4E /* MGMXML.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A487CAE124BE0C400E8EE4E /* MGMXML.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CCE124BE22E00E8EE4E /* MGMXMLAddons.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A487C93124BE0AB00E8EE4E /* MGMXMLAddons.h */; };
2A487CCF124BE22E00E8EE4E /* MGMXMLDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A487C95124BE0AB00E8EE4E /* MGMXMLDocument.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CD0124BE22E00E8EE4E /* MGMXMLDTD.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A487C97124BE0AB00E8EE4E /* MGMXMLDTD.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CD1124BE22E00E8EE4E /* MGMXMLDTDNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A487C99124BE0AB00E8EE4E /* MGMXMLDTDNode.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CD2124BE22E00E8EE4E /* MGMXMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A487C9B124BE0AB00E8EE4E /* MGMXMLElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CD3124BE22E00E8EE4E /* MGMXMLNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A487C9D124BE0AB00E8EE4E /* MGMXMLNode.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CD4124BE22E00E8EE4E /* MGMXMLNodeOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A487C9F124BE0AB00E8EE4E /* MGMXMLNodeOptions.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CD5124BE22E00E8EE4E /* VoiceBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A1171BE1245676A00D119B5 /* VoiceBase.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CC1124BE22E00E8EE4E /* MGMAddressBook.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A1171A51245676A00D119B5 /* MGMAddressBook.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CC2124BE22E00E8EE4E /* MGMContacts.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A1171A71245676A00D119B5 /* MGMContacts.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CC3124BE22E00E8EE4E /* MGMContactsProtocol.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A1171A91245676A00D119B5 /* MGMContactsProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CC4124BE22E00E8EE4E /* MGMGoogleContacts.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A1171AB1245676A00D119B5 /* MGMGoogleContacts.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CC5124BE22E00E8EE4E /* MGMAddons.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A1171AD1245676A00D119B5 /* MGMAddons.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CC6124BE22E00E8EE4E /* MGMInbox.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A1171AF1245676A00D119B5 /* MGMInbox.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CC7124BE22E00E8EE4E /* MGMInstance.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A1171B11245676A00D119B5 /* MGMInstance.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CC8124BE22E00E8EE4E /* MGMThemeManager.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A1171B31245676A00D119B5 /* MGMThemeManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CC9124BE22E00E8EE4E /* MGMSIP.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A1171B61245676A00D119B5 /* MGMSIP.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CCA124BE22E00E8EE4E /* MGMSIPAccount.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A1171B81245676A00D119B5 /* MGMSIPAccount.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CCB124BE22E00E8EE4E /* MGMSIPCall.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A1171BA1245676A00D119B5 /* MGMSIPCall.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CCC124BE22E00E8EE4E /* MGMSIPURL.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A1171BC1245676A00D119B5 /* MGMSIPURL.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CCD124BE22E00E8EE4E /* MGMXML.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A487CAE124BE0C400E8EE4E /* MGMXML.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CCE124BE22E00E8EE4E /* MGMXMLAddons.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A487C93124BE0AB00E8EE4E /* MGMXMLAddons.h */; };
2A487CCF124BE22E00E8EE4E /* MGMXMLDocument.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A487C95124BE0AB00E8EE4E /* MGMXMLDocument.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CD0124BE22E00E8EE4E /* MGMXMLDTD.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A487C97124BE0AB00E8EE4E /* MGMXMLDTD.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CD1124BE22E00E8EE4E /* MGMXMLDTDNode.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A487C99124BE0AB00E8EE4E /* MGMXMLDTDNode.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CD2124BE22E00E8EE4E /* MGMXMLElement.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A487C9B124BE0AB00E8EE4E /* MGMXMLElement.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CD3124BE22E00E8EE4E /* MGMXMLNode.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A487C9D124BE0AB00E8EE4E /* MGMXMLNode.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CD4124BE22E00E8EE4E /* MGMXMLNodeOptions.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A487C9F124BE0AB00E8EE4E /* MGMXMLNodeOptions.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487CD5124BE22E00E8EE4E /* VoiceBase.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A1171BE1245676A00D119B5 /* VoiceBase.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A487D0D124BE40700E8EE4E /* libxml2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 2A487CF0124BE3E600E8EE4E /* libxml2.dylib */; };
2A487D0F124BE41B00E8EE4E /* libxml2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 2A487D0E124BE41B00E8EE4E /* libxml2.dylib */; };
2A77133C124C4CE200D68042 /* MGMSound.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A77133A124C4CE200D68042 /* MGMSound.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A77133C124C4CE200D68042 /* MGMSound.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 2A77133A124C4CE200D68042 /* MGMSound.h */; settings = {ATTRIBUTES = (Public, ); }; };
2A77133D124C4CE200D68042 /* MGMSound.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A77133B124C4CE200D68042 /* MGMSound.m */; };
2A771340124C4D2800D68042 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2A77133F124C4D2800D68042 /* AudioToolbox.framework */; };
2A771344124C4F9A00D68042 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2A771343124C4F9A00D68042 /* AVFoundation.framework */; };
@ -110,6 +110,41 @@
8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
2AAFDB9C12569EE200475472 /* Copy Headers */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/usr/local/include/VoiceBase";
dstSubfolderSpec = 0;
files = (
2A487CC1124BE22E00E8EE4E /* MGMAddressBook.h in Copy Headers */,
2A487CC2124BE22E00E8EE4E /* MGMContacts.h in Copy Headers */,
2A487CC3124BE22E00E8EE4E /* MGMContactsProtocol.h in Copy Headers */,
2A487CC4124BE22E00E8EE4E /* MGMGoogleContacts.h in Copy Headers */,
2A487CC5124BE22E00E8EE4E /* MGMAddons.h in Copy Headers */,
2A487CC6124BE22E00E8EE4E /* MGMInbox.h in Copy Headers */,
2A487CC7124BE22E00E8EE4E /* MGMInstance.h in Copy Headers */,
2A487CC8124BE22E00E8EE4E /* MGMThemeManager.h in Copy Headers */,
2A487CCD124BE22E00E8EE4E /* MGMXML.h in Copy Headers */,
2A487CCE124BE22E00E8EE4E /* MGMXMLAddons.h in Copy Headers */,
2A487CCF124BE22E00E8EE4E /* MGMXMLDocument.h in Copy Headers */,
2A487CD0124BE22E00E8EE4E /* MGMXMLDTD.h in Copy Headers */,
2A487CD1124BE22E00E8EE4E /* MGMXMLDTDNode.h in Copy Headers */,
2A487CD2124BE22E00E8EE4E /* MGMXMLElement.h in Copy Headers */,
2A487CD3124BE22E00E8EE4E /* MGMXMLNode.h in Copy Headers */,
2A487CD4124BE22E00E8EE4E /* MGMXMLNodeOptions.h in Copy Headers */,
2A487CC9124BE22E00E8EE4E /* MGMSIP.h in Copy Headers */,
2A487CCA124BE22E00E8EE4E /* MGMSIPAccount.h in Copy Headers */,
2A487CCB124BE22E00E8EE4E /* MGMSIPCall.h in Copy Headers */,
2A487CCC124BE22E00E8EE4E /* MGMSIPURL.h in Copy Headers */,
2A487CD5124BE22E00E8EE4E /* VoiceBase.h in Copy Headers */,
2A77133C124C4CE200D68042 /* MGMSound.h in Copy Headers */,
);
name = "Copy Headers";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
0867D6A5FE840307C02AAC07 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
@ -413,35 +448,6 @@
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
2AE6EE4F1249DA0B0006B5AC /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
2A487CC1124BE22E00E8EE4E /* MGMAddressBook.h in Headers */,
2A487CC2124BE22E00E8EE4E /* MGMContacts.h in Headers */,
2A487CC3124BE22E00E8EE4E /* MGMContactsProtocol.h in Headers */,
2A487CC4124BE22E00E8EE4E /* MGMGoogleContacts.h in Headers */,
2A487CC5124BE22E00E8EE4E /* MGMAddons.h in Headers */,
2A487CC6124BE22E00E8EE4E /* MGMInbox.h in Headers */,
2A487CC7124BE22E00E8EE4E /* MGMInstance.h in Headers */,
2A487CC8124BE22E00E8EE4E /* MGMThemeManager.h in Headers */,
2A487CCD124BE22E00E8EE4E /* MGMXML.h in Headers */,
2A487CCE124BE22E00E8EE4E /* MGMXMLAddons.h in Headers */,
2A487CCF124BE22E00E8EE4E /* MGMXMLDocument.h in Headers */,
2A487CD0124BE22E00E8EE4E /* MGMXMLDTD.h in Headers */,
2A487CD1124BE22E00E8EE4E /* MGMXMLDTDNode.h in Headers */,
2A487CD2124BE22E00E8EE4E /* MGMXMLElement.h in Headers */,
2A487CD3124BE22E00E8EE4E /* MGMXMLNode.h in Headers */,
2A487CD4124BE22E00E8EE4E /* MGMXMLNodeOptions.h in Headers */,
2A487CC9124BE22E00E8EE4E /* MGMSIP.h in Headers */,
2A487CCA124BE22E00E8EE4E /* MGMSIPAccount.h in Headers */,
2A487CCB124BE22E00E8EE4E /* MGMSIPCall.h in Headers */,
2A487CCC124BE22E00E8EE4E /* MGMSIPURL.h in Headers */,
2A487CD5124BE22E00E8EE4E /* VoiceBase.h in Headers */,
2A77133C124C4CE200D68042 /* MGMSound.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
8DC2EF500486A6940098B216 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
@ -478,7 +484,7 @@
isa = PBXNativeTarget;
buildConfigurationList = 2AE6EE611249DA770006B5AC /* Build configuration list for PBXNativeTarget "VoiceBase Touch" */;
buildPhases = (
2AE6EE4F1249DA0B0006B5AC /* Headers */,
2AAFDB9C12569EE200475472 /* Copy Headers */,
2AE6EE501249DA0B0006B5AC /* Sources */,
2AE6EE511249DA0B0006B5AC /* Frameworks */,
);
@ -1000,7 +1006,9 @@
"-all_load",
);
PREBINDING = NO;
PRIVATE_HEADERS_FOLDER_PATH = /usr/local/include/VoiceBase;
PRODUCT_NAME = VoiceBase;
PUBLIC_HEADERS_FOLDER_PATH = /usr/local/include/VoiceBase;
SDKROOT = iphoneos4.0;
};
name = "Release SIP";

10063
VoiceMob.ai

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 103 KiB

View File

@ -28,7 +28,6 @@
2A1E9B0F124DA4CB00D3BEAE /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2A1E9B0E124DA4CB00D3BEAE /* AudioToolbox.framework */; };
2A1E9B13124DA4D700D3BEAE /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2A1E9B12124DA4D700D3BEAE /* CoreAudio.framework */; };
2A1E9B45124DA63C00D3BEAE /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2A1E9B44124DA63C00D3BEAE /* CFNetwork.framework */; };
2A1E9BA6124DB1AE00D3BEAE /* VoiceMob.png in Resources */ = {isa = PBXBuildFile; fileRef = 2A1E9BA5124DB1AE00D3BEAE /* VoiceMob.png */; };
2A316C3412529555009998B6 /* MGMSIPUser.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A316C3212529555009998B6 /* MGMSIPUser.m */; };
2A316C3712529567009998B6 /* MGMVoiceUser.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A316C3612529567009998B6 /* MGMVoiceUser.m */; };
2A316C49125296A5009998B6 /* SIPUser_iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2A316C46125296A5009998B6 /* SIPUser_iPhone.xib */; };
@ -51,6 +50,14 @@
2A906BFD1255231F0008461E /* VoiceSMS_iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2A906BFC1255231F0008461E /* VoiceSMS_iPhone.xib */; };
2A906BFF1255232E0008461E /* VoiceInbox_iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2A906BFE1255232E0008461E /* VoiceInbox_iPhone.xib */; };
2A906CBA12554DA40008461E /* MGMInboxMessageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A906CB912554DA40008461E /* MGMInboxMessageView.m */; };
2A98E8111256324400D37C0B /* MGMSMSTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A98E8101256324400D37C0B /* MGMSMSTextView.m */; };
2A98EAF412567FAF00D37C0B /* MGMPath.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A98EAF312567FAF00D37C0B /* MGMPath.m */; };
2A98EBF81256903700D37C0B /* MGMSMSBottomView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A98EBF71256903700D37C0B /* MGMSMSBottomView.m */; };
2AAFDBFA1256A63300475472 /* Icon-Small.png in Resources */ = {isa = PBXBuildFile; fileRef = 2AAFDBF61256A63300475472 /* Icon-Small.png */; };
2AAFDBFB1256A63300475472 /* Icon-Small@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 2AAFDBF71256A63300475472 /* Icon-Small@2x.png */; };
2AAFDBFC1256A63300475472 /* icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 2AAFDBF81256A63300475472 /* icon.png */; };
2AAFDBFD1256A63300475472 /* icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 2AAFDBF91256A63300475472 /* icon@2x.png */; };
2AAFDC051256ABF600475472 /* MGMGradientButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AAFDC041256ABF600475472 /* MGMGradientButton.m */; };
2ABD37AE1250D448004AAE00 /* AccountController_iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2ABD37AD1250D448004AAE00 /* AccountController_iPhone.xib */; };
2ABD380412513B26004AAE00 /* MGMAccountController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2ABD380312513B26004AAE00 /* MGMAccountController.m */; };
/* End PBXBuildFile section */
@ -107,7 +114,6 @@
2A1E9B0E124DA4CB00D3BEAE /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
2A1E9B12124DA4D700D3BEAE /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; };
2A1E9B44124DA63C00D3BEAE /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; };
2A1E9BA5124DB1AE00D3BEAE /* VoiceMob.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = VoiceMob.png; sourceTree = SOURCE_ROOT; };
2A316C3112529555009998B6 /* MGMSIPUser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGMSIPUser.h; sourceTree = "<group>"; };
2A316C3212529555009998B6 /* MGMSIPUser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGMSIPUser.m; sourceTree = "<group>"; };
2A316C3512529567009998B6 /* MGMVoiceUser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGMVoiceUser.h; sourceTree = "<group>"; };
@ -142,6 +148,18 @@
2A906BFE1255232E0008461E /* VoiceInbox_iPhone.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = VoiceInbox_iPhone.xib; sourceTree = "<group>"; };
2A906CB812554DA40008461E /* MGMInboxMessageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGMInboxMessageView.h; sourceTree = "<group>"; };
2A906CB912554DA40008461E /* MGMInboxMessageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGMInboxMessageView.m; sourceTree = "<group>"; };
2A98E80F1256324400D37C0B /* MGMSMSTextView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGMSMSTextView.h; sourceTree = "<group>"; };
2A98E8101256324400D37C0B /* MGMSMSTextView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGMSMSTextView.m; sourceTree = "<group>"; };
2A98EAF212567FAF00D37C0B /* MGMPath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGMPath.h; sourceTree = "<group>"; };
2A98EAF312567FAF00D37C0B /* MGMPath.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGMPath.m; sourceTree = "<group>"; };
2A98EBF61256903700D37C0B /* MGMSMSBottomView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGMSMSBottomView.h; sourceTree = "<group>"; };
2A98EBF71256903700D37C0B /* MGMSMSBottomView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGMSMSBottomView.m; sourceTree = "<group>"; };
2AAFDBF61256A63300475472 /* Icon-Small.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-Small.png"; sourceTree = "<group>"; };
2AAFDBF71256A63300475472 /* Icon-Small@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-Small@2x.png"; sourceTree = "<group>"; };
2AAFDBF81256A63300475472 /* icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon.png; sourceTree = "<group>"; };
2AAFDBF91256A63300475472 /* icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon@2x.png"; sourceTree = "<group>"; };
2AAFDC031256ABF600475472 /* MGMGradientButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGMGradientButton.h; sourceTree = "<group>"; };
2AAFDC041256ABF600475472 /* MGMGradientButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGMGradientButton.m; sourceTree = "<group>"; };
2ABD37AD1250D448004AAE00 /* AccountController_iPhone.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AccountController_iPhone.xib; sourceTree = "<group>"; };
2ABD380212513B25004AAE00 /* MGMAccountController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGMAccountController.h; sourceTree = "<group>"; };
2ABD380312513B26004AAE00 /* MGMAccountController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGMAccountController.m; sourceTree = "<group>"; };
@ -231,6 +249,8 @@
2ABD380312513B26004AAE00 /* MGMAccountController.m */,
2A354CDA1251830F00454A75 /* MGMAccounts.h */,
2A354CDB1251830F00454A75 /* MGMAccounts.m */,
2A98EAF212567FAF00D37C0B /* MGMPath.h */,
2A98EAF312567FAF00D37C0B /* MGMPath.m */,
2A316C3012529555009998B6 /* SIP */,
2A316C3312529555009998B6 /* Voice */,
2A316DE41252C8BA009998B6 /* Views */,
@ -242,7 +262,10 @@
2A1E97C0124D22DA00D3BEAE /* Resources */ = {
isa = PBXGroup;
children = (
2A1E9BA5124DB1AE00D3BEAE /* VoiceMob.png */,
2AAFDBF61256A63300475472 /* Icon-Small.png */,
2AAFDBF71256A63300475472 /* Icon-Small@2x.png */,
2AAFDBF81256A63300475472 /* icon.png */,
2AAFDBF91256A63300475472 /* icon@2x.png */,
2A906A031254D4BB0008461E /* blankicon.png */,
2A1E9A0E124D827B00D3BEAE /* VoiceMob Setup.png */,
2A1E97C1124D22DA00D3BEAE /* Info.plist */,
@ -328,6 +351,12 @@
2A90683F125436120008461E /* MGMContactView.m */,
2A906CB812554DA40008461E /* MGMInboxMessageView.h */,
2A906CB912554DA40008461E /* MGMInboxMessageView.m */,
2A98EBF61256903700D37C0B /* MGMSMSBottomView.h */,
2A98EBF71256903700D37C0B /* MGMSMSBottomView.m */,
2A98E80F1256324400D37C0B /* MGMSMSTextView.h */,
2A98E8101256324400D37C0B /* MGMSMSTextView.m */,
2AAFDC031256ABF600475472 /* MGMGradientButton.h */,
2AAFDC041256ABF600475472 /* MGMGradientButton.m */,
);
path = Views;
sourceTree = "<group>";
@ -404,7 +433,6 @@
2A1E99A2124D70A500D3BEAE /* Radio.png in Resources */,
2A1E99A3124D70A500D3BEAE /* RadioSelected.png in Resources */,
2A1E9A0F124D827B00D3BEAE /* VoiceMob Setup.png in Resources */,
2A1E9BA6124DB1AE00D3BEAE /* VoiceMob.png in Resources */,
2ABD37AE1250D448004AAE00 /* AccountController_iPhone.xib in Resources */,
2A354CD81251820C00454A75 /* Accounts_iPhone.xib in Resources */,
2A316C49125296A5009998B6 /* SIPUser_iPhone.xib in Resources */,
@ -416,6 +444,10 @@
2A906A041254D4BB0008461E /* blankicon.png in Resources */,
2A906BFD1255231F0008461E /* VoiceSMS_iPhone.xib in Resources */,
2A906BFF1255232E0008461E /* VoiceInbox_iPhone.xib in Resources */,
2AAFDBFA1256A63300475472 /* Icon-Small.png in Resources */,
2AAFDBFB1256A63300475472 /* Icon-Small@2x.png in Resources */,
2AAFDBFC1256A63300475472 /* icon.png in Resources */,
2AAFDBFD1256A63300475472 /* icon@2x.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -443,6 +475,10 @@
2A906BEF125522800008461E /* MGMVoiceSMS.m in Sources */,
2A906BF6125522D10008461E /* MGMVoiceInbox.m in Sources */,
2A906CBA12554DA40008461E /* MGMInboxMessageView.m in Sources */,
2A98E8111256324400D37C0B /* MGMSMSTextView.m in Sources */,
2A98EAF412567FAF00D37C0B /* MGMPath.m in Sources */,
2A98EBF81256903700D37C0B /* MGMSMSBottomView.m in Sources */,
2AAFDC051256ABF600475472 /* MGMGradientButton.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};