Commit a9b7340972d42dbc8035e929ac3a0bef7d6d83f9
1 parent
c5042f3c
Exists in
master
and in
3 other branches
Bug Fix
Showing
5 changed files
with
145 additions
and
51 deletions
Show diff stats
Assets/Plugins/Android/AndroidManifest.xml
... | ... | @@ -7,20 +7,13 @@ |
7 | 7 | <uses-sdk android:minSdkVersion="14" /> |
8 | 8 | <uses-permission android:name="android.permission.INTERNET" /> |
9 | 9 | <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> |
10 | - <meta-data android:name="unityplayer.UnityActivity" android:value="true" /> | |
10 | + <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> | |
11 | + | |
11 | 12 | <application |
12 | 13 | android:icon="@drawable/app_icon" |
13 | 14 | android:label="@string/app_name" |
14 | 15 | android:screenOrientation="portrait" |
15 | - android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> | |
16 | - | |
17 | - <activity android:name="unityplayer.UnityActivity" | |
18 | - android:label="@string/app_name" | |
19 | - android:screenOrientation="portrait" | |
20 | - android:configChanges="orientation"> | |
21 | - | |
22 | - </activity> | |
23 | - | |
16 | + android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> | |
24 | 17 | <activity android:name=".MainActivity" |
25 | 18 | android:label="@string/app_name" |
26 | 19 | android:screenOrientation="portrait" | ... | ... |
Assets/Plugins/Android/AndroidManifest.xml.meta
Assets/Scenes/Main.unity
... | ... | @@ -683,7 +683,7 @@ RectTransform: |
683 | 683 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
684 | 684 | m_Children: [] |
685 | 685 | m_Father: {fileID: 1530408465} |
686 | - m_RootOrder: 2 | |
686 | + m_RootOrder: 1 | |
687 | 687 | m_AnchorMin: {x: 0, y: 1.7} |
688 | 688 | m_AnchorMax: {x: 0.97, y: 2.2} |
689 | 689 | m_AnchoredPosition: {x: 0, y: 0} |
... | ... | @@ -1369,6 +1369,48 @@ CanvasRenderer: |
1369 | 1369 | type: 2} |
1370 | 1370 | m_PrefabInternal: {fileID: 0} |
1371 | 1371 | m_GameObject: {fileID: 228512393} |
1372 | +--- !u!1 &239812357 | |
1373 | +GameObject: | |
1374 | + m_ObjectHideFlags: 0 | |
1375 | + m_PrefabParentObject: {fileID: 133590, guid: 5ccb0ba277304a14b9bb8d4e34161675, type: 2} | |
1376 | + m_PrefabInternal: {fileID: 0} | |
1377 | + serializedVersion: 4 | |
1378 | + m_Component: | |
1379 | + - 224: {fileID: 239812358} | |
1380 | + - 222: {fileID: 239812359} | |
1381 | + m_Layer: 5 | |
1382 | + m_Name: container | |
1383 | + m_TagString: progress | |
1384 | + m_Icon: {fileID: 0} | |
1385 | + m_NavMeshLayer: 0 | |
1386 | + m_StaticEditorFlags: 0 | |
1387 | + m_IsActive: 1 | |
1388 | +--- !u!224 &239812358 | |
1389 | +RectTransform: | |
1390 | + m_ObjectHideFlags: 0 | |
1391 | + m_PrefabParentObject: {fileID: 22474260, guid: 5ccb0ba277304a14b9bb8d4e34161675, | |
1392 | + type: 2} | |
1393 | + m_PrefabInternal: {fileID: 0} | |
1394 | + m_GameObject: {fileID: 239812357} | |
1395 | + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} | |
1396 | + m_LocalPosition: {x: 0, y: 0, z: -0.0000000121053745} | |
1397 | + m_LocalScale: {x: 0.9999999, y: 1, z: 0} | |
1398 | + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} | |
1399 | + m_Children: [] | |
1400 | + m_Father: {fileID: 1530408465} | |
1401 | + m_RootOrder: 4 | |
1402 | + m_AnchorMin: {x: 0, y: 1.7} | |
1403 | + m_AnchorMax: {x: 0.97, y: 2.2} | |
1404 | + m_AnchoredPosition: {x: 0, y: 0} | |
1405 | + m_SizeDelta: {x: -237.39001, y: 0} | |
1406 | + m_Pivot: {x: 1, y: 0} | |
1407 | +--- !u!222 &239812359 | |
1408 | +CanvasRenderer: | |
1409 | + m_ObjectHideFlags: 0 | |
1410 | + m_PrefabParentObject: {fileID: 22202710, guid: 5ccb0ba277304a14b9bb8d4e34161675, | |
1411 | + type: 2} | |
1412 | + m_PrefabInternal: {fileID: 0} | |
1413 | + m_GameObject: {fileID: 239812357} | |
1372 | 1414 | --- !u!1 &253021235 |
1373 | 1415 | GameObject: |
1374 | 1416 | m_ObjectHideFlags: 0 |
... | ... | @@ -1721,17 +1763,17 @@ RectTransform: |
1721 | 1763 | type: 2} |
1722 | 1764 | m_PrefabInternal: {fileID: 0} |
1723 | 1765 | m_GameObject: {fileID: 291722901} |
1724 | - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | |
1766 | + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} | |
1725 | 1767 | m_LocalPosition: {x: 0, y: 0, z: 0} |
1726 | - m_LocalScale: {x: 1, y: 1, z: 0} | |
1768 | + m_LocalScale: {x: 0.99986213, y: 1, z: 0} | |
1727 | 1769 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
1728 | 1770 | m_Children: [] |
1729 | 1771 | m_Father: {fileID: 1530408465} |
1730 | - m_RootOrder: 1 | |
1772 | + m_RootOrder: 5 | |
1731 | 1773 | m_AnchorMin: {x: 0, y: 1.7} |
1732 | 1774 | m_AnchorMax: {x: 0.97, y: 2.2} |
1733 | - m_AnchoredPosition: {x: 0, y: 0} | |
1734 | - m_SizeDelta: {x: -237.39001, y: 0} | |
1775 | + m_AnchoredPosition: {x: -0.0002913475, y: 0} | |
1776 | + m_SizeDelta: {x: -236.39003, y: 0} | |
1735 | 1777 | m_Pivot: {x: 1, y: 0} |
1736 | 1778 | --- !u!114 &291722903 |
1737 | 1779 | MonoBehaviour: |
... | ... | @@ -3859,7 +3901,7 @@ RectTransform: |
3859 | 3901 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
3860 | 3902 | m_Children: [] |
3861 | 3903 | m_Father: {fileID: 1530408465} |
3862 | - m_RootOrder: 5 | |
3904 | + m_RootOrder: 3 | |
3863 | 3905 | m_AnchorMin: {x: 0, y: 1.7} |
3864 | 3906 | m_AnchorMax: {x: 0.97, y: 2.2} |
3865 | 3907 | m_AnchoredPosition: {x: 0, y: 0} |
... | ... | @@ -5993,7 +6035,7 @@ RectTransform: |
5993 | 6035 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
5994 | 6036 | m_Children: [] |
5995 | 6037 | m_Father: {fileID: 1530408465} |
5996 | - m_RootOrder: 4 | |
6038 | + m_RootOrder: 2 | |
5997 | 6039 | m_AnchorMin: {x: 0, y: 1.7} |
5998 | 6040 | m_AnchorMax: {x: 0.97, y: 2.2} |
5999 | 6041 | m_AnchoredPosition: {x: 0, y: 0} |
... | ... | @@ -7139,7 +7181,7 @@ GameObject: |
7139 | 7181 | m_Icon: {fileID: 0} |
7140 | 7182 | m_NavMeshLayer: 0 |
7141 | 7183 | m_StaticEditorFlags: 0 |
7142 | - m_IsActive: 0 | |
7184 | + m_IsActive: 1 | |
7143 | 7185 | --- !u!224 &1059619783 |
7144 | 7186 | RectTransform: |
7145 | 7187 | m_ObjectHideFlags: 0 |
... | ... | @@ -11112,11 +11154,12 @@ RectTransform: |
11112 | 11154 | m_LocalEulerAnglesHint: {x: 0, y: 0.92300004, z: 0} |
11113 | 11155 | m_Children: |
11114 | 11156 | - {fileID: 1059619783} |
11115 | - - {fileID: 291722902} | |
11116 | 11157 | - {fileID: 160532052} |
11117 | - - {fileID: 1910480222} | |
11118 | 11158 | - {fileID: 935965593} |
11119 | 11159 | - {fileID: 581668677} |
11160 | + - {fileID: 239812358} | |
11161 | + - {fileID: 291722902} | |
11162 | + - {fileID: 1910480222} | |
11120 | 11163 | m_Father: {fileID: 1620867682} |
11121 | 11164 | m_RootOrder: 4 |
11122 | 11165 | m_AnchorMin: {x: 0, y: 0} |
... | ... | @@ -13139,17 +13182,17 @@ RectTransform: |
13139 | 13182 | type: 2} |
13140 | 13183 | m_PrefabInternal: {fileID: 0} |
13141 | 13184 | m_GameObject: {fileID: 1910480221} |
13142 | - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} | |
13185 | + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} | |
13143 | 13186 | m_LocalPosition: {x: 0, y: 0, z: 0} |
13144 | - m_LocalScale: {x: 1, y: 1, z: 0} | |
13187 | + m_LocalScale: {x: 0.99986213, y: 1, z: 0} | |
13145 | 13188 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
13146 | 13189 | m_Children: [] |
13147 | 13190 | m_Father: {fileID: 1530408465} |
13148 | - m_RootOrder: 3 | |
13191 | + m_RootOrder: 6 | |
13149 | 13192 | m_AnchorMin: {x: 0, y: 1.7} |
13150 | 13193 | m_AnchorMax: {x: 0.97, y: 2.2} |
13151 | - m_AnchoredPosition: {x: 0, y: 0} | |
13152 | - m_SizeDelta: {x: -237.39001, y: 0} | |
13194 | + m_AnchoredPosition: {x: -0.0002913475, y: 0} | |
13195 | + m_SizeDelta: {x: -237.39003, y: 0} | |
13153 | 13196 | m_Pivot: {x: 1, y: 0} |
13154 | 13197 | --- !u!114 &1910480223 |
13155 | 13198 | MonoBehaviour: | ... | ... |
Assets/Scripts/Export Video/ExportVideo.cs
... | ... | @@ -53,8 +53,10 @@ public class ExportVideo : MonoBehaviour { |
53 | 53 | Debug.Log("onClickShare pressed"); |
54 | 54 | screenManager.changeExportStates(ExportLayers.ExportLayer.Export_Layer,false); |
55 | 55 | screenManager.changeExportStates(ExportLayers.ExportLayer.Progress_Layer, true); |
56 | - | |
57 | - | |
56 | + MediaShareAndroid mediaShare = new MediaShareAndroid(); | |
57 | + mediaShare.ShareActivity("Download", "Baixe", "Exemplo"); | |
58 | + | |
59 | + | |
58 | 60 | Debug.Log("Hiding export button and showing progress loading"); |
59 | 61 | |
60 | 62 | } |
... | ... | @@ -73,6 +75,7 @@ public class ExportVideo : MonoBehaviour { |
73 | 75 | |
74 | 76 | /* Function that asks the user whether downlaod or not |
75 | 77 | * the video by presenting a Dialog Box.**/ |
78 | + | |
76 | 79 | public void onDownloadClick() |
77 | 80 | { |
78 | 81 | |
... | ... | @@ -84,6 +87,7 @@ public class ExportVideo : MonoBehaviour { |
84 | 87 | |
85 | 88 | |
86 | 89 | } |
90 | + | |
87 | 91 | |
88 | 92 | /** Delegate function which waits for YES or NO from the MobileDialog |
89 | 93 | * and attach a action to each option**/ |
... | ... | @@ -110,6 +114,13 @@ public class ExportVideo : MonoBehaviour { |
110 | 114 | screenManager.changeExportStates(ExportLayers.ExportLayer.Share_Layer, true); |
111 | 115 | } |
112 | 116 | |
117 | + public void OnDownloadCancel() | |
118 | + { | |
119 | + Debug.Log("User canceled the download, resetting states to default"); | |
120 | + screenManager.changeExportStates(ExportLayers.ExportLayer.All, false); | |
121 | + screenManager.changeExportStates(ExportLayers.ExportLayer.Share_Layer, true); | |
122 | + } | |
123 | + | |
113 | 124 | |
114 | 125 | private IEnumerator requestVideoInfo(string gloss) |
115 | 126 | { | ... | ... |
Assets/Scripts/Export Video/MediaShareAndroid.cs
1 | -using UnityEngine; | |
1 | +/********************** | |
2 | +********LAVID********** | |
3 | +***VLibras Project***** | |
4 | +*------------------------------------------------------------------------ | |
5 | +*Description: | |
6 | +* | |
7 | +*This class is a Android Plugin that makes available the sharing function. | |
8 | +*--------------------------------------------------------------------------- | |
9 | +*Plugin directory: | |
10 | +* - Assets/Plugins/Android | |
11 | +*References: | |
12 | +* - http://docs.unity3d.com/ScriptReference/AndroidJavaClass.html | |
13 | +*------------------------------------------------------------------------ | |
14 | +*Author: Thiago Filipe | |
15 | +*thiago.filipe@lavid.ufpb.br | |
16 | +***********************/ | |
17 | +using UnityEngine; | |
2 | 18 | using System.Collections; |
19 | +using System.IO; | |
3 | 20 | |
4 | -public class MediaShareAndroid { | |
5 | 21 | |
6 | - private static AndroidJavaObject activity = null; | |
7 | 22 | |
8 | - private static void CreateActivity() | |
9 | - { | |
10 | -#if UNITY_ANDROID && !UNITY_EDITOR | |
11 | - if(activity == null) | |
12 | - activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"). | |
13 | - GetStatic<AndroidJavaObject>("currentActivity"); | |
14 | -#endif | |
23 | +public class MediaShareAndroid : MonoBehaviour | |
24 | +{ | |
25 | + | |
26 | + private string MediaType = "text/plain"; | |
27 | + private string TitleMessage = "Compartilhar Vídeo"; | |
28 | + private string SubtitleMessage = "VLibras"; | |
29 | + private string Media = "Compartilhar"; | |
30 | + private string path = Application.persistentDataPath + "/expl.jpg"; | |
31 | + | |
15 | 32 | |
16 | - } | |
17 | 33 | |
18 | - public static void ShareActivity(string title, string subject, string body) | |
34 | + public void ShareActivity(string title, string subject, string body) | |
19 | 35 | { |
20 | - CreateActivity(); | |
21 | - AndroidJavaObject sharingIntent = new AndroidJavaObject("android.content.Intent", "android.intent.action.SEND") | |
22 | - .Call<AndroidJavaObject>("setType", "text/plain") | |
23 | - .Call<AndroidJavaObject>("putExtra", "android.intent.extra.TEXT", body) | |
24 | - .Call<AndroidJavaObject>("putExtra", "android.intent.extra.SUBJECT", subject); | |
25 | - | |
26 | - AndroidJavaObject intent = new AndroidJavaObject("android.content.Intent", activity) | |
27 | - .CallStatic<AndroidJavaObject>("createChooser", sharingIntent, title); | |
28 | - activity.Call("startActivity", intent); | |
36 | + | |
37 | +#if UNITY_ANDROID | |
38 | + // Create Refernece of AndroidJavaClass class for intent | |
39 | + AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent"); | |
40 | + // Create Refernece of AndroidJavaObject class intent | |
41 | + AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent"); | |
42 | + // Set action for intent | |
43 | + intentObject.Call<AndroidJavaObject>("setAction", intentClass.GetStatic<string>("ACTION_SEND")); | |
44 | + intentObject.Call<AndroidJavaObject>("setType", MediaType); | |
45 | + //Set Subject of action | |
46 | + intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_SUBJECT"), SubtitleMessage); | |
47 | + //Set title of action or intent | |
48 | + intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TITLE"), TitleMessage); | |
49 | + | |
50 | + | |
51 | + // Set actual data which you want to share | |
52 | + intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TEXT"), Media); | |
53 | + AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); | |
54 | + AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity"); | |
55 | + // Invoke android activity for passing intent to share data | |
56 | + currentActivity.Call("startActivity", intentObject); | |
57 | + | |
58 | + | |
59 | + /* AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri"); | |
60 | + AndroidJavaClass fileClass = new AndroidJavaClass("java.io.File"); | |
61 | + AndroidJavaObject fileObject = new AndroidJavaObject("java.io.File", path);// Set Image Path Here | |
62 | + AndroidJavaObject uriObject = uriClass.CallStatic<AndroidJavaObject>("fromFile", fileObject); | |
63 | + // string uriPath = uriObject.Call("getPath"); | |
64 | + bool fileExist = fileObject.Call<bool>("exists"); | |
65 | + Debug.Log("File exist : " + fileExist); | |
66 | + // Attach image to intent | |
67 | + if (fileExist) | |
68 | + intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<AndroidJavaObject>("EXTRA_STREAM"), uriObject); | |
69 | + AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); | |
70 | + AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity"); | |
71 | + currentActivity.Call("startActivity", intentObject); | |
72 | + */ | |
73 | +#endif | |
29 | 74 | } |
30 | 75 | } |
76 | + | |
77 | + | ... | ... |