示例#1
0
    public bool Save(string filename, AudioClip clip)
    {
        if (!filename.ToLower().EndsWith(".wav"))
        {
            filename += ".wav";
        }

        var filepath = Path.Combine(Application.persistentDataPath, filename);

        Debug.Log("current audio path is " + filepath);

        // Make sure directory exists if user is saving to sub dir.
        Directory.CreateDirectory(Path.GetDirectoryName(filepath));
        Debug.Log("directory created");

        using (var fileStream = CreateEmpty(filepath))
        {
            ConvertAndWrite(fileStream, clip);
            WriteHeader(fileStream, clip);
        }

        Debug.Log("bytes converted");
        byte[] data = File.ReadAllBytes(filepath);
        audioBase64 = System.Convert.ToBase64String(data);

        string answerType = "Audio";

        Debug.Log("saving base64");
        MissionsService.UpdateMissionAnswer(answerType, audioBase64);

        return(true);        // TODO: return false if there's a failure saving the file
    }
示例#2
0
    private IEnumerator _UpdateMission()
    {
        WWW missionRequest = MissionsService.GetMission(submission._mission);

        while (!missionRequest.isDone)
        {
            yield return(new WaitForSeconds(0.1f));
        }

        AlertsService.removeLoadingAlert();
        Debug.Log("Header: " + missionRequest.responseHeaders["STATUS"]);
        Debug.Log("Text: " + missionRequest.text);

        if (missionRequest.responseHeaders["STATUS"] == HTML.HTTP_200)
        {
            missions = UtilsService.GetJsonArray <Mission>(missionRequest.text);

            if (missions.Length >= 1)
            {
                title.text = missions[0].name;
            }
        }

        yield return(null);
    }
    private IEnumerator _GetMissions()
    {
        User currentUser = UserService.user;

        AlertsService.makeLoadingAlert("Recebendo missões");
        WWW missionsRequest = MissionsService.GetMissions(currentUser._id);

        while (!missionsRequest.isDone)
        {
            yield return(new WaitForSeconds(0.1f));
        }

        AlertsService.removeLoadingAlert();
        Debug.Log("Header: " + missionsRequest.responseHeaders["STATUS"]);
        Debug.Log("Text: " + missionsRequest.text);

        if (missionsRequest.responseHeaders["STATUS"] == HTML.HTTP_200)
        {
            MissionsService.UpdateMissions(missionsRequest.text);
            CreateMissionsCards();
        }
        else
        {
            AlertsService.makeAlert("Falha na conexão", "Tente novamente mais tarde.", "");
            yield return(new WaitForSeconds(3f));

            LoadView("Activities");
        }

        yield return(null);
    }
示例#4
0
    public void SaveVideo()
    {
        string videoBase64 = camService.videoBase64;

        MissionsService.UpdateMissionAnswer(modalType, videoBase64);

        Destroy();
    }
示例#5
0
    public void SaveText()
    {
        string text = textMsg.text;

        MissionsService.UpdateMissionAnswer(modalType, text);

        Destroy();
    }
示例#6
0
    public void SavePicture()
    {
        string photoBase64 = camService.photoBase64;

        MissionsService.UpdateMissionAnswer(modalType, photoBase64);

        Destroy();
    }
示例#7
0
    public void SaveAudio()
    {
        string audioBase64 = MissionsService.missionAnswer.audio;

        MissionsService.UpdateMissionAnswer(modalType, audioBase64);

        Destroy();
    }
示例#8
0
    public void SaveGeolocation()
    {
        string lat = GPSService.location[0].ToString(),
               lng = GPSService.location[1].ToString();

        MissionsService.UpdateMissionAnswer(modalType, lat, lng);

        Destroy();
    }
    private IEnumerator _SendResponse()
    {
        AlertsService.makeLoadingAlert("Enviando resposta");

        int currentUserId = UserService.user._id,
            missionId     = MissionsService.mission._id,
            groupId       = GetSelectedGroupId(senderTypeDropdown.captionText.text);

        WWW responseRequest = MissionsService.SendResponse(currentUserId, missionId, groupId);

        while (!responseRequest.isDone)
        {
            yield return(new WaitForSeconds(0.1f));
        }

        Debug.Log("Header: " + responseRequest.responseHeaders["STATUS"]);
        Debug.Log("Text: " + responseRequest.text);
        AlertsService.removeLoadingAlert();

        if (responseRequest.responseHeaders["STATUS"] == HTML.HTTP_200)
        {
            Mission currentMission = MissionsService.mission;

            if (currentMission.end_message != null && currentMission.end_message.Length > 0)
            {
                OpenModal("Final");
            }
            else
            {
                AlertsService.makeAlert("Resposta enviada", "", "");
                //AlertsService.makeAlert("Resposta enviada", "Boa! Sua resposta foi enviada com sucesso. Você será redirecionado(a) para as missões.", "");
                yield return(new WaitForSeconds(5f));

                LoadView("Missions");
            }
        }
        else
        {
            if (responseRequest.responseHeaders["STATUS"] == HTML.HTTP_400)
            {
                AlertsService.makeAlert("Senha incorreta", "Por favor, verifique se inseriu corretamente o e-mail e senha.", "OK");
            }
            else if (responseRequest.responseHeaders["STATUS"] == HTML.HTTP_404 || responseRequest.responseHeaders["STATUS"] == HTML.HTTP_401)
            {
                AlertsService.makeAlert("Usuário não encontrado", "Por favor, verifique se inseriu corretamente o e-mail e senha.", "OK");
            }
            else
            {
                AlertsService.makeAlert("Falha na conexão", "Tente novamente mais tarde.", "Entendi");
            }
        }

        yield return(null);
    }
    private IEnumerator _SearchMission()
    {
        if (!CheckFields())
        {
            AlertsService.makeAlert("Por favor repita sua tarefa", "", "Entendi");
            //AlertsService.makeAlert("Código inválido", "Digite um código secreto com pelo menos quatro caracteres para realizar a busca.", "Entendi");
            yield break;
        }

        AlertsService.makeLoadingAlert("Buscando");

        string secretCode  = secretCodeField.text;
        User   currentUser = UserService.user;

        WWW missionRequest = MissionsService.SearchMission(currentUser._id, secretCode);

        while (!missionRequest.isDone)
        {
            yield return(new WaitForSeconds(0.1f));
        }

        AlertsService.removeLoadingAlert();
        Debug.Log("Header: " + missionRequest.responseHeaders["STATUS"]);
        Debug.Log("Text: " + missionRequest.text);

        if (missionRequest.responseHeaders["STATUS"] == HTML.HTTP_200)
        {
            MissionsService.UpdateMission(missionRequest.text);
            LoadView("Mission");
        }
        else
        {
            AlertsService.makeAlert("Não encontrado", "Não encontramos nenhuma missão com esse código secreto. Por favor, verifique o código e tente novamente.", "OK");
        }

        yield return(null);
    }
示例#11
0
 private void UpdateCurrentSubmission()
 {
     MissionsService.UpdateMissionAnswer(submission);
 }
示例#12
0
 public void OpenMission()
 {
     MissionsService.UpdateMission(mission);
     SceneManager.LoadScene("Mission");
 }