diff --git a/Classes/BuschJaegerApp.xib b/Classes/BuschJaegerApp.xib
index 89d7ba768..8eb1c26c3 100644
--- a/Classes/BuschJaegerApp.xib
+++ b/Classes/BuschJaegerApp.xib
@@ -47,8 +47,8 @@
NO
NO
-
IBCocoaTouchFramework
+ YES
YES
@@ -116,7 +116,7 @@
- 28
+ 31
@@ -353,6 +378,25 @@
./Classes/BuschJaegerCallView.h
+
+ BuschJaegerHistoryDetailsView
+ UIViewController
+
+ tableViewController
+ UITableViewController
+
+
+ tableViewController
+
+ tableViewController
+ UITableViewController
+
+
+
+ IBProjectSource
+ ./Classes/BuschJaegerHistoryDetailsView.h
+
+
BuschJaegerHistoryTableViewController
UITableViewController
@@ -378,6 +422,7 @@
UIView
BuschJaegerHistoryTableViewController
+ UIView
@@ -388,6 +433,10 @@
tableController
BuschJaegerHistoryTableViewController
+
+ waitView
+ UIView
+
IBProjectSource
@@ -399,6 +448,7 @@
UIViewController
BuschJaegerCallView
+ BuschJaegerHistoryDetailsView
BuschJaegerHistoryView
UINavigationController
BuschJaegerSettingsView
@@ -409,6 +459,10 @@
callView
BuschJaegerCallView
+
+ historyDetailsView
+ BuschJaegerHistoryDetailsView
+
historyView
BuschJaegerHistoryView
@@ -500,7 +554,7 @@
UIButton
UIButton
- BuschJaegerStationViewController
+ BuschJaegerStationTableViewController
@@ -513,7 +567,7 @@
tableController
- BuschJaegerStationViewController
+ BuschJaegerStationTableViewController
diff --git a/Classes/BuschJaegerSettingsView.m b/Classes/BuschJaegerSettingsView.m
index de546dfc5..9c2473f69 100644
--- a/Classes/BuschJaegerSettingsView.m
+++ b/Classes/BuschJaegerSettingsView.m
@@ -74,8 +74,8 @@
UIColor* col1 = BUSCHJAEGER_NORMAL_COLOR;
UIColor* col2 = BUSCHJAEGER_NORMAL_COLOR2;
- [BuschJaegerUtils createGradientForView:scanButton withTopColor:col1 bottomColor:col2];
- [BuschJaegerUtils createGradientForView:backButton withTopColor:col1 bottomColor:col2];
+ [BuschJaegerUtils createGradientForView:scanButton withTopColor:col1 bottomColor:col2 cornerRadius:BUSCHJAEGER_DEFAULT_CORNER_RADIUS];
+ [BuschJaegerUtils createGradientForView:backButton withTopColor:col1 bottomColor:col2 cornerRadius:BUSCHJAEGER_DEFAULT_CORNER_RADIUS];
}
[waitView setHidden:TRUE];
}
diff --git a/Classes/BuschJaegerSettingsView.xib b/Classes/BuschJaegerSettingsView.xib
index 081a88c51..40d6c86a9 100644
--- a/Classes/BuschJaegerSettingsView.xib
+++ b/Classes/BuschJaegerSettingsView.xib
@@ -136,7 +136,7 @@
274
- {280, 60}
+ {280, 40}
@@ -158,9 +158,10 @@
274
- {280, 60}
+ {280, 40}
+
_NS:9
NO
@@ -174,7 +175,7 @@
- {{20, 380}, {280, 60}}
+ {{20, 410}, {280, 40}}
@@ -208,7 +209,7 @@
_NS:9
3
- MSAwLjQ1AA
+ MCAwLjQ1AA
IBCocoaTouchFramework
diff --git a/Classes/BuschJaegerStationTableViewController.m b/Classes/BuschJaegerStationTableViewController.m
index 8d45550b6..4783920c8 100644
--- a/Classes/BuschJaegerStationTableViewController.m
+++ b/Classes/BuschJaegerStationTableViewController.m
@@ -27,6 +27,17 @@
@synthesize stations;
+
+#pragma mark - Lifecycle Functions
+
+- (void)dealloc {
+ [stations release];
+ [super dealloc];
+}
+
+
+#pragma mark - Property Functions
+
- (void)setStations:(NSArray *)astations {
if ([astations isEqualToArray:stations]) {
return;
diff --git a/Classes/BuschJaegerUtils.h b/Classes/BuschJaegerUtils.h
index e79b1c410..ef25f6929 100644
--- a/Classes/BuschJaegerUtils.h
+++ b/Classes/BuschJaegerUtils.h
@@ -28,10 +28,13 @@
#define BUSCHJAEGER_GREEN_COLOR [UIColor colorWithRed:91.0/255 green:161.0/255 blue:89.0/255 alpha:1.0]
#define BUSCHJAEGER_GREEN_COLOR2 [UIColor colorWithRed:25.0/255 green:54.0/255 blue:24.0/255 alpha:1.0]
+#define BUSCHJAEGER_DEFAULT_CORNER_RADIUS 5
@interface BuschJaegerUtils : NSObject
+ (void)createGradientForView:(UIView*)view withTopColor:(UIColor*)topColor bottomColor:(UIColor*)bottomColor;
+ (void)createGradientForButton:(UIButton*)button withTopColor:(UIColor*)topColor bottomColor:(UIColor*)bottomColor;
++ (void)createGradientForView:(UIView*)view withTopColor:(UIColor*)topColor bottomColor:(UIColor*)bottomColor cornerRadius:(int)cornerRadius;
++ (void)createGradientForButton:(UIButton*)button withTopColor:(UIColor*)topColor bottomColor:(UIColor*)bottomColor cornerRadius:(int)cornerRadius;
@end
diff --git a/Classes/BuschJaegerUtils.m b/Classes/BuschJaegerUtils.m
index 8d80c75b6..f968ea450 100644
--- a/Classes/BuschJaegerUtils.m
+++ b/Classes/BuschJaegerUtils.m
@@ -25,15 +25,25 @@
@implementation BuschJaegerUtils
+ (void)createGradientForView:(UIView*)view withTopColor:(UIColor*)topColor bottomColor:(UIColor*)bottomColor {
+ [BuschJaegerUtils createGradientForView:view withTopColor:topColor bottomColor:bottomColor cornerRadius:0];
+}
+
++ (void)createGradientForButton:(UIButton*)button withTopColor:(UIColor*)topColor bottomColor:(UIColor*)bottomColor {
+ [BuschJaegerUtils createGradientForButton:button withTopColor:topColor bottomColor:bottomColor cornerRadius:0];
+}
+
++ (void)createGradientForView:(UIView*)view withTopColor:(UIColor*)topColor bottomColor:(UIColor*)bottomColor cornerRadius:(int)corner{
CAGradientLayer* gradient = [CAGradientLayer layer];
gradient.frame = view.bounds;
+ gradient.cornerRadius = corner;
gradient.colors = [NSArray arrayWithObjects:(id)topColor.CGColor, (id)bottomColor.CGColor, nil];
[view.layer insertSublayer:gradient atIndex:0];
}
-+ (void)createGradientForButton:(UIButton*)button withTopColor:(UIColor*)topColor bottomColor:(UIColor*)bottomColor {
++ (void)createGradientForButton:(UIButton*)button withTopColor:(UIColor*)topColor bottomColor:(UIColor*)bottomColor cornerRadius:(int)corner{
CAGradientLayer* gradient = [CAGradientLayer layer];
gradient.frame = button.bounds;
+ gradient.cornerRadius = corner;
gradient.colors = [NSArray arrayWithObjects:(id)topColor.CGColor, (id)bottomColor.CGColor, nil];
[button.layer insertSublayer:gradient below:button.imageView.layer];
}
diff --git a/Classes/BuschJaegerWelcomeView.m b/Classes/BuschJaegerWelcomeView.m
index 6d2f8aeb6..5bb185cec 100644
--- a/Classes/BuschJaegerWelcomeView.m
+++ b/Classes/BuschJaegerWelcomeView.m
@@ -85,11 +85,12 @@
#pragma mark -
- (IBAction)settingsClick:(id)sender {
- [[BuschJaegerMainView instance].navigationController pushViewController:[BuschJaegerMainView instance].settingsView animated:TRUE];
+ [[BuschJaegerMainView instance].navigationController pushViewController:[BuschJaegerMainView instance].settingsView animated:FALSE];
}
- (IBAction)historyClick:(id)sender {
- [[BuschJaegerMainView instance].navigationController pushViewController:[BuschJaegerMainView instance].historyView animated:TRUE];
+ [[BuschJaegerMainView instance].historyView reload];
+ [[BuschJaegerMainView instance].navigationController pushViewController:[BuschJaegerMainView instance].historyView animated:FALSE];
}
@end
diff --git a/Classes/LinphoneUI/UIHistoryCell.h b/Classes/LinphoneUI/UIHistoryCell.h
index ac940343a..4b41c622a 100644
--- a/Classes/LinphoneUI/UIHistoryCell.h
+++ b/Classes/LinphoneUI/UIHistoryCell.h
@@ -19,6 +19,7 @@
#import
#import "History.h"
+#import "UIRemoteImageView.h"
@interface UIHistoryCell : UITableViewCell {
@private
@@ -27,9 +28,9 @@
@property (nonatomic, retain) History *history;
-@property (nonatomic, retain) UIImageView *iconImage;
-@property (nonatomic, retain) UILabel *stationLabel;
-@property (nonatomic, retain) UILabel *dateLabel;
+@property (nonatomic, retain) IBOutlet UIRemoteImageView *iconImage;
+@property (nonatomic, retain) IBOutlet UILabel *stationLabel;
+@property (nonatomic, retain) IBOutlet UILabel *dateLabel;
- (id)initWithIdentifier:(NSString*)identifier;
diff --git a/Classes/LinphoneUI/UIHistoryCell.m b/Classes/LinphoneUI/UIHistoryCell.m
index 9dddfe277..4489fe4c4 100644
--- a/Classes/LinphoneUI/UIHistoryCell.m
+++ b/Classes/LinphoneUI/UIHistoryCell.m
@@ -27,6 +27,7 @@
@synthesize stationLabel;
@synthesize dateLabel;
+
#pragma mark - Lifecycle Functions
- (id)initWithIdentifier:(NSString*)identifier {
@@ -74,16 +75,23 @@
#pragma mark -
- (void)update {
- NSString *station = @"Unknown";
+ NSString *stationName = @"Unknown";
NSSet *set = [[[LinphoneManager instance].configuration outdoorStations] filteredSetUsingPredicate:[NSPredicate predicateWithFormat:@"ID == %i", history.stationID]];
if([set count] == 1) {
- station = [[set allObjects] objectAtIndex:0];
+ OutdoorStation *station = [[set allObjects] objectAtIndex:0];
+ stationName = station.name;
}
// Station
- [stationLabel setText:station];
+ [stationLabel setText:stationName];
// Date
[dateLabel setText:[dateFormatter stringFromDate:history.date]];
+
+ if([history.images count] > 0) {
+ NSString *image = [history.images objectAtIndex:0];
+ [iconImage setImage:nil];
+ [iconImage loadImage:[[LinphoneManager instance].configuration getImageUrl:BuschJaegerConfigurationRequestType_Local image:image]];
+ }
}
@end
diff --git a/Classes/LinphoneUI/UIHistoryCell.xib b/Classes/LinphoneUI/UIHistoryCell.xib
index 140260f76..da2a4c1eb 100644
--- a/Classes/LinphoneUI/UIHistoryCell.xib
+++ b/Classes/LinphoneUI/UIHistoryCell.xib
@@ -50,7 +50,7 @@
292
- {{45, 10}, {174, 21}}
+ {{45, 10}, {155, 21}}
@@ -60,10 +60,10 @@
7
NO
IBCocoaTouchFramework
- Label
-
- 1
- MCAwIDAAA
+ Station 1
+
+ 3
+ MQA
0
@@ -81,7 +81,7 @@
292
- {{227, 10}, {93, 21}}
+ {{208, 10}, {112, 21}}
@@ -91,8 +91,8 @@
7
NO
IBCocoaTouchFramework
- Label
-
+ 2011 01 01 00:01
+
0
10
@@ -113,14 +113,39 @@
_NS:9
- 1
- MCAxIDAuMTkxOTQ1NDc1NQA
+ 3
+ MCAwAA
IBCocoaTouchFramework
-
+
+
+
+ dateLabel
+
+
+
+ 9
+
+
+
+ iconImage
+
+
+
+ 10
+
+
+
+ stationLabel
+
+
+
+ 11
+
+
@@ -144,9 +169,9 @@
2
+
-
@@ -171,21 +196,61 @@
+ UIHistoryCell
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
UIResponder
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ UIRemoteImageView
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 8
+ 11
+
+
+
+
+ UIHistoryCell
+ UITableViewCell
+
+ UILabel
+ UIImageView
+ UILabel
+
+
+
+ dateLabel
+ UILabel
+
+
+ iconImage
+ UIImageView
+
+
+ stationLabel
+ UILabel
+
+
+
+ IBProjectSource
+ ./Classes/UIHistoryCell.h
+
+
+
+ UIRemoteImageView
+ UIImageView
+
+ IBProjectSource
+ ./Classes/UIRemoteImageView.h
+
+
+
-
0
IBCocoaTouchFramework
diff --git a/Classes/LinphoneUI/UIHistoryDetailsCell.h b/Classes/LinphoneUI/UIHistoryDetailsCell.h
new file mode 100644
index 000000000..b57e31f14
--- /dev/null
+++ b/Classes/LinphoneUI/UIHistoryDetailsCell.h
@@ -0,0 +1,33 @@
+/* UIHistoryCell.h
+ *
+ * Copyright (C) 2012 Belledonne Comunications, Grenoble, France
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#import
+#import "History.h"
+#import "UIRemoteImageView.h"
+
+@interface UIHistoryDetailsCell : UITableViewCell {
+}
+
+@property (nonatomic, retain) NSString *image;
+
+@property (nonatomic, retain) IBOutlet UIRemoteImageView *imageView;
+
+- (id)initWithIdentifier:(NSString*)identifier;
+
+@end
diff --git a/Classes/LinphoneUI/UIHistoryDetailsCell.m b/Classes/LinphoneUI/UIHistoryDetailsCell.m
new file mode 100644
index 000000000..cdb9960e6
--- /dev/null
+++ b/Classes/LinphoneUI/UIHistoryDetailsCell.m
@@ -0,0 +1,71 @@
+/* UIHistoryCell.m
+ *
+ * Copyright (C) 2012 Belledonne Comunications, Grenoble, France
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#import "UIHistoryDetailsCell.h"
+#import "LinphoneManager.h"
+
+@implementation UIHistoryDetailsCell
+
+@synthesize image;
+@synthesize imageView;
+
+#pragma mark - Lifecycle Functions
+
+- (id)initWithIdentifier:(NSString*)identifier {
+ if ((self = [super initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier]) != nil) {
+ NSArray *arrayOfViews = [[NSBundle mainBundle] loadNibNamed:@"UIHistoryDetailsCell"
+ owner:self
+ options:nil];
+
+ if ([arrayOfViews count] >= 1) {
+ [self addSubview:[[arrayOfViews objectAtIndex:0] retain]];
+ }
+ }
+ return self;
+}
+
+- (void)dealloc {
+ [image release];
+ [imageView release];
+ [super dealloc];
+}
+
+
+#pragma mark - Property Functions
+
+- (void)setImage:(NSString *)aimage {
+ if(aimage == image) {
+ return;
+ }
+ [image release];
+ image = [aimage retain];
+ [self update];
+}
+
+
+#pragma mark -
+
+- (void)update {
+ if(image) {
+ [imageView setImage:nil];
+ [imageView loadImage:[[LinphoneManager instance].configuration getImageUrl:BuschJaegerConfigurationRequestType_Local image:image]];
+ }
+}
+
+@end
diff --git a/Classes/LinphoneUI/UIHistoryDetailsCell.xib b/Classes/LinphoneUI/UIHistoryDetailsCell.xib
new file mode 100644
index 000000000..3f2bc9f69
--- /dev/null
+++ b/Classes/LinphoneUI/UIHistoryDetailsCell.xib
@@ -0,0 +1,165 @@
+
+
+
+ 1296
+ 11E53
+ 2549
+ 1138.47
+ 569.00
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ 1498
+
+
+ IBProxyObject
+ IBUIImageView
+ IBUIView
+
+
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+
+ PluginDependencyRecalculationVersion
+
+
+
+
+ IBFilesOwner
+ IBCocoaTouchFramework
+
+
+ IBFirstResponder
+ IBCocoaTouchFramework
+
+
+
+ 292
+
+
+
+ 274
+ {{5, 5}, {310, 100}}
+
+
+
+ _NS:9
+ 1
+ NO
+ IBCocoaTouchFramework
+
+
+ {320, 110}
+
+
+
+ _NS:9
+
+ 3
+ MCAwAA
+
+ IBCocoaTouchFramework
+
+
+
+
+
+
+ imageView
+
+
+
+ 12
+
+
+
+
+
+ 0
+
+
+
+
+
+ -1
+
+
+ File's Owner
+
+
+ -2
+
+
+
+
+ 2
+
+
+
+
+
+
+
+ 8
+
+
+ Image
+
+
+
+
+ UIHistoryDetailsCell
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ UIResponder
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+ UIRemoteImageView
+ com.apple.InterfaceBuilder.IBCocoaTouchPlugin
+
+
+
+
+
+ 12
+
+
+
+
+ UIHistoryDetailsCell
+ UITableViewCell
+
+ imageView
+ UIRemoteImageView
+
+
+ imageView
+
+ imageView
+ UIRemoteImageView
+
+
+
+ IBProjectSource
+ ./Classes/UIHistoryDetailsCell.h
+
+
+
+ UIRemoteImageView
+ UIImageView
+
+ IBProjectSource
+ ./Classes/UIRemoteImageView.h
+
+
+
+
+ 0
+ IBCocoaTouchFramework
+
+ com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
+
+
+ YES
+ 3
+ 1498
+
+
diff --git a/Classes/LinphoneUI/UIRemoteImageView.h b/Classes/LinphoneUI/UIRemoteImageView.h
new file mode 100644
index 000000000..bfc0e46f6
--- /dev/null
+++ b/Classes/LinphoneUI/UIRemoteImageView.h
@@ -0,0 +1,29 @@
+/* UIRemoteImageView.h
+ *
+ * Copyright (C) 2012 Belledonne Comunications, Grenoble, France
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+
+#import
+
+@interface UIRemoteImageView : UIImageView
+
+@property (retain) UIActivityIndicatorView *waitIndicatorView;
+
+
+- (void)loadImage:(NSString*) url;
+@end
diff --git a/Classes/LinphoneUI/UIRemoteImageView.m b/Classes/LinphoneUI/UIRemoteImageView.m
new file mode 100644
index 000000000..e74168140
--- /dev/null
+++ b/Classes/LinphoneUI/UIRemoteImageView.m
@@ -0,0 +1,110 @@
+/* UIRemoteImageView.m
+ *
+ * Copyright (C) 2012 Belledonne Comunications, Grenoble, France
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#import "UIRemoteImageView.h"
+
+@implementation UIRemoteImageView
+
+@synthesize waitIndicatorView;
+
+
+#pragma mark - Lifecycle Functions
+
+- (void)initUIRemoteImageView {
+ waitIndicatorView = [[UIActivityIndicatorView alloc] initWithFrame:self.frame];
+ waitIndicatorView.hidesWhenStopped = TRUE;
+ waitIndicatorView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
+ [self addSubview:waitIndicatorView];
+}
+
+- (id)init {
+ self = [super init];
+ if(self != nil) {
+ [self initUIRemoteImageView];
+ }
+ return self;
+}
+
+- (id)initWithCoder:(NSCoder *)aDecoder {
+ self = [super initWithCoder:aDecoder];
+ if(self != nil) {
+ [self initUIRemoteImageView];
+ }
+ return self;
+}
+
+- (id)initWithFrame:(CGRect)frame {
+ self = [super initWithFrame:frame];
+ if(self != nil) {
+ [self initUIRemoteImageView];
+ }
+ return self;
+}
+
+- (id)initWithImage:(UIImage *)image {
+ self = [super initWithImage:image];
+ if(self != nil) {
+ [self initUIRemoteImageView];
+ }
+ return self;
+}
+
+- (id)initWithImage:(UIImage *)image highlightedImage:(UIImage *)highlightedImage {
+ self = [super initWithImage:image highlightedImage:highlightedImage];
+ if(self != nil) {
+ [self initUIRemoteImageView];
+ }
+ return self;
+}
+
+- (void)dealloc {
+ [waitIndicatorView release];
+
+ [super dealloc];
+}
+
+
+#pragma mark -
+
+- (void)loadImage:(NSString*)url {
+ [waitIndicatorView startAnimating];
+ NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:5];
+ if(request != nil) {
+ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, (unsigned long)NULL), ^(void) {
+ NSURLResponse *response = nil;
+ NSError *error = nil;
+ NSData *data = nil;
+ data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
+ if(data != nil) {
+ UIImage *image = [UIImage imageWithData:data];
+ dispatch_async(dispatch_get_main_queue(), ^{
+ [waitIndicatorView stopAnimating];
+ [self setImage:image];
+ });
+ } else {
+ dispatch_async(dispatch_get_main_queue(), ^{
+ [waitIndicatorView stopAnimating];
+ });
+ }
+ });
+
+ }
+}
+
+@end
diff --git a/Classes/Model/History.m b/Classes/Model/History.m
index b0ff65dbe..38d7b74af 100644
--- a/Classes/Model/History.m
+++ b/Classes/Model/History.m
@@ -44,7 +44,7 @@
History *history;
NSError *error;
NSRegularExpression *regex = [NSRegularExpression
- regularExpressionWithPattern:@"([\\d]+) ([\\d]+ [\\d]+) ([\\d]+) (.)"
+ regularExpressionWithPattern:@"([\\d]+) ([\\d]+ [\\d]+) ([\\d]+) (i|o)"
options:NSRegularExpressionCaseInsensitive
error:&error];
@@ -54,15 +54,14 @@
history.ID = [[line substringWithRange:[result rangeAtIndex:1]] intValue];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
- [dateFormat setDateFormat:@"yyyyMMdd hhmm"];
+ [dateFormat setDateFormat:@"yyyyMMdd HHmm"];
NSString *stringDate = [line substringWithRange:[result rangeAtIndex:2]];
history.date = [dateFormat dateFromString:stringDate];
[dateFormat release];
history.stationID = [[line substringWithRange:[result rangeAtIndex:3]] intValue];
- history.incoming = [[line substringWithRange:[result rangeAtIndex:4]] compare:@"i" options:NSCaseInsensitiveSearch] == 0 ||
- [[line substringWithRange:[result rangeAtIndex:4]] compare:@"1" options:NSCaseInsensitiveSearch] == 0;
+ history.incoming = [[line substringWithRange:[result rangeAtIndex:4]] compare:@"i" options:NSCaseInsensitiveSearch] == 0;
NSRange range = [result rangeAtIndex:0];
range.location += range.length;
@@ -70,7 +69,7 @@
NSArray *array = [[line substringWithRange:range] componentsSeparatedByString:@" "];
history.images = [array filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"length > 0"]];
} else {
- [LinphoneLogger log:LinphoneLoggerWarning format:@"Invalid history line", line];
+ [LinphoneLogger log:LinphoneLoggerWarning format:@"Invalid history line: %@", line];
}
return history;
diff --git a/buschjaeger-Info.plist b/buschjaeger-Info.plist
index 05a3e8766..4e9d3e3bb 100644
--- a/buschjaeger-Info.plist
+++ b/buschjaeger-Info.plist
@@ -66,7 +66,7 @@
UIRequiresPersistentWiFi
- UIStatusBarHidden
-
+ UIStatusBarStyle
+ UIStatusBarStyleBlackOpaque
diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj
index 23faabf9c..669d4f6bf 100755
--- a/linphone.xcodeproj/project.pbxproj
+++ b/linphone.xcodeproj/project.pbxproj
@@ -254,6 +254,16 @@
D3F7998215BD32370018C273 /* TPMultiLayoutViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F7998015BD32370018C273 /* TPMultiLayoutViewController.m */; };
D3F9A9EE15AF277E0045320F /* UACellBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F9A9ED15AF277D0045320F /* UACellBackgroundView.m */; };
D3F9A9EF15AF277E0045320F /* UACellBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F9A9ED15AF277D0045320F /* UACellBackgroundView.m */; };
+ D3FE9F3E15E789A30024F3E4 /* UIRemoteImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3FE9F3D15E789A30024F3E4 /* UIRemoteImageView.m */; };
+ D3FE9F3F15E789A30024F3E4 /* UIRemoteImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3FE9F3D15E789A30024F3E4 /* UIRemoteImageView.m */; };
+ D3FE9F4415E78D720024F3E4 /* BuschJaegerHistoryDetailsView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3FE9F4215E78D700024F3E4 /* BuschJaegerHistoryDetailsView.m */; };
+ D3FE9F4515E78D720024F3E4 /* BuschJaegerHistoryDetailsView.m in Sources */ = {isa = PBXBuildFile; fileRef = D3FE9F4215E78D700024F3E4 /* BuschJaegerHistoryDetailsView.m */; };
+ D3FE9F4615E78D720024F3E4 /* BuschJaegerHistoryDetailsView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D3FE9F4315E78D710024F3E4 /* BuschJaegerHistoryDetailsView.xib */; };
+ D3FE9F4715E78D720024F3E4 /* BuschJaegerHistoryDetailsView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D3FE9F4315E78D710024F3E4 /* BuschJaegerHistoryDetailsView.xib */; };
+ D3FE9F4B15E790D80024F3E4 /* UIHistoryDetailsCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D3FE9F4915E790D80024F3E4 /* UIHistoryDetailsCell.m */; };
+ D3FE9F4C15E790D80024F3E4 /* UIHistoryDetailsCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D3FE9F4915E790D80024F3E4 /* UIHistoryDetailsCell.m */; };
+ D3FE9F4D15E790D80024F3E4 /* UIHistoryDetailsCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D3FE9F4A15E790D80024F3E4 /* UIHistoryDetailsCell.xib */; };
+ D3FE9F4E15E790D80024F3E4 /* UIHistoryDetailsCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D3FE9F4A15E790D80024F3E4 /* UIHistoryDetailsCell.xib */; };
F476004B147AAF2800FFF19B /* liblinphone.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2211DB911475562600DEE054 /* liblinphone.a */; };
F476004C147AAF4600FFF19B /* libmediastreamer.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2211DB8F147555C800DEE054 /* libmediastreamer.a */; };
/* End PBXBuildFile section */
@@ -658,6 +668,14 @@
D3F7998015BD32370018C273 /* TPMultiLayoutViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TPMultiLayoutViewController.m; path = Utils/TPMultiLayoutViewController/TPMultiLayoutViewController.m; sourceTree = ""; };
D3F9A9EC15AF277D0045320F /* UACellBackgroundView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UACellBackgroundView.h; path = Utils/UACellBackgroundView/UACellBackgroundView.h; sourceTree = ""; };
D3F9A9ED15AF277D0045320F /* UACellBackgroundView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = UACellBackgroundView.m; path = Utils/UACellBackgroundView/UACellBackgroundView.m; sourceTree = ""; };
+ D3FE9F3C15E789A30024F3E4 /* UIRemoteImageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIRemoteImageView.h; sourceTree = ""; };
+ D3FE9F3D15E789A30024F3E4 /* UIRemoteImageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIRemoteImageView.m; sourceTree = ""; };
+ D3FE9F4115E78D700024F3E4 /* BuschJaegerHistoryDetailsView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BuschJaegerHistoryDetailsView.h; sourceTree = ""; };
+ D3FE9F4215E78D700024F3E4 /* BuschJaegerHistoryDetailsView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BuschJaegerHistoryDetailsView.m; sourceTree = ""; };
+ D3FE9F4315E78D710024F3E4 /* BuschJaegerHistoryDetailsView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = BuschJaegerHistoryDetailsView.xib; sourceTree = ""; };
+ D3FE9F4815E790D70024F3E4 /* UIHistoryDetailsCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIHistoryDetailsCell.h; sourceTree = ""; };
+ D3FE9F4915E790D80024F3E4 /* UIHistoryDetailsCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIHistoryDetailsCell.m; sourceTree = ""; };
+ D3FE9F4A15E790D80024F3E4 /* UIHistoryDetailsCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = UIHistoryDetailsCell.xib; sourceTree = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -776,6 +794,9 @@
D37CD30015E21E320028869A /* BuschJaegerCallView.xib */,
D37CD30115E21E320028869A /* BuschJaegerConfiguration.h */,
D37CD30215E21E320028869A /* BuschJaegerConfiguration.m */,
+ D3FE9F4115E78D700024F3E4 /* BuschJaegerHistoryDetailsView.h */,
+ D3FE9F4215E78D700024F3E4 /* BuschJaegerHistoryDetailsView.m */,
+ D3FE9F4315E78D710024F3E4 /* BuschJaegerHistoryDetailsView.xib */,
D384468315E6577600DF89DF /* BuschJaegerHistoryTableViewController.h */,
D384468415E6577700DF89DF /* BuschJaegerHistoryTableViewController.m */,
D384467515E64D7400DF89DF /* BuschJaegerHistoryView.h */,
@@ -1029,6 +1050,9 @@
D384467C15E656D600DF89DF /* UIHistoryCell.h */,
D384467D15E656D600DF89DF /* UIHistoryCell.m */,
D384468015E656ED00DF89DF /* UIHistoryCell.xib */,
+ D3FE9F4815E790D70024F3E4 /* UIHistoryDetailsCell.h */,
+ D3FE9F4915E790D80024F3E4 /* UIHistoryDetailsCell.m */,
+ D3FE9F4A15E790D80024F3E4 /* UIHistoryDetailsCell.xib */,
D37CD31F15E21E520028869A /* UILightButton.h */,
D37CD32015E21E520028869A /* UILightButton.m */,
D3E84F3C15B018A600420DAC /* UILinphone.h */,
@@ -1039,6 +1063,8 @@
2214EBF212F86360002A5394 /* UIMicroButton.m */,
D36FB2D31589EF7C0036F6F2 /* UIPauseButton.h */,
D36FB2D41589EF7C0036F6F2 /* UIPauseButton.m */,
+ D3FE9F3C15E789A30024F3E4 /* UIRemoteImageView.h */,
+ D3FE9F3D15E789A30024F3E4 /* UIRemoteImageView.m */,
22968A5D12F875C600588287 /* UISpeakerButton.h */,
22968A5E12F875C600588287 /* UISpeakerButton.m */,
D37CD39815E244D10028869A /* UIStationCell.h */,
@@ -1474,6 +1500,8 @@
D384467315E64CD600DF89DF /* bj_history.png in Resources */,
D384467A15E64D7400DF89DF /* BuschJaegerHistoryView.xib in Resources */,
D384468115E656ED00DF89DF /* UIHistoryCell.xib in Resources */,
+ D3FE9F4615E78D720024F3E4 /* BuschJaegerHistoryDetailsView.xib in Resources */,
+ D3FE9F4D15E790D80024F3E4 /* UIHistoryDetailsCell.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1518,6 +1546,8 @@
D384467415E64CD600DF89DF /* bj_history.png in Resources */,
D384467B15E64D7400DF89DF /* BuschJaegerHistoryView.xib in Resources */,
D384468215E656ED00DF89DF /* UIHistoryCell.xib in Resources */,
+ D3FE9F4715E78D720024F3E4 /* BuschJaegerHistoryDetailsView.xib in Resources */,
+ D3FE9F4E15E790D80024F3E4 /* UIHistoryDetailsCell.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1600,6 +1630,9 @@
D384467E15E656D600DF89DF /* UIHistoryCell.m in Sources */,
D384468515E6577700DF89DF /* BuschJaegerHistoryTableViewController.m in Sources */,
D384468915E65CFE00DF89DF /* History.m in Sources */,
+ D3FE9F3E15E789A30024F3E4 /* UIRemoteImageView.m in Sources */,
+ D3FE9F4415E78D720024F3E4 /* BuschJaegerHistoryDetailsView.m in Sources */,
+ D3FE9F4B15E790D80024F3E4 /* UIHistoryDetailsCell.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1650,6 +1683,9 @@
D384467F15E656D600DF89DF /* UIHistoryCell.m in Sources */,
D384468615E6577700DF89DF /* BuschJaegerHistoryTableViewController.m in Sources */,
D384468A15E65CFE00DF89DF /* History.m in Sources */,
+ D3FE9F3F15E789A30024F3E4 /* UIRemoteImageView.m in Sources */,
+ D3FE9F4515E78D720024F3E4 /* BuschJaegerHistoryDetailsView.m in Sources */,
+ D3FE9F4C15E790D80024F3E4 /* UIHistoryDetailsCell.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
diff --git a/linphonerc-factory~ipad b/linphonerc-factory~ipad
index 9b73acd34..e7171b115 100644
--- a/linphonerc-factory~ipad
+++ b/linphonerc-factory~ipad
@@ -13,6 +13,8 @@ default_proxy=-1
register_only_when_network_is_up=1
auto_net_state_mon=0
keepalive_period=30000
+media_encryption=none
+incoming_calls_early_media=1
[rtp]
audio_jitt_comp=60
@@ -28,11 +30,11 @@ dtmf_player_amp=0.007
[misc]
history_max_size=30
-max_calls=3
+max_calls=1
[video]
display=1
-capture=1
+capture=0
show_local=0
enabled=1
size=vga