factor out MRoomMemberTile, MCallInviteTile, MCallAnswerTile and MCallHangupTile to just use EventAsTextTile and thus reduce duplication enormously
							parent
							
								
									fec266f1c0
								
							
						
					
					
						commit
						001d1c50ef
					
				|  | @ -1,50 +0,0 @@ | |||
| /* | ||||
| Copyright 2015 OpenMarket Ltd | ||||
| 
 | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
| 
 | ||||
|     http://www.apache.org/licenses/LICENSE-2.0
 | ||||
| 
 | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
| */ | ||||
| 
 | ||||
| 'use strict'; | ||||
| 
 | ||||
| var React = require('react'); | ||||
| var MatrixClientPeg = require("../../../../../src/MatrixClientPeg"); | ||||
| var ComponentBroker = require('../../../../../src/ComponentBroker'); | ||||
| var MCallAnswerTileController = require("../../../../../src/controllers/molecules/voip/MCallAnswerTile"); | ||||
| var MessageTimestamp = ComponentBroker.get('atoms/MessageTimestamp'); | ||||
| 
 | ||||
| module.exports = React.createClass({ | ||||
|     displayName: 'MCallAnswerTile', | ||||
|     mixins: [MCallAnswerTileController], | ||||
| 
 | ||||
|     getAnswerText: function(event) { | ||||
|         var senderName = event.sender ? event.sender.name : "Someone"; | ||||
|         return senderName + " answered the call."; | ||||
|     }, | ||||
| 
 | ||||
|     render: function() { | ||||
|         // XXX: for now, just cheekily borrow the css from message tile...
 | ||||
|         return ( | ||||
|             <div className="mx_MessageTile mx_MessageTile_notice"> | ||||
|                 <div className="mx_MessageTile_avatar"> | ||||
|                     <MemberAvatar member={this.props.mxEvent.sender} /> | ||||
|                 </div>             | ||||
|                 <MessageTimestamp ts={this.props.mxEvent.getTs()} /> | ||||
|                 <span className="mx_SenderProfile"></span> | ||||
|                 <span className="mx_MessageTile_content"> | ||||
|                     {this.getAnswerText(this.props.mxEvent)} | ||||
|                 </span> | ||||
|             </div> | ||||
|         ); | ||||
|     }, | ||||
| }); | ||||
| 
 | ||||
|  | @ -1,50 +0,0 @@ | |||
| /* | ||||
| Copyright 2015 OpenMarket Ltd | ||||
| 
 | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
| 
 | ||||
|     http://www.apache.org/licenses/LICENSE-2.0
 | ||||
| 
 | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
| */ | ||||
| 
 | ||||
| 'use strict'; | ||||
| 
 | ||||
| var React = require('react'); | ||||
| var MatrixClientPeg = require("../../../../../src/MatrixClientPeg"); | ||||
| var ComponentBroker = require('../../../../../src/ComponentBroker'); | ||||
| var MCallHangupTileController = require("../../../../../src/controllers/molecules/voip/MCallHangupTile"); | ||||
| var MessageTimestamp = ComponentBroker.get('atoms/MessageTimestamp'); | ||||
| 
 | ||||
| module.exports = React.createClass({ | ||||
|     displayName: 'MCallHangupTile', | ||||
|     mixins: [MCallHangupTileController], | ||||
| 
 | ||||
|     getHangupText: function(event) { | ||||
|         var senderName = event.sender ? event.sender.name : "Someone"; | ||||
|         return senderName + " ended the call."; | ||||
|     }, | ||||
| 
 | ||||
|     render: function() { | ||||
|         // XXX: for now, just cheekily borrow the css from message tile...
 | ||||
|         return ( | ||||
|             <div className="mx_MessageTile mx_MessageTile_notice"> | ||||
|                 <div className="mx_MessageTile_avatar"> | ||||
|                     <MemberAvatar member={this.props.mxEvent.sender} /> | ||||
|                 </div>             | ||||
|                 <MessageTimestamp ts={this.props.mxEvent.getTs()} /> | ||||
|                 <span className="mx_SenderProfile"></span> | ||||
|                 <span className="mx_MessageTile_content"> | ||||
|                     {this.getHangupText(this.props.mxEvent)} | ||||
|                 </span> | ||||
|             </div> | ||||
|         ); | ||||
|     }, | ||||
| }); | ||||
| 
 | ||||
|  | @ -1,56 +0,0 @@ | |||
| /* | ||||
| Copyright 2015 OpenMarket Ltd | ||||
| 
 | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
| 
 | ||||
|     http://www.apache.org/licenses/LICENSE-2.0
 | ||||
| 
 | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
| */ | ||||
| 
 | ||||
| 'use strict'; | ||||
| 
 | ||||
| var React = require('react'); | ||||
| var MatrixClientPeg = require("../../../../../src/MatrixClientPeg"); | ||||
| var ComponentBroker = require('../../../../../src/ComponentBroker'); | ||||
| var MCallInviteTileController = require("../../../../../src/controllers/molecules/voip/MCallInviteTile"); | ||||
| var MessageTimestamp = ComponentBroker.get('atoms/MessageTimestamp'); | ||||
| 
 | ||||
| module.exports = React.createClass({ | ||||
|     displayName: 'MCallInviteTile', | ||||
|     mixins: [MCallInviteTileController], | ||||
| 
 | ||||
|     getInviteText: function(event) { | ||||
|         var senderName = event.sender ? event.sender.name : "Someone"; | ||||
|         // FIXME: Find a better way to determine this from the event?
 | ||||
|         var type = "voice"; | ||||
|         if (event.getContent().offer && event.getContent().offer.sdp && | ||||
|                 event.getContent().offer.sdp.indexOf('m=video') !== -1) { | ||||
|             type = "video"; | ||||
|         } | ||||
|         return senderName + " placed a " + type + " call."; | ||||
|     }, | ||||
| 
 | ||||
|     render: function() { | ||||
|         // XXX: for now, just cheekily borrow the css from message tile...
 | ||||
|         return ( | ||||
|             <div className="mx_MessageTile mx_MessageTile_notice"> | ||||
|                 <div className="mx_MessageTile_avatar"> | ||||
|                     <MemberAvatar member={this.props.mxEvent.sender} /> | ||||
|                 </div>             | ||||
|                 <MessageTimestamp ts={this.props.mxEvent.getTs()} /> | ||||
|                 <span className="mx_SenderProfile"></span> | ||||
|                 <span className="mx_MessageTile_content"> | ||||
|                     {this.getInviteText(this.props.mxEvent)} | ||||
|                 </span> | ||||
|             </div> | ||||
|         ); | ||||
|     }, | ||||
| }); | ||||
| 
 | ||||
|  | @ -75,7 +75,6 @@ require('../skins/base/views/molecules/MNoticeTile'); | |||
| require('../skins/base/views/molecules/MEmoteTile'); | ||||
| require('../skins/base/views/molecules/MImageTile'); | ||||
| require('../skins/base/views/molecules/MFileTile'); | ||||
| require('../skins/base/views/molecules/MRoomMemberTile'); | ||||
| require('../skins/base/views/molecules/RoomHeader'); | ||||
| require('../skins/base/views/molecules/MessageComposer'); | ||||
| require('../skins/base/views/molecules/ProgressBar'); | ||||
|  | @ -109,9 +108,6 @@ require('../skins/base/views/atoms/ImageView'); | |||
| require('../skins/base/views/molecules/voip/VideoView'); | ||||
| require('../skins/base/views/molecules/voip/CallView'); | ||||
| require('../skins/base/views/molecules/voip/IncomingCallBox'); | ||||
| require('../skins/base/views/molecules/voip/MCallInviteTile'); | ||||
| require('../skins/base/views/molecules/voip/MCallAnswerTile'); | ||||
| require('../skins/base/views/molecules/voip/MCallHangupTile'); | ||||
| require('../skins/base/views/molecules/EventAsTextTile'); | ||||
| require('../skins/base/views/molecules/MemberInfo'); | ||||
| require('../skins/base/views/organisms/ErrorDialog'); | ||||
|  |  | |||
|  | @ -67,10 +67,34 @@ function textForMessageEvent(ev) { | |||
|     return message; | ||||
| }; | ||||
| 
 | ||||
| function textForCallAnswerEvent(event) { | ||||
|     var senderName = event.sender ? event.sender.name : "Someone"; | ||||
|     return senderName + " answered the call."; | ||||
| }; | ||||
| 
 | ||||
| function textForCallHangupEvent(event) { | ||||
|     var senderName = event.sender ? event.sender.name : "Someone"; | ||||
|     return senderName + " ended the call."; | ||||
| }; | ||||
| 
 | ||||
| function textForCallInviteEvent(event) { | ||||
|     var senderName = event.sender ? event.sender.name : "Someone"; | ||||
|     // FIXME: Find a better way to determine this from the event?
 | ||||
|     var type = "voice"; | ||||
|     if (event.getContent().offer && event.getContent().offer.sdp && | ||||
|             event.getContent().offer.sdp.indexOf('m=video') !== -1) { | ||||
|         type = "video"; | ||||
|     } | ||||
|     return senderName + " placed a " + type + " call."; | ||||
| }; | ||||
| 
 | ||||
| var handlers = { | ||||
|     'm.room.message': textForMessageEvent, | ||||
|     'm.room.topic': textForTopicEvent, | ||||
|     'm.room.member': textForMemberEvent | ||||
|     'm.room.member': textForMemberEvent, | ||||
|     'm.call.invite': textForCallInviteEvent, | ||||
|     'm.call.answer': textForCallAnswerEvent, | ||||
|     'm.call.hangup': textForCallHangupEvent, | ||||
| }; | ||||
| 
 | ||||
| module.exports = { | ||||
|  |  | |||
|  | @ -1,21 +0,0 @@ | |||
| /* | ||||
| Copyright 2015 OpenMarket Ltd | ||||
| 
 | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
| 
 | ||||
|     http://www.apache.org/licenses/LICENSE-2.0
 | ||||
| 
 | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
| */ | ||||
| 
 | ||||
| 'use strict'; | ||||
| 
 | ||||
| module.exports = { | ||||
| }; | ||||
| 
 | ||||
|  | @ -1,20 +0,0 @@ | |||
| /* | ||||
| Copyright 2015 OpenMarket Ltd | ||||
| 
 | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
| 
 | ||||
|     http://www.apache.org/licenses/LICENSE-2.0
 | ||||
| 
 | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
| */ | ||||
| 
 | ||||
| 'use strict'; | ||||
| 
 | ||||
| module.exports = { | ||||
| }; | ||||
|  | @ -1,20 +0,0 @@ | |||
| /* | ||||
| Copyright 2015 OpenMarket Ltd | ||||
| 
 | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
| 
 | ||||
|     http://www.apache.org/licenses/LICENSE-2.0
 | ||||
| 
 | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
| */ | ||||
| 
 | ||||
| 'use strict'; | ||||
| 
 | ||||
| module.exports = { | ||||
| }; | ||||
|  | @ -1,20 +0,0 @@ | |||
| /* | ||||
| Copyright 2015 OpenMarket Ltd | ||||
| 
 | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
| 
 | ||||
|     http://www.apache.org/licenses/LICENSE-2.0
 | ||||
| 
 | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
| */ | ||||
| 
 | ||||
| 'use strict'; | ||||
| 
 | ||||
| module.exports = { | ||||
| }; | ||||
|  | @ -36,11 +36,11 @@ var Notifier = ComponentBroker.get('organisms/Notifier'); | |||
| 
 | ||||
| var tileTypes = { | ||||
|     'm.room.message': ComponentBroker.get('molecules/MessageTile'), | ||||
|     'm.room.member': ComponentBroker.get('molecules/MRoomMemberTile'), | ||||
|     'm.call.invite': ComponentBroker.get('molecules/voip/MCallInviteTile'), | ||||
|     'm.call.answer': ComponentBroker.get('molecules/voip/MCallAnswerTile'), | ||||
|     'm.call.hangup': ComponentBroker.get('molecules/voip/MCallHangupTile'), | ||||
|     'm.room.topic': ComponentBroker.get('molecules/EventAsTextTile'), | ||||
|     'm.room.member' : ComponentBroker.get('molecules/EventAsTextTile'), | ||||
|     'm.call.invite' : ComponentBroker.get('molecules/EventAsTextTile'), | ||||
|     'm.call.answer' : ComponentBroker.get('molecules/EventAsTextTile'), | ||||
|     'm.call.hangup' : ComponentBroker.get('molecules/EventAsTextTile'), | ||||
|     'm.room.topic'  : ComponentBroker.get('molecules/EventAsTextTile'), | ||||
| }; | ||||
| 
 | ||||
| var DateSeparator = ComponentBroker.get('molecules/DateSeparator'); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Matthew Hodgson
						Matthew Hodgson