◎위챗 : speedseoul
Account.plist
Advanced.plist
Audio.plist
Call.plist
Chat.plist
Network.plist
Root.plist
Tunnel.plist
Video.plist
- (void)applicationWillEnterForeground:(UIApplication *)application {
LOGI(@"%@", NSStringFromSelector(_cmd));
[LinphoneManager.instance startLinphoneCore];<<--------
[LinphoneManager.instance.fastAddressBook reloadFriends];
[NSNotificationCenter.defaultCenter postNotificationName:kLinphoneMessageReceived object:nil];
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { |
[LinphoneManager.instance launchLinphoneCore];
- (void)processPush:(NSDictionary *)userInfo { |
[LinphoneManager.instance launchLinphoneCore];
@ SettingsView.m 는 설정의 뷰콘트롤러 보이는분분 콘트롤
셋팅을 터치하고 셋팅뷰콘트롤러(셋팅화면)열리면
#import "SettingsView.h"
#import "LinphoneManager.h"
#import "LinphoneAppDelegate.h"
#import "PhoneMainView.h"
#import "Utils.h"
#import "DCRoundSwitch.h"
#import "IASKSpecifierValuesViewController.h"
#import "IASKPSTextFieldSpecifierViewCell.h"
#import "IASKPSTitleValueSpecifierViewCell.h"
#import "IASKSpecifier.h"
#import "IASKTextField.h"
#include "linphone/lpconfig.h"
- (void)settingsViewControllerWillAppear:(IASKAppSettingsViewController *)sender {
isRoot = (sender.file == nil || [sender.file isEqualToString:@"Root"]);
_titleLabel.text = sender.title;
// going to account: fill account specific info
// account.plist
if ([sender.file isEqualToString:@"Account"]) {
LOGI(@"Going editing account %@", sender.title);
// 어카운트 로드 transformAccountToKeys
[settingsStore transformAccountToKeys:sender.title];
//주소록이면
} else if ([sender.file isEqualToString:@"Contacts"]) {
[settingsStore synchronize];
[self recomputeLdapLabelsAndSync];
} else if ([sender.file isEqualToString:@"LDAP"]) {
LOGI(@"Going editing LDAP config %@", sender.title);
[settingsStore transformLdapToKeys:sender.title];
//root.plist 이면
} else if ([sender.file isEqualToString:@"Root"]) { // coming back to default: if we were in account, we must synchronize account now
//값을 가져온다
[settingsStore synchronize];//공통설정값을 맞춘다
[self recomputeAccountLabelsAndSync];//어카운트설정값을맞춘다
}
}
@ LinphoneCoreSettingsStore.m 는 설정의 값을 설정하는 부분
setting 뷰에 설정한 값을 key key value 에 저장 정장된 값을 가져와 코어에 설정
사이드메뉴 --> 셋팅즈뷰콘트롤러 -->07077522900 (어카운트) --> 어카운트 뷰콘트롤러 설정값
셋팅스콘트롤러뷰를 열고 값을 설정해주면 LinphoneCore에 설정된다
LinphoneCore에 설정한 값을 가져와서 해당하는 Keys 에 저장 키값 저장한다
설정한 키값과 키를 저장한다
- (void)transformLinphoneCoreToKeys {
// root section
// account section
{ [self transformAccountToKeys:nil]; }
// root
// account
// audio section
// video section
// call section
// chat section
// network section
// tunnel section
// contacts section
// advanced section
// Post event
어커운트콘트롤러뷰를 열고 설정하는값 처리
어카운트메뉴에 설정한값을 해당하는 각각의값을 각각의 키에 저장한다.
- (void)transformAccountToKeys:(NSString *)username { //
while 으로 username 이존재하면 존재하지않으면 디폴트값으로 저장후 설정값을 가져와 해당하는 키에 값을 저장한다
- (BOOL)synchronize {
if (account_changed)
[self synchronizeAccounts];
// audio section
[self synchronizeCodecs:linphone_core_get_audio_codecs(LC)];
if (ldap_changed)
[self synchronizeLdap];
synchronize 를 구동시켜 저장된키에서 값을 가져와 코어밸류를 set 시킨다
Classes/Utils/InAppSettingsKit/Controllers/IASKSpecifierValuesViewController.m
[self.settingsStore synchronize];