コード例 #1
0
ファイル: LoginHandlerV2.cs プロジェクト: TAPeri/WordsMatter
    private void downloader(bool first)
    {
        #if UNITY_ANDROID && !UNITY_EDITOR

        if(GooglePlayDownloader.RunningOnAndroid())//Only on Android
        {
            if(first)
                new GooglePlayDownloader();

            string expPath = GooglePlayDownloader.GetExpansionFilePath();
            if (expPath == null)
            {

                obbError = LocalisationMang.translate("Could not download OBB file: external storage is not available");
                connection = null;
                return;

            }
            else
            {
                string mainPath = GooglePlayDownloader.GetMainOBBPath(expPath);
                string patchPath = GooglePlayDownloader.GetPatchOBBPath(expPath);

                if (mainPath == null || patchPath == null){
                    /*if(!fetching){
                                fetching = true;
                                GooglePlayDownloader.FetchOBB();
                            }*/
                    return;
                }
            }
        }
        #endif
    }
コード例 #2
0
ファイル: WaiterScript.cs プロジェクト: TAPeri/WordsMatter
    private void proceedToNextTask()
    {
        bool canProceed = false;

        if(currIndex < (routineList.Count-1))
        {
            currIndex++;
            bool foundNext = false;
            while(! foundNext)
            {
                if(currIndex >= routineList.Count)
                {
                    break;
                }
                else if(routineList[currIndex] != null)
                {
                    currRoutine = routineList[currIndex];
                    foundNext = true;
                    canProceed = true;
                    break;
                }
                else
                {
                    currIndex++;
                }
            }
        }

        if( ! canProceed)
        {
            notifyAllListeners("WaiterScript","AllDone",null);
            Destroy(this);
        }
    }
コード例 #3
0
 public void setUserDetails(string un,string ID,LanguageCode l)
 {
     username = un;
     userID = ID;
     language = l;
     state = 1;
     loading_status = new ConnectionError("Data assigned",RoutineStatus.IDLE);
 }
コード例 #4
0
ファイル: WaiterScript.cs プロジェクト: TAPeri/WordsMatter
 public void init(List<GetRoutine> para_waitList)
 {
     routineList = para_waitList;
     if(routineList != null)
     {
         currRoutine = routineList[0];
     }
 }
コード例 #5
0
ファイル: ILearnRWServer.cs プロジェクト: TAPeri/WordsMatter
    public GetRoutine errorHandler(GetRoutine error)
    {
        if (error.getError().Contains("401")){
            //Need to refresh token
            return requestRefreshAuthentication();

        }else if (error.getError().Contains("403")){
            //Need to refresh token
            return new ConnectionError("Wrong username or password",RoutineStatus.ERROR);

        }else if (error.getError().Contains("Could not resolve host" )||(error.getError().Contains("couldn't connect to host" ))){

            return new ConnectionError("No internet connection",RoutineStatus.ERROR);

        }else{

            return error;
        }
    }
コード例 #6
0
ファイル: ProgressScript.cs プロジェクト: TAPeri/WordsMatter
    //Request recommendation from the server and call actiivtyLaunced
    public void launchSurpriseQuest(int la, int diff)
    {
        launcherMode = Mode.PLAY;
        launcherDetails = "Album";

        recommendationRequests = wvServCom.requestSuggestion(la,diff);
        deactivateWVInterface();
        worldView.setLoadingIconVisibility(true);
    }
コード例 #7
0
ファイル: LoginHandlerV2.cs プロジェクト: TAPeri/WordsMatter
    //int status = 0;
    void Update()
    {
        if (connection!=null){
            //server_script
            if((connection.status()==RoutineStatus.READY ) ){//||(connection.status()==RoutineStatus.IDLE)

                UserLogNoTimestamp log = new UserLogNoTimestamp(userLoginData.username,ApplicationID.LOGGING_SCREEN,Tag.LOGIN);
                log.setValue("Connected");
                server_script.logData(log);//Log successfull log in//also change the status of the connection to IDLE//Maybe too late
                connection = new ConnectionError("Connected",RoutineStatus.IDLE);
                wvServCom =  server.AddComponent<WorldViewServerCommunication>();//This script will launch on Awake a request User Details
                acServCom = server.AddComponent<ActivityServerCommunication>();

            }else if(connection.status()==RoutineStatus.ERROR){

                connectingInProgressFlag = false;

                setConnectButtonVisibility(true);

                GetRoutine  server_response = server_script.errorHandler(connection);

                UserLogNoTimestamp log = new UserLogNoTimestamp(userLoginData.username,ApplicationID.LOGGING_SCREEN,Tag.LOGIN);
                log.setValue(server_response.getError());

                server_script.logData(log);//Log fail log in

                error = server_response.getError();
                connection = null;
                return;
            }else if(connection.status()==RoutineStatus.WAIT){
                //GUI.Label(new Rect(20,220,500,20), "Connecting...");
                return;
            }
        }else
            return;

        downloader(false);

        if(wvServCom.Loading().status()==RoutineStatus.READY){

            message = "Loading saved data";
            SaveFileManager.loadSaveFromPlayerDownload(wvServCom.loadSavefile(),wvServCom.language,WorldViewServerCommunication.userProfile.getLiteracyProfile());//status changes to IDLE

            acServCom.setUserDetails(wvServCom.getUsername(),wvServCom.getUserID(),wvServCom.language);

            BinaryFormatter bf = new BinaryFormatter();
            FileStream file = File.Create (Application.persistentDataPath + "/username.gd");
            userLoginData.language = LocalisationMang.langCode;
            bf.Serialize(file, userLoginData);
            file.Close();

            Debug.LogWarning("Removed the flip between Milton and Monica");

            WorldViewServerCommunication.clearError();

            Application.LoadLevel("PlayerCustomisationScene");

        }else if(wvServCom.Loading().status()==RoutineStatus.WAIT){
            return;
        }else if(wvServCom.Loading().status()==RoutineStatus.ERROR){

            error = wvServCom.Loading().getError();
            connectingInProgressFlag = false;

            //loading = false;
            //askedForSaveFile = false;
            //loadedSaveFlag = false;
            setConnectButtonVisibility(true);
            connection = null;
        }
    }
コード例 #8
0
ファイル: ProgressScript.cs プロジェクト: TAPeri/WordsMatter
    void Update()
    {
        switch(loading){

            case -1:
                if(wvServCom.Loading().status()==RoutineStatus.READY){

                SaveFileManager.loadSaveFromPlayerDownload(wvServCom.loadSavefile(),wvServCom.language,WorldViewServerCommunication.userProfile.getLiteracyProfile());//status changes to IDLE
                    acServCom.setUserDetails(wvServCom.getUsername(),wvServCom.getUserID(),wvServCom.language);

                    loading = 0;
                }else if(wvServCom.Loading().status()!=RoutineStatus.WAIT){
                    Debug.LogWarning("TODO: Server could not be initialised");
                }
                break;
            case 0://WAIT UNTIL UPDATE POP UPS ARE DO

                break;

            case 1:
                SaveFileManager.saveGameStateToServer(wvServCom);
                events = false;
                news = false;
                suggestionStatus = wvServCom.requestSuggestion();
                newsfeedDownloadStatus = wvServCom.requestNewsfeed(1);

                loading = 2;

                break;

            case 2://WAIT for suggestions

            //Keeps track of suggestions
                if(suggestionStatus.status()==RoutineStatus.READY)
                {

                    createEvents(wvServCom.loadDifficultyAndActivity());//status changes to IDLE
                    events = true;

                }else if(suggestionStatus.status()==RoutineStatus.ERROR){
                    events = true;

                }

                //Keep track of newsfeed
                if(newsfeedDownloadStatus.status() == RoutineStatus.READY)
                {
                // Fill up the local newsfeed.
                    fillupLocalNewsfeedWithServNewsfeed(wvServCom.getNewsfeed());//Status is changed to IDLE
                    news = true;
                }else if(newsfeedDownloadStatus.status() == RoutineStatus.ERROR){

                    //Could not get news feed
                    fillupLocalNewsfeedWithServNewsfeed(new UserLog[0]);
                    news = true;

                }

                if(news&events)
                    loading = 3;

                break;

            case 3:

                if(unlockingCharacters ||  unlockingLocations ||unlockingDifficulty)//wait until unlock pop ups are done
                    break;

                //longInititalisation();

                activateWVInterface(false);

                worldView.setLoadingIconVisibility(false);

                loading = 4;

                break;

        }

        if(loading>3){//Loaded

            if(recommendationRequests!=null){//Need data for surprise activity (waiting for recommendation)

                if(recommendationRequests.status()==RoutineStatus.READY){

                    worldView.setLoadingIconVisibility(false);

                    List<PackagedNextActivity> activity = wvServCom.loadDifficultyAndActivity();
                    List<ApplicationID> availableAcsInWorld = gbMang.getAvailableActivities();

                    if (activity.Count>0){

                        foreach(PackagedNextActivity a in activity){

                            for(int i=0;i<a.activity.Length;i++){//Different ouptions

                                ApplicationID activityID = a.getActivities()[i];
                                if(availableAcsInWorld.Contains(activityID)){

                                    int activityOwner = LocalisationMang.getOwnerNpcOfActivity(activityID);

                                    ExternalParams extParams = new ExternalParams(activityID, gbMang.getNpcIDForLangAreaDifficulty(a.category,a.index) ,a.category,a.index,a.level[i],false);

                                    this.launchQuest(extParams,activityOwner ,launcherDetails,launcherMode);

                                    recommendationRequests = null;
                                    return;

                                }
                            }
                        }
                    }

                    //WorldViewServerCommunication.setError("Server could not recommend an activity");
                    activateWVInterface();
                    recommendationRequests = null;

                    /*ApplicationID reqAcPKey = LocalisationMang.getRandomApplicableActivityPKeyForLangArea(surpriseActivity[0],new List<ApplicationID>());
                    int activityOwnerDefault = LocalisationMang.getOwnerNpcOfActivity(reqAcPKey);

                    ExternalParams extParamsDefault = new ExternalParams(reqAcPKey,gbMang.getNpcIDForLangAreaDifficulty(surpriseActivity[0],surpriseActivity[1]),surpriseActivity[0],surpriseActivity[1],LocalisationMang.requestLevelStatic(reqAcPKey, surpriseActivity[0],surpriseActivity[1], 0),false);
                    */

                }else if(recommendationRequests.status()==RoutineStatus.ERROR){

                    UnityEngine.Debug.LogError("Server error when retrieving recommendation");//Error window should appear automatically

                    worldView.setLoadingIconVisibility(false);
                    activateWVInterface();
                    recommendationRequests = null;

                }

            }

            if(startRequested){

                if(acServCom.Loading().status() == RoutineStatus.READY){
                    startRequested = false;
                    worldView.setLoadingIconVisibility(false);
                    handleImmediateActivityStart();

                }else if(acServCom.Loading().status() == RoutineStatus.ERROR){

                    //Error message automatic
                    abortQuest();
                }

            }

        }
    }
コード例 #9
0
ファイル: LoginHandlerV2.cs プロジェクト: TAPeri/WordsMatter
    void Start()
    {
        gameObject.AddComponent<AudioSource>();

        if(File.Exists(Application.persistentDataPath + "/username.gd")) {
            BinaryFormatter bf = new BinaryFormatter();
            FileStream file = File.Open(Application.persistentDataPath + "/username.gd", FileMode.Open);
            try{
                userLoginData = (UserLoginData)bf.Deserialize(file);
            }catch(System.Exception ex){
                Debug.LogError(ex.Message);
                userLoginData = new UserLoginData("SmartEnglish","test","englishteacher","test",LanguageCode.EN);
            }
            file.Close();
        }else{

            userLoginData = new UserLoginData("SmartEnglish","test","englishteacher","test",LanguageCode.EN);
            //userLoginData = new UserLoginData("SmartGreek","SmartGreek","GreekTeacher2","password");

        }

        LocalisationMang.langCode = userLoginData.language;

        poRef = PersistentObjMang.getInstance();

        connectionTest=new ConnectionError("",RoutineStatus.IDLE);
        //testConnection();

        prepUIElements();

        downloader(true);
    }
コード例 #10
0
ファイル: LoginHandlerV2.cs プロジェクト: TAPeri/WordsMatter
 void testConnection()
 {
     setUp();
     connection_test_script = server.AddComponent<ILearnRWServer>();
     connectionTest = connection_test_script.requestServerVersion();
 }
コード例 #11
0
ファイル: ILearnRWServer.cs プロジェクト: TAPeri/WordsMatter
    private bool validateCredentials()
    {
        if  (authenticationService.status()==RoutineStatus.READY){
            authentication = authenticationService.getPackage();
        }else if(refreshService.status()==RoutineStatus.READY){
            authentication = refreshService.getPackage();
        }else if(authenticationService.status()==RoutineStatus.ERROR){
            int errorCode =0;
            try{
                errorCode = System.Convert.ToInt32(authenticationService.getError().Split(' ')[0]);
            }catch{};

            if (errorCode==403){//Wrong password
                connectionStatus = new ConnectionError(errorCode+" Wrong username or password",RoutineStatus.ERROR);
                return false;
            }else{
                connectionStatus = new ConnectionError(errorCode+" Unexpected connection error",RoutineStatus.ERROR);
                return false;
            }
        }else if(refreshService.status()==RoutineStatus.ERROR){
            int errorCode =0;
            try{
                errorCode = System.Convert.ToInt32(authenticationService.getError().Split(' ')[0]);
            }catch{};			if (errorCode==403){//Wrong refresh token
                connectionStatus = new ConnectionError(errorCode+" Wrong refresh token; authenticate again",RoutineStatus.ERROR);
                return false;
            }else{
                connectionStatus = new ConnectionError(errorCode+" Unexpected connection error",RoutineStatus.ERROR);
                return false;
            }
        }else if(authentication==null){
            connectionStatus = new ConnectionError("400 Authenticate token not available; authenticate",RoutineStatus.ERROR);
            return false;
        }
        connectionStatus = new ConnectionError("0 Connection is ok",RoutineStatus.READY);;
        return true;
    }
コード例 #12
0
 public GetRoutine requestSuggestion()
 {
     next_activity_query = server.requestNextActivity(userID);
     return next_activity_query;
 }
コード例 #13
0
ファイル: ILearnRWServer.cs プロジェクト: TAPeri/WordsMatter
    public GetRoutine flushLogs()
    {
        if (validateCredentials()){
            //Debug.Log(JsonHelper.serialiseObject<List<UserLog>>(logs));
            //StartCoroutine(userLogsService.post("token="+authentication.getAuth(),JsonHelper.serialiseObject<List<UserLog>>(logs)));

            if (logs.Count==0)
                return null;//nothing to do here

            GetRoutine<List<int>> individualCall = new GetRoutine<List<int>>(server_url + "/logs_array",requests,responses);

            StartCoroutine(individualCall.post("?token="+authentication.getAuth(),JsonHelper.serialiseObject<List<UserLogNoTimestamp>>(logs)));

            /*foreach(UserLogNoTimestamp ul in logs){
                Debug.Log("Flush: "+ul.word+" "+ul.problem_category+" "+ul.problem_index+" "+ul.getTag()+" "+ul.getUsername());

            }*/

            logs = new List<UserLogNoTimestamp>();
            return individualCall;
        }else{
            return connectionStatus;
        }
    }
コード例 #14
0
ファイル: ILearnRWOffline.cs プロジェクト: TAPeri/WordsMatter
 public GetRoutine errorHandler(GetRoutine error_message)
 {
     return error_message;
 }
コード例 #15
0
 public GetRoutine requestSuggestion(string character,ApplicationID game)
 {
     next_activity_query = server.requestNextActivity(userID, character,game.ToString());
     return next_activity_query;
 }
コード例 #16
0
 public void saveProgress(string game_state)
 {
     Debug.Log("Save game state!");
     UserLogNoTimestamp log = basicLog(Tag.SAVEFILE);
     log.setValue(game_state);
     server.logData(log);
     saveRoutine = server.flushLogs();
 }
コード例 #17
0
 public GetRoutine requestSuggestion(string character)
 {
     next_activity_query = server.requestNextActivity(userID, character);
     return next_activity_query;
 }
コード例 #18
0
 public GetRoutine requestSuggestion(int languageArea,int difficulty,ApplicationID game)
 {
     next_activity_query = server.requestNextActivity(userID, languageArea, difficulty,game.ToString());
     return next_activity_query;
 }
コード例 #19
0
 public GetRoutine requestSuggestion(int languageArea,int difficulty)
 {
     next_activity_query = server.requestNextActivity(userID, languageArea, difficulty);
     return next_activity_query;
 }
コード例 #20
0
    protected int loadingUserDetails()
    {
        if(user_details_query == null){
            Debug.Log("Requesting user details");
            user_details_query = server.requestUserDetails();

        }

        if (user_details_query.status()==RoutineStatus.READY){

            Debug.Log("Get user details");

            PackagedUserDetails pud = server.getUserDetails();

            username = pud.getUsername();
            userID = pud.getID();

            language = pud.getLanguage();

            LocalisationMang.init(language);

            return state+1;

        }else if( user_details_query.status()==RoutineStatus.ERROR ){

            Debug.LogError("Processing error: "+user_details_query.getError());

            GetRoutine  server_response = server.errorHandler(user_details_query);

            loading_status = server_response;
            return -1;

        }else{
            return state;
        }
    }
コード例 #21
0
ファイル: ProgressScript.cs プロジェクト: TAPeri/WordsMatter
    public void initiateOwnActivity(int charID)
    {
        launcherMode = Mode.ADVENTURE;
        launcherDetails = "ActivityOwner";

        //		recommendationRequests = wvServCom.requestSuggestion(lA,diff,LocalisationMang.getMainApplicationID(charID));
        recommendationRequests = wvServCom.requestSuggestion(gbMang.getNPCserverName(charID),LocalisationMang.getMainApplicationID(charID));
        deactivateWVInterface();
        worldView.setLoadingIconVisibility(true);

        //int diff = gbMang.getDiffForNPCID(diagPersonID)[UnityEngine.Random.Range(0,gbMang.getDiffForNPCID(diagPersonID).Count)  ];
        //activitySurpriseLaunched(lA,diff);
    }
コード例 #22
0
ファイル: ILearnRWServer.cs プロジェクト: TAPeri/WordsMatter
    //public ILearnRWServer(){
    void Awake()
    {
        Debug.Log("Server Awake");
        if (debugging){
            if(requests==null)
                requests = new List<string>();
            if(responses==null)
                responses = new List<string>();

        }

        authenticationService = new GetRoutine<PackagedAuthentication>(server_url + "/user/auth",requests,responses);
        refreshService = new GetRoutine<PackagedAuthentication>(server_url + "/user/newtokens",requests,responses);
        userDetailsService = new GetRoutine<PackagedUserDetails>(server_url + "/user/details",requests,responses);
        userProfileService = new GetRoutine<PackagedUserProfile>(server_url + "/profile",requests,responses);

        userLogsService = new GetRoutine<PackagedUserLogs>(server_url + "/lastLogs",requests,responses);
        newsFeedService = new GetRoutine<PackagedUserLogs>(server_url + "/lastLogs",requests,responses);
        //		userLogsService = new GetRoutine<PackagedUserLogs>(server_url + "/logs",requests,responses);
        savefileService = new GetRoutine<PackagedUserLogs>(server_url + "/lastLogs",requests,responses);

        //postUserLogsService= new GetRoutine<UserLog>(server_url + "/logs");
        //postUserLogsService= new GetRoutine<List<int>>(server_url + "/logs_array",requests,responses);

        nextActivityService = new GetRoutine<List<PackagedNextActivity>>(server_url + "/activity/next_UoM",requests,responses);
        nextWordsService = new GetRoutine<List<PackagedNextWord>>(server_url + "/activity/new_data_UoM",requests,responses);
        levelService = new GetRoutine<LevelJSON>(server_url+"/activity/next_test/",requests,responses);

        profileUpdateService = new GetRoutine<List<PackagedProfileUpdate>>(server_url+"/profile/update",requests,responses);

        serverInfoService = new GetRoutine<PackagedServerInfo>(server_url+"/info/version/",requests,responses);

        logs = new List<UserLogNoTimestamp>();
    }
コード例 #23
0
ファイル: LoginHandlerV2.cs プロジェクト: TAPeri/WordsMatter
 void setUpOnlineServerDual()
 {
     setUp();
     server_script = server.AddComponent<ILearnRWServer>();
     connection = server_script.requestAuthentication(userLoginData.username,userLoginData.password,userLoginData.teacher_username,userLoginData.teacher_password);
 }
コード例 #24
0
    void Update()
    {
        if (loading_status.status()==RoutineStatus.ERROR){

            Debug.LogError(loading_status.getError());
            return;

        }

        switch(state){

        case 0://Loading user details

            state = loadingUserDetails();
            break;

        case 1:

            Debug.Log("Request user profile");
            profile_query = server.requestUserProfile(userID);
            state = 2;
            break;

        case 2:

            if(profile_query.status()== RoutineStatus.READY){
                Debug.Log("Get user profile");

                userProfile = server.getUserProfile();

                if (Application.platform == RuntimePlatform.Android){
                    tts = gameObject.AddComponent<TTS_android>();
                }else{
                    tts = gameObject.AddComponent<TTS_googletranslate>();
                }

                tts.init(9,9,language.ToString());

                Debug.Log("Request save logs");

                saved_data_query = server.requestSavefile();

                state = 3;
                break;

            }else if(profile_query.status()== RoutineStatus.ERROR){

                Debug.LogError(profile_query.getError());
                state = 1;
                //userProfile = new PackagedUserProfile();

                break;

            }else{
                break;
            }

        case 3:

            if(saved_data_query.status() == RoutineStatus.READY){

                PackagedUserLogs pul = server.getSaveFiles();
                //OLD//PackagedUserLogs pul = server.getUserLogs();

                int number_pages = pul.getTotalPages();
                Debug.Log("Get save logs: "+pul.page+"/"+number_pages);
                if (number_pages>0){
                    /*saved_data_query = server.requestUserLogs(
                        null,
                        null,
                        number_pages,
                        new string[]{Tag.SAVEFILE.ToString()} ,
                    ApplicationID.GAME_WORLD.ToString(),
                    null);//Request last page
                    */

                    game_state = processSaveFile(pul.getLogs());
                    loading_status = new ConnectionError("Savefile loaded",RoutineStatus.READY);

                    state = 5;

                }else{

                    game_state = "";
                    loading_status = new ConnectionError("New savefile",RoutineStatus.READY);
                    state = 5;

                }

            }else if(saved_data_query.status() == RoutineStatus.ERROR){

                loading_status = new ConnectionError("Couldn't load first page of save file. "+saved_data_query.getError(),RoutineStatus.ERROR);
                //state = -1;
                state = 5;
                Debug.Log("Safenet?");
                loading_status = new ConnectionError("Could not load first page",RoutineStatus.READY);

            }

            break;

        }

        if (saveRoutine!=null){

            if(saveRoutine.status()==RoutineStatus.READY){

                List<int> result = ((GetRoutine<List<int>>)saveRoutine).getPackage();

                string output = "Flush success!";

                foreach(int a in result)
                    output+=", "+a;

                Debug.Log(output);

            }else if(saveRoutine.status()==RoutineStatus.ERROR){

                Debug.Log("Flush error!");
                saveRoutine = null;
            }
        }
    }
コード例 #25
0
    public GetRoutine requestNewsfeed(int page)
    {
        newsfeed_query = server.requestNewsFeed(
        null,
        null,
        page,
        new string[]{Tag.APP_ROUND_SESSION_END.ToString()} ,
        null,
        null);

        return newsfeed_query;
    }
コード例 #26
0
ファイル: LoginHandlerV2.cs プロジェクト: TAPeri/WordsMatter
    void OnGUI()
    {
        /*if(GUI.Button(new Rect(10,10,50,50),"TTS")){

            if(tts==null){
            if (Application.platform == RuntimePlatform.Android){
                tts = gameObject.AddComponent<TTS_android>();
            }else{
                tts = gameObject.AddComponent<TTS_googletranslate>();
            }

            tts.init(9,9,LocalisationMang.langCode.ToString());

            tts.fetch(new string[]{"dyslexia"});

            }
            AudioClip word = tts.say("dyslexia");

            if(word==null)
                error = "TTS didnt work";
            else
                audio.PlayOneShot(word);

        }*/

        if( ! hasInitGUIStyles)
        {
            initGUI();
        }

        //By default if connectionTest is disabled
        if (connectionTest.status()==RoutineStatus.IDLE){

            if(loginPageID == 0)
            {

                GUI.color = Color.white;

                int sectionCount = (selectedOption+1);

                for(int i=0; i<sectionCount; i++)
                {
                    string sectionSuffix = "-S"+i;

                    string sectionTitleName = "SectionTitle"+sectionSuffix;
                    string sectionUsernameTitleName = "UsernameTitle"+sectionSuffix;
                    string sectionUsernameFieldName = "UsernameField"+sectionSuffix;
                    string sectionPasswordTitleName = "PasswordTitle"+sectionSuffix;
                    string sectionPasswordFieldName = "PasswordField"+sectionSuffix;

                    GUI.color = Color.red;
                    if (i==0)
                        if(error!="")
                            GUI.Label(uiBounds[sectionTitleName],LocalisationMang.translate(error),sectionTitleStyle);
                        else if(obbError!="")
                            GUI.Label(uiBounds[sectionTitleName],LocalisationMang.translate(obbError),sectionTitleStyle);

                    GUI.color = Color.black;

                    GUI.Label(uiBounds[sectionUsernameTitleName],textContent[sectionUsernameTitleName],fieldTitleStyle);
                    GUI.Label(uiBounds[sectionPasswordTitleName],textContent[sectionPasswordTitleName],fieldTitleStyle);
                    GUI.color = Color.white;

                    if(i == 0)
                    {
                        // Student.
                        userLoginData.username = GUI.TextField(uiBounds[sectionUsernameFieldName],userLoginData.username,25,textFieldStyle);
                        userLoginData.password = GUI.PasswordField(uiBounds[sectionPasswordFieldName],userLoginData.password,'*',25,passFieldStyle);
                    }
                    else
                    {
                        // Teacher
                        userLoginData.teacher_username = GUI.TextField(uiBounds[sectionUsernameFieldName],userLoginData.teacher_username,25,textFieldStyle);
                        userLoginData.teacher_password = GUI.PasswordField(uiBounds[sectionPasswordFieldName],userLoginData.teacher_password,'*',25,passFieldStyle);
                    }
                }

                if( ! connectingInProgressFlag)
                {
                    selectedOption = GUI.SelectionGrid(uiBounds["LoginOptionButtonsArea"],selectedOption,optionTextures,2,selectionGridStyle);

                    if((prevSelOption != selectedOption))
                    {
                        if(selectedOption == 0)
                        {
                            transform.FindChild("StudentLoginArea").gameObject.SetActive(true);
                            transform.FindChild("TeacherLoginArea").gameObject.SetActive(false);
                        }
                        else
                        {
                            transform.FindChild("StudentLoginArea").gameObject.SetActive(true);
                            transform.FindChild("TeacherLoginArea").gameObject.SetActive(true);
                        }

                        prevSelOption = selectedOption;
                    }else{
                        selectedOption = prevSelOption;
                    }

                    GUI.color = Color.black;
                    GUI.color = Color.clear;

                    if(GUI.Button(uiBounds["DoneButtonTop"],""))
                    {
                        triggerSoundAtCamera("BubbleClick",1f,false);
                        // Trigger login procedures.
                        if(selectedOption == 1)
                        {
                            if(((userLoginData.teacher_username != "")&&(userLoginData.teacher_password != ""))&&
                            ((userLoginData.username != "")&&(userLoginData.password != "")))
                            {
                                setUpOnlineServerDual();
                            }
                        }
                        else
                        {
                            if((userLoginData.username != "")&&(userLoginData.password != ""))
                            {
                                setUpOnlineServer();
                            }
                        }

                        setConnectButtonVisibility(false);
                    }
                    GUI.color = Color.white;
                }else{

                    if((error=="")&&(obbError=="")){
                        if(wvServCom!=null){
                            switch(wvServCom.getStatus()){

                                case 0: message = "Checking username and password"; break;
                                case 1: message = "Loading user details"; break;
                                case 2: message = "Waiting for user profile"; break;
                                case 3: message = "Waiting for saved data"; break;
                                case 4: message = "..."; break;
                                //case 5: message = "Server has sent all the data"; break;

                            }

                        }

                        GUI.Label(uiBounds["SectionTitle-S0"],LocalisationMang.translate(message),sectionTitleStyle);
                        //GUI.Label(uiBounds["SectionTitle-S1"],LocalisationMang.translate(message),sectionTitleStyle);
                    }

                }

                GUI.color = Color.white;
            }

        }else{//USed only when testConnection is active

            GUI.Label(new Rect(20,220,500,20), "Testing connection!");

            if (connectionTest.status()==RoutineStatus.ERROR){
                GUI.Label(new Rect(20,280,500,20), "Connection Error: ");
                GUI.Label(new Rect(20,320,600,20), connectionTest.getError());
                if(GUI.Button(new Rect(20,360,80,40), "Continue")) {
                    Destroy((Component)connection_test_script);
                    connectionTest = new ConnectionError("Ignore error for now", RoutineStatus.IDLE);
                }

            }else if(connectionTest.status()==RoutineStatus.READY){
                GUI.Label(new Rect(20,280,500,20), "Server version is: "+connection_test_script.getServerInfo().version);
                Destroy((Component)connection_test_script);
            }

        }
    }
コード例 #27
0
ファイル: LoginHandlerV2.cs プロジェクト: TAPeri/WordsMatter
 void setUpOfflineServer()
 {
     setUp();
     server_script = server.AddComponent<ILearnRWOffline>();
     ILearnRWOffline castVersion = (ILearnRWOffline) server_script;
     castVersion.language = LocalisationMang.langCode.ToString();
     connection = server_script.requestAuthentication(userLoginData.username,userLoginData.password);
 }
コード例 #28
0
 public IEnumerator <Params> GetCoroutine()
 {
     return(GetRoutine()(initialParams));
 }
コード例 #29
0
ファイル: ProgressScript.cs プロジェクト: TAPeri/WordsMatter
    public void initiateActivityForChar(int charID)
    {
        launcherMode = Mode.ADVENTURE;
        launcherDetails = "Quest";

        recommendationRequests = wvServCom.requestSuggestion(gbMang.getNPCserverName(charID));
        deactivateWVInterface();
        worldView.setLoadingIconVisibility(true);
    }