mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-01-17 11:08:06 +00:00
Merge branch 'dev_widget' into dev_group_chat
This commit is contained in:
commit
4bd43161cf
23 changed files with 1500 additions and 43 deletions
|
|
@ -40,6 +40,7 @@
|
|||
|
||||
@property(nonatomic) LinphoneChatRoom *chatRoom;
|
||||
@property(nonatomic) LinphoneChatRoomCbs *chatRoomCbs;
|
||||
@property(nonatomic) Boolean markAsRead;
|
||||
|
||||
@property(weak, nonatomic) IBOutlet UIIconButton *backButton;
|
||||
@property(nonatomic, strong) IBOutlet ChatConversationTableView *tableController;
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
|
||||
_markAsRead = TRUE;
|
||||
// if we use fragments, remove back button
|
||||
if (IPAD) {
|
||||
_backButton.hidden = YES;
|
||||
|
|
@ -247,8 +247,10 @@ static UICompositeViewDescription *compositeDescription = nil;
|
|||
}
|
||||
|
||||
- (void)applicationWillEnterForeground:(NSNotification *)notif {
|
||||
if (_chatRoom)
|
||||
if (_chatRoom && _markAsRead)
|
||||
[ChatConversationView markAsRead:_chatRoom];
|
||||
|
||||
_markAsRead = TRUE;
|
||||
}
|
||||
|
||||
- (void)callUpdateEvent:(NSNotification *)notif {
|
||||
|
|
@ -826,6 +828,7 @@ void on_chat_room_chat_message_sent(LinphoneChatRoom *cr, const LinphoneEventLog
|
|||
ChatConversationView *view = (__bridge ChatConversationView *)linphone_chat_room_cbs_get_user_data(linphone_chat_room_get_current_callbacks(cr));
|
||||
[view.tableController addEventEntry:(LinphoneEventLog *)event_log];
|
||||
[view.tableController scrollToBottom:true];
|
||||
[ChatsListTableView saveDataToUserDefaults];
|
||||
|
||||
if (IPAD)
|
||||
[NSNotificationCenter.defaultCenter postNotificationName:kLinphoneMessageReceived object:view];
|
||||
|
|
|
|||
|
|
@ -30,4 +30,5 @@
|
|||
|
||||
- (void)loadData;
|
||||
- (void)markCellAsRead:(LinphoneChatRoom *)chatRoom;
|
||||
+ (void)saveDataToUserDefaults;
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -123,6 +123,55 @@ static int sorted_history_comparison(LinphoneChatRoom *to_insert, LinphoneChatRo
|
|||
}
|
||||
}
|
||||
|
||||
+ (void) saveDataToUserDefaults {
|
||||
NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.belledonne-communications.linphone.widget"];
|
||||
MSList *sorted = nil;
|
||||
const MSList *unsorted = linphone_core_get_chat_rooms(LC);
|
||||
const MSList *iter = unsorted;
|
||||
|
||||
while (iter) {
|
||||
// store last message in user data
|
||||
LinphoneChatRoom *chat_room = iter->data;
|
||||
sorted = bctbx_list_insert_sorted(sorted, chat_room, (bctbx_compare_func)sorted_history_comparison);
|
||||
iter = iter->next;
|
||||
}
|
||||
|
||||
NSMutableArray *addresses = [NSMutableArray array];
|
||||
|
||||
while (sorted) {
|
||||
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
|
||||
LinphoneChatRoom *cr = sorted->data;
|
||||
const LinphoneAddress *peer_address = linphone_chat_room_get_peer_address(cr);
|
||||
const LinphoneAddress *local_address = linphone_chat_room_get_local_address(cr);
|
||||
NSString *display;
|
||||
[dict setObject:[NSString stringWithUTF8String:linphone_address_as_string_uri_only(peer_address)]
|
||||
forKey:@"peer"];
|
||||
[dict setObject:[NSString stringWithUTF8String:linphone_address_as_string_uri_only(local_address)]
|
||||
forKey:@"local"];
|
||||
if (linphone_chat_room_get_conference_address(cr))
|
||||
display = [NSString stringWithUTF8String:linphone_chat_room_get_subject(cr)];
|
||||
else {
|
||||
display = [NSString stringWithUTF8String:linphone_address_get_display_name(peer_address)?:linphone_address_get_username(peer_address)];
|
||||
if ([FastAddressBook imageForAddress:peer_address])
|
||||
[dict setObject:UIImageJPEGRepresentation([UIImage resizeImage:[FastAddressBook imageForAddress:peer_address]
|
||||
withMaxWidth:200
|
||||
andMaxHeight:200],
|
||||
1)
|
||||
forKey:@"img"];
|
||||
}
|
||||
[dict setObject:display
|
||||
forKey:@"display"];
|
||||
[dict setObject:[NSNumber numberWithBool:linphone_chat_room_get_conference_address(cr)]
|
||||
forKey:@"nbParticipants"];
|
||||
[addresses addObject:dict];
|
||||
if (addresses.count >= 4) //send no more data than needed
|
||||
break;
|
||||
sorted = sorted->next;
|
||||
}
|
||||
|
||||
[defaults setObject:addresses forKey:@"chatrooms"];
|
||||
}
|
||||
|
||||
- (void)markCellAsRead:(LinphoneChatRoom *)chatRoom {
|
||||
int idx = bctbx_list_index(_data, VIEW(ChatConversationView).chatRoom);
|
||||
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:idx inSection:0];
|
||||
|
|
|
|||
|
|
@ -29,4 +29,5 @@
|
|||
@property(strong, nonatomic) NSMutableDictionary *sections;
|
||||
@property(strong, nonatomic) NSMutableArray *sortedDays;
|
||||
|
||||
+ (void) saveDataToUserDefaults;
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -158,7 +158,7 @@
|
|||
[self computeSections];
|
||||
|
||||
[super loadData];
|
||||
|
||||
|
||||
if (IPAD) {
|
||||
if (![self selectFirstRow]) {
|
||||
HistoryDetailsView *view = VIEW(HistoryDetailsView);
|
||||
|
|
@ -167,6 +167,64 @@
|
|||
}
|
||||
}
|
||||
|
||||
+ (void) saveDataToUserDefaults {
|
||||
const bctbx_list_t *logs = linphone_core_get_call_logs(LC);
|
||||
NSUserDefaults *mySharedDefaults = [[NSUserDefaults alloc] initWithSuiteName: @"group.belledonne-communications.linphone.widget"];
|
||||
NSMutableArray *logsShare = [NSMutableArray array];
|
||||
NSMutableDictionary *tmpStoreDict = [NSMutableDictionary dictionary];
|
||||
NSMutableArray *addedContacts = [NSMutableArray array];
|
||||
while (logs) {
|
||||
LinphoneCallLog *log = (LinphoneCallLog *)logs->data;
|
||||
const LinphoneAddress *address = linphone_call_log_get_remote_address(log);
|
||||
|
||||
// if contact is already to be display, skip
|
||||
if ([addedContacts containsObject:[NSString stringWithUTF8String:linphone_address_as_string_uri_only(address)]]) {
|
||||
logs = bctbx_list_next(logs);
|
||||
continue;
|
||||
}
|
||||
// if null log id, skip
|
||||
if (!linphone_call_log_get_call_id(log)) {
|
||||
logs = bctbx_list_next(logs);
|
||||
continue;
|
||||
}
|
||||
|
||||
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
|
||||
|
||||
[dict setObject:[NSString stringWithUTF8String:linphone_call_log_get_call_id(log)]
|
||||
forKey:@"id"];
|
||||
[dict setObject:[NSString stringWithUTF8String:linphone_address_get_display_name(address)?:linphone_address_get_username(address)]
|
||||
forKey:@"display"];
|
||||
UIImage *avatar = [FastAddressBook imageForAddress:address];
|
||||
if (avatar) {
|
||||
UIImage *image = [UIImage resizeImage:avatar
|
||||
withMaxWidth:200
|
||||
andMaxHeight:200];
|
||||
NSData *imageData = UIImageJPEGRepresentation(image, 1);
|
||||
[dict setObject:imageData
|
||||
forKey:@"img"];
|
||||
}
|
||||
[tmpStoreDict setObject:dict
|
||||
forKey:[NSDate dateWithTimeIntervalSince1970:linphone_call_log_get_start_date(log)]];
|
||||
[addedContacts addObject:[NSString stringWithUTF8String:linphone_address_as_string_uri_only(address)]];
|
||||
|
||||
logs = bctbx_list_next(logs);
|
||||
}
|
||||
|
||||
NSArray *sortedDates = [[NSMutableArray alloc]
|
||||
initWithArray:[tmpStoreDict.allKeys sortedArrayUsingComparator:^NSComparisonResult(NSDate *d1, NSDate *d2) {
|
||||
return [d2 compare:d1];
|
||||
}]];
|
||||
|
||||
// sort logs array on date
|
||||
for (NSDate *date in sortedDates) {
|
||||
[logsShare addObject:[tmpStoreDict objectForKey:date]];
|
||||
if (logsShare.count >= 4) //send no more data than needed
|
||||
break;
|
||||
}
|
||||
|
||||
[mySharedDefaults setObject:logsShare forKey:@"logs"];
|
||||
}
|
||||
|
||||
- (void)computeSections {
|
||||
NSArray *unsortedDays = [self.sections allKeys];
|
||||
_sortedDays = [[NSMutableArray alloc]
|
||||
|
|
|
|||
|
|
@ -139,6 +139,8 @@
|
|||
}
|
||||
}
|
||||
[LinphoneManager.instance.iapManager check];
|
||||
[HistoryListTableView saveDataToUserDefaults];
|
||||
[ChatsListTableView saveDataToUserDefaults];
|
||||
}
|
||||
|
||||
#pragma deploymate push "ignored-api-availability"
|
||||
|
|
@ -340,16 +342,39 @@
|
|||
[PhoneMainView.instance presentViewController:errView animated:YES completion:nil];
|
||||
} else if([[url scheme] isEqualToString:@"message-linphone"]) {
|
||||
[PhoneMainView.instance popToView:ChatsListView.compositeViewDescription];
|
||||
}else {
|
||||
if ([[url scheme] isEqualToString:@"sip"]) {
|
||||
// remove "sip://" from the URI, and do it correctly by taking resourceSpecifier and removing leading and
|
||||
// trailing "/"
|
||||
NSString *sipUri = [[url resourceSpecifier]
|
||||
stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"/"]];
|
||||
[VIEW(DialerView) setAddress:sipUri];
|
||||
}
|
||||
}
|
||||
return YES;
|
||||
} else if ([scheme isEqualToString:@"sip"]) {
|
||||
// remove "sip://" from the URI, and do it correctly by taking resourceSpecifier and removing leading and
|
||||
// trailing "/"
|
||||
NSString *sipUri = [[url resourceSpecifier] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"/"]];
|
||||
[VIEW(DialerView) setAddress:sipUri];
|
||||
} else if ([scheme isEqualToString:@"linphone-widget"]) {
|
||||
if ([[url host] isEqualToString:@"call_log"] &&
|
||||
[[url path] isEqualToString:@"/show"]) {
|
||||
[VIEW(HistoryDetailsView) setCallLogId:[url query]];
|
||||
[PhoneMainView.instance changeCurrentView:HistoryDetailsView.compositeViewDescription];
|
||||
} else if ([[url host] isEqualToString:@"chatroom"] && [[url path] isEqualToString:@"/show"]) {
|
||||
NSURLComponents *urlComponents = [NSURLComponents componentsWithURL:url
|
||||
resolvingAgainstBaseURL:NO];
|
||||
NSArray *queryItems = urlComponents.queryItems;
|
||||
NSString *peerAddress = [self valueForKey:@"peer" fromQueryItems:queryItems];
|
||||
NSString *localAddress = [self valueForKey:@"local" fromQueryItems:queryItems];
|
||||
LinphoneAddress *peer = linphone_address_new(peerAddress.UTF8String);
|
||||
LinphoneAddress *local = linphone_address_new(localAddress.UTF8String);
|
||||
LinphoneChatRoom *cr = linphone_core_find_chat_room(LC, peer, local);
|
||||
linphone_address_unref(peer);
|
||||
linphone_address_unref(local);
|
||||
// TODO : Find a better fix
|
||||
VIEW(ChatConversationView).markAsRead = FALSE;
|
||||
[PhoneMainView.instance goToChatRoom:cr];
|
||||
}
|
||||
}
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (NSString *)valueForKey:(NSString *)key fromQueryItems:(NSArray *)queryItems {
|
||||
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name=%@", key];
|
||||
NSURLQueryItem *queryItem = [[queryItems filteredArrayUsingPredicate:predicate] firstObject];
|
||||
return queryItem.value;
|
||||
}
|
||||
|
||||
- (void)fixRing {
|
||||
|
|
|
|||
|
|
@ -719,6 +719,7 @@ static void linphone_iphone_display_status(struct _LinphoneCore *lc, const char
|
|||
|
||||
// Disable speaker when no more call
|
||||
if ((state == LinphoneCallEnd || state == LinphoneCallError)) {
|
||||
[HistoryListTableView saveDataToUserDefaults];
|
||||
[[UIDevice currentDevice] setProximityMonitoringEnabled:FALSE];
|
||||
speaker_already_enabled = FALSE;
|
||||
if (linphone_core_get_calls_nb(theLinphoneCore) == 0) {
|
||||
|
|
@ -1242,6 +1243,8 @@ static void linphone_iphone_popup_password_request(LinphoneCore *lc, LinphoneAut
|
|||
}
|
||||
}];
|
||||
}
|
||||
[ChatsListTableView saveDataToUserDefaults];
|
||||
[HistoryListTableView saveDataToUserDefaults];
|
||||
}
|
||||
|
||||
static void linphone_iphone_message_received(LinphoneCore *lc, LinphoneChatRoom *room, LinphoneChatMessage *message) {
|
||||
|
|
@ -1830,7 +1833,10 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach
|
|||
|
||||
[self enableProxyPublish:([UIApplication sharedApplication].applicationState == UIApplicationStateActive)];
|
||||
|
||||
LOGI(@"Linphone [%s] started on [%s]", linphone_core_get_version(), [[UIDevice currentDevice].model UTF8String]);
|
||||
//update UserDefaults for widgets
|
||||
[HistoryListTableView saveDataToUserDefaults];
|
||||
|
||||
LOGI(@"Linphone [%s] started on [%s]", linphone_core_get_version(), [[UIDevice currentDevice].model UTF8String]);
|
||||
|
||||
// Post event
|
||||
NSDictionary *dict = [NSDictionary dictionaryWithObject:[NSValue valueWithPointer:theLinphoneCore] forKey:@"core"];
|
||||
|
|
|
|||
|
|
@ -68,6 +68,7 @@ typedef enum {
|
|||
|
||||
- (UIImage *)squareCrop;
|
||||
- (UIImage *)scaleToSize:(CGSize)size squared:(BOOL)squared;
|
||||
+ (UIImage *)resizeImage:(UIImage *)image withMaxWidth:(float)maxWidth andMaxHeight:(float)maxHeight;
|
||||
|
||||
@end
|
||||
|
||||
|
|
|
|||
|
|
@ -649,6 +649,36 @@
|
|||
return scaledImage;
|
||||
}
|
||||
|
||||
+ (UIImage *)resizeImage:(UIImage *)image withMaxWidth:(float)maxWidth andMaxHeight:(float)maxHeight {
|
||||
float actualHeight = image.size.height;
|
||||
float actualWidth = image.size.width;
|
||||
float imgRatio = actualWidth / actualHeight;
|
||||
float maxRatio = maxWidth / maxHeight;
|
||||
float compressionQuality = 1;
|
||||
if (actualHeight > maxHeight || actualWidth > maxWidth)
|
||||
{
|
||||
if (imgRatio < maxRatio) {
|
||||
imgRatio = maxHeight / actualHeight;
|
||||
actualWidth = imgRatio * actualWidth;
|
||||
actualHeight = maxHeight;
|
||||
} else if (imgRatio > maxRatio) {
|
||||
imgRatio = maxWidth / actualWidth;
|
||||
actualHeight = imgRatio * actualHeight;
|
||||
actualWidth = maxWidth;
|
||||
} else {
|
||||
actualHeight = maxHeight;
|
||||
actualWidth = maxWidth;
|
||||
}
|
||||
}
|
||||
CGRect rect = CGRectMake(0.0, 0.0, actualWidth, actualHeight);
|
||||
UIGraphicsBeginImageContext(rect.size);
|
||||
[image drawInRect:rect];
|
||||
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
|
||||
NSData *imageData = UIImageJPEGRepresentation(img, compressionQuality);
|
||||
UIGraphicsEndImageContext();
|
||||
return [UIImage imageWithData:imageData];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation UIColor (LightAndDark)
|
||||
|
|
|
|||
153
latestCallsWidget/Base.lproj/MainInterface.storyboard
Normal file
153
latestCallsWidget/Base.lproj/MainInterface.storyboard
Normal file
|
|
@ -0,0 +1,153 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14113" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="M4Y-Lb-cyx">
|
||||
<device id="retina4_7" orientation="portrait">
|
||||
<adaptation id="fullscreen"/>
|
||||
</device>
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
|
||||
<capability name="Constraints to layout margins" minToolsVersion="6.0"/>
|
||||
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<scenes>
|
||||
<!--Today View Controller-->
|
||||
<scene sceneID="cwh-vc-ff4">
|
||||
<objects>
|
||||
<viewController id="M4Y-Lb-cyx" customClass="TodayViewController" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" simulatedAppContext="notificationCenter" id="S3S-Oj-5AN">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="37"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" distribution="equalSpacing" translatesAutoresizingMaskIntoConstraints="NO" id="acy-Dv-HTU">
|
||||
<rect key="frame" x="16" y="-25" width="288" height="87.5"/>
|
||||
<subviews>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="ndj-Mq-Hl7">
|
||||
<rect key="frame" x="0.0" y="0.0" width="60" height="87.5"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleAspectFit" contentHorizontalAlignment="center" contentVerticalAlignment="center" showsTouchWhenHighlighted="YES" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Wm5-Qb-p3S">
|
||||
<rect key="frame" x="0.0" y="0.0" width="60" height="60.5"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="60" id="0Ak-Qk-GO3"/>
|
||||
<constraint firstAttribute="width" constant="60" id="ZqS-ba-Lu5"/>
|
||||
</constraints>
|
||||
<state key="normal" image="avatar.png"/>
|
||||
<connections>
|
||||
<action selector="firstButtonTapped" destination="M4Y-Lb-cyx" eventType="touchUpInside" id="hiI-LE-Zgn"/>
|
||||
</connections>
|
||||
</button>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" " textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ZCh-k6-wlC">
|
||||
<rect key="frame" x="0.0" y="70.5" width="60" height="17"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="ZCh-k6-wlC" firstAttribute="centerX" secondItem="ndj-Mq-Hl7" secondAttribute="centerX" id="7gN-E9-QSN"/>
|
||||
</constraints>
|
||||
</stackView>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="aDd-1O-GG5">
|
||||
<rect key="frame" x="76" y="0.0" width="60" height="87.5"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleAspectFit" contentHorizontalAlignment="center" contentVerticalAlignment="center" showsTouchWhenHighlighted="YES" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="YV6-7A-P4J">
|
||||
<rect key="frame" x="0.0" y="0.0" width="60" height="60"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="60" id="7Mf-cY-51s"/>
|
||||
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="60" id="b1f-XQ-h9r"/>
|
||||
<constraint firstAttribute="width" constant="60" id="pF3-4V-DIz"/>
|
||||
</constraints>
|
||||
<state key="normal" image="avatar.png"/>
|
||||
<connections>
|
||||
<action selector="secondButtonTapped" destination="M4Y-Lb-cyx" eventType="touchUpInside" id="VD4-JL-D57"/>
|
||||
</connections>
|
||||
</button>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" " textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vzp-zG-86G">
|
||||
<rect key="frame" x="0.0" y="70" width="60" height="17.5"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="vzp-zG-86G" firstAttribute="centerX" secondItem="aDd-1O-GG5" secondAttribute="centerX" id="Reb-Z7-yZx"/>
|
||||
</constraints>
|
||||
</stackView>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="Jda-ED-Hck">
|
||||
<rect key="frame" x="152" y="0.0" width="60" height="87.5"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleAspectFit" contentHorizontalAlignment="center" contentVerticalAlignment="center" showsTouchWhenHighlighted="YES" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="R1m-4P-62J">
|
||||
<rect key="frame" x="0.0" y="0.0" width="60" height="60"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="60" id="Jwm-Hh-flO"/>
|
||||
<constraint firstAttribute="width" constant="60" id="Lv0-kT-oOL"/>
|
||||
</constraints>
|
||||
<state key="normal" image="avatar.png"/>
|
||||
<connections>
|
||||
<action selector="thirdButtonTapped" destination="M4Y-Lb-cyx" eventType="touchUpInside" id="A6r-gZ-0Be"/>
|
||||
</connections>
|
||||
</button>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" " textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1km-2d-H8g">
|
||||
<rect key="frame" x="0.0" y="70" width="60" height="17.5"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="1km-2d-H8g" firstAttribute="centerX" secondItem="Jda-ED-Hck" secondAttribute="centerX" id="Jaw-30-wJW"/>
|
||||
</constraints>
|
||||
</stackView>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="Vem-dd-m97">
|
||||
<rect key="frame" x="228" y="0.0" width="60" height="87.5"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleAspectFit" contentHorizontalAlignment="center" contentVerticalAlignment="center" showsTouchWhenHighlighted="YES" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="EgK-EE-9vt">
|
||||
<rect key="frame" x="0.0" y="0.0" width="60" height="60"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="60" id="T6s-2z-6yf"/>
|
||||
<constraint firstAttribute="height" constant="60" id="yoB-Mx-9iw"/>
|
||||
</constraints>
|
||||
<state key="normal" image="avatar.png"/>
|
||||
<connections>
|
||||
<action selector="fourthButtonTapped" destination="M4Y-Lb-cyx" eventType="touchUpInside" id="MfV-kR-GEH"/>
|
||||
</connections>
|
||||
</button>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" " textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Z4D-W4-T9E">
|
||||
<rect key="frame" x="0.0" y="70" width="60" height="17.5"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="Z4D-W4-T9E" firstAttribute="centerX" secondItem="Vem-dd-m97" secondAttribute="centerX" id="TU4-tO-i4b"/>
|
||||
</constraints>
|
||||
</stackView>
|
||||
</subviews>
|
||||
</stackView>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="acy-Dv-HTU" firstAttribute="centerX" secondItem="S3S-Oj-5AN" secondAttribute="centerX" id="Thu-fq-hKU"/>
|
||||
<constraint firstItem="acy-Dv-HTU" firstAttribute="centerY" secondItem="S3S-Oj-5AN" secondAttribute="centerY" id="Wku-rc-Ij6"/>
|
||||
<constraint firstItem="acy-Dv-HTU" firstAttribute="leading" secondItem="S3S-Oj-5AN" secondAttribute="leadingMargin" id="fWT-EJ-zhi"/>
|
||||
</constraints>
|
||||
<viewLayoutGuide key="safeArea" id="ssy-KU-ocm"/>
|
||||
</view>
|
||||
<extendedEdge key="edgesForExtendedLayout"/>
|
||||
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
|
||||
<size key="freeformSize" width="320" height="37"/>
|
||||
<connections>
|
||||
<outletCollection property="stackViews" destination="ndj-Mq-Hl7" id="NTd-tl-hho"/>
|
||||
<outletCollection property="stackViews" destination="aDd-1O-GG5" id="y3m-I8-kYi"/>
|
||||
<outletCollection property="stackViews" destination="Jda-ED-Hck" id="VR1-hK-wc3"/>
|
||||
<outletCollection property="stackViews" destination="Vem-dd-m97" id="9Eh-UN-U3f"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="vXp-U4-Rya" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
</scene>
|
||||
</scenes>
|
||||
<resources>
|
||||
<image name="avatar.png" width="259" height="259"/>
|
||||
</resources>
|
||||
</document>
|
||||
31
latestCallsWidget/Info.plist
Normal file
31
latestCallsWidget/Info.plist
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>Linphone - Latest Calls</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>XPC!</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>NSExtension</key>
|
||||
<dict>
|
||||
<key>NSExtensionMainStoryboard</key>
|
||||
<string>MainInterface</string>
|
||||
<key>NSExtensionPointIdentifier</key>
|
||||
<string>com.apple.widget-extension</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
20
latestCallsWidget/TodayViewController.h
Normal file
20
latestCallsWidget/TodayViewController.h
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
//
|
||||
// TodayViewController.h
|
||||
// latestCallsWidget
|
||||
//
|
||||
// Created by David Idmansour on 06/06/2018.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface TodayViewController : UIViewController
|
||||
@property (strong, nonatomic) IBOutletCollection(UIStackView) NSArray *stackViews;
|
||||
@property (strong, nonatomic) NSMutableArray *imgs;
|
||||
@property (strong, nonatomic) NSMutableArray *logIds;
|
||||
@property (strong, nonatomic) NSMutableArray *displayNames;
|
||||
|
||||
- (IBAction)firstButtonTapped;
|
||||
- (IBAction)secondButtonTapped;
|
||||
- (IBAction)thirdButtonTapped;
|
||||
- (IBAction)fourthButtonTapped;
|
||||
@end
|
||||
109
latestCallsWidget/TodayViewController.m
Normal file
109
latestCallsWidget/TodayViewController.m
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
//
|
||||
// TodayViewController.m
|
||||
// latestCallsWidget
|
||||
//
|
||||
// Created by David Idmansour on 06/06/2018.
|
||||
//
|
||||
|
||||
#import "TodayViewController.h"
|
||||
#import <NotificationCenter/NotificationCenter.h>
|
||||
|
||||
@interface TodayViewController () <NCWidgetProviding>
|
||||
|
||||
@end
|
||||
|
||||
@implementation TodayViewController
|
||||
|
||||
- (void)loadData {
|
||||
NSUserDefaults *mySharedDefaults = [[NSUserDefaults alloc] initWithSuiteName: @"group.belledonne-communications.linphone.widget"];
|
||||
[_imgs removeAllObjects];
|
||||
[_logIds removeAllObjects];
|
||||
[_displayNames removeAllObjects];
|
||||
NSMutableArray *logs = [NSMutableArray arrayWithArray:[mySharedDefaults objectForKey:@"logs"]];
|
||||
for (NSDictionary *dict in logs) {
|
||||
[_logIds addObject:[dict objectForKey:@"id"]];
|
||||
[_displayNames addObject:[dict objectForKey:@"display"]];
|
||||
[_imgs addObject:[dict objectForKey:@"img"]?:[NSNull null]];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)draw {
|
||||
int i = 0;
|
||||
for (i = 0 ; i < 4 && i < _logIds.count ; i++) {
|
||||
UIStackView *stack = _stackViews[i];
|
||||
UIButton *button = stack.subviews[0];
|
||||
UILabel *name = stack.subviews[1];
|
||||
if (_imgs[i] != [NSNull null]) {
|
||||
[button setImage:[UIImage imageWithData:_imgs[i]] forState:UIControlStateNormal];
|
||||
}
|
||||
[stack setAlpha:1];
|
||||
button.enabled = YES;
|
||||
[name setText:_displayNames[i]];
|
||||
}
|
||||
|
||||
while (i < 4) {
|
||||
UIStackView *stack = _stackViews[i];
|
||||
UIButton *button = stack.subviews[0];
|
||||
[stack setAlpha:0];
|
||||
button.enabled = NO;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
// Do any additional setup after loading the view from its nib.
|
||||
for (UIStackView *stack in _stackViews) {
|
||||
UIButton *button = stack.subviews[0];
|
||||
// making rounded image
|
||||
UIImageView *imageView = button.imageView;
|
||||
imageView.layer.cornerRadius = imageView.frame.size.height / 2;
|
||||
imageView.clipsToBounds = YES;
|
||||
}
|
||||
_logIds = [NSMutableArray array];
|
||||
_imgs = [NSMutableArray array];
|
||||
_displayNames = [NSMutableArray array];
|
||||
}
|
||||
|
||||
- (void)didReceiveMemoryWarning {
|
||||
[super didReceiveMemoryWarning];
|
||||
// Dispose of any resources that can be recreated.
|
||||
[_imgs removeAllObjects];
|
||||
}
|
||||
|
||||
- (void)widgetPerformUpdateWithCompletionHandler:(void (^)(NCUpdateResult))completionHandler {
|
||||
// Perform any setup necessary in order to update the view.
|
||||
|
||||
// If an error is encountered, use NCUpdateResultFailed
|
||||
// If there's no update required, use NCUpdateResultNoData
|
||||
// If there's an update, use NCUpdateResultNewData
|
||||
[self loadData];
|
||||
[self draw];
|
||||
completionHandler(NCUpdateResultNewData);
|
||||
}
|
||||
|
||||
- (void)launchAppWithURL:(NSURL *) url {
|
||||
[self.extensionContext openURL:url
|
||||
completionHandler:nil];
|
||||
}
|
||||
|
||||
- (void)launchOnHistoryDetailsWithId:(NSString *)logId {
|
||||
[self launchAppWithURL:[NSURL URLWithString:[@"linphone-widget://call_log/show?" stringByAppendingString:logId]]];
|
||||
}
|
||||
|
||||
- (IBAction)firstButtonTapped {
|
||||
[self launchOnHistoryDetailsWithId:_logIds[0]];
|
||||
}
|
||||
|
||||
- (IBAction)secondButtonTapped {
|
||||
[self launchOnHistoryDetailsWithId:_logIds[1]];
|
||||
}
|
||||
|
||||
- (IBAction)thirdButtonTapped {
|
||||
[self launchOnHistoryDetailsWithId:_logIds[2]];
|
||||
}
|
||||
|
||||
- (IBAction)fourthButtonTapped {
|
||||
[self launchOnHistoryDetailsWithId:_logIds[3]];
|
||||
}
|
||||
@end
|
||||
10
latestCallsWidget/latestCallsWidget.entitlements
Normal file
10
latestCallsWidget/latestCallsWidget.entitlements
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.application-groups</key>
|
||||
<array>
|
||||
<string>group.belledonne-communications.linphone.widget</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
152
latestChatroomsWidget/Base.lproj/MainInterface.storyboard
Normal file
152
latestChatroomsWidget/Base.lproj/MainInterface.storyboard
Normal file
|
|
@ -0,0 +1,152 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14113" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="M4Y-Lb-cyx">
|
||||
<device id="retina4_7" orientation="portrait">
|
||||
<adaptation id="fullscreen"/>
|
||||
</device>
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
|
||||
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<scenes>
|
||||
<!--Today View Controller-->
|
||||
<scene sceneID="cwh-vc-ff4">
|
||||
<objects>
|
||||
<viewController id="M4Y-Lb-cyx" customClass="TodayViewController" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" simulatedAppContext="notificationCenter" id="S3S-Oj-5AN">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="37"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" distribution="equalSpacing" translatesAutoresizingMaskIntoConstraints="NO" id="kvZ-RU-0JV">
|
||||
<rect key="frame" x="16" y="-26" width="288" height="87.5"/>
|
||||
<subviews>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="P4U-hP-N9F">
|
||||
<rect key="frame" x="0.0" y="0.0" width="60" height="87.5"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleAspectFit" contentHorizontalAlignment="center" contentVerticalAlignment="center" showsTouchWhenHighlighted="YES" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="dGY-Wo-tng">
|
||||
<rect key="frame" x="0.0" y="0.0" width="60" height="60.5"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="60" id="a43-Du-y1b"/>
|
||||
<constraint firstAttribute="height" constant="60" id="gNd-AG-oLn"/>
|
||||
</constraints>
|
||||
<state key="normal" image="avatar.png"/>
|
||||
<connections>
|
||||
<action selector="firstButtonTapped" destination="M4Y-Lb-cyx" eventType="touchUpInside" id="n6M-cY-cWU"/>
|
||||
</connections>
|
||||
</button>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" " textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fpJ-Wl-BT1">
|
||||
<rect key="frame" x="0.0" y="70.5" width="60" height="17"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="fpJ-Wl-BT1" firstAttribute="centerX" secondItem="P4U-hP-N9F" secondAttribute="centerX" id="3Zz-Mm-hxc"/>
|
||||
</constraints>
|
||||
</stackView>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="79U-UR-Bp2">
|
||||
<rect key="frame" x="76" y="0.0" width="60" height="87.5"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleAspectFit" contentHorizontalAlignment="center" contentVerticalAlignment="center" showsTouchWhenHighlighted="YES" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="aiZ-1q-Ssd">
|
||||
<rect key="frame" x="0.0" y="0.0" width="60" height="60"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="60" id="0Me-vh-jt4"/>
|
||||
<constraint firstAttribute="height" constant="60" id="9hj-Pa-s8F"/>
|
||||
<constraint firstAttribute="width" constant="60" id="iil-bF-24j"/>
|
||||
</constraints>
|
||||
<state key="normal" image="avatar.png"/>
|
||||
<connections>
|
||||
<action selector="secondButtonTapped" destination="M4Y-Lb-cyx" eventType="touchUpInside" id="e09-4G-NJf"/>
|
||||
</connections>
|
||||
</button>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" " textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fEo-fa-uyD">
|
||||
<rect key="frame" x="0.0" y="70" width="60" height="17.5"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="fEo-fa-uyD" firstAttribute="centerX" secondItem="79U-UR-Bp2" secondAttribute="centerX" id="FPk-ST-xe3"/>
|
||||
</constraints>
|
||||
</stackView>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="Xgm-go-u3S">
|
||||
<rect key="frame" x="152" y="0.0" width="60" height="87.5"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleAspectFit" contentHorizontalAlignment="center" contentVerticalAlignment="center" showsTouchWhenHighlighted="YES" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="VgA-lq-CQL">
|
||||
<rect key="frame" x="0.0" y="0.0" width="60" height="60"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="60" id="TEZ-z7-Yce"/>
|
||||
<constraint firstAttribute="height" constant="60" id="rtD-OM-bmH"/>
|
||||
</constraints>
|
||||
<state key="normal" image="avatar.png"/>
|
||||
<connections>
|
||||
<action selector="thirdButtonTapped" destination="M4Y-Lb-cyx" eventType="touchUpInside" id="OtO-nr-X1J"/>
|
||||
</connections>
|
||||
</button>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" " textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zM6-aO-Pes">
|
||||
<rect key="frame" x="0.0" y="70" width="60" height="17.5"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="zM6-aO-Pes" firstAttribute="centerX" secondItem="Xgm-go-u3S" secondAttribute="centerX" id="lGV-8K-Ol0"/>
|
||||
</constraints>
|
||||
</stackView>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="nHe-ID-vxE">
|
||||
<rect key="frame" x="228" y="0.0" width="60" height="87.5"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleAspectFit" contentHorizontalAlignment="center" contentVerticalAlignment="center" showsTouchWhenHighlighted="YES" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="7je-G1-IfQ">
|
||||
<rect key="frame" x="0.0" y="0.0" width="60" height="60"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="60" id="Pm8-lw-PB4"/>
|
||||
<constraint firstAttribute="height" constant="60" id="SYf-Yl-EDf"/>
|
||||
</constraints>
|
||||
<state key="normal" image="avatar.png"/>
|
||||
<connections>
|
||||
<action selector="fourthButtonTapped" destination="M4Y-Lb-cyx" eventType="touchUpInside" id="a2u-BT-Fkp"/>
|
||||
</connections>
|
||||
</button>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" " textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bpY-VL-FDz">
|
||||
<rect key="frame" x="0.0" y="70" width="60" height="17.5"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="bpY-VL-FDz" firstAttribute="centerX" secondItem="nHe-ID-vxE" secondAttribute="centerX" id="PD7-gj-AXr"/>
|
||||
</constraints>
|
||||
</stackView>
|
||||
</subviews>
|
||||
</stackView>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="kvZ-RU-0JV" firstAttribute="centerY" secondItem="S3S-Oj-5AN" secondAttribute="centerY" id="1dD-eI-ohO"/>
|
||||
<constraint firstItem="kvZ-RU-0JV" firstAttribute="leading" secondItem="S3S-Oj-5AN" secondAttribute="leading" constant="16" id="9XT-er-59s"/>
|
||||
<constraint firstItem="kvZ-RU-0JV" firstAttribute="centerX" secondItem="S3S-Oj-5AN" secondAttribute="centerX" id="l30-a1-mDN"/>
|
||||
</constraints>
|
||||
<viewLayoutGuide key="safeArea" id="ssy-KU-ocm"/>
|
||||
</view>
|
||||
<extendedEdge key="edgesForExtendedLayout"/>
|
||||
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
|
||||
<size key="freeformSize" width="320" height="37"/>
|
||||
<connections>
|
||||
<outletCollection property="stackViews" destination="P4U-hP-N9F" id="3f1-th-6ZO"/>
|
||||
<outletCollection property="stackViews" destination="79U-UR-Bp2" id="ix2-7S-Rim"/>
|
||||
<outletCollection property="stackViews" destination="Xgm-go-u3S" id="VYM-Ld-joW"/>
|
||||
<outletCollection property="stackViews" destination="nHe-ID-vxE" id="iGd-Ix-Pj6"/>
|
||||
</connections>
|
||||
</viewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="vXp-U4-Rya" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
</scene>
|
||||
</scenes>
|
||||
<resources>
|
||||
<image name="avatar.png" width="259" height="259"/>
|
||||
</resources>
|
||||
</document>
|
||||
31
latestChatroomsWidget/Info.plist
Normal file
31
latestChatroomsWidget/Info.plist
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>Linphone - Latest Chatrooms</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>XPC!</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>NSExtension</key>
|
||||
<dict>
|
||||
<key>NSExtensionMainStoryboard</key>
|
||||
<string>MainInterface</string>
|
||||
<key>NSExtensionPointIdentifier</key>
|
||||
<string>com.apple.widget-extension</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
22
latestChatroomsWidget/TodayViewController.h
Normal file
22
latestChatroomsWidget/TodayViewController.h
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
//
|
||||
// TodayViewController.h
|
||||
// latestChatroomsWidget
|
||||
//
|
||||
// Created by David Idmansour on 18/06/2018.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface TodayViewController : UIViewController
|
||||
@property (strong, nonatomic) IBOutletCollection(UIStackView) NSArray *stackViews;
|
||||
@property (strong, nonatomic) NSMutableArray *addresses;
|
||||
@property (strong, nonatomic) NSMutableArray *localAddress;
|
||||
@property (strong, nonatomic) NSMutableArray *displayNames;
|
||||
@property (strong, nonatomic) NSMutableArray *isConf;
|
||||
@property (strong, nonatomic) NSMutableArray *imgs;
|
||||
|
||||
- (IBAction)firstButtonTapped;
|
||||
- (IBAction)secondButtonTapped;
|
||||
- (IBAction)thirdButtonTapped;
|
||||
- (IBAction)fourthButtonTapped;
|
||||
@end
|
||||
119
latestChatroomsWidget/TodayViewController.m
Normal file
119
latestChatroomsWidget/TodayViewController.m
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
//
|
||||
// TodayViewController.m
|
||||
// latestChatroomsWidget
|
||||
//
|
||||
// Created by David Idmansour on 18/06/2018.
|
||||
//
|
||||
|
||||
#import "TodayViewController.h"
|
||||
#import <NotificationCenter/NotificationCenter.h>
|
||||
|
||||
@interface TodayViewController () <NCWidgetProviding>
|
||||
|
||||
@end
|
||||
|
||||
@implementation TodayViewController
|
||||
|
||||
- (void)loadData {
|
||||
NSUserDefaults *mySharedDefaults = [[NSUserDefaults alloc] initWithSuiteName: @"group.belledonne-communications.linphone.widget"];
|
||||
[_imgs removeAllObjects];
|
||||
[_addresses removeAllObjects];
|
||||
[_localAddress removeAllObjects];
|
||||
[_displayNames removeAllObjects];
|
||||
[_isConf removeAllObjects];
|
||||
NSMutableArray *chatrooms = [NSMutableArray arrayWithArray:[mySharedDefaults objectForKey:@"chatrooms"]];
|
||||
for (NSDictionary *dict in chatrooms) {
|
||||
[_addresses addObject:[dict objectForKey:@"peer"]];
|
||||
[_localAddress addObject:[dict objectForKey:@"local"]];
|
||||
[_displayNames addObject:[dict objectForKey:@"display"]];
|
||||
[_isConf addObject:(NSNumber *)[dict objectForKey:@"nbParticipants"]];
|
||||
[_imgs addObject:[dict objectForKey:@"img"]?:[NSNull null]];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)draw {
|
||||
int i = 0;
|
||||
for (i = 0 ; i < 4 && i < _addresses.count ; i++) {
|
||||
UIStackView *stack = _stackViews[i];
|
||||
UIButton *button = stack.subviews[0];
|
||||
UILabel *name = stack.subviews[1];
|
||||
if (_imgs[i] != [NSNull null]) {
|
||||
[button setImage:[UIImage imageWithData:_imgs[i]] forState:UIControlStateNormal];
|
||||
} else if (((NSNumber *)_isConf[i]).boolValue) {
|
||||
[button setImage:[UIImage imageNamed:@"chat_group_avatar.png"] forState:UIControlStateNormal];
|
||||
}
|
||||
[stack setAlpha:1];
|
||||
button.enabled = YES;
|
||||
[name setText:_displayNames[i]];
|
||||
}
|
||||
|
||||
while (i < 4) {
|
||||
UIStackView *stack = _stackViews[i];
|
||||
UIButton *button = stack.subviews[0];
|
||||
[stack setAlpha:0];
|
||||
button.enabled = NO;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
// Do any additional setup after loading the view from its nib.
|
||||
for (UIStackView *stack in _stackViews) {
|
||||
UIButton *button = stack.subviews[0];
|
||||
// making rounded image
|
||||
UIImageView *imageView = button.imageView;
|
||||
imageView.layer.cornerRadius = imageView.frame.size.height / 2;
|
||||
imageView.clipsToBounds = YES;
|
||||
}
|
||||
|
||||
_addresses = [NSMutableArray array];
|
||||
_localAddress = [NSMutableArray array];
|
||||
_displayNames = [NSMutableArray array];
|
||||
_imgs = [NSMutableArray array];
|
||||
_isConf = [NSMutableArray array];
|
||||
}
|
||||
|
||||
- (void)didReceiveMemoryWarning {
|
||||
[super didReceiveMemoryWarning];
|
||||
// Dispose of any resources that can be recreated.
|
||||
[_imgs removeAllObjects];
|
||||
}
|
||||
|
||||
- (void)widgetPerformUpdateWithCompletionHandler:(void (^)(NCUpdateResult))completionHandler {
|
||||
// Perform any setup necessary in order to update the view.
|
||||
|
||||
// If an error is encountered, use NCUpdateResultFailed
|
||||
// If there's no update required, use NCUpdateResultNoData
|
||||
// If there's an update, use NCUpdateResultNewData
|
||||
[self loadData];
|
||||
[self draw];
|
||||
|
||||
completionHandler(NCUpdateResultNewData);
|
||||
}
|
||||
|
||||
- (void)launchAppWithURL:(NSURL *) url {
|
||||
[self.extensionContext openURL:url
|
||||
completionHandler:nil];
|
||||
}
|
||||
|
||||
- (void)launchOnChatConversationViewWithPeerAddress:(NSString *)peerAddress andLocalAddress:(NSString *)localAddress {
|
||||
[self launchAppWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"linphone-widget://chatroom/show?peer=%@&local=%@", peerAddress, localAddress]]];
|
||||
}
|
||||
|
||||
- (IBAction)firstButtonTapped {
|
||||
[self launchOnChatConversationViewWithPeerAddress:_addresses[0] andLocalAddress:_localAddress[0]];
|
||||
}
|
||||
|
||||
- (IBAction)secondButtonTapped {
|
||||
[self launchOnChatConversationViewWithPeerAddress:_addresses[1] andLocalAddress:_localAddress[1]];
|
||||
}
|
||||
|
||||
- (IBAction)thirdButtonTapped {
|
||||
[self launchOnChatConversationViewWithPeerAddress:_addresses[2] andLocalAddress:_localAddress[2]];
|
||||
}
|
||||
|
||||
- (IBAction)fourthButtonTapped {
|
||||
[self launchOnChatConversationViewWithPeerAddress:_addresses[3] andLocalAddress:_localAddress[3]];
|
||||
}
|
||||
@end
|
||||
10
latestChatroomsWidget/latestChatroomsWidget.entitlements
Normal file
10
latestChatroomsWidget/latestChatroomsWidget.entitlements
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.application-groups</key>
|
||||
<array>
|
||||
<string>group.belledonne-communications.linphone.widget</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
@ -63,6 +63,18 @@
|
|||
<string>message-linphone</string>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
<key>CFBundleURLIconFile</key>
|
||||
<string>linphone_icon_72@2x</string>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>org.linphone.phone</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>linphone-widget</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>0</string>
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
<string>development</string>
|
||||
<key>com.apple.security.application-groups</key>
|
||||
<array>
|
||||
<string>group.belledonne-communications.linphone.widget</string>
|
||||
<string>group.belledonne-communications.linphone</string>
|
||||
</array>
|
||||
</dict>
|
||||
|
|
|
|||
|
|
@ -66,6 +66,18 @@
|
|||
61AE365220C00B370089D9D3 /* MainInterface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 61AE365020C00B370089D9D3 /* MainInterface.storyboard */; };
|
||||
61AE365620C00B370089D9D3 /* linphoneExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 61AE364B20C00B370089D9D3 /* linphoneExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||
61F1997520C6B1D5006B069A /* AVKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 61F1996E20C6B1D5006B069A /* AVKit.framework */; };
|
||||
5E10ED4820D00630002BF6FE /* avatar.png in Resources */ = {isa = PBXBuildFile; fileRef = 633FEBE61D3CD5570014B822 /* avatar.png */; };
|
||||
5E10ED4920D006C9002BF6FE /* chat_group_avatar.png in Resources */ = {isa = PBXBuildFile; fileRef = 8C2A81941F87B8000012A66B /* chat_group_avatar.png */; };
|
||||
5E31290120D7A37E00CF3AAE /* NotificationCenter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5EF0C33820C806A5005081B0 /* NotificationCenter.framework */; };
|
||||
5E31290520D7A37E00CF3AAE /* TodayViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E31290420D7A37E00CF3AAE /* TodayViewController.m */; };
|
||||
5E31290820D7A37E00CF3AAE /* MainInterface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5E31290620D7A37E00CF3AAE /* MainInterface.storyboard */; };
|
||||
5E31290C20D7A37E00CF3AAE /* latestChatroomsWidget.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 5E31290020D7A37E00CF3AAE /* latestChatroomsWidget.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||
5E31291320D7AAA100CF3AAE /* avatar.png in Resources */ = {isa = PBXBuildFile; fileRef = 633FEBE61D3CD5570014B822 /* avatar.png */; };
|
||||
5E31291A20D7AAAD00CF3AAE /* chat_group_avatar.png in Resources */ = {isa = PBXBuildFile; fileRef = 8C2A81941F87B8000012A66B /* chat_group_avatar.png */; };
|
||||
5EEE8F9B20C80C23006E4176 /* NotificationCenter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5EF0C33820C806A5005081B0 /* NotificationCenter.framework */; };
|
||||
5EEE8F9F20C80C23006E4176 /* TodayViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5EEE8F9E20C80C23006E4176 /* TodayViewController.m */; };
|
||||
5EEE8FA220C80C23006E4176 /* MainInterface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5EEE8FA020C80C23006E4176 /* MainInterface.storyboard */; };
|
||||
5EEE8FA620C80C23006E4176 /* latestCallsWidget.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 5EEE8F9A20C80C23006E4176 /* latestCallsWidget.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||
630589E71B4E810900EFAE36 /* ChatTester.m in Sources */ = {isa = PBXBuildFile; fileRef = 630589DF1B4E810900EFAE36 /* ChatTester.m */; };
|
||||
630589E81B4E810900EFAE36 /* ContactsTester.m in Sources */ = {isa = PBXBuildFile; fileRef = 630589E11B4E810900EFAE36 /* ContactsTester.m */; };
|
||||
630589EA1B4E810900EFAE36 /* LinphoneTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 630589E41B4E810900EFAE36 /* LinphoneTestCase.m */; };
|
||||
|
|
@ -822,6 +834,20 @@
|
|||
remoteGlobalIDString = 61AE364A20C00B370089D9D3;
|
||||
remoteInfo = linphoneExtension;
|
||||
};
|
||||
5E31290A20D7A37E00CF3AAE /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 5E3128FF20D7A37E00CF3AAE;
|
||||
remoteInfo = latestChatroomsWidget;
|
||||
};
|
||||
5EEE8FA420C80C23006E4176 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 5EEE8F9920C80C23006E4176;
|
||||
remoteInfo = latestCallsWidget;
|
||||
};
|
||||
630589FC1B4E816A00EFAE36 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 630589F21B4E816900EFAE36 /* KIF.xcodeproj */;
|
||||
|
|
@ -888,13 +914,15 @@
|
|||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXCopyFilesBuildPhase section */
|
||||
61AE366220C00B370089D9D3 /* Embed App Extensions */ = {
|
||||
5EF0C35020C806A5005081B0 /* Embed App Extensions */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
dstPath = "";
|
||||
dstSubfolderSpec = 13;
|
||||
files = (
|
||||
61AE365620C00B370089D9D3 /* linphoneExtension.appex in Embed App Extensions */,
|
||||
5E31290C20D7A37E00CF3AAE /* latestChatroomsWidget.appex in Embed App Extensions */,
|
||||
5EEE8FA620C80C23006E4176 /* latestCallsWidget.appex in Embed App Extensions */,
|
||||
);
|
||||
name = "Embed App Extensions";
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
|
|
@ -1043,6 +1071,19 @@
|
|||
61AE365320C00B370089D9D3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
61AE366320C00C810089D9D3 /* linphoneExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = linphoneExtension.entitlements; sourceTree = "<group>"; };
|
||||
61F1996E20C6B1D5006B069A /* AVKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVKit.framework; path = System/Library/Frameworks/AVKit.framework; sourceTree = SDKROOT; };
|
||||
5E30780420D8F00D00256DAE /* latestChatroomsWidget.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = latestChatroomsWidget.entitlements; sourceTree = "<group>"; };
|
||||
5E31290020D7A37E00CF3AAE /* latestChatroomsWidget.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = latestChatroomsWidget.appex; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
5E31290320D7A37E00CF3AAE /* TodayViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TodayViewController.h; sourceTree = "<group>"; };
|
||||
5E31290420D7A37E00CF3AAE /* TodayViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TodayViewController.m; sourceTree = "<group>"; };
|
||||
5E31290720D7A37E00CF3AAE /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/MainInterface.storyboard; sourceTree = "<group>"; };
|
||||
5E31290920D7A37E00CF3AAE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
5EEE8F9A20C80C23006E4176 /* latestCallsWidget.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = latestCallsWidget.appex; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
5EEE8F9D20C80C23006E4176 /* TodayViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TodayViewController.h; sourceTree = "<group>"; };
|
||||
5EEE8F9E20C80C23006E4176 /* TodayViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TodayViewController.m; sourceTree = "<group>"; };
|
||||
5EEE8FA120C80C23006E4176 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/MainInterface.storyboard; sourceTree = "<group>"; };
|
||||
5EEE8FA320C80C23006E4176 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
5EEE8FB320C81334006E4176 /* latestCallsWidget.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = latestCallsWidget.entitlements; sourceTree = "<group>"; };
|
||||
5EF0C33820C806A5005081B0 /* NotificationCenter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NotificationCenter.framework; path = System/Library/Frameworks/NotificationCenter.framework; sourceTree = SDKROOT; };
|
||||
630589DE1B4E810900EFAE36 /* ChatTester.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChatTester.h; sourceTree = "<group>"; };
|
||||
630589DF1B4E810900EFAE36 /* ChatTester.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ChatTester.m; sourceTree = "<group>"; };
|
||||
630589E01B4E810900EFAE36 /* ContactsTester.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContactsTester.h; sourceTree = "<group>"; };
|
||||
|
|
@ -2016,6 +2057,22 @@
|
|||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
5E3128FD20D7A37E00CF3AAE /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
5E31290120D7A37E00CF3AAE /* NotificationCenter.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
5EEE8F9720C80C23006E4176 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
5EEE8F9B20C80C23006E4176 /* NotificationCenter.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
F08F118119C09C6A007D70C2 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
|
|
@ -2214,6 +2271,8 @@
|
|||
F08F118419C09C6A007D70C2 /* liblinphoneTesterTests.xctest */,
|
||||
F0F952001A6AEB1000254160 /* linphoneTests.xctest */,
|
||||
61AE364B20C00B370089D9D3 /* linphoneExtension.appex */,
|
||||
5EEE8F9A20C80C23006E4176 /* latestCallsWidget.appex */,
|
||||
5E31290020D7A37E00CF3AAE /* latestChatroomsWidget.appex */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
|
|
@ -2329,6 +2388,8 @@
|
|||
8C23BCB71D82AAC3005F19BB /* linphone.entitlements */,
|
||||
080E96DDFE201D6D7F000001 /* Classes */,
|
||||
61AE364C20C00B370089D9D3 /* linphoneExtension */,
|
||||
5EEE8F9C20C80C23006E4176 /* latestCallsWidget */,
|
||||
5E31290220D7A37E00CF3AAE /* latestChatroomsWidget */,
|
||||
29B97323FDCFA39411CA2CEA /* Frameworks */,
|
||||
F0938158188E629800A55DFA /* iTunesArtwork */,
|
||||
63058A0C1B4E821E00EFAE36 /* LiblinphoneTester */,
|
||||
|
|
@ -2419,6 +2480,7 @@
|
|||
F0181B6B18BF7B1200A9A357 /* SenTestingKit.framework */,
|
||||
2264B6D111200342002C2C53 /* SystemConfiguration.framework */,
|
||||
1DF5F4DF0D08C38300B7A737 /* UIKit.framework */,
|
||||
5EF0C33820C806A5005081B0 /* NotificationCenter.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
|
|
@ -2435,6 +2497,30 @@
|
|||
path = linphoneExtension;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
5E31290220D7A37E00CF3AAE /* latestChatroomsWidget */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
5E30780420D8F00D00256DAE /* latestChatroomsWidget.entitlements */,
|
||||
5E31290320D7A37E00CF3AAE /* TodayViewController.h */,
|
||||
5E31290420D7A37E00CF3AAE /* TodayViewController.m */,
|
||||
5E31290620D7A37E00CF3AAE /* MainInterface.storyboard */,
|
||||
5E31290920D7A37E00CF3AAE /* Info.plist */,
|
||||
);
|
||||
path = latestChatroomsWidget;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
5EEE8F9C20C80C23006E4176 /* latestCallsWidget */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
5EEE8FB320C81334006E4176 /* latestCallsWidget.entitlements */,
|
||||
5EEE8F9D20C80C23006E4176 /* TodayViewController.h */,
|
||||
5EEE8F9E20C80C23006E4176 /* TodayViewController.m */,
|
||||
5EEE8FA020C80C23006E4176 /* MainInterface.storyboard */,
|
||||
5EEE8FA320C80C23006E4176 /* Info.plist */,
|
||||
);
|
||||
path = latestCallsWidget;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
630589DD1B4E810900EFAE36 /* TestsLinphone */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
|
@ -2762,8 +2848,8 @@
|
|||
633FECA61D3CD5570014B822 /* edit_list_disabled.png */,
|
||||
633FECA71D3CD5570014B822 /* edit_list_disabled@2x.png */,
|
||||
633FECA81D3CD5570014B822 /* footer_chat_default.png */,
|
||||
633FECA91D3CD5570014B822 /* footer_chat_default@2x.png */,
|
||||
633FECAA1D3CD5570014B822 /* footer_chat_disabled.png */,
|
||||
633FECA91D3CD5570014B822 /* footer_chat_default@2x.png */,
|
||||
633FECAB1D3CD5570014B822 /* footer_chat_disabled@2x.png */,
|
||||
633FECAC1D3CD5570014B822 /* footer_contacts_default.png */,
|
||||
633FECAD1D3CD5570014B822 /* footer_contacts_default@2x.png */,
|
||||
|
|
@ -3220,12 +3306,14 @@
|
|||
1D60588F0D05DD3D006BFB54 /* Frameworks */,
|
||||
8CDC89061EAF89A8006B5652 /* Embed Frameworks */,
|
||||
8CB438A61EE6A65D0006F944 /* ShellScript */,
|
||||
61AE366220C00B370089D9D3 /* Embed App Extensions */,
|
||||
5EF0C35020C806A5005081B0 /* Embed App Extensions */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
61AE365520C00B370089D9D3 /* PBXTargetDependency */,
|
||||
5EEE8FA520C80C23006E4176 /* PBXTargetDependency */,
|
||||
5E31290B20D7A37E00CF3AAE /* PBXTargetDependency */,
|
||||
);
|
||||
name = linphone;
|
||||
productName = linphone;
|
||||
|
|
@ -3239,14 +3327,48 @@
|
|||
61AE364720C00B370089D9D3 /* Sources */,
|
||||
61AE364820C00B370089D9D3 /* Frameworks */,
|
||||
61AE364920C00B370089D9D3 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = linphoneExtension;
|
||||
productName = linphoneExtension;
|
||||
productReference = 61AE364B20C00B370089D9D3 /* linphoneExtension.appex */;
|
||||
productType = "com.apple.product-type.app-extension";
|
||||
};
|
||||
5E3128FF20D7A37E00CF3AAE /* latestChatroomsWidget */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 5E31290D20D7A37E00CF3AAE /* Build configuration list for PBXNativeTarget "latestChatroomsWidget" */;
|
||||
buildPhases = (
|
||||
5E3128FC20D7A37E00CF3AAE /* Sources */,
|
||||
5E3128FD20D7A37E00CF3AAE /* Frameworks */,
|
||||
5E3128FE20D7A37E00CF3AAE /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = linphoneExtension;
|
||||
productName = linphoneExtension;
|
||||
productReference = 61AE364B20C00B370089D9D3 /* linphoneExtension.appex */;
|
||||
name = latestChatroomsWidget;
|
||||
productName = latestChatroomsWidget;
|
||||
productReference = 5E31290020D7A37E00CF3AAE /* latestChatroomsWidget.appex */;
|
||||
productType = "com.apple.product-type.app-extension";
|
||||
};
|
||||
5EEE8F9920C80C23006E4176 /* latestCallsWidget */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 5EEE8FA720C80C24006E4176 /* Build configuration list for PBXNativeTarget "latestCallsWidget" */;
|
||||
buildPhases = (
|
||||
5EEE8F9620C80C23006E4176 /* Sources */,
|
||||
5EEE8F9720C80C23006E4176 /* Frameworks */,
|
||||
5EEE8F9820C80C23006E4176 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = latestCallsWidget;
|
||||
productName = latestCallsWidget;
|
||||
productReference = 5EEE8F9A20C80C23006E4176 /* latestCallsWidget.appex */;
|
||||
productType = "com.apple.product-type.app-extension";
|
||||
};
|
||||
F08F118319C09C6A007D70C2 /* liblinphoneTesterTests */ = {
|
||||
|
|
@ -3340,6 +3462,26 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
5E3128FF20D7A37E00CF3AAE = {
|
||||
CreatedOnToolsVersion = 9.4;
|
||||
DevelopmentTeam = Z2V957B3D6;
|
||||
ProvisioningStyle = Automatic;
|
||||
SystemCapabilities = {
|
||||
com.apple.ApplicationGroups.iOS = {
|
||||
enabled = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
5EEE8F9920C80C23006E4176 = {
|
||||
CreatedOnToolsVersion = 9.4;
|
||||
DevelopmentTeam = Z2V957B3D6;
|
||||
ProvisioningStyle = Automatic;
|
||||
SystemCapabilities = {
|
||||
com.apple.ApplicationGroups.iOS = {
|
||||
enabled = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
F08F118319C09C6A007D70C2 = {
|
||||
DevelopmentTeam = Z2V957B3D6;
|
||||
TestTargetID = F0BB8BD41936208100974404;
|
||||
|
|
@ -3392,6 +3534,8 @@
|
|||
F0BB8BD41936208100974404 /* liblinphoneTester */,
|
||||
F08F118319C09C6A007D70C2 /* liblinphoneTesterTests */,
|
||||
61AE364A20C00B370089D9D3 /* linphoneExtension */,
|
||||
5EEE8F9920C80C23006E4176 /* latestCallsWidget */,
|
||||
5E3128FF20D7A37E00CF3AAE /* latestChatroomsWidget */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
|
@ -3985,6 +4129,26 @@
|
|||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
61AE365220C00B370089D9D3 /* MainInterface.storyboard in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
5E3128FE20D7A37E00CF3AAE /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
5E31291A20D7AAAD00CF3AAE /* chat_group_avatar.png in Resources */,
|
||||
5E31291320D7AAA100CF3AAE /* avatar.png in Resources */,
|
||||
5E31290820D7A37E00CF3AAE /* MainInterface.storyboard in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
5EEE8F9820C80C23006E4176 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
5E10ED4920D006C9002BF6FE /* chat_group_avatar.png in Resources */,
|
||||
5E10ED4820D00630002BF6FE /* avatar.png in Resources */,
|
||||
5EEE8FA220C80C23006E4176 /* MainInterface.storyboard in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
@ -4215,6 +4379,22 @@
|
|||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
61AE364F20C00B370089D9D3 /* ShareViewController.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
5E3128FC20D7A37E00CF3AAE /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
5E31290520D7A37E00CF3AAE /* TodayViewController.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
5EEE8F9620C80C23006E4176 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
5EEE8F9F20C80C23006E4176 /* TodayViewController.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
@ -4261,6 +4441,16 @@
|
|||
target = 61AE364A20C00B370089D9D3 /* linphoneExtension */;
|
||||
targetProxy = 61AE365420C00B370089D9D3 /* PBXContainerItemProxy */;
|
||||
};
|
||||
5E31290B20D7A37E00CF3AAE /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = 5E3128FF20D7A37E00CF3AAE /* latestChatroomsWidget */;
|
||||
targetProxy = 5E31290A20D7A37E00CF3AAE /* PBXContainerItemProxy */;
|
||||
};
|
||||
5EEE8FA520C80C23006E4176 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = 5EEE8F9920C80C23006E4176 /* latestCallsWidget */;
|
||||
targetProxy = 5EEE8FA420C80C23006E4176 /* PBXContainerItemProxy */;
|
||||
};
|
||||
63058A4E1B4E832500EFAE36 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
name = KIF;
|
||||
|
|
@ -4297,6 +4487,22 @@
|
|||
name = MainInterface.storyboard;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
5E31290620D7A37E00CF3AAE /* MainInterface.storyboard */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
5E31290720D7A37E00CF3AAE /* Base */,
|
||||
);
|
||||
name = MainInterface.storyboard;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
5EEE8FA020C80C23006E4176 /* MainInterface.storyboard */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
5EEE8FA120C80C23006E4176 /* Base */,
|
||||
);
|
||||
name = MainInterface.storyboard;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
63058A0F1B4E821E00EFAE36 /* InfoPlist.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
|
|
@ -5157,6 +5363,165 @@
|
|||
name = Distribution;
|
||||
};
|
||||
61AE365720C00B370089D9D3 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CODE_SIGN_ENTITLEMENTS = linphoneExtension/linphoneExtension.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
DEVELOPMENT_TEAM = Z2V957B3D6;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
INFOPLIST_FILE = linphoneExtension/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.2;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.linphone.phone.linphoneExtension;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE = "";
|
||||
SKIP_INSTALL = YES;
|
||||
TARGETED_DEVICE_FAMILY = 1;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
61AE365820C00B370089D9D3 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CODE_SIGN_ENTITLEMENTS = linphoneExtension/linphoneExtension.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEVELOPMENT_TEAM = Z2V957B3D6;
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
INFOPLIST_FILE = linphoneExtension/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.2;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.linphone.phone.linphoneExtension;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
TARGETED_DEVICE_FAMILY = 1;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
61AE365920C00B370089D9D3 /* Distribution */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CODE_SIGN_ENTITLEMENTS = linphoneExtension/linphoneExtension.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEVELOPMENT_TEAM = Z2V957B3D6;
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
INFOPLIST_FILE = linphoneExtension/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.2;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.linphone.phone.linphoneExtension;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE = "";
|
||||
SKIP_INSTALL = YES;
|
||||
TARGETED_DEVICE_FAMILY = 1;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Distribution;
|
||||
};
|
||||
61AE365A20C00B370089D9D3 /* DistributionAdhoc */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CODE_SIGN_ENTITLEMENTS = linphoneExtension/linphoneExtension.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEVELOPMENT_TEAM = Z2V957B3D6;
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
INFOPLIST_FILE = linphoneExtension/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.2;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.linphone.phone.linphoneExtension;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE = "";
|
||||
SKIP_INSTALL = YES;
|
||||
TARGETED_DEVICE_FAMILY = 1;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = DistributionAdhoc;
|
||||
};
|
||||
5E31290E20D7A37E00CF3AAE /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
|
|
@ -5166,17 +5531,24 @@
|
|||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CODE_SIGN_ENTITLEMENTS = linphoneExtension/linphoneExtension.entitlements;
|
||||
CODE_SIGN_ENTITLEMENTS = latestChatroomsWidget/latestChatroomsWidget.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
DEVELOPMENT_TEAM = Z2V957B3D6;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/liblinphone-sdk/apple-darwin/Frameworks",
|
||||
);
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
|
|
@ -5187,19 +5559,20 @@
|
|||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
INFOPLIST_FILE = linphoneExtension/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.2;
|
||||
INFOPLIST_FILE = latestChatroomsWidget/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.linphone.phone.linphoneExtension;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.linphone.phone.widget.latestChatrooms;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE = "";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
TARGETED_DEVICE_FAMILY = 1;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
61AE365820C00B370089D9D3 /* Release */ = {
|
||||
5E31290F20D7A37E00CF3AAE /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
|
|
@ -5209,11 +5582,14 @@
|
|||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CODE_SIGN_ENTITLEMENTS = linphoneExtension/linphoneExtension.entitlements;
|
||||
CODE_SIGN_ENTITLEMENTS = latestChatroomsWidget/latestChatroomsWidget.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
|
|
@ -5221,23 +5597,29 @@
|
|||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEVELOPMENT_TEAM = Z2V957B3D6;
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/liblinphone-sdk/apple-darwin/Frameworks",
|
||||
);
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
INFOPLIST_FILE = linphoneExtension/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.2;
|
||||
INFOPLIST_FILE = latestChatroomsWidget/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.linphone.phone.linphoneExtension;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.linphone.phone.widget.latestChatrooms;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE = "";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
TARGETED_DEVICE_FAMILY = 1;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
61AE365920C00B370089D9D3 /* Distribution */ = {
|
||||
5E31291020D7A37E00CF3AAE /* Distribution */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
|
|
@ -5247,11 +5629,14 @@
|
|||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CODE_SIGN_ENTITLEMENTS = linphoneExtension/linphoneExtension.entitlements;
|
||||
CODE_SIGN_ENTITLEMENTS = latestChatroomsWidget/latestChatroomsWidget.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
|
|
@ -5259,24 +5644,29 @@
|
|||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEVELOPMENT_TEAM = Z2V957B3D6;
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/liblinphone-sdk/apple-darwin/Frameworks",
|
||||
);
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
INFOPLIST_FILE = linphoneExtension/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.2;
|
||||
INFOPLIST_FILE = latestChatroomsWidget/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.linphone.phone.linphoneExtension;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.linphone.phone.widget.latestChatrooms;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE = "";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
TARGETED_DEVICE_FAMILY = 1;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Distribution;
|
||||
};
|
||||
61AE365A20C00B370089D9D3 /* DistributionAdhoc */ = {
|
||||
5E31291120D7A37E00CF3AAE /* DistributionAdhoc */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
|
|
@ -5286,11 +5676,14 @@
|
|||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CODE_SIGN_ENTITLEMENTS = linphoneExtension/linphoneExtension.entitlements;
|
||||
CODE_SIGN_ENTITLEMENTS = latestChatroomsWidget/latestChatroomsWidget.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
|
|
@ -5298,19 +5691,216 @@
|
|||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEVELOPMENT_TEAM = Z2V957B3D6;
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/liblinphone-sdk/apple-darwin/Frameworks",
|
||||
);
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
INFOPLIST_FILE = linphoneExtension/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.2;
|
||||
INFOPLIST_FILE = latestChatroomsWidget/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.linphone.phone.linphoneExtension;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.linphone.phone.widget.latestChatrooms;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE = "";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
TARGETED_DEVICE_FAMILY = 1;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = DistributionAdhoc;
|
||||
};
|
||||
5EEE8FA820C80C24006E4176 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CODE_SIGN_ENTITLEMENTS = latestCallsWidget/latestCallsWidget.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
DEVELOPMENT_TEAM = Z2V957B3D6;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/liblinphone-sdk/apple-darwin/Frameworks",
|
||||
);
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
INFOPLIST_FILE = latestCallsWidget/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.linphone.phone.widget.latestCalls;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE = "";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
5EEE8FA920C80C24006E4176 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CODE_SIGN_ENTITLEMENTS = latestCallsWidget/latestCallsWidget.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEVELOPMENT_TEAM = Z2V957B3D6;
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/liblinphone-sdk/apple-darwin/Frameworks",
|
||||
);
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
INFOPLIST_FILE = latestCallsWidget/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.linphone.phone.widget.latestCalls;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE = "";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
5EEE8FAA20C80C24006E4176 /* Distribution */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CODE_SIGN_ENTITLEMENTS = latestCallsWidget/latestCallsWidget.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEVELOPMENT_TEAM = Z2V957B3D6;
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/liblinphone-sdk/apple-darwin/Frameworks",
|
||||
);
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
INFOPLIST_FILE = latestCallsWidget/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.linphone.phone.widget.latestCalls;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE = "";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Distribution;
|
||||
};
|
||||
5EEE8FAB20C80C24006E4176 /* DistributionAdhoc */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CODE_SIGN_ENTITLEMENTS = latestCallsWidget/latestCallsWidget.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEVELOPMENT_TEAM = Z2V957B3D6;
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/liblinphone-sdk/apple-darwin/Frameworks",
|
||||
);
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
INFOPLIST_FILE = latestCallsWidget/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.linphone.phone.widget.latestCalls;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE = "";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = DistributionAdhoc;
|
||||
|
|
@ -5968,6 +6558,28 @@
|
|||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
5E31290D20D7A37E00CF3AAE /* Build configuration list for PBXNativeTarget "latestChatroomsWidget" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
5E31290E20D7A37E00CF3AAE /* Debug */,
|
||||
5E31290F20D7A37E00CF3AAE /* Release */,
|
||||
5E31291020D7A37E00CF3AAE /* Distribution */,
|
||||
5E31291120D7A37E00CF3AAE /* DistributionAdhoc */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
5EEE8FA720C80C24006E4176 /* Build configuration list for PBXNativeTarget "latestCallsWidget" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
5EEE8FA820C80C24006E4176 /* Debug */,
|
||||
5EEE8FA920C80C24006E4176 /* Release */,
|
||||
5EEE8FAA20C80C24006E4176 /* Distribution */,
|
||||
5EEE8FAB20C80C24006E4176 /* DistributionAdhoc */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
C01FCF4E08A954540054247B /* Build configuration list for PBXProject "linphone" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue