| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284 |
- import flash.external.*;
- import gfx.controls.TextInput;
- import gfx.controls.Button;
- import mx.utils.Delegate;
- class Screens.PossibleFriendsScreen extends ScreenWithPageNavigator
- {
- private var targetHandleEditBox:TextInput;
- private var subjectEditBox:TextInput;
- private var bodyEditBox:TextInput;
- private var emailStatusEditBox:TextInput;
-
- private var sendInviteButton:Button;
- private var acceptInviteButton:Button;
- private var rejectInviteButton:Button;
-
- private var btnMyFriends:Button;
-
- private var mcProfileImage:MovieClip;
- private var tfUsername:TextField;
-
- private var mcMail:Mail;
-
- public function PossibleFriendsScreen()
- {
- ConsoleWindow.Trace("Constructing FriendScreen");
-
- mScreenId = ScreenID.POSSIBLE_FRIENDS;
- mScreenTabId = ScreenTab.ID_FRIENDS;
-
- mEntriesPerPage = 10;
- mFirstEntryX = 440;
- mFirstEntryY = -245;
- mDeltaY = 10;
- }
-
- public function VOnFinishedLoading():Void
- {
- //Add click event for buttons
- sendInviteButton.addEventListener("click", this, "ShowInvitationMail_Outgoing");
- //acceptInviteButton.addEventListener("click", this, "f2c_AcceptInvite");
- //rejectInviteButton.addEventListener("click", this, "f2c_RejectInvite");
- btnMyFriends.addEventListener("click", this, "ShowMyFriends");
-
- //Add callbacks for C++
- ExternalInterface.addCallback("c2f_SendInviteResult", this, c2f_SendInviteResult);
- ExternalInterface.addCallback("c2f_AcceptInviteResult", this, c2f_AcceptInviteResult);
- ExternalInterface.addCallback("c2f_RejectInviteResult", this, c2f_RejectInviteResult);
- ExternalInterface.addCallback("c2f_GetFriendInvites", this, c2f_GetFriendInvites);
- //ExternalInterface.addCallback("c2f_GetFriends", this, c2f_GetFriends);
-
- mcMail._visible = false;
-
- super.VOnFinishedLoading();
- }
-
- public function OnShow():Void
- {
- super.OnShow();
-
- if ( !mcProfileImage.mcImageContainer.mcImage )
- {
- var imageIndex:Number = LobbyInterface.Instance.GetProfileImageIndex();
- mcProfileImage.attachMovie( "ProfileImage" + imageIndex, "mcImage", mcProfileImage.getNextHighestDepth() );
- }
-
- tfUsername.text = LobbyInterface.Instance.GetUsername();
-
- if ( mMovieClipList.length > 0 )
- {
- CleanUpMoveClipList( mMovieClipList );
- }
-
- mMovieClipList = new Array();
- mCurrentPage = 0;
- GoToPage( 1 );
- f2c_GetFriendInvites();
- //mIsWaitingForResponseFromServer = false;
- }
-
- public function ShowInvitationMail_Outgoing():Void
- {
- mcMail.Clear();
- mcMail.SetButton( 1, "CANCEL", Delegate.create(this, HideMail) );
- mcMail.SetButton( 2, "SEND", Delegate.create(this, f2c_SendInvite) );
-
- mcMail.SetTitle( "ASK " + targetHandleEditBox.text + " TO BE FRIENDS:" );
- mcMail.SetToDisplayText( "TO:" );
- mcMail.SetToField( targetHandleEditBox.text );
- mcMail.DisableToField();
- mcMail.swapDepths( getNextHighestDepth() );
- mcMail._visible = true;
- }
-
- public function ShowInvitationMail_Incoming( username:String ):Void
- {
- mcMail.Clear();
- mcMail.SetButton( 1, "IGNORE", Delegate.create(this, HideMail) );
- mcMail.SetButton( 2, "BE FRIENDS", Delegate.create(this, f2c_AcceptInvite) );
- mcMail.SetButton( 3, "DECLINE", Delegate.create(this, f2c_RejectInvite) );
-
- mcMail.SetTitle( username + " WANTS TO BE YOUR FRIEND:" );
- mcMail.SetToDisplayText( "FROM:" );
- mcMail.SetToField( username );
- mcMail.DisableToField();
- mcMail.swapDepths( getNextHighestDepth() );
- mcMail._visible = true;
- }
-
- public function HideMail():Void
- {
- mcMail._visible = false;
- }
-
- public function f2c_SendInvite():Void
- {
- ConsoleWindow.Trace("Attempting to send invitation: name = " + mcMail.GetToField() + ", subject = " + mcMail.GetSubjectField() + ", msg = " + mcMail.GetMsgField());
- ExternalInterface.call("f2c_SendInvite", mcMail.GetToField(), mcMail.GetSubjectField(), mcMail.GetMsgField(), "0");
- HideMail();
- }
- public function c2f_SendInviteResult(resultIdentifier:String):Void
- {
- switch (resultIdentifier)
- {
- case "Friends_SendInvite_UNKNOWN_TARGET_HANDLE":
- break;
- case "Friends_SendInvite_CANNOT_PERFORM_ON_SELF":
- break;
- case "DATABASE_CONSTRAINT_FAILURE":
- break;
- case "Friends_SendInvite_ALREADY_SENT_INVITE":
- break;
- case "Friends_SendInvite_ALREADY_FRIENDS":
- break;
- case "SUCCESS":
- ConsoleWindow.Trace("c2f_SendInviteResult: " + resultIdentifier);
- break;
- }
-
- if ( resultIdentifier != "SUCCESS" )
- {
- LobbyInterface.Instance.CreateMessageBox( resultIdentifier );
- }
- }
- public function f2c_AcceptInvite():Void
- {
- ConsoleWindow.Trace("f2c_AcceptInvite: name = " + mcMail.GetToField() + ", subject = " + mcMail.GetSubjectField() + ", msg = " + mcMail.GetMsgField());
- ExternalInterface.call("f2c_AcceptInvite", mcMail.GetToField(), mcMail.GetSubjectField(), mcMail.GetMsgField(), "0");
- HideMail();
- }
- public function c2f_AcceptInviteResult(resultIdentifier:String):Void
- {
- switch (resultIdentifier)
- {
- case "Friends_AcceptInvite_UNKNOWN_TARGET_HANDLE":
- break;
- case "Friends_AcceptInvite_CANNOT_PERFORM_ON_SELF":
- break;
- case "DATABASE_CONSTRAINT_FAILURE":
- break;
- case "Friends_AcceptInvite_NO_INVITE":
- break;
- case "Friends_AcceptInvite_NO_INVITE":
- break;
- case "SUCCESS":
- ConsoleWindow.Trace("c2f_AcceptInviteResult: " + resultIdentifier);
- break;
- }
-
- if ( resultIdentifier != "SUCCESS" )
- {
- LobbyInterface.Instance.CreateMessageBox( resultIdentifier );
- }
- }
- public function f2c_RejectInvite():Void
- {
- ConsoleWindow.Trace("f2c_RejectInvite: name = " + mcMail.GetToField() + ", subject = " + mcMail.GetSubjectField() + ", msg = " + mcMail.GetMsgField());
- ExternalInterface.call("f2c_RejectInvite", mcMail.GetToField(), mcMail.GetSubjectField(), mcMail.GetMsgField(), "0");
- HideMail();
- }
- public function c2f_RejectInviteResult(resultIdentifier:String):Void
- {
- switch (resultIdentifier)
- {
- case "Friends_RejectInvite_UNKNOWN_TARGET_HANDLE":
- break;
- case "Friends_RejectInvite_CANNOT_PERFORM_ON_SELF":
- break;
- case "DATABASE_CONSTRAINT_FAILURE":
- break;
- case "Friends_RejectInvite_NO_INVITE":
- break;
- case "SUCCESS":
- ConsoleWindow.Trace("c2f_RejectInviteResult = " + c2f_RejectInviteResult);
- break;
- }
-
- if ( resultIdentifier != "SUCCESS" )
- {
- LobbyInterface.Instance.CreateMessageBox( resultIdentifier );
- }
- }
- public function f2c_GetFriendInvites():Void
- {
- ExternalInterface.call("f2c_GetFriendInvites");
- }
-
- public function c2f_GetFriendInvites():Void
- {
- ConsoleWindow.Trace("c2f_GetFriendInvites...");
- var invitesSent:Number = arguments[0];
- var invitesReceived:Number = arguments[1];
- for (var i:Number = 0; i < invitesSent; i++)
- {
- var handleOfUserInviteSentTo:String = arguments[2+i];
- ConsoleWindow.Trace("invite sent to: " + handleOfUserInviteSentTo);
- AddListEntry( handleOfUserInviteSentTo, "INVITED" );
- }
-
- for (var i:Number = 0; i < invitesReceived; i++)
- {
- var handleOfUserInviteReceivedFrom:String = arguments[2+i+invitesSent];
- ConsoleWindow.Trace("invite received from: " + handleOfUserInviteReceivedFrom);
- AddListEntry( handleOfUserInviteReceivedFrom, "REQUESTED" );
- }
-
- //TODO: remove this once c++ sends down proper data
- for ( var n:Number = 0; n < 5; n++ )
- {
- AddListEntry( "possible friend" + mMovieClipList.length, "REQUESTED" );
- }
-
- OnMoveClipListUpdated();
- ShowPage(1);
- }
-
- public function InviteFriend( _username:String, _profileImageIndex:Number ):Void
- {
- AddListEntry( _username );
- RefreshPage();
- OnMoveClipListUpdated();
- }
-
- public function RemovePendingEntry( friendEntry:MovieClip ):Void
- {
- //TODO: should we notify c++ that en entry is removed here?
- RemoveEntryFromList( friendEntry, mMovieClipList );
- }
-
- private function AddListEntry( usernameToAdd:String, inviteText:String ):MovieClip
- {
- var userEntry:MovieClip = attachMovie("MyFriendsListEntry", "mcFriendEntry" + mMovieClipList.length, getNextHighestDepth() );
- userEntry._visible = false;
- userEntry.tfUsername.text = usernameToAdd;
- userEntry.tfInvitation.text = inviteText;
- mMovieClipList.push( userEntry );
-
- var self:PossibleFriendsScreen = this;
- userEntry.mcDelete.onPress = function() { self.RemovePendingEntry( this._parent ); }
- if ( inviteText == "REQUESTED" )
- {
- userEntry.mcMail.onPress = function() { self.ShowInvitationMail_Incoming( this._parent.tfUsername.text ); }
- }
- return userEntry;
- }
-
- private function ShowMyFriends():Void
- {
- LobbyInterface.Instance.ShowScreen( ScreenID.FRIENDS );
- }
-
- private function OnShowMovieClipEntry( mcEntry:MovieClip, index:Number ):Void
- {
- super.OnShowMovieClipEntry( mcEntry, index );
- //mcEntry.tfInvitation._visible = false;
- }
- }
|