Exemplo n.º 1
0
			function(status, data){
				
				if ( data.RESULT && data.RESULT == 'OK'){
					
					var myData = app.wrk.GetMyData();
					
					roomId = data.RESPONSE.ROOM;
					
					Ti.API.info( "チャット登録自分 "+JSON.stringify(myData) );
					
					// 自分のデータをルームメンバーの先頭に
					members.push({ID:myData.ID, NAME:myData.NAME, LALTITUDE:myData.LALTITUDE, LONGITUDE:myData.LONGITUDE, ICON:myData.ICON, USERNAME:myData.USERNAME});
					
					// ルームのメンバーリスト作成
					mems.forEach(function(m){

						app.connect.WhoIs(
							m.ID,
							function(status, data){
						
								var m = data.RESPONSE;
						
								members.push({ID:m.ID, NAME:m.NAME, LALTITUDE:m.LALTITUDE, LONGITUDE:m.LONGITUDE, ICON:m.ICON, USERNAME:m.USERNAME});
							},
							function(error){
								Ti.API.info("取得エラー " +id);
							}
						);
					});
//					Ti.API.info('chat members data '+JSON.stringify(members));										
//					app.connect.InviteChat(roomId,mems[0].ID,
	//					function(status, data){
//							Ti.API.info('チャット相手招待成功' + data.RESULT );
							
							// ログファイルの作成
							makeLogFile(roomId, mems);
							logs = list.createList(win);
				
							win.add(textField);
							win.add(sendBtn);
							win.add(logs);
							win.add(optBtn);
							
							Ti.App.addEventListener('chat_receive', function(e){
								addDisplayLog(logs, e.data);
							});
							
							// 初期メッセージ登録
							addDisplayLog(logs, [{ROOM:roomId, FROM:app.wrk.GetUID(), MESSAGE:'', MSGTYPE:3}]);

							win.open();
//						},
//						function(error){
//							Ti.API.info('チャット相手招待失敗 '+error);							
//						}
//					);
				}
			},
Exemplo n.º 2
0
var makeWindow = function(){
	
		var scale = app.wrk.GetScale();
		
		win = Ti.UI.createWindow({
			backgroundColor: '#2E8B57',
		});
//       var win = Ti.UI.currentWindow;
       
        var optBtn = Ti.UI.createButton({
        	bottom:    	2,
        	left:	  	0,
        	title:  	'機能'
		});
        
        var sendBtn = Ti.UI.createButton({
              	bottom:	2,
            	right:	2,
				title:	"送信"
		});
        var textField = Ti.UI.createTextField({
            bottom:        0,
            left:          50*scale,
            right:         50*scale,
//          height:        80,
//          width:               280,
//          color:         '#336699',
            hintText:      "入力してください" ,
            keyboardType:  Titanium.UI.KEYBOARD_DEFAULT,
            returnKeyType: Titanium.UI.RETURNKEY_DEFAULT,
			borderStyle:   Titanium.UI.INPUT_BORDERSTYLE_ROUNDED
		});
		optBtn.addEventListener( 'click', function (){
              talkopt.createWindow(roomId, app, members);
       });
       
       sendBtn.addEventListener( 'click', function (){
               if ( textField.value && roomId && sendEnable ){
                     
                     sendEnable = false;
                     
                     app.connect.SendChatMsg(
                           roomId,
                           textField.value,
                           // 送信完了
                            function(status , data){
                            	
                            	//チャット相手全員にメッセージング処理
                            	members.forEach(function(data){
									app.wrk.sipclient.sendMessage(""+data.USERNAME, "chatupdate");
                            	});
								
                                textField.value = '';
                                sendEnable = true;
                           },
                            function(error ){
                                  sendEnable = true;
                           }
                     );
                     
                     textField.blur();
              }
       });
        // ログファイル検索
       logfile = getLogFile(members);
       
        // ログファイルがあるなら状態を復帰
        if ( logfile ){
              messageLog = list.createList(win);
              
              recoverLog(messageLog, logFile);
                           
              
              Ti.App.addEventListener( 'chat_receive', function (e){
                     addDisplayLog(messageLog, e.data);
              });
       } else{
               // ログファイルの作成
              makeLogFile(roomId, members);
              messageLog = list.createList(win);
                           
              Ti.App.addEventListener( 'chat_receive', function (e){
                     addDisplayLog(messageLog, e.data);
              });
       }      
//		addDisplayLog(logs, rooms);
       
       	win.add(textField);
       	win.add(sendBtn);
       	win.add(optBtn);
		win.add(messageLog);
		
		// ウィンドウが多重に開いているようなので対処予定
       win.open();
	}
Exemplo n.º 3
0
exports.CreateRoomWindow = function(mems){
	
	var logs;
	
	var scale 	= app.wrk.GetScale();
	
	win = Ti.UI.createWindow({
		backgroundColor: '#2E8B57',
	});
	
	var optBtn = Ti.UI.createButton({
		bottom:		2,
		left:		0,
		title:		'機能'
	});
	var sendBtn = Ti.UI.createButton({
		bottom:			2,
		right:			0,
		title:			"送信"
	});
	var textField = Ti.UI.createTextField({
		bottom:        2,
		left:           50*scale,
		right:         50*scale,
//		height:        80,
//		width:			280,
//		color:         '#336699',
		hintText:      "入力してください",
		keyboardType:  Titanium.UI.KEYBOARD_DEFAULT,
		returnKeyType: Titanium.UI.RETURNKEY_DEFAULT,
		borderStyle:   Titanium.UI.INPUT_BORDERSTYLE_ROUNDED
	});		
	optBtn.addEventListener('click', function(){		
        talkopt.createWindow(roomId, app, members);
	});
	
	sendBtn.addEventListener('click', function(){
		if ( textField.value && roomId && sendEnable ){
			
			sendEnable = false;
			
			app.connect.SendChatMsg(
				roomId,
				textField.value,
				function(status, data){
					
                   	//チャット相手全員にメッセージング処理
                   	members.forEach( function(data){
						app.wrk.sipclient.sendMessage(data.USERNAME, 'chatupdate');
                   	});

					textField.value = '';
					sendEnable = true;
				},
				function(error){
					sendEnable = true;
				}
			);
			
			textField.blur();
		}
	});
	// ログファイル検索
	logfile = getLogFile(mems);
	
	// ログファイルがあるなら状態を復帰
	if ( logfile ){
		logs = list.createList(win);
		
		recoverLog(logs, logFile);
				
		win.add(textField);
		win.add(sendBtn);
		win.add(optBtn);
		win.add(logs);
		
		Ti.App.addEventListener('chat_receive', function(e){
			addDisplayLog(logs, e.data);
		});

		win.open();
	}else{
		// ルームを作成(ルームは1:1でしか作れないので最初の一人を使う)
		// 20120901 拡張済み。10人まで指定できる
		var memList=[];
		
		mems.forEach(function(mem){
			memList.push(mem.ID);
		});
		app.connect.CreateChat(memList,
			function(status, data){
				
				if ( data.RESULT && data.RESULT == 'OK'){
					
					var myData = app.wrk.GetMyData();
					
					roomId = data.RESPONSE.ROOM;
					
					Ti.API.info( "チャット登録自分 "+JSON.stringify(myData) );
					
					// 自分のデータをルームメンバーの先頭に
					members.push({ID:myData.ID, NAME:myData.NAME, LALTITUDE:myData.LALTITUDE, LONGITUDE:myData.LONGITUDE, ICON:myData.ICON, USERNAME:myData.USERNAME});
					
					// ルームのメンバーリスト作成
					mems.forEach(function(m){

						app.connect.WhoIs(
							m.ID,
							function(status, data){
						
								var m = data.RESPONSE;
						
								members.push({ID:m.ID, NAME:m.NAME, LALTITUDE:m.LALTITUDE, LONGITUDE:m.LONGITUDE, ICON:m.ICON, USERNAME:m.USERNAME});
							},
							function(error){
								Ti.API.info("取得エラー " +id);
							}
						);
					});
//					Ti.API.info('chat members data '+JSON.stringify(members));										
//					app.connect.InviteChat(roomId,mems[0].ID,
	//					function(status, data){
//							Ti.API.info('チャット相手招待成功' + data.RESULT );
							
							// ログファイルの作成
							makeLogFile(roomId, mems);
							logs = list.createList(win);
				
							win.add(textField);
							win.add(sendBtn);
							win.add(logs);
							win.add(optBtn);
							
							Ti.App.addEventListener('chat_receive', function(e){
								addDisplayLog(logs, e.data);
							});
							
							// 初期メッセージ登録
							addDisplayLog(logs, [{ROOM:roomId, FROM:app.wrk.GetUID(), MESSAGE:'', MSGTYPE:3}]);

							win.open();
//						},
//						function(error){
//							Ti.API.info('チャット相手招待失敗 '+error);							
//						}
//					);
				}
			},
			function(error){
			}
		);
	}
	
	Ti.App.addEventListener('chat_close',function(){
		win.close();
	});
}