diff --git a/Assets/Plugins/Android/AndroidManifest.xml b/Assets/Plugins/Android/AndroidManifest.xml
index 8d4cdf8..89c3a4c 100644
--- a/Assets/Plugins/Android/AndroidManifest.xml
+++ b/Assets/Plugins/Android/AndroidManifest.xml
@@ -8,6 +8,7 @@
+
+
\ No newline at end of file
diff --git a/Assets/Scenes/Main.unity b/Assets/Scenes/Main.unity
index c9f1106..0bfcb26 100644
--- a/Assets/Scenes/Main.unity
+++ b/Assets/Scenes/Main.unity
@@ -515,7 +515,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
- m_IsActive: 1
+ m_IsActive: 0
--- !u!224 &126648712
RectTransform:
m_ObjectHideFlags: 0
@@ -573,7 +573,18 @@ MonoBehaviour:
m_TargetGraphic: {fileID: 126648714}
m_OnClick:
m_PersistentCalls:
- m_Calls: []
+ m_Calls:
+ - m_Target: {fileID: 0}
+ m_MethodName:
+ m_Mode: 1
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName:
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 2
m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null
--- !u!114 &126648714
@@ -1482,48 +1493,6 @@ CanvasRenderer:
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 228512393}
---- !u!1 &239812357
-GameObject:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 133590, guid: 5ccb0ba277304a14b9bb8d4e34161675, type: 2}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 4
- m_Component:
- - 224: {fileID: 239812358}
- - 222: {fileID: 239812359}
- m_Layer: 5
- m_Name: container
- m_TagString: progress
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!224 &239812358
-RectTransform:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 22474260, guid: 5ccb0ba277304a14b9bb8d4e34161675,
- type: 2}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 239812357}
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: -0.0000000121053745}
- m_LocalScale: {x: 0.9999999, y: 1, z: 0}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_Children: []
- m_Father: {fileID: 1530408465}
- m_RootOrder: 4
- m_AnchorMin: {x: 0, y: 1.7}
- m_AnchorMax: {x: 0.97, y: 2.2}
- m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: -237.39001, y: 0}
- m_Pivot: {x: 1, y: 0}
---- !u!222 &239812359
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 22202710, guid: 5ccb0ba277304a14b9bb8d4e34161675,
- type: 2}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 239812357}
--- !u!1 &253021235
GameObject:
m_ObjectHideFlags: 0
@@ -1883,11 +1852,11 @@ RectTransform:
- {fileID: 837040462}
- {fileID: 126648712}
m_Father: {fileID: 1530408465}
- m_RootOrder: 5
+ m_RootOrder: 3
m_AnchorMin: {x: 0, y: 1.7}
m_AnchorMax: {x: 0.97, y: 2.2}
m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: -368.90573, y: 0}
+ m_SizeDelta: {x: -239.87144, y: 0}
m_Pivot: {x: 1, y: 0}
--- !u!222 &291722905
CanvasRenderer:
@@ -3989,7 +3958,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: []
m_Father: {fileID: 1530408465}
- m_RootOrder: 3
+ m_RootOrder: 2
m_AnchorMin: {x: 0, y: 1.7}
m_AnchorMax: {x: 0.97, y: 2.2}
m_AnchoredPosition: {x: 0, y: 0}
@@ -4033,7 +4002,18 @@ MonoBehaviour:
m_TargetGraphic: {fileID: 581668679}
m_OnClick:
m_PersistentCalls:
- m_Calls: []
+ m_Calls:
+ - m_Target: {fileID: 210788816}
+ m_MethodName: OnShareVideo
+ m_Mode: 1
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 2
m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null
--- !u!114 &581668679
@@ -6175,119 +6155,6 @@ CanvasRenderer:
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 930426942}
---- !u!1 &935965592
-GameObject:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 133590, guid: 5ccb0ba277304a14b9bb8d4e34161675, type: 2}
- m_PrefabInternal: {fileID: 0}
- serializedVersion: 4
- m_Component:
- - 224: {fileID: 935965593}
- - 222: {fileID: 935965596}
- - 114: {fileID: 935965595}
- - 114: {fileID: 935965594}
- m_Layer: 5
- m_Name: b_close
- m_TagString: progress
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 0
---- !u!224 &935965593
-RectTransform:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 22474260, guid: 5ccb0ba277304a14b9bb8d4e34161675,
- type: 2}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 935965592}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 0}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
- m_Children: []
- m_Father: {fileID: 1530408465}
- m_RootOrder: 2
- m_AnchorMin: {x: 0, y: 1.8}
- m_AnchorMax: {x: 0.97, y: 2.1}
- m_AnchoredPosition: {x: 0, y: -13}
- m_SizeDelta: {x: 0, y: 26}
- m_Pivot: {x: 1, y: 0}
---- !u!114 &935965594
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 0}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 935965592}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Navigation:
- m_Mode: 3
- m_SelectOnUp: {fileID: 0}
- m_SelectOnDown: {fileID: 0}
- m_SelectOnLeft: {fileID: 0}
- m_SelectOnRight: {fileID: 0}
- m_Transition: 1
- m_Colors:
- m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
- m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
- m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
- m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
- m_ColorMultiplier: 1
- m_FadeDuration: 0.1
- m_SpriteState:
- m_HighlightedSprite: {fileID: 0}
- m_PressedSprite: {fileID: 0}
- m_DisabledSprite: {fileID: 0}
- m_AnimationTriggers:
- m_NormalTrigger: Normal
- m_HighlightedTrigger: Highlighted
- m_PressedTrigger: Pressed
- m_DisabledTrigger: Disabled
- m_Interactable: 1
- m_TargetGraphic: {fileID: 935965595}
- m_OnClick:
- m_PersistentCalls:
- m_Calls: []
- m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
- Culture=neutral, PublicKeyToken=null
---- !u!114 &935965595
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 11451830, guid: 5ccb0ba277304a14b9bb8d4e34161675,
- type: 2}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 935965592}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Material: {fileID: 0}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_RaycastTarget: 1
- m_OnCullStateChanged:
- m_PersistentCalls:
- m_Calls: []
- m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
- Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
- m_Sprite: {fileID: 21300000, guid: 6495de8ff9a26c94e9d42fada0a56630, type: 3}
- m_Type: 0
- m_PreserveAspect: 1
- m_FillCenter: 1
- m_FillMethod: 4
- m_FillAmount: 1
- m_FillClockwise: 1
- m_FillOrigin: 0
---- !u!222 &935965596
-CanvasRenderer:
- m_ObjectHideFlags: 0
- m_PrefabParentObject: {fileID: 22202710, guid: 5ccb0ba277304a14b9bb8d4e34161675,
- type: 2}
- m_PrefabInternal: {fileID: 0}
- m_GameObject: {fileID: 935965592}
--- !u!1 &948041467
GameObject:
m_ObjectHideFlags: 0
@@ -8562,7 +8429,18 @@ MonoBehaviour:
m_TargetGraphic: {fileID: 1182541897}
m_OnClick:
m_PersistentCalls:
- m_Calls: []
+ m_Calls:
+ - m_Target: {fileID: 210788816}
+ m_MethodName: OnDownloadCancel
+ m_Mode: 1
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 2
m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null
--- !u!114 &1182541897
@@ -11439,9 +11317,7 @@ RectTransform:
m_Children:
- {fileID: 1059619783}
- {fileID: 160532052}
- - {fileID: 935965593}
- {fileID: 581668677}
- - {fileID: 239812358}
- {fileID: 291722902}
- {fileID: 1910480222}
m_Father: {fileID: 1620867682}
@@ -13459,7 +13335,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
- m_IsActive: 1
+ m_IsActive: 0
--- !u!224 &1910480222
RectTransform:
m_ObjectHideFlags: 0
@@ -13474,11 +13350,11 @@ RectTransform:
m_Children:
- {fileID: 1182541895}
m_Father: {fileID: 1530408465}
- m_RootOrder: 6
+ m_RootOrder: 4
m_AnchorMin: {x: 0, y: 1.7}
m_AnchorMax: {x: 0.97, y: 2.2}
m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 0, y: 0}
+ m_SizeDelta: {x: -239.87144, y: 0}
m_Pivot: {x: 1, y: 0}
--- !u!114 &1910480223
MonoBehaviour:
@@ -13505,7 +13381,7 @@ MonoBehaviour:
m_PreserveAspect: 1
m_FillCenter: 1
m_FillMethod: 4
- m_FillAmount: 1
+ m_FillAmount: 0
m_FillClockwise: 1
m_FillOrigin: 0
--- !u!222 &1910480224
@@ -16059,7 +15935,6 @@ MonoBehaviour:
progressLayer: {fileID: 291722901}
downloadLayer: {fileID: 160532051}
downloadProgressLayer: {fileID: 1910480221}
- closeLayer: {fileID: 935965592}
textButton: {fileID: 930426942}
pauseButton: {fileID: 440527253}
avatarCollider: {fileID: 535548073}
diff --git a/Assets/Scripts/Export Video/AndroidJavaUti.cs b/Assets/Scripts/Export Video/AndroidJavaUti.cs
new file mode 100644
index 0000000..8877616
--- /dev/null
+++ b/Assets/Scripts/Export Video/AndroidJavaUti.cs
@@ -0,0 +1,52 @@
+using UnityEngine;
+using System.Collections;
+using System;
+
+public class AndroidJavaUti{
+
+
+ private static string m_pkgName;
+ private static string m_sdCardPath;
+ public static AndroidJavaObject Activity
+ {
+ get
+ {
+ AndroidJavaClass jcPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
+ return jcPlayer.GetStatic("currentActivity");
+ }
+ }
+
+
+ public static string CurrentPkgName
+ {
+ get
+ {
+ if (m_pkgName == null)
+ m_pkgName = Activity.Call("getPackageName");
+ return m_pkgName;
+ }
+ }
+
+
+ public static string CurrentSDCardPath
+ {
+ get
+ {
+ if (m_sdCardPath == null)
+ {
+ AndroidJavaClass jc = new AndroidJavaClass("android.os.Environment");
+ IntPtr getExternalStorageDirectoryMethod = AndroidJNI.GetStaticMethodID(jc.GetRawClass(), "getExternalStorageDirectory", "()Ljava/io/File;");
+ IntPtr file = AndroidJNI.CallStaticObjectMethod(jc.GetRawClass(), getExternalStorageDirectoryMethod, new jvalue[] { });
+ IntPtr getPathMethod = AndroidJNI.GetMethodID(AndroidJNI.GetObjectClass(file), "getPath", "()Ljava/lang/String;");
+ IntPtr path = AndroidJNI.CallObjectMethod(file, getPathMethod, new jvalue[] { });
+ m_sdCardPath = AndroidJNI.GetStringUTFChars(path);
+ AndroidJNI.DeleteLocalRef(file);
+ AndroidJNI.DeleteLocalRef(path);
+ Debug.Log("m_sdCardPath = " + m_sdCardPath);
+ }
+ return m_sdCardPath;
+ }
+
+ }
+}
+
diff --git a/Assets/Scripts/Export Video/AndroidJavaUti.cs.meta b/Assets/Scripts/Export Video/AndroidJavaUti.cs.meta
new file mode 100644
index 0000000..35c512d
--- /dev/null
+++ b/Assets/Scripts/Export Video/AndroidJavaUti.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 437223d76094ce840a68de8b6ea60fe8
+timeCreated: 1486222942
+licenseType: Free
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Export Video/AndroidToast.cs b/Assets/Scripts/Export Video/AndroidToast.cs
new file mode 100644
index 0000000..d308366
--- /dev/null
+++ b/Assets/Scripts/Export Video/AndroidToast.cs
@@ -0,0 +1,25 @@
+using UnityEngine;
+using System.Collections;
+
+public class AndroidToast : MonoBehaviour
+{
+ AndroidJavaObject currentActivity;
+ AndroidJavaClass UnityPlayer;
+ AndroidJavaObject context;
+
+
+ public void showToast(string toastString){
+ if (Application.platform == RuntimePlatform.Android)
+ {
+ UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
+ currentActivity = UnityPlayer.GetStatic("currentActivity");
+ context = currentActivity.Call("getApplicationContext");
+
+ AndroidJavaClass Toast = new AndroidJavaClass("android.widget.Toast");
+ AndroidJavaObject javaString = new AndroidJavaObject("java.lang.String", toastString);
+ AndroidJavaObject toast = Toast.CallStatic("makeText", context, javaString, Toast.GetStatic("LENGTH_SHORT"));
+ toast.Call("show");
+ }
+ }
+
+}
diff --git a/Assets/Scripts/Export Video/AndroidToast.cs.meta b/Assets/Scripts/Export Video/AndroidToast.cs.meta
new file mode 100644
index 0000000..7e8b450
--- /dev/null
+++ b/Assets/Scripts/Export Video/AndroidToast.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: f4af3594fb207274dbd1d303e7079acb
+timeCreated: 1486225591
+licenseType: Free
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Export Video/ExportLayers.cs b/Assets/Scripts/Export Video/ExportLayers.cs
index e21c14d..f02062d 100644
--- a/Assets/Scripts/Export Video/ExportLayers.cs
+++ b/Assets/Scripts/Export Video/ExportLayers.cs
@@ -10,6 +10,7 @@ public class ExportLayers{
Progress_Layer,
Share_Layer,
Progress_Download_Layer,
+ OnLockExport,
All
}
}
diff --git a/Assets/Scripts/Export Video/ExportVideo.cs b/Assets/Scripts/Export Video/ExportVideo.cs
index d11c317..831f8b6 100644
--- a/Assets/Scripts/Export Video/ExportVideo.cs
+++ b/Assets/Scripts/Export Video/ExportVideo.cs
@@ -32,14 +32,19 @@ public class ExportVideo : MonoBehaviour {
public ScreenManager screenManager;
private MobileNativeDialog nativeDialog;
- public static string gloss = "";
- private const string SERVER_URL = "http://traducao.vlibras.gov.br/translate?text=";
+ public static string gloss = "Gloss";
+ private string currentGloss = "CurrentGloss";
+ private string currentTime = "";
+ private const string SERVER_URL = "http://150.165.205.38/video/";
private string title = "Download";
- private string message = "Para compartilhar é preciso realizar o download do vídeo. Informação 1: N mb.";
+ private string message = "Para compartilhar é preciso realizar o download do vídeo. Tamanho do Download: ";
private string yesOp = "DOWNLOAD";
private string noOp = "CANCELAR";
- private string videoSize = "";
+ private float videoSize = 0;
+ private string videoId = "";
+ private bool CancelDownload = false;
+ private byte[] videoContent = null;
@@ -53,10 +58,7 @@ public class ExportVideo : MonoBehaviour {
Debug.Log("onClickShare pressed");
screenManager.changeExportStates(ExportLayers.ExportLayer.Export_Layer,false);
screenManager.changeExportStates(ExportLayers.ExportLayer.Progress_Layer, true);
- MediaShareAndroid mediaShare = new MediaShareAndroid();
- mediaShare.ShareActivity("Download", "Baixe", "Exemplo");
-
-
+ StartCoroutine("requestVideoInfo");
Debug.Log("Hiding export button and showing progress loading");
}
@@ -80,11 +82,8 @@ public class ExportVideo : MonoBehaviour {
{
Debug.Log("Asking for permition to download");
- nativeDialog = new MobileNativeDialog(title, message, yesOp, noOp);
+ nativeDialog = new MobileNativeDialog(title, message + ((videoSize/1024f)/1024f).ToString("0.00") + " MB.", yesOp, noOp);
nativeDialog.OnComplete = OnComplete;
-
-
-
}
@@ -97,11 +96,14 @@ public class ExportVideo : MonoBehaviour {
if(result == MNDialogResult.YES)
{
Debug.Log("User pressed yes");
+ StartCoroutine("videoDownload");
+ screenManager.changeExportStates(ExportLayers.ExportLayer.Download_Layer, false);
+ screenManager.changeExportStates(ExportLayers.ExportLayer.Progress_Download_Layer, true);
}else if(result == MNDialogResult.NO)
{
Debug.Log("User pressed no");
- screenManager.changeExportStates(ExportLayers.ExportLayer.All, false);
- screenManager.changeExportStates(ExportLayers.ExportLayer.Export_Layer, true);
+ screenManager.changeExportStates(ExportLayers.ExportLayer.All, true);
+
}
}
@@ -117,65 +119,131 @@ public class ExportVideo : MonoBehaviour {
public void OnDownloadCancel()
{
Debug.Log("User canceled the download, resetting states to default");
- screenManager.changeExportStates(ExportLayers.ExportLayer.All, false);
- screenManager.changeExportStates(ExportLayers.ExportLayer.Share_Layer, true);
+ CancelDownload = true;
+ screenManager.changeExportStates(ExportLayers.ExportLayer.All, true);
+ videoContent = null;
+
+
}
+ public void OnShareVideo()
+ {
+ Debug.Log("Sharing video content");
+ if(gloss == currentGloss)
+ {
+ if (videoContent != null)
+ new MediaShareAndroid().ShareActivity(videoContent,currentTime);
+ else
+ {
+ new AndroidToast().showToast("Erro ao compartilhar vídeo");
+ }
+
+ }else
+ {
+ currentGloss = gloss;
+ currentTime = System.DateTime.Now.ToString("yyyy-MM-dd_HH:mm:ss");
- private IEnumerator requestVideoInfo(string gloss)
- {
+ if (videoContent != null)
+ new MediaShareAndroid().ShareActivity(videoContent, currentTime);
+ else
+ {
+ new AndroidToast().showToast("Erro ao compartilhar vídeo");
+ }
+
+ }
+ }
+
+
+ private IEnumerator videoDownload()
+ {
+ WWW DownloadVideo = new WWW(SERVER_URL + videoId);
+ while (!CancelDownload && !DownloadVideo.isDone)
+ {
+ screenManager.updateProgressDownloadSprite(DownloadVideo.progress);
+ yield return null;
+ }
+
+ if (!CancelDownload)
+ {
+ if (DownloadVideo.bytesDownloaded > 0 && DownloadVideo.bytesDownloaded <= videoSize)
+ {
+ videoContent = DownloadVideo.bytes;
+
+ OnDownloadFinished();
+ }else
+ {
+ new AndroidToast().showToast("Erro ao efetuar download. Tente novamente");
+ screenManager.changeExportStates(ExportLayers.ExportLayer.All, true);
+ }
+ }else
+ {
+ CancelDownload = false;
+ yield break;
+ }
+ }
+
+ private IEnumerator requestVideoInfo()
+ {
+
+ WWWForm JsonRequest = new WWWForm();
+ JsonRequest.AddField("gloss", gloss);
+ WWW videoInfoRequest = new WWW(SERVER_URL,JsonRequest);
- WWW videoInfoRequest = new WWW(SERVER_URL + WWW.EscapeURL(gloss));
- PlayerLogger.Log("PM", "t", "Gloss: " + gloss);
- PlayerLogger.Log("PM", "t", "Request: " + SERVER_URL + WWW.EscapeURL(gloss));
+
+ PlayerLogger.Log("ExportVideo", "requestVideoInfo", "Request for: " + SERVER_URL);
+
+ yield return WaitForResponse(videoInfoRequest);
- yield return WaitForResponse(videoInfoRequest);
+
try
{
if (!videoInfoRequest.isDone)
{
- this.screenManager.showConnectionErrorDialog(
- PlayerManager.ERROR_STATUS_MESSAGE.CONNECTION_TIMEOUT_FAILURE);
- PlayerLogger.Log("PM", "t", "Timeout.");
+ screenManager.changeExportStates(ExportLayers.ExportLayer.All, true);
+ new AndroidToast().showToast("Erro de conexão, tenta novamente.");
+ PlayerLogger.Log("ExportVideo", "requestVideoInfo", "TimeOut");
}
else if (videoInfoRequest.error != null)
{
- this.screenManager.showConnectionErrorDialog(
- PlayerManager.ERROR_STATUS_MESSAGE.INTERNET_CONNECTION_FAILURE);
-
- PlayerLogger.Log("PM", "t", "(WWW) Error: " + videoInfoRequest.error);
+
+ screenManager.changeExportStates(ExportLayers.ExportLayer.All, true);
+ new AndroidToast().showToast("Erro de conexão, tenta novamente.");
+ PlayerLogger.Log("ExportVideo", "requestVideoInfo", "(WWW) Error: " + videoInfoRequest.error);
}
else if (videoInfoRequest.responseHeaders.Count == 0)
{
- PlayerLogger.Log("PM", "t", "Unsuccessful answer (0).");
-
- this.screenManager.showConnectionErrorDialog(
- PlayerManager.ERROR_STATUS_MESSAGE.TRANSLATOR_CONNECTION_FAILURE);
+ PlayerLogger.Log("ExportVideo", "requestVideoInfo", "(WWW) Unsucessful Answer");
+ new AndroidToast().showToast("Erro de conexão, tenta novamente.");
+ screenManager.changeExportStates(ExportLayers.ExportLayer.All, true);
+
}
else if (!videoInfoRequest.responseHeaders["STATUS"].Contains("200"))
{
- PlayerLogger.Log("PM", "t", "Unsuccessful answer (" + videoInfoRequest.responseHeaders["STATUS"] + ").");
-
- this.screenManager.showConnectionErrorDialog(
- PlayerManager.ERROR_STATUS_MESSAGE.TRANSLATOR_CONNECTION_FAILURE);
+ new AndroidToast().showToast("Erro de conexão, tenta novamente.");
+ PlayerLogger.Log("ExportVideo", "requestVideoInfo", "Unsuccessful answer (" + videoInfoRequest.responseHeaders["STATUS"] + ").");
+ screenManager.changeExportStates(ExportLayers.ExportLayer.All, true);
+
}
else if (String.IsNullOrEmpty(videoInfoRequest.text))
{
- PlayerLogger.Log("PM", "t", "Empty answer.");
+ new AndroidToast().showToast("Erro de conexão, tenta novamente.");
+ screenManager.changeExportStates(ExportLayers.ExportLayer.All, true);
+ PlayerLogger.Log("ExportVideo", "requestVideoInfo", "Empty answer.");
}
else
{
- PlayerLogger.Log("PM", "t", "Answer: " + videoInfoRequest.text);
-
- gloss = videoInfoRequest.text;
-
-
+ PlayerLogger.Log("ExportVideo", "requestVideoInfo", "Answer: " + videoInfoRequest.text);
+ FileContent fileContent = new FileContent();
+ fileContent = FileContent.CreateFromJSON(videoInfoRequest.text);
+ videoId = fileContent.file;
+ videoSize = float.Parse(fileContent.size);
+ OnFinishGetVideoInfo();
yield break;
}
@@ -192,7 +260,7 @@ public class ExportVideo : MonoBehaviour {
public IEnumerator WaitForResponse(WWW www, Events.RequestSuccess success, Events.RequestError error)
{
- yield return Methods.WaitForResponse(www, 20f, success, error);
+ yield return Methods.WaitForResponse(www, 60f, success, error);
}
diff --git a/Assets/Scripts/Export Video/FileContent.cs b/Assets/Scripts/Export Video/FileContent.cs
new file mode 100644
index 0000000..48052d5
--- /dev/null
+++ b/Assets/Scripts/Export Video/FileContent.cs
@@ -0,0 +1,14 @@
+using UnityEngine;
+using System.Collections;
+
+public class FileContent {
+
+ public string file;
+ public string size;
+
+
+ public static FileContent CreateFromJSON(string jsonString)
+ {
+ return JsonUtility.FromJson(jsonString);
+ }
+}
diff --git a/Assets/Scripts/Export Video/FileContent.cs.meta b/Assets/Scripts/Export Video/FileContent.cs.meta
new file mode 100644
index 0000000..b858cf1
--- /dev/null
+++ b/Assets/Scripts/Export Video/FileContent.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 8b48ac84824290f47a90effd57b97d84
+timeCreated: 1486224084
+licenseType: Free
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Export Video/MediaShareAndroid.cs b/Assets/Scripts/Export Video/MediaShareAndroid.cs
index 413bc85..dfa760d 100644
--- a/Assets/Scripts/Export Video/MediaShareAndroid.cs
+++ b/Assets/Scripts/Export Video/MediaShareAndroid.cs
@@ -23,18 +23,38 @@ using System.IO;
public class MediaShareAndroid : MonoBehaviour
{
- private string MediaType = "text/plain";
+ private string MediaType = "video/*";
private string TitleMessage = "Compartilhar Vídeo";
private string SubtitleMessage = "VLibras";
- private string Media = "Compartilhar";
- private string path = Application.persistentDataPath + "/expl.jpg";
+ private string AndroidPath = AndroidJavaUti.CurrentSDCardPath;
+ private string Vlibras = "/VLibras";
+ private string FileName = "/VLibrasVideo_";
- public void ShareActivity(string title, string subject, string body)
+ private void WriteOnAndroid(byte[] videoContent)
+ {
+ if(!Directory.Exists(AndroidPath + Vlibras))
+ {
+ Directory.CreateDirectory(AndroidPath + Vlibras);
+
+
+ }
+ if (!Directory.Exists(AndroidPath + Vlibras + FileName))
+ File.WriteAllBytes(AndroidPath + Vlibras + FileName, videoContent);
+
+
+
+ }
+
+
+
+ public void ShareActivity(byte[] videoContent, string CurrentTime)
{
#if UNITY_ANDROID
+ FileName += CurrentTime + ".mp4";
+ WriteOnAndroid(videoContent);
// Create Refernece of AndroidJavaClass class for intent
AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent");
// Create Refernece of AndroidJavaObject class intent
@@ -47,18 +67,18 @@ public class MediaShareAndroid : MonoBehaviour
//Set title of action or intent
intentObject.Call("putExtra", intentClass.GetStatic("EXTRA_TITLE"), TitleMessage);
-
+ /*
// Set actual data which you want to share
intentObject.Call("putExtra", intentClass.GetStatic("EXTRA_TEXT"), Media);
AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject currentActivity = unity.GetStatic("currentActivity");
// Invoke android activity for passing intent to share data
currentActivity.Call("startActivity", intentObject);
-
+ */
- /* AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri");
- AndroidJavaClass fileClass = new AndroidJavaClass("java.io.File");
- AndroidJavaObject fileObject = new AndroidJavaObject("java.io.File", path);// Set Image Path Here
+ AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri");
+
+ AndroidJavaObject fileObject = new AndroidJavaObject("java.io.File", AndroidPath + Vlibras + FileName);// Set Image Path Here
AndroidJavaObject uriObject = uriClass.CallStatic("fromFile", fileObject);
// string uriPath = uriObject.Call("getPath");
bool fileExist = fileObject.Call("exists");
@@ -69,7 +89,8 @@ public class MediaShareAndroid : MonoBehaviour
AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject currentActivity = unity.GetStatic("currentActivity");
currentActivity.Call("startActivity", intentObject);
- */
+ new AndroidToast().showToast("Vídeo salvo em /Vlibras");
+
#endif
}
}
diff --git a/Assets/Scripts/PlayerManager.cs b/Assets/Scripts/PlayerManager.cs
index f2ed639..15c6d73 100644
--- a/Assets/Scripts/PlayerManager.cs
+++ b/Assets/Scripts/PlayerManager.cs
@@ -91,10 +91,12 @@ public class PlayerManager : GenericPlayerManager {
this.dictWord = word;
base.gloss = word;
+
base.playNow(word);
ExportVideo.gloss = word;
+ this.screenManager.changeExportStates(ExportLayers.ExportLayer.OnLockExport, false);
- this.screenManager.hideScreen();
+ this.screenManager.hideScreen();
this.screenManager.setPauseMenuState(false);
}
@@ -105,8 +107,9 @@ public class PlayerManager : GenericPlayerManager {
string text = translateScreenText.text;
translateScreenText.text = "";
+ this.screenManager.changeExportStates(ExportLayers.ExportLayer.OnLockExport, false);
- StartCoroutine("translate", text);
+ StartCoroutine("translate", text);
this.screenManager.setPauseMenuState(false);
}
@@ -277,6 +280,7 @@ public class PlayerManager : GenericPlayerManager {
base.gloss = gloss;
ExportVideo.gloss = gloss;
+
base.playNow(base.gloss);
diff --git a/Assets/Scripts/UI/ScreenManager.cs b/Assets/Scripts/UI/ScreenManager.cs
index c9ca7ab..044a109 100644
--- a/Assets/Scripts/UI/ScreenManager.cs
+++ b/Assets/Scripts/UI/ScreenManager.cs
@@ -31,7 +31,7 @@ public class ScreenManager : MonoBehaviour {
public GameObject progressLayer;
public GameObject downloadLayer;
public GameObject downloadProgressLayer;
- public GameObject closeLayer;
+
private bool onLockExport = false;
@@ -307,7 +307,7 @@ public class ScreenManager : MonoBehaviour {
public void setDownloadProgressLayerState(bool active)
{
this.downloadProgressLayer.SetActive(active);
- this.closeLayer.SetActive(active);
+
}
public void setShareLayerState(bool active)
@@ -322,6 +322,11 @@ public class ScreenManager : MonoBehaviour {
this.pauseButton.SetActive( ! active);
}
+ public void updateProgressDownloadSprite(float progress)
+ {
+ downloadProgressLayer.GetComponent().fillAmount = progress;
+ }
+
public void changeStates(bool playing, bool paused, bool repeatable)
{
@@ -329,7 +334,7 @@ public class ScreenManager : MonoBehaviour {
setPauseMenuState(playing && paused);
setRepeatLayerState( ! playing && repeatable);
if(!onLockExport)
- changeExportStates(ExportLayers.ExportLayer.Export_Layer, !playing && repeatable);
+ changeExportStates(ExportLayers.ExportLayer.All, !playing && repeatable);
this.pauseButtonImage.switchAttribute(playing && paused);
@@ -365,12 +370,16 @@ public class ScreenManager : MonoBehaviour {
setExportContainerState(show_Layer);
setShareLayerState(show_Layer);
break;
+ case ExportLayers.ExportLayer.OnLockExport:
+ onLockExport = show_Layer;
+ break;
default:
onLockExport = false;
- setExportContainerState(false);
- setExportLayerState(false);
+ setExportContainerState(show_Layer);
+ setExportLayerState(show_Layer);
setProgressLayerState(false);
setDownloadLayerState(false);
+ setDownloadProgressLayerState(false);
setShareLayerState(false);
break;
--
libgit2 0.21.2