Commit debee6bb89f6bd28326a65ed5c65a5c36746409f

Authored by Thiago Filipe Soares da Rocha
1 parent 5e630b48

Finish RunTime Permission

Assets/Plugins/Android/AndroidManifest.xml
@@ -8,8 +8,7 @@ @@ -8,8 +8,7 @@
8 <uses-permission android:name="android.permission.INTERNET" /> 8 <uses-permission android:name="android.permission.INTERNET" />
9 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 9 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
10 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 10 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
11 - <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  
12 - 11 + <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
13 <application 12 <application
14 android:icon="@drawable/app_icon" 13 android:icon="@drawable/app_icon"
15 android:label="@string/app_name" 14 android:label="@string/app_name"
@@ -25,5 +24,7 @@ @@ -25,5 +24,7 @@
25 </intent-filter> 24 </intent-filter>
26 <meta-data android:name="unityplayer.UnityActivity" android:value="true" /> 25 <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
27 </activity> 26 </activity>
  27 + <meta-data android:name="unityplayer.SkipPermissionsDialog" android:value="true" />
  28 +
28 </application> 29 </application>
29 </manifest> 30 </manifest>
30 \ No newline at end of file 31 \ No newline at end of file
Assets/Plugins/Android/AndroidPermission.jar 0 → 100644
No preview for this file type
Assets/Plugins/Android/AndroidPermission.jar.meta 0 → 100644
@@ -0,0 +1,23 @@ @@ -0,0 +1,23 @@
  1 +fileFormatVersion: 2
  2 +guid: cf879d096d390154ea31f35802494b01
  3 +timeCreated: 1487428138
  4 +licenseType: Free
  5 +PluginImporter:
  6 + serializedVersion: 1
  7 + iconMap: {}
  8 + executionOrder: {}
  9 + isPreloaded: 0
  10 + platformData:
  11 + Android:
  12 + enabled: 1
  13 + settings: {}
  14 + Any:
  15 + enabled: 0
  16 + settings: {}
  17 + Editor:
  18 + enabled: 0
  19 + settings:
  20 + DefaultValueInitialized: true
  21 + userData:
  22 + assetBundleName:
  23 + assetBundleVariant:
Assets/Plugins/Android/file_paths.xml
@@ -1,5 +0,0 @@ @@ -1,5 +0,0 @@
1 -<?xml version="1.0" encoding="utf-8"?>  
2 -<paths>  
3 - <external-path path="Android/data/com.lavid.vlibras/" name="files_root" />  
4 - <external-path path="." name="external_storage_root" />  
5 -</paths>  
6 \ No newline at end of file 0 \ No newline at end of file
Assets/Plugins/Android/file_paths.xml.meta
@@ -1,8 +0,0 @@ @@ -1,8 +0,0 @@
1 -fileFormatVersion: 2  
2 -guid: 3efe7884117ce2a42ab53ef3041426fc  
3 -timeCreated: 1486638270  
4 -licenseType: Free  
5 -TextScriptImporter:  
6 - userData:  
7 - assetBundleName:  
8 - assetBundleVariant:  
Assets/Scenes/Main.unity
@@ -2972,6 +2972,148 @@ CanvasRenderer: @@ -2972,6 +2972,148 @@ CanvasRenderer:
2972 m_PrefabParentObject: {fileID: 0} 2972 m_PrefabParentObject: {fileID: 0}
2973 m_PrefabInternal: {fileID: 0} 2973 m_PrefabInternal: {fileID: 0}
2974 m_GameObject: {fileID: 459724683} 2974 m_GameObject: {fileID: 459724683}
  2975 +--- !u!1 &462530645
  2976 +GameObject:
  2977 + m_ObjectHideFlags: 0
  2978 + m_PrefabParentObject: {fileID: 155430, guid: 5ccb0ba277304a14b9bb8d4e34161675, type: 2}
  2979 + m_PrefabInternal: {fileID: 0}
  2980 + serializedVersion: 4
  2981 + m_Component:
  2982 + - 224: {fileID: 462530646}
  2983 + - 222: {fileID: 462530650}
  2984 + - 114: {fileID: 462530649}
  2985 + - 114: {fileID: 462530648}
  2986 + - 114: {fileID: 462530647}
  2987 + m_Layer: 5
  2988 + m_Name: confirm
  2989 + m_TagString: Untagged
  2990 + m_Icon: {fileID: 0}
  2991 + m_NavMeshLayer: 0
  2992 + m_StaticEditorFlags: 0
  2993 + m_IsActive: 1
  2994 +--- !u!224 &462530646
  2995 +RectTransform:
  2996 + m_ObjectHideFlags: 0
  2997 + m_PrefabParentObject: {fileID: 22443822, guid: 5ccb0ba277304a14b9bb8d4e34161675,
  2998 + type: 2}
  2999 + m_PrefabInternal: {fileID: 0}
  3000 + m_GameObject: {fileID: 462530645}
  3001 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  3002 + m_LocalPosition: {x: 0, y: 0, z: 0}
  3003 + m_LocalScale: {x: 1, y: 1, z: 1}
  3004 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  3005 + m_Children:
  3006 + - {fileID: 1488521623}
  3007 + m_Father: {fileID: 1278391374}
  3008 + m_RootOrder: 4
  3009 + m_AnchorMin: {x: 0.34, y: 0.1}
  3010 + m_AnchorMax: {x: 0.66, y: 0.36}
  3011 + m_AnchoredPosition: {x: 0, y: 0}
  3012 + m_SizeDelta: {x: 0, y: 0}
  3013 + m_Pivot: {x: 0.5, y: 0.5}
  3014 +--- !u!114 &462530647
  3015 +MonoBehaviour:
  3016 + m_ObjectHideFlags: 0
  3017 + m_PrefabParentObject: {fileID: 11468344, guid: 5ccb0ba277304a14b9bb8d4e34161675,
  3018 + type: 2}
  3019 + m_PrefabInternal: {fileID: 0}
  3020 + m_GameObject: {fileID: 462530645}
  3021 + m_Enabled: 0
  3022 + m_EditorHideFlags: 0
  3023 + m_Script: {fileID: -900027084, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  3024 + m_Name:
  3025 + m_EditorClassIdentifier:
  3026 + m_EffectColor: {r: 0, g: 0, b: 0, a: 0.5}
  3027 + m_EffectDistance: {x: 1, y: -1}
  3028 + m_UseGraphicAlpha: 1
  3029 +--- !u!114 &462530648
  3030 +MonoBehaviour:
  3031 + m_ObjectHideFlags: 0
  3032 + m_PrefabParentObject: {fileID: 11419756, guid: 5ccb0ba277304a14b9bb8d4e34161675,
  3033 + type: 2}
  3034 + m_PrefabInternal: {fileID: 0}
  3035 + m_GameObject: {fileID: 462530645}
  3036 + m_Enabled: 1
  3037 + m_EditorHideFlags: 0
  3038 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  3039 + m_Name:
  3040 + m_EditorClassIdentifier:
  3041 + m_Navigation:
  3042 + m_Mode: 3
  3043 + m_SelectOnUp: {fileID: 0}
  3044 + m_SelectOnDown: {fileID: 0}
  3045 + m_SelectOnLeft: {fileID: 0}
  3046 + m_SelectOnRight: {fileID: 0}
  3047 + m_Transition: 1
  3048 + m_Colors:
  3049 + m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
  3050 + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
  3051 + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
  3052 + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
  3053 + m_ColorMultiplier: 1
  3054 + m_FadeDuration: 0.1
  3055 + m_SpriteState:
  3056 + m_HighlightedSprite: {fileID: 0}
  3057 + m_PressedSprite: {fileID: 0}
  3058 + m_DisabledSprite: {fileID: 0}
  3059 + m_AnimationTriggers:
  3060 + m_NormalTrigger: Normal
  3061 + m_HighlightedTrigger: Highlighted
  3062 + m_PressedTrigger: Pressed
  3063 + m_DisabledTrigger: Disabled
  3064 + m_Interactable: 1
  3065 + m_TargetGraphic: {fileID: 462530649}
  3066 + m_OnClick:
  3067 + m_PersistentCalls:
  3068 + m_Calls:
  3069 + - m_Target: {fileID: 2003336562}
  3070 + m_MethodName: SetActive
  3071 + m_Mode: 6
  3072 + m_Arguments:
  3073 + m_ObjectArgument: {fileID: 0}
  3074 + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
  3075 + m_IntArgument: 0
  3076 + m_FloatArgument: 0
  3077 + m_StringArgument:
  3078 + m_BoolArgument: 0
  3079 + m_CallState: 2
  3080 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
  3081 + Culture=neutral, PublicKeyToken=null
  3082 +--- !u!114 &462530649
  3083 +MonoBehaviour:
  3084 + m_ObjectHideFlags: 0
  3085 + m_PrefabParentObject: {fileID: 11427914, guid: 5ccb0ba277304a14b9bb8d4e34161675,
  3086 + type: 2}
  3087 + m_PrefabInternal: {fileID: 0}
  3088 + m_GameObject: {fileID: 462530645}
  3089 + m_Enabled: 1
  3090 + m_EditorHideFlags: 0
  3091 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  3092 + m_Name:
  3093 + m_EditorClassIdentifier:
  3094 + m_Material: {fileID: 0}
  3095 + m_Color: {r: 1, g: 1, b: 1, a: 1}
  3096 + m_RaycastTarget: 1
  3097 + m_OnCullStateChanged:
  3098 + m_PersistentCalls:
  3099 + m_Calls: []
  3100 + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
  3101 + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
  3102 + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
  3103 + m_Type: 1
  3104 + m_PreserveAspect: 0
  3105 + m_FillCenter: 1
  3106 + m_FillMethod: 4
  3107 + m_FillAmount: 1
  3108 + m_FillClockwise: 1
  3109 + m_FillOrigin: 0
  3110 +--- !u!222 &462530650
  3111 +CanvasRenderer:
  3112 + m_ObjectHideFlags: 0
  3113 + m_PrefabParentObject: {fileID: 22290152, guid: 5ccb0ba277304a14b9bb8d4e34161675,
  3114 + type: 2}
  3115 + m_PrefabInternal: {fileID: 0}
  3116 + m_GameObject: {fileID: 462530645}
2975 --- !u!1 &486636721 3117 --- !u!1 &486636721
2976 GameObject: 3118 GameObject:
2977 m_ObjectHideFlags: 0 3119 m_ObjectHideFlags: 0
@@ -3450,53 +3592,53 @@ Animation: @@ -3450,53 +3592,53 @@ Animation:
3450 m_GameObject: {fileID: 535548070} 3592 m_GameObject: {fileID: 535548070}
3451 m_Enabled: 1 3593 m_Enabled: 1
3452 serializedVersion: 3 3594 serializedVersion: 3
3453 - m_Animation: {fileID: 7400000, guid: d7ed17c702b9a5f429a0d0f911deb512, type: 2} 3595 + m_Animation: {fileID: 7400000, guid: 365e5f41595503c48915848d883fabfe, type: 2}
3454 m_Animations: 3596 m_Animations:
3455 - - {fileID: 7400000, guid: c3116900301035d4d9ab965355a7d2da, type: 2}  
3456 - - {fileID: 7400000, guid: bbc708a006c53b247950ec8d5e9d13ca, type: 2}  
3457 - - {fileID: 7400000, guid: 41aad2b17985ec44f950327c98de3a61, type: 2}  
3458 - - {fileID: 7400000, guid: 1bcb5872b8a9bfd4f99715b6b9a30ed1, type: 2}  
3459 - - {fileID: 7400000, guid: b8cd2882336a803428d076ed421784cc, type: 2}  
3460 - - {fileID: 7400000, guid: b9bc2da25c0a4bd4abce7e4102cc6840, type: 2}  
3461 - - {fileID: 7400000, guid: 435cc9d222543014c95bdb031557363c, type: 2}  
3462 - - {fileID: 7400000, guid: 81d578e216e55a74792ebd7ff24572a6, type: 2}  
3463 - - {fileID: 7400000, guid: e01ded23bec2edf4e993362444d0c9f3, type: 2}  
3464 - - {fileID: 7400000, guid: 2b852a34df329ad47ae0de994304272b, type: 2}  
3465 - - {fileID: 7400000, guid: e261cb657cadf544ab682441cdf6daa2, type: 2}  
3466 - - {fileID: 7400000, guid: 8171ffb55afebb248ae9dfec89dfa6d3, type: 2}  
3467 - - {fileID: 7400000, guid: c3ee01c5c4f7fa844b4cbff88640774a, type: 2}  
3468 - - {fileID: 7400000, guid: c89c2ac5fdcc7134e9fea639bfa0d3ee, type: 2}  
3469 - - {fileID: 7400000, guid: 827c0be57e23e654693b18e8be4b9aa6, type: 2}  
3470 - - {fileID: 7400000, guid: 5b096066f65f50543847312c860bdde0, type: 2}  
3471 - - {fileID: 7400000, guid: ee10f576fd52c224fbb94ef465f0eca9, type: 2}  
3472 - - {fileID: 7400000, guid: 0b8210c664cb429459b3b143ab958271, type: 2}  
3473 - - {fileID: 7400000, guid: 1d8184f650080c94f8eb61c051fa3068, type: 2}  
3474 - - {fileID: 7400000, guid: c5af08f6a6b63b64f97fa60213bae749, type: 2}  
3475 - - {fileID: 7400000, guid: 76ee87d8ead47e540a41e8f816214a19, type: 2}  
3476 - - {fileID: 7400000, guid: a2e5047999f55454a95de53a2576f181, type: 2}  
3477 - - {fileID: 7400000, guid: a2f76c1a91828fb42853b4dbcf0b883d, type: 2}  
3478 - - {fileID: 7400000, guid: 0966c5eae482c8e4c925ce47e1cc6b50, type: 2}  
3479 - - {fileID: 7400000, guid: 275f1dfa6460f8c4191e7b93826387c4, type: 2}  
3480 - - {fileID: 7400000, guid: c08d534bc615ee244a6e357018332fdb, type: 2}  
3481 - - {fileID: 7400000, guid: 8c7eb97b053e0854987a526faa03b12b, type: 2}  
3482 - - {fileID: 7400000, guid: 3bd4e3dbcfd03a643a9d714a4b878cd7, type: 2}  
3483 - - {fileID: 7400000, guid: f077ebeba29221b4592ba5e2cd4a008b, type: 2}  
3484 - - {fileID: 7400000, guid: b216803c06badb44ebd515779f3bcfbc, type: 2}  
3485 - - {fileID: 7400000, guid: 99acc6dc112fda943a2dcec036c68d9a, type: 2}  
3486 - - {fileID: 7400000, guid: a2fdbfdc90f3a2e4aafa769025f30bd8, type: 2}  
3487 - - {fileID: 7400000, guid: 34a9ee8dd38b0e74dbea96b7b2dffe60, type: 2}  
3488 - - {fileID: 7400000, guid: 029da2add803b0c44a3b2844b0aabf98, type: 2}  
3489 - - {fileID: 7400000, guid: 9a27c7adf2e14834fba322b71ec6d32d, type: 2}  
3490 - - {fileID: 7400000, guid: c3e17dadf693a9e4fac16a26cc85809d, type: 2}  
3491 - - {fileID: 7400000, guid: 41bb63bd8f199f747997bfc6866e1985, type: 2}  
3492 - - {fileID: 7400000, guid: 1bccc94e1444f2f43b6500725e036d99, type: 2}  
3493 - - {fileID: 7400000, guid: 92290e8e121f9aa42a8105896870497c, type: 2}  
3494 - - {fileID: 7400000, guid: c695109e70aa1eb46a341994fbe77947, type: 2}  
3495 - - {fileID: 7400000, guid: bc2299fe63314e14397f7ea049cc5813, type: 2}  
3496 - - {fileID: 7400000, guid: 4b04975fc39e6d1499f44e0de7ad5b51, type: 2}  
3497 - - {fileID: 7400000, guid: 6cffd5bfbb65bc740b10b09610162a79, type: 2}  
3498 - - {fileID: 7400000, guid: 07d58fffb535d124d8714c6a4504f95c, type: 2}  
3499 - - {fileID: 7400000, guid: d7ed17c702b9a5f429a0d0f911deb512, type: 2} 3597 + - {fileID: 7400000, guid: f1f36f20657e5244e9c1e21117d9a452, type: 2}
  3598 + - {fileID: 7400000, guid: 55bec2c04d14e74488ef127ee380a080, type: 2}
  3599 + - {fileID: 7400000, guid: b368bfe0efa37c04bb9c661058ccedb9, type: 2}
  3600 + - {fileID: 7400000, guid: 365e5f41595503c48915848d883fabfe, type: 2}
  3601 + - {fileID: 7400000, guid: fa9ef8a15fe08a143bc89dc00289fc17, type: 2}
  3602 + - {fileID: 7400000, guid: 939bebf16bb2dba44894c5745c5dc1f8, type: 2}
  3603 + - {fileID: 7400000, guid: aecdf652be04b444f84644ba7c403960, type: 2}
  3604 + - {fileID: 7400000, guid: 53ed20623f5573345a4fb057db454b05, type: 2}
  3605 + - {fileID: 7400000, guid: b0bafda258c57414ebfbc4cf89719795, type: 2}
  3606 + - {fileID: 7400000, guid: 67caa6e2d05387848a9448b57fffcb0f, type: 2}
  3607 + - {fileID: 7400000, guid: a79227e28dd60fa4c9812a51ab9d455e, type: 2}
  3608 + - {fileID: 7400000, guid: 8b1d930398178064795f5d23af67dce4, type: 2}
  3609 + - {fileID: 7400000, guid: af8192a32a30ab746be40ff1dcb8bc0a, type: 2}
  3610 + - {fileID: 7400000, guid: e282c734045b47241988e2b9fdf0dc7e, type: 2}
  3611 + - {fileID: 7400000, guid: 698d03f46785361449a10cc0003862eb, type: 2}
  3612 + - {fileID: 7400000, guid: e193836512c744c4299651990fc3ca10, type: 2}
  3613 + - {fileID: 7400000, guid: c4d452a56e2f4ee4a83e5679f969a354, type: 2}
  3614 + - {fileID: 7400000, guid: 220a675640cc72d4f9c8d364c9a377b4, type: 2}
  3615 + - {fileID: 7400000, guid: 9a1e34a6954967f4fb3982394bf61eef, type: 2}
  3616 + - {fileID: 7400000, guid: 039911b68664f7b40b97e2665893a1e5, type: 2}
  3617 + - {fileID: 7400000, guid: b4a4a507b5b85404f9ca30cf2855b359, type: 2}
  3618 + - {fileID: 7400000, guid: 3b67cb87e08f4e34badc00f7b49d2591, type: 2}
  3619 + - {fileID: 7400000, guid: dc854de773a9e3f488c7a1b42d6a460b, type: 2}
  3620 + - {fileID: 7400000, guid: 21b376087ddd4ec46a1da0c3ba1181d9, type: 2}
  3621 + - {fileID: 7400000, guid: db84b318b67dbc54fa1fab6d31dfeb6e, type: 2}
  3622 + - {fileID: 7400000, guid: 47e5da18eda740844ba111cfab49d0eb, type: 2}
  3623 + - {fileID: 7400000, guid: ba9dc32834cf193429f27449b1d9d701, type: 2}
  3624 + - {fileID: 7400000, guid: 22f7b3c892f0e5e41b120798d7953026, type: 2}
  3625 + - {fileID: 7400000, guid: 9396f2d833a082446b36b0cda61ba87c, type: 2}
  3626 + - {fileID: 7400000, guid: 289449396bffd4045b8657269df378f2, type: 2}
  3627 + - {fileID: 7400000, guid: 99bb7e6adbe6d5f4984c51d5d5e92045, type: 2}
  3628 + - {fileID: 7400000, guid: b6faf58a03a0dc24cb9777c70fda828b, type: 2}
  3629 + - {fileID: 7400000, guid: b2b18bfa970783a4ab32945b1c4bc54b, type: 2}
  3630 + - {fileID: 7400000, guid: a8b0488b23a43b3499d2b1d8b81f0707, type: 2}
  3631 + - {fileID: 7400000, guid: ccdf6bab5e56c0447abfc0a8f745b62c, type: 2}
  3632 + - {fileID: 7400000, guid: 8d2c7cdb67fea144e9660db7edd82239, type: 2}
  3633 + - {fileID: 7400000, guid: 6191f3fb2e8027b48ac60aa48c11065d, type: 2}
  3634 + - {fileID: 7400000, guid: dbf77a3c567182846bad50598584109d, type: 2}
  3635 + - {fileID: 7400000, guid: d2f41e4d1ce31a4458ccdab2cd91faae, type: 2}
  3636 + - {fileID: 7400000, guid: fc72e7fd88de0b94fb9b050fc1368547, type: 2}
  3637 + - {fileID: 7400000, guid: 5b7bf0ae891107f4aaa366ba42eac9ee, type: 2}
  3638 + - {fileID: 7400000, guid: d9c72b1fb167df045ae7ac711d1dee6c, type: 2}
  3639 + - {fileID: 7400000, guid: d927185f3fb021844834f7086d346e3a, type: 2}
  3640 + - {fileID: 7400000, guid: e62d77cfc7d0d104b84d8beb5ef72c33, type: 2}
  3641 + - {fileID: 7400000, guid: 1dd400df2179f94469eb2480a313a8cf, type: 2}
3500 m_WrapMode: 0 3642 m_WrapMode: 0
3501 m_PlayAutomatically: 1 3643 m_PlayAutomatically: 1
3502 m_AnimatePhysics: 0 3644 m_AnimatePhysics: 0
@@ -5665,15 +5807,15 @@ RectTransform: @@ -5665,15 +5807,15 @@ RectTransform:
5665 m_GameObject: {fileID: 860133481} 5807 m_GameObject: {fileID: 860133481}
5666 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 5808 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
5667 m_LocalPosition: {x: 0, y: 0, z: -0} 5809 m_LocalPosition: {x: 0, y: 0, z: -0}
5668 - m_LocalScale: {x: 0.9998621, y: 1, z: 0} 5810 + m_LocalScale: {x: 1, y: 1, z: 0}
5669 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 5811 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
5670 m_Children: [] 5812 m_Children: []
5671 m_Father: {fileID: 581668677} 5813 m_Father: {fileID: 581668677}
5672 m_RootOrder: 0 5814 m_RootOrder: 0
5673 - m_AnchorMin: {x: 0, y: 1.7}  
5674 - m_AnchorMax: {x: 0.97, y: 2.2}  
5675 - m_AnchoredPosition: {x: 16.081665, y: -194.28574}  
5676 - m_SizeDelta: {x: 16.083801, y: 57.142853} 5815 + m_AnchorMin: {x: 1, y: 0}
  5816 + m_AnchorMax: {x: 1, y: 1}
  5817 + m_AnchoredPosition: {x: 0, y: 0}
  5818 + m_SizeDelta: {x: 41.42856, y: 0}
5677 m_Pivot: {x: 1, y: 0} 5819 m_Pivot: {x: 1, y: 0}
5678 --- !u!114 &860133483 5820 --- !u!114 &860133483
5679 MonoBehaviour: 5821 MonoBehaviour:
@@ -6069,15 +6211,15 @@ RectTransform: @@ -6069,15 +6211,15 @@ RectTransform:
6069 m_GameObject: {fileID: 926124761} 6211 m_GameObject: {fileID: 926124761}
6070 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 6212 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
6071 m_LocalPosition: {x: 0, y: 0, z: -0} 6213 m_LocalPosition: {x: 0, y: 0, z: -0}
6072 - m_LocalScale: {x: 0.9998621, y: 1, z: 0} 6214 + m_LocalScale: {x: 1, y: 1, z: 0}
6073 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 6215 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
6074 m_Children: [] 6216 m_Children: []
6075 m_Father: {fileID: 160532052} 6217 m_Father: {fileID: 160532052}
6076 m_RootOrder: 0 6218 m_RootOrder: 0
6077 - m_AnchorMin: {x: 0, y: 1.7}  
6078 - m_AnchorMax: {x: 0.97, y: 2.2}  
6079 - m_AnchoredPosition: {x: 16.081665, y: -194.28574}  
6080 - m_SizeDelta: {x: 16.083801, y: 57.142853} 6219 + m_AnchorMin: {x: 1, y: 0}
  6220 + m_AnchorMax: {x: 1, y: 1}
  6221 + m_AnchoredPosition: {x: 0, y: 0}
  6222 + m_SizeDelta: {x: 41.42856, y: 0}
6081 m_Pivot: {x: 1, y: 0} 6223 m_Pivot: {x: 1, y: 0}
6082 --- !u!114 &926124763 6224 --- !u!114 &926124763
6083 MonoBehaviour: 6225 MonoBehaviour:
@@ -7333,7 +7475,7 @@ GameObject: @@ -7333,7 +7475,7 @@ GameObject:
7333 m_Icon: {fileID: 0} 7475 m_Icon: {fileID: 0}
7334 m_NavMeshLayer: 0 7476 m_NavMeshLayer: 0
7335 m_StaticEditorFlags: 0 7477 m_StaticEditorFlags: 0
7336 - m_IsActive: 1 7478 + m_IsActive: 0
7337 --- !u!224 &1059619783 7479 --- !u!224 &1059619783
7338 RectTransform: 7480 RectTransform:
7339 m_ObjectHideFlags: 0 7481 m_ObjectHideFlags: 0
@@ -7915,6 +8057,76 @@ CanvasRenderer: @@ -7915,6 +8057,76 @@ CanvasRenderer:
7915 m_PrefabParentObject: {fileID: 0} 8057 m_PrefabParentObject: {fileID: 0}
7916 m_PrefabInternal: {fileID: 0} 8058 m_PrefabInternal: {fileID: 0}
7917 m_GameObject: {fileID: 1124983616} 8059 m_GameObject: {fileID: 1124983616}
  8060 +--- !u!1 &1149810474
  8061 +GameObject:
  8062 + m_ObjectHideFlags: 0
  8063 + m_PrefabParentObject: {fileID: 198352, guid: 5ccb0ba277304a14b9bb8d4e34161675, type: 2}
  8064 + m_PrefabInternal: {fileID: 0}
  8065 + serializedVersion: 4
  8066 + m_Component:
  8067 + - 224: {fileID: 1149810475}
  8068 + - 222: {fileID: 1149810477}
  8069 + - 114: {fileID: 1149810476}
  8070 + m_Layer: 5
  8071 + m_Name: line
  8072 + m_TagString: Untagged
  8073 + m_Icon: {fileID: 0}
  8074 + m_NavMeshLayer: 0
  8075 + m_StaticEditorFlags: 0
  8076 + m_IsActive: 1
  8077 +--- !u!224 &1149810475
  8078 +RectTransform:
  8079 + m_ObjectHideFlags: 0
  8080 + m_PrefabParentObject: {fileID: 22426370, guid: 5ccb0ba277304a14b9bb8d4e34161675,
  8081 + type: 2}
  8082 + m_PrefabInternal: {fileID: 0}
  8083 + m_GameObject: {fileID: 1149810474}
  8084 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  8085 + m_LocalPosition: {x: 0, y: 0, z: 0}
  8086 + m_LocalScale: {x: 1, y: 1, z: 1}
  8087 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  8088 + m_Children: []
  8089 + m_Father: {fileID: 1278391374}
  8090 + m_RootOrder: 1
  8091 + m_AnchorMin: {x: 0, y: 0.78}
  8092 + m_AnchorMax: {x: 1, y: 0.78}
  8093 + m_AnchoredPosition: {x: 0, y: 0}
  8094 + m_SizeDelta: {x: 0, y: 1}
  8095 + m_Pivot: {x: 0.5, y: 0.5}
  8096 +--- !u!114 &1149810476
  8097 +MonoBehaviour:
  8098 + m_ObjectHideFlags: 0
  8099 + m_PrefabParentObject: {fileID: 11463618, guid: 5ccb0ba277304a14b9bb8d4e34161675,
  8100 + type: 2}
  8101 + m_PrefabInternal: {fileID: 0}
  8102 + m_GameObject: {fileID: 1149810474}
  8103 + m_Enabled: 1
  8104 + m_EditorHideFlags: 0
  8105 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  8106 + m_Name:
  8107 + m_EditorClassIdentifier:
  8108 + m_Material: {fileID: 0}
  8109 + m_Color: {r: 0.375, g: 0.6527778, b: 1, a: 1}
  8110 + m_RaycastTarget: 1
  8111 + m_OnCullStateChanged:
  8112 + m_PersistentCalls:
  8113 + m_Calls: []
  8114 + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
  8115 + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
  8116 + m_Texture: {fileID: 0}
  8117 + m_UVRect:
  8118 + serializedVersion: 2
  8119 + x: 0
  8120 + y: 0
  8121 + width: 1
  8122 + height: 1
  8123 +--- !u!222 &1149810477
  8124 +CanvasRenderer:
  8125 + m_ObjectHideFlags: 0
  8126 + m_PrefabParentObject: {fileID: 22250052, guid: 5ccb0ba277304a14b9bb8d4e34161675,
  8127 + type: 2}
  8128 + m_PrefabInternal: {fileID: 0}
  8129 + m_GameObject: {fileID: 1149810474}
7918 --- !u!1 &1152273569 8130 --- !u!1 &1152273569
7919 GameObject: 8131 GameObject:
7920 m_ObjectHideFlags: 0 8132 m_ObjectHideFlags: 0
@@ -8294,50 +8506,128 @@ CanvasRenderer: @@ -8294,50 +8506,128 @@ CanvasRenderer:
8294 type: 2} 8506 type: 2}
8295 m_PrefabInternal: {fileID: 0} 8507 m_PrefabInternal: {fileID: 0}
8296 m_GameObject: {fileID: 1164416485} 8508 m_GameObject: {fileID: 1164416485}
8297 ---- !u!1 &1173561060 8509 +--- !u!1 &1169914713
8298 GameObject: 8510 GameObject:
8299 m_ObjectHideFlags: 0 8511 m_ObjectHideFlags: 0
8300 - m_PrefabParentObject: {fileID: 137576, guid: 5ccb0ba277304a14b9bb8d4e34161675, type: 2} 8512 + m_PrefabParentObject: {fileID: 106982, guid: 5ccb0ba277304a14b9bb8d4e34161675, type: 2}
8301 m_PrefabInternal: {fileID: 0} 8513 m_PrefabInternal: {fileID: 0}
8302 serializedVersion: 4 8514 serializedVersion: 4
8303 m_Component: 8515 m_Component:
8304 - - 224: {fileID: 1173561061} 8516 + - 224: {fileID: 1169914714}
  8517 + - 222: {fileID: 1169914716}
  8518 + - 114: {fileID: 1169914715}
8305 m_Layer: 5 8519 m_Layer: 5
8306 - m_Name: LOGO 8520 + m_Name: message
8307 m_TagString: Untagged 8521 m_TagString: Untagged
8308 m_Icon: {fileID: 0} 8522 m_Icon: {fileID: 0}
8309 m_NavMeshLayer: 0 8523 m_NavMeshLayer: 0
8310 m_StaticEditorFlags: 0 8524 m_StaticEditorFlags: 0
8311 m_IsActive: 1 8525 m_IsActive: 1
8312 ---- !u!224 &1173561061 8526 +--- !u!224 &1169914714
8313 RectTransform: 8527 RectTransform:
8314 m_ObjectHideFlags: 0 8528 m_ObjectHideFlags: 0
8315 - m_PrefabParentObject: {fileID: 22427224, guid: 5ccb0ba277304a14b9bb8d4e34161675, 8529 + m_PrefabParentObject: {fileID: 22431032, guid: 5ccb0ba277304a14b9bb8d4e34161675,
8316 type: 2} 8530 type: 2}
8317 m_PrefabInternal: {fileID: 0} 8531 m_PrefabInternal: {fileID: 0}
8318 - m_GameObject: {fileID: 1173561060} 8532 + m_GameObject: {fileID: 1169914713}
8319 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 8533 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
8320 m_LocalPosition: {x: 0, y: 0, z: 0} 8534 m_LocalPosition: {x: 0, y: 0, z: 0}
8321 m_LocalScale: {x: 1, y: 1, z: 1} 8535 m_LocalScale: {x: 1, y: 1, z: 1}
8322 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 8536 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
8323 - m_Children:  
8324 - - {fileID: 1516956731}  
8325 - - {fileID: 1201374061}  
8326 - m_Father: {fileID: 263018772}  
8327 - m_RootOrder: 1  
8328 - m_AnchorMin: {x: 0, y: 0.62}  
8329 - m_AnchorMax: {x: 1, y: 0.98} 8537 + m_Children: []
  8538 + m_Father: {fileID: 1278391374}
  8539 + m_RootOrder: 3
  8540 + m_AnchorMin: {x: 0.04, y: 0.44}
  8541 + m_AnchorMax: {x: 0.96, y: 0.74}
8330 m_AnchoredPosition: {x: 0, y: 0} 8542 m_AnchoredPosition: {x: 0, y: 0}
8331 m_SizeDelta: {x: 0, y: 0} 8543 m_SizeDelta: {x: 0, y: 0}
8332 m_Pivot: {x: 0.5, y: 0.5} 8544 m_Pivot: {x: 0.5, y: 0.5}
8333 ---- !u!1 &1175405160 8545 +--- !u!114 &1169914715
  8546 +MonoBehaviour:
  8547 + m_ObjectHideFlags: 0
  8548 + m_PrefabParentObject: {fileID: 11439960, guid: 5ccb0ba277304a14b9bb8d4e34161675,
  8549 + type: 2}
  8550 + m_PrefabInternal: {fileID: 0}
  8551 + m_GameObject: {fileID: 1169914713}
  8552 + m_Enabled: 1
  8553 + m_EditorHideFlags: 0
  8554 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  8555 + m_Name:
  8556 + m_EditorClassIdentifier:
  8557 + m_Material: {fileID: 0}
  8558 + m_Color: {r: 0.35294116, g: 0.35294116, b: 0.35294116, a: 1}
  8559 + m_RaycastTarget: 1
  8560 + m_OnCullStateChanged:
  8561 + m_PersistentCalls:
  8562 + m_Calls: []
  8563 + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
  8564 + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
  8565 + m_FontData:
  8566 + m_Font: {fileID: 12800000, guid: 6853687dd34f0ea458955b404d43e48e, type: 3}
  8567 + m_FontSize: 46
  8568 + m_FontStyle: 0
  8569 + m_BestFit: 1
  8570 + m_MinSize: 0
  8571 + m_MaxSize: 105
  8572 + m_Alignment: 4
  8573 + m_AlignByGeometry: 0
  8574 + m_RichText: 1
  8575 + m_HorizontalOverflow: 0
  8576 + m_VerticalOverflow: 0
  8577 + m_LineSpacing: 0.88
  8578 + m_Text: "Para salvar e compartilhar as anima\xE7\xF5es, permita que o Vlibras acesse
  8579 + m\xEDdia e arquivos de seu aparelho."
  8580 +--- !u!222 &1169914716
  8581 +CanvasRenderer:
  8582 + m_ObjectHideFlags: 0
  8583 + m_PrefabParentObject: {fileID: 22292394, guid: 5ccb0ba277304a14b9bb8d4e34161675,
  8584 + type: 2}
  8585 + m_PrefabInternal: {fileID: 0}
  8586 + m_GameObject: {fileID: 1169914713}
  8587 +--- !u!1 &1173561060
8334 GameObject: 8588 GameObject:
8335 m_ObjectHideFlags: 0 8589 m_ObjectHideFlags: 0
8336 - m_PrefabParentObject: {fileID: 114728, guid: 5ccb0ba277304a14b9bb8d4e34161675, type: 2} 8590 + m_PrefabParentObject: {fileID: 137576, guid: 5ccb0ba277304a14b9bb8d4e34161675, type: 2}
8337 m_PrefabInternal: {fileID: 0} 8591 m_PrefabInternal: {fileID: 0}
8338 serializedVersion: 4 8592 serializedVersion: 4
8339 m_Component: 8593 m_Component:
8340 - - 224: {fileID: 1175405161} 8594 + - 224: {fileID: 1173561061}
  8595 + m_Layer: 5
  8596 + m_Name: LOGO
  8597 + m_TagString: Untagged
  8598 + m_Icon: {fileID: 0}
  8599 + m_NavMeshLayer: 0
  8600 + m_StaticEditorFlags: 0
  8601 + m_IsActive: 1
  8602 +--- !u!224 &1173561061
  8603 +RectTransform:
  8604 + m_ObjectHideFlags: 0
  8605 + m_PrefabParentObject: {fileID: 22427224, guid: 5ccb0ba277304a14b9bb8d4e34161675,
  8606 + type: 2}
  8607 + m_PrefabInternal: {fileID: 0}
  8608 + m_GameObject: {fileID: 1173561060}
  8609 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  8610 + m_LocalPosition: {x: 0, y: 0, z: 0}
  8611 + m_LocalScale: {x: 1, y: 1, z: 1}
  8612 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  8613 + m_Children:
  8614 + - {fileID: 1516956731}
  8615 + - {fileID: 1201374061}
  8616 + m_Father: {fileID: 263018772}
  8617 + m_RootOrder: 1
  8618 + m_AnchorMin: {x: 0, y: 0.62}
  8619 + m_AnchorMax: {x: 1, y: 0.98}
  8620 + m_AnchoredPosition: {x: 0, y: 0}
  8621 + m_SizeDelta: {x: 0, y: 0}
  8622 + m_Pivot: {x: 0.5, y: 0.5}
  8623 +--- !u!1 &1175405160
  8624 +GameObject:
  8625 + m_ObjectHideFlags: 0
  8626 + m_PrefabParentObject: {fileID: 114728, guid: 5ccb0ba277304a14b9bb8d4e34161675, type: 2}
  8627 + m_PrefabInternal: {fileID: 0}
  8628 + serializedVersion: 4
  8629 + m_Component:
  8630 + - 224: {fileID: 1175405161}
8341 - 222: {fileID: 1175405164} 8631 - 222: {fileID: 1175405164}
8342 - 114: {fileID: 1175405163} 8632 - 114: {fileID: 1175405163}
8343 - 114: {fileID: 1175405162} 8633 - 114: {fileID: 1175405162}
@@ -9507,6 +9797,69 @@ CanvasRenderer: @@ -9507,6 +9797,69 @@ CanvasRenderer:
9507 type: 2} 9797 type: 2}
9508 m_PrefabInternal: {fileID: 0} 9798 m_PrefabInternal: {fileID: 0}
9509 m_GameObject: {fileID: 1277329010} 9799 m_GameObject: {fileID: 1277329010}
  9800 +--- !u!1 &1278391373
  9801 +GameObject:
  9802 + m_ObjectHideFlags: 0
  9803 + m_PrefabParentObject: {fileID: 124302, guid: 5ccb0ba277304a14b9bb8d4e34161675, type: 2}
  9804 + m_PrefabInternal: {fileID: 0}
  9805 + serializedVersion: 4
  9806 + m_Component:
  9807 + - 224: {fileID: 1278391374}
  9808 + - 222: {fileID: 1278391376}
  9809 + - 114: {fileID: 1278391375}
  9810 + m_Layer: 5
  9811 + m_Name: container
  9812 + m_TagString: conn_err
  9813 + m_Icon: {fileID: 0}
  9814 + m_NavMeshLayer: 0
  9815 + m_StaticEditorFlags: 0
  9816 + m_IsActive: 1
  9817 +--- !u!224 &1278391374
  9818 +RectTransform:
  9819 + m_ObjectHideFlags: 0
  9820 + m_PrefabParentObject: {fileID: 22424302, guid: 5ccb0ba277304a14b9bb8d4e34161675,
  9821 + type: 2}
  9822 + m_PrefabInternal: {fileID: 0}
  9823 + m_GameObject: {fileID: 1278391373}
  9824 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  9825 + m_LocalPosition: {x: 0, y: 0, z: 0}
  9826 + m_LocalScale: {x: 1, y: 1, z: 1}
  9827 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  9828 + m_Children:
  9829 + - {fileID: 1380805871}
  9830 + - {fileID: 1149810475}
  9831 + - {fileID: 1424875929}
  9832 + - {fileID: 1169914714}
  9833 + - {fileID: 462530646}
  9834 + m_Father: {fileID: 2003336563}
  9835 + m_RootOrder: 0
  9836 + m_AnchorMin: {x: 0.03, y: 0.42}
  9837 + m_AnchorMax: {x: 0.97, y: 0.7}
  9838 + m_AnchoredPosition: {x: 0, y: 0}
  9839 + m_SizeDelta: {x: 0, y: 0}
  9840 + m_Pivot: {x: 0.5, y: 0.5}
  9841 +--- !u!114 &1278391375
  9842 +MonoBehaviour:
  9843 + m_ObjectHideFlags: 0
  9844 + m_PrefabParentObject: {fileID: 11466940, guid: 5ccb0ba277304a14b9bb8d4e34161675,
  9845 + type: 2}
  9846 + m_PrefabInternal: {fileID: 0}
  9847 + m_GameObject: {fileID: 1278391373}
  9848 + m_Enabled: 0
  9849 + m_EditorHideFlags: 0
  9850 + m_Script: {fileID: -900027084, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  9851 + m_Name:
  9852 + m_EditorClassIdentifier:
  9853 + m_EffectColor: {r: 0, g: 0, b: 0, a: 0.091}
  9854 + m_EffectDistance: {x: 1, y: -1}
  9855 + m_UseGraphicAlpha: 1
  9856 +--- !u!222 &1278391376
  9857 +CanvasRenderer:
  9858 + m_ObjectHideFlags: 0
  9859 + m_PrefabParentObject: {fileID: 22267502, guid: 5ccb0ba277304a14b9bb8d4e34161675,
  9860 + type: 2}
  9861 + m_PrefabInternal: {fileID: 0}
  9862 + m_GameObject: {fileID: 1278391373}
9510 --- !u!1 &1315164543 9863 --- !u!1 &1315164543
9511 GameObject: 9864 GameObject:
9512 m_ObjectHideFlags: 0 9865 m_ObjectHideFlags: 0
@@ -9831,7 +10184,7 @@ RectTransform: @@ -9831,7 +10184,7 @@ RectTransform:
9831 m_AnchorMin: {x: 1, y: 0} 10184 m_AnchorMin: {x: 1, y: 0}
9832 m_AnchorMax: {x: 1, y: 1} 10185 m_AnchorMax: {x: 1, y: 1}
9833 m_AnchoredPosition: {x: 0, y: 0} 10186 m_AnchoredPosition: {x: 0, y: 0}
9834 - m_SizeDelta: {x: 0, y: 0} 10187 + m_SizeDelta: {x: 41.42856, y: 0}
9835 m_Pivot: {x: 1, y: 0} 10188 m_Pivot: {x: 1, y: 0}
9836 --- !u!114 &1371075866 10189 --- !u!114 &1371075866
9837 MonoBehaviour: 10190 MonoBehaviour:
@@ -9881,6 +10234,92 @@ CanvasRenderer: @@ -9881,6 +10234,92 @@ CanvasRenderer:
9881 type: 2} 10234 type: 2}
9882 m_PrefabInternal: {fileID: 0} 10235 m_PrefabInternal: {fileID: 0}
9883 m_GameObject: {fileID: 1371075864} 10236 m_GameObject: {fileID: 1371075864}
  10237 +--- !u!1 &1380805870
  10238 +GameObject:
  10239 + m_ObjectHideFlags: 0
  10240 + m_PrefabParentObject: {fileID: 112800, guid: 5ccb0ba277304a14b9bb8d4e34161675, type: 2}
  10241 + m_PrefabInternal: {fileID: 0}
  10242 + serializedVersion: 4
  10243 + m_Component:
  10244 + - 224: {fileID: 1380805871}
  10245 + - 222: {fileID: 1380805874}
  10246 + - 114: {fileID: 1380805873}
  10247 + - 114: {fileID: 1380805872}
  10248 + m_Layer: 5
  10249 + m_Name: background
  10250 + m_TagString: conn_err
  10251 + m_Icon: {fileID: 0}
  10252 + m_NavMeshLayer: 0
  10253 + m_StaticEditorFlags: 0
  10254 + m_IsActive: 1
  10255 +--- !u!224 &1380805871
  10256 +RectTransform:
  10257 + m_ObjectHideFlags: 0
  10258 + m_PrefabParentObject: {fileID: 22419314, guid: 5ccb0ba277304a14b9bb8d4e34161675,
  10259 + type: 2}
  10260 + m_PrefabInternal: {fileID: 0}
  10261 + m_GameObject: {fileID: 1380805870}
  10262 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  10263 + m_LocalPosition: {x: 0, y: 0, z: 0}
  10264 + m_LocalScale: {x: 1, y: 1, z: 1}
  10265 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  10266 + m_Children: []
  10267 + m_Father: {fileID: 1278391374}
  10268 + m_RootOrder: 0
  10269 + m_AnchorMin: {x: 0, y: 0}
  10270 + m_AnchorMax: {x: 1, y: 1}
  10271 + m_AnchoredPosition: {x: 0, y: 0}
  10272 + m_SizeDelta: {x: 0, y: 0}
  10273 + m_Pivot: {x: 0.5, y: 0.5}
  10274 +--- !u!114 &1380805872
  10275 +MonoBehaviour:
  10276 + m_ObjectHideFlags: 0
  10277 + m_PrefabParentObject: {fileID: 11489216, guid: 5ccb0ba277304a14b9bb8d4e34161675,
  10278 + type: 2}
  10279 + m_PrefabInternal: {fileID: 0}
  10280 + m_GameObject: {fileID: 1380805870}
  10281 + m_Enabled: 1
  10282 + m_EditorHideFlags: 0
  10283 + m_Script: {fileID: -900027084, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  10284 + m_Name:
  10285 + m_EditorClassIdentifier:
  10286 + m_EffectColor: {r: 0, g: 0, b: 0, a: 0.091}
  10287 + m_EffectDistance: {x: 1, y: -1}
  10288 + m_UseGraphicAlpha: 1
  10289 +--- !u!114 &1380805873
  10290 +MonoBehaviour:
  10291 + m_ObjectHideFlags: 0
  10292 + m_PrefabParentObject: {fileID: 11475762, guid: 5ccb0ba277304a14b9bb8d4e34161675,
  10293 + type: 2}
  10294 + m_PrefabInternal: {fileID: 0}
  10295 + m_GameObject: {fileID: 1380805870}
  10296 + m_Enabled: 1
  10297 + m_EditorHideFlags: 0
  10298 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  10299 + m_Name:
  10300 + m_EditorClassIdentifier:
  10301 + m_Material: {fileID: 0}
  10302 + m_Color: {r: 1, g: 1, b: 1, a: 1}
  10303 + m_RaycastTarget: 1
  10304 + m_OnCullStateChanged:
  10305 + m_PersistentCalls:
  10306 + m_Calls: []
  10307 + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
  10308 + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
  10309 + m_Texture: {fileID: 0}
  10310 + m_UVRect:
  10311 + serializedVersion: 2
  10312 + x: 0
  10313 + y: 0
  10314 + width: 1
  10315 + height: 1
  10316 +--- !u!222 &1380805874
  10317 +CanvasRenderer:
  10318 + m_ObjectHideFlags: 0
  10319 + m_PrefabParentObject: {fileID: 22258706, guid: 5ccb0ba277304a14b9bb8d4e34161675,
  10320 + type: 2}
  10321 + m_PrefabInternal: {fileID: 0}
  10322 + m_GameObject: {fileID: 1380805870}
9884 --- !u!1 &1382683268 10323 --- !u!1 &1382683268
9885 GameObject: 10324 GameObject:
9886 m_ObjectHideFlags: 0 10325 m_ObjectHideFlags: 0
@@ -10503,6 +10942,83 @@ CanvasRenderer: @@ -10503,6 +10942,83 @@ CanvasRenderer:
10503 m_PrefabParentObject: {fileID: 0} 10942 m_PrefabParentObject: {fileID: 0}
10504 m_PrefabInternal: {fileID: 0} 10943 m_PrefabInternal: {fileID: 0}
10505 m_GameObject: {fileID: 1417181880} 10944 m_GameObject: {fileID: 1417181880}
  10945 +--- !u!1 &1424875928
  10946 +GameObject:
  10947 + m_ObjectHideFlags: 0
  10948 + m_PrefabParentObject: {fileID: 127762, guid: 5ccb0ba277304a14b9bb8d4e34161675, type: 2}
  10949 + m_PrefabInternal: {fileID: 0}
  10950 + serializedVersion: 4
  10951 + m_Component:
  10952 + - 224: {fileID: 1424875929}
  10953 + - 222: {fileID: 1424875931}
  10954 + - 114: {fileID: 1424875930}
  10955 + m_Layer: 5
  10956 + m_Name: title
  10957 + m_TagString: Untagged
  10958 + m_Icon: {fileID: 0}
  10959 + m_NavMeshLayer: 0
  10960 + m_StaticEditorFlags: 0
  10961 + m_IsActive: 1
  10962 +--- !u!224 &1424875929
  10963 +RectTransform:
  10964 + m_ObjectHideFlags: 0
  10965 + m_PrefabParentObject: {fileID: 22420128, guid: 5ccb0ba277304a14b9bb8d4e34161675,
  10966 + type: 2}
  10967 + m_PrefabInternal: {fileID: 0}
  10968 + m_GameObject: {fileID: 1424875928}
  10969 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  10970 + m_LocalPosition: {x: 0, y: 0, z: 0}
  10971 + m_LocalScale: {x: 1, y: 1, z: 1}
  10972 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  10973 + m_Children: []
  10974 + m_Father: {fileID: 1278391374}
  10975 + m_RootOrder: 2
  10976 + m_AnchorMin: {x: 0, y: 0.8}
  10977 + m_AnchorMax: {x: 1, y: 0.99}
  10978 + m_AnchoredPosition: {x: 0, y: 0}
  10979 + m_SizeDelta: {x: 0, y: 0}
  10980 + m_Pivot: {x: 0.5, y: 0.5}
  10981 +--- !u!114 &1424875930
  10982 +MonoBehaviour:
  10983 + m_ObjectHideFlags: 0
  10984 + m_PrefabParentObject: {fileID: 11436304, guid: 5ccb0ba277304a14b9bb8d4e34161675,
  10985 + type: 2}
  10986 + m_PrefabInternal: {fileID: 0}
  10987 + m_GameObject: {fileID: 1424875928}
  10988 + m_Enabled: 1
  10989 + m_EditorHideFlags: 0
  10990 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  10991 + m_Name:
  10992 + m_EditorClassIdentifier:
  10993 + m_Material: {fileID: 0}
  10994 + m_Color: {r: 0.20000002, g: 0.4666667, b: 0.8000001, a: 1}
  10995 + m_RaycastTarget: 1
  10996 + m_OnCullStateChanged:
  10997 + m_PersistentCalls:
  10998 + m_Calls: []
  10999 + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
  11000 + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
  11001 + m_FontData:
  11002 + m_Font: {fileID: 12800000, guid: 195abaf1001bde54db32dfcefbcc33e8, type: 3}
  11003 + m_FontSize: 52
  11004 + m_FontStyle: 0
  11005 + m_BestFit: 1
  11006 + m_MinSize: 10
  11007 + m_MaxSize: 52
  11008 + m_Alignment: 4
  11009 + m_AlignByGeometry: 0
  11010 + m_RichText: 1
  11011 + m_HorizontalOverflow: 0
  11012 + m_VerticalOverflow: 0
  11013 + m_LineSpacing: 1
  11014 + m_Text: "Exportar V\xEDdeo"
  11015 +--- !u!222 &1424875931
  11016 +CanvasRenderer:
  11017 + m_ObjectHideFlags: 0
  11018 + m_PrefabParentObject: {fileID: 22268030, guid: 5ccb0ba277304a14b9bb8d4e34161675,
  11019 + type: 2}
  11020 + m_PrefabInternal: {fileID: 0}
  11021 + m_GameObject: {fileID: 1424875928}
10506 --- !u!1 &1431182273 11022 --- !u!1 &1431182273
10507 GameObject: 11023 GameObject:
10508 m_ObjectHideFlags: 0 11024 m_ObjectHideFlags: 0
@@ -11198,6 +11714,83 @@ RectTransform: @@ -11198,6 +11714,83 @@ RectTransform:
11198 m_AnchoredPosition: {x: 3, y: 0} 11714 m_AnchoredPosition: {x: 3, y: 0}
11199 m_SizeDelta: {x: -26, y: 0} 11715 m_SizeDelta: {x: -26, y: 0}
11200 m_Pivot: {x: 0.5, y: 0.5} 11716 m_Pivot: {x: 0.5, y: 0.5}
  11717 +--- !u!1 &1488521622
  11718 +GameObject:
  11719 + m_ObjectHideFlags: 0
  11720 + m_PrefabParentObject: {fileID: 101538, guid: 5ccb0ba277304a14b9bb8d4e34161675, type: 2}
  11721 + m_PrefabInternal: {fileID: 0}
  11722 + serializedVersion: 4
  11723 + m_Component:
  11724 + - 224: {fileID: 1488521623}
  11725 + - 222: {fileID: 1488521625}
  11726 + - 114: {fileID: 1488521624}
  11727 + m_Layer: 5
  11728 + m_Name: ok
  11729 + m_TagString: Untagged
  11730 + m_Icon: {fileID: 0}
  11731 + m_NavMeshLayer: 0
  11732 + m_StaticEditorFlags: 0
  11733 + m_IsActive: 1
  11734 +--- !u!224 &1488521623
  11735 +RectTransform:
  11736 + m_ObjectHideFlags: 0
  11737 + m_PrefabParentObject: {fileID: 22497820, guid: 5ccb0ba277304a14b9bb8d4e34161675,
  11738 + type: 2}
  11739 + m_PrefabInternal: {fileID: 0}
  11740 + m_GameObject: {fileID: 1488521622}
  11741 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
  11742 + m_LocalPosition: {x: 0, y: 0, z: 0}
  11743 + m_LocalScale: {x: 1, y: 1, z: 1}
  11744 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  11745 + m_Children: []
  11746 + m_Father: {fileID: 462530646}
  11747 + m_RootOrder: 0
  11748 + m_AnchorMin: {x: 0, y: 0.12}
  11749 + m_AnchorMax: {x: 1, y: 0.88}
  11750 + m_AnchoredPosition: {x: 0, y: 0}
  11751 + m_SizeDelta: {x: 0, y: 0}
  11752 + m_Pivot: {x: 0.5, y: 0.5}
  11753 +--- !u!114 &1488521624
  11754 +MonoBehaviour:
  11755 + m_ObjectHideFlags: 0
  11756 + m_PrefabParentObject: {fileID: 11468028, guid: 5ccb0ba277304a14b9bb8d4e34161675,
  11757 + type: 2}
  11758 + m_PrefabInternal: {fileID: 0}
  11759 + m_GameObject: {fileID: 1488521622}
  11760 + m_Enabled: 1
  11761 + m_EditorHideFlags: 0
  11762 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  11763 + m_Name:
  11764 + m_EditorClassIdentifier:
  11765 + m_Material: {fileID: 0}
  11766 + m_Color: {r: 0.35294116, g: 0.35294116, b: 0.35294116, a: 1}
  11767 + m_RaycastTarget: 1
  11768 + m_OnCullStateChanged:
  11769 + m_PersistentCalls:
  11770 + m_Calls: []
  11771 + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
  11772 + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
  11773 + m_FontData:
  11774 + m_Font: {fileID: 12800000, guid: 195abaf1001bde54db32dfcefbcc33e8, type: 3}
  11775 + m_FontSize: 46
  11776 + m_FontStyle: 0
  11777 + m_BestFit: 1
  11778 + m_MinSize: 10
  11779 + m_MaxSize: 60
  11780 + m_Alignment: 4
  11781 + m_AlignByGeometry: 0
  11782 + m_RichText: 1
  11783 + m_HorizontalOverflow: 0
  11784 + m_VerticalOverflow: 0
  11785 + m_LineSpacing: 1
  11786 + m_Text: OK
  11787 +--- !u!222 &1488521625
  11788 +CanvasRenderer:
  11789 + m_ObjectHideFlags: 0
  11790 + m_PrefabParentObject: {fileID: 22294826, guid: 5ccb0ba277304a14b9bb8d4e34161675,
  11791 + type: 2}
  11792 + m_PrefabInternal: {fileID: 0}
  11793 + m_GameObject: {fileID: 1488521622}
11201 --- !u!1 &1494144143 11794 --- !u!1 &1494144143
11202 GameObject: 11795 GameObject:
11203 m_ObjectHideFlags: 0 11796 m_ObjectHideFlags: 0
@@ -12042,6 +12635,7 @@ RectTransform: @@ -12042,6 +12635,7 @@ RectTransform:
12042 - {fileID: 861767965} 12635 - {fileID: 861767965}
12043 - {fileID: 1530408465} 12636 - {fileID: 1530408465}
12044 - {fileID: 848083143} 12637 - {fileID: 848083143}
  12638 + - {fileID: 2003336563}
12045 m_Father: {fileID: 1414104007} 12639 m_Father: {fileID: 1414104007}
12046 m_RootOrder: 2 12640 m_RootOrder: 2
12047 m_AnchorMin: {x: 0, y: 0} 12641 m_AnchorMin: {x: 0, y: 0}
@@ -14496,6 +15090,75 @@ CanvasRenderer: @@ -14496,6 +15090,75 @@ CanvasRenderer:
14496 m_PrefabParentObject: {fileID: 0} 15090 m_PrefabParentObject: {fileID: 0}
14497 m_PrefabInternal: {fileID: 0} 15091 m_PrefabInternal: {fileID: 0}
14498 m_GameObject: {fileID: 2002966283} 15092 m_GameObject: {fileID: 2002966283}
  15093 +--- !u!1 &2003336562
  15094 +GameObject:
  15095 + m_ObjectHideFlags: 0
  15096 + m_PrefabParentObject: {fileID: 0}
  15097 + m_PrefabInternal: {fileID: 0}
  15098 + serializedVersion: 4
  15099 + m_Component:
  15100 + - 224: {fileID: 2003336563}
  15101 + - 222: {fileID: 2003336565}
  15102 + - 114: {fileID: 2003336564}
  15103 + m_Layer: 5
  15104 + m_Name: layer_permission_dialog
  15105 + m_TagString: Untagged
  15106 + m_Icon: {fileID: 0}
  15107 + m_NavMeshLayer: 0
  15108 + m_StaticEditorFlags: 0
  15109 + m_IsActive: 0
  15110 +--- !u!224 &2003336563
  15111 +RectTransform:
  15112 + m_ObjectHideFlags: 0
  15113 + m_PrefabParentObject: {fileID: 0}
  15114 + m_PrefabInternal: {fileID: 0}
  15115 + m_GameObject: {fileID: 2003336562}
  15116 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
  15117 + m_LocalPosition: {x: 0, y: 0, z: 0}
  15118 + m_LocalScale: {x: 1, y: 1, z: 1}
  15119 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
  15120 + m_Children:
  15121 + - {fileID: 1278391374}
  15122 + m_Father: {fileID: 1620867682}
  15123 + m_RootOrder: 6
  15124 + m_AnchorMin: {x: 0, y: 0}
  15125 + m_AnchorMax: {x: 1, y: 1}
  15126 + m_AnchoredPosition: {x: 0, y: 0}
  15127 + m_SizeDelta: {x: 0, y: 0}
  15128 + m_Pivot: {x: 0.5, y: 0.5}
  15129 +--- !u!114 &2003336564
  15130 +MonoBehaviour:
  15131 + m_ObjectHideFlags: 0
  15132 + m_PrefabParentObject: {fileID: 0}
  15133 + m_PrefabInternal: {fileID: 0}
  15134 + m_GameObject: {fileID: 2003336562}
  15135 + m_Enabled: 1
  15136 + m_EditorHideFlags: 0
  15137 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
  15138 + m_Name:
  15139 + m_EditorClassIdentifier:
  15140 + m_Material: {fileID: 0}
  15141 + m_Color: {r: 1, g: 1, b: 1, a: 0}
  15142 + m_RaycastTarget: 1
  15143 + m_OnCullStateChanged:
  15144 + m_PersistentCalls:
  15145 + m_Calls: []
  15146 + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
  15147 + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
  15148 + m_Sprite: {fileID: 0}
  15149 + m_Type: 0
  15150 + m_PreserveAspect: 0
  15151 + m_FillCenter: 1
  15152 + m_FillMethod: 4
  15153 + m_FillAmount: 1
  15154 + m_FillClockwise: 1
  15155 + m_FillOrigin: 0
  15156 +--- !u!222 &2003336565
  15157 +CanvasRenderer:
  15158 + m_ObjectHideFlags: 0
  15159 + m_PrefabParentObject: {fileID: 0}
  15160 + m_PrefabInternal: {fileID: 0}
  15161 + m_GameObject: {fileID: 2003336562}
14499 --- !u!1 &2010584309 15162 --- !u!1 &2010584309
14500 GameObject: 15163 GameObject:
14501 m_ObjectHideFlags: 0 15164 m_ObjectHideFlags: 0
@@ -16137,7 +16800,11 @@ MonoBehaviour: @@ -16137,7 +16800,11 @@ MonoBehaviour:
16137 infoButtonImage: {fileID: 2079280005} 16800 infoButtonImage: {fileID: 2079280005}
16138 loadingSnippet: {fileID: 1265043069} 16801 loadingSnippet: {fileID: 1265043069}
16139 connectionErrorDialog: {fileID: 848083142} 16802 connectionErrorDialog: {fileID: 848083142}
  16803 + connectionErrorTitle: {fileID: 142212436}
16140 connectionErrorText: {fileID: 163763091} 16804 connectionErrorText: {fileID: 163763091}
  16805 + permissionDialog: {fileID: 2003336562}
  16806 + permissionTitle: {fileID: 1424875930}
  16807 + permissionText: {fileID: 1169914715}
16141 pauseMenu: {fileID: 1024302431} 16808 pauseMenu: {fileID: 1024302431}
16142 repeatLayer: {fileID: 861767964} 16809 repeatLayer: {fileID: 861767964}
16143 exportContainer: {fileID: 1530408464} 16810 exportContainer: {fileID: 1530408464}
Assets/Scripts/Export Video/AndroidPermission.cs 0 → 100644
@@ -0,0 +1,122 @@ @@ -0,0 +1,122 @@
  1 +///////////////////////////////////////////////////////////
  2 +///////////////// NoodlePermissionGranter /////////////////
  3 +/// Implements runtime granting of Android permissions. ///
  4 +/// This is necessary for Android M (6.0) and above. //////
  5 +///////////////////////////////////////////////////////////
  6 +//////////////////// Noodlecake Studios ///////////////////
  7 +///////////////////////////////////////////////////////////
  8 +
  9 +using UnityEngine;
  10 +using System.Collections;
  11 +using System;
  12 +
  13 +public class NoodlePermissionGranter : MonoBehaviour
  14 +{
  15 +
  16 + // subscribe to this callback to see if your permission was granted.
  17 + public static Action<bool> PermissionRequestCallback;
  18 + public static Action<bool> PermittedAction;
  19 +
  20 +
  21 + // for now, it only implements the external storage permission
  22 + public enum NoodleAndroidPermission
  23 + {
  24 + WRITE_EXTERNAL_STORAGE
  25 + }
  26 +
  27 + public static void IsPermitted(NoodleAndroidPermission permission)
  28 + {
  29 + if (!initialized)
  30 + initialize();
  31 + noodlePermissionGranterClass.CallStatic("CheckPermission", activity, (int)permission);
  32 +
  33 + }
  34 + public static void GrantPermission(NoodleAndroidPermission permission)
  35 + {
  36 + if (!initialized)
  37 + initialize();
  38 +
  39 + noodlePermissionGranterClass.CallStatic("grantPermission", activity, (int)permission);
  40 +
  41 +
  42 +
  43 + }
  44 +
  45 + //////////////////////////////
  46 + /// Initialization Stuff /////
  47 + //////////////////////////////
  48 +
  49 + // it's a singleton, but no one needs to know about it. hush hush. dont touch me.
  50 + private static NoodlePermissionGranter instance;
  51 + private static bool initialized = false;
  52 +
  53 + public void Awake()
  54 + {
  55 + // instance is also set in initialize.
  56 + // having it here ensures this thing doesnt break
  57 + // if you added this component to the scene manually
  58 + instance = this;
  59 + DontDestroyOnLoad(this.gameObject);
  60 + // object name must match UnitySendMessage call in NoodlePermissionGranter.java
  61 + if (name != NOODLE_PERMISSION_GRANTER)
  62 + name = NOODLE_PERMISSION_GRANTER;
  63 + }
  64 +
  65 +
  66 + private static void initialize()
  67 + {
  68 + // runs once when you call GrantPermission
  69 +
  70 + // add object to scene
  71 + if (instance == null)
  72 + {
  73 + GameObject go = new GameObject();
  74 + // instance will also be set in awake, but having it here as well seems extra safe
  75 + instance = go.AddComponent<NoodlePermissionGranter>();
  76 + // object name must match UnitySendMessage call in NoodlePermissionGranter.java
  77 + go.name = NOODLE_PERMISSION_GRANTER;
  78 + }
  79 +
  80 + // get the jni stuff. we need the activty class and the NoodlePermissionGranter class.
  81 + noodlePermissionGranterClass = new AndroidJavaClass("com.vlibras.permissionplugin.NoodlePermissionGranter");
  82 + AndroidJavaClass u3d = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
  83 + activity = u3d.GetStatic<AndroidJavaObject>("currentActivity");
  84 +
  85 + initialized = true;
  86 + }
  87 +
  88 +
  89 +
  90 +
  91 +
  92 +
  93 +
  94 + ///////////////////
  95 + //// JNI Stuff ////
  96 + ///////////////////
  97 +
  98 + static AndroidJavaClass noodlePermissionGranterClass;
  99 + static AndroidJavaObject activity;
  100 + private const string WRITE_EXTERNAL_STORAGE = "WRITE_EXTERNAL_STORAGE";
  101 + private const string PERMISSION_GRANTED = "PERMISSION_GRANTED"; // must match NoodlePermissionGranter.java
  102 + private const string PERMISSION_DENIED = "PERMISSION_DENIED"; // must match NoodlePermissionGranter.java
  103 + private const string NOODLE_PERMISSION_GRANTER = "NoodlePermissionGranter"; // must match UnitySendMessage call in NoodlePermissionGranter.java
  104 +
  105 + private void permissionRequestCallbackInternal(string message)
  106 + {
  107 + // were calling this method from the java side.
  108 + // the method name and gameobject must match NoodlePermissionGranter.java's UnitySendMessage
  109 + bool permissionGranted = (message == PERMISSION_GRANTED);
  110 + if (PermissionRequestCallback != null)
  111 + PermissionRequestCallback(permissionGranted);
  112 + }
  113 +
  114 + private void permittedActionCallBack(string message)
  115 + {
  116 + bool permissionGranted = (message == PERMISSION_GRANTED);
  117 + if (PermittedAction != null)
  118 + PermittedAction(permissionGranted);
  119 + }
  120 +
  121 +
  122 +}
0 \ No newline at end of file 123 \ No newline at end of file
Assets/Scripts/Export Video/AndroidPermission.cs.meta 0 → 100644
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
  1 +fileFormatVersion: 2
  2 +guid: a7fa4a3e85ddd024f98f4f9f78540b35
  3 +timeCreated: 1487423780
  4 +licenseType: Free
  5 +MonoImporter:
  6 + serializedVersion: 2
  7 + defaultReferences: []
  8 + executionOrder: 0
  9 + icon: {instanceID: 0}
  10 + userData:
  11 + assetBundleName:
  12 + assetBundleVariant:
Assets/Scripts/Export Video/AndroidToast.cs
@@ -24,8 +24,9 @@ public class AndroidToast @@ -24,8 +24,9 @@ public class AndroidToast
24 AndroidJavaClass UnityPlayer; 24 AndroidJavaClass UnityPlayer;
25 AndroidJavaObject context; 25 AndroidJavaObject context;
26 26
27 - public void showToast(string toastString){  
28 - if (Application.platform == RuntimePlatform.Android) 27 + public void showToast(string toastString,string lenght){
  28 +#if UNITY_ANDROID
  29 + if (Application.platform == RuntimePlatform.Android)
29 { 30 {
30 UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); 31 UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
31 currentActivity = UnityPlayer.GetStatic<AndroidJavaObject>("currentActivity"); 32 currentActivity = UnityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
@@ -33,9 +34,10 @@ public class AndroidToast @@ -33,9 +34,10 @@ public class AndroidToast
33 34
34 AndroidJavaClass Toast = new AndroidJavaClass("android.widget.Toast"); 35 AndroidJavaClass Toast = new AndroidJavaClass("android.widget.Toast");
35 AndroidJavaObject javaString = new AndroidJavaObject("java.lang.String", toastString); 36 AndroidJavaObject javaString = new AndroidJavaObject("java.lang.String", toastString);
36 - AndroidJavaObject toast = Toast.CallStatic<AndroidJavaObject>("makeText", context, javaString, Toast.GetStatic<int>("LENGTH_LONG")); //Toast Duration Time 37 + AndroidJavaObject toast = Toast.CallStatic<AndroidJavaObject>("makeText", context, javaString, Toast.GetStatic<int>("LENGTH_" + lenght)); //Toast Duration Time
37 toast.Call("show"); 38 toast.Call("show");
38 } 39 }
39 } 40 }
  41 +#endif
40 42
41 } 43 }
Assets/Scripts/Export Video/ExportVideo.cs
@@ -27,16 +27,16 @@ using LAViD.Unity.Utils; @@ -27,16 +27,16 @@ using LAViD.Unity.Utils;
27 27
28 28
29 public class ExportVideo : MonoBehaviour { 29 public class ExportVideo : MonoBehaviour {
30 - 30 +
31 31
32 public ScreenManager screenManager; 32 public ScreenManager screenManager;
33 public MediaShareAndroid MediaShareAndroid; 33 public MediaShareAndroid MediaShareAndroid;
34 34
35 private const string SERVER_URL = "http://150.165.205.57/video/"; 35 private const string SERVER_URL = "http://150.165.205.57/video/";
36 36
37 - 37 +
38 private static string gloss = "Gloss"; 38 private static string gloss = "Gloss";
39 - 39 +
40 40
41 /* Strings related to the Android Dialog*/ 41 /* Strings related to the Android Dialog*/
42 private string title = "Download"; 42 private string title = "Download";
@@ -48,14 +48,16 @@ public class ExportVideo : MonoBehaviour { @@ -48,14 +48,16 @@ public class ExportVideo : MonoBehaviour {
48 48
49 private int videoSize = 0; 49 private int videoSize = 0;
50 private int bytes = 0; 50 private int bytes = 0;
51 - private string videoId = ""; 51 + private string videoId = "";
52 private byte[] videoContent = null; 52 private byte[] videoContent = null;
53 53
54 - /*Coroutine flags */ 54 + /*Coroutine flags */
55 55
56 private bool videoRequestRunning = false; 56 private bool videoRequestRunning = false;
57 private bool videoDownloadRunning = false; 57 private bool videoDownloadRunning = false;
58 - 58 +
  59 +
  60 +
59 61
60 /*Getting called by PlayerManager, setting the gloss property*/ 62 /*Getting called by PlayerManager, setting the gloss property*/
61 63
@@ -63,28 +65,94 @@ public class ExportVideo : MonoBehaviour { @@ -63,28 +65,94 @@ public class ExportVideo : MonoBehaviour {
63 { 65 {
64 PlayerLogger.Log("ExportVideo", "SetGloss", "Setting current gloss to gloss property from ExportVideo"); 66 PlayerLogger.Log("ExportVideo", "SetGloss", "Setting current gloss to gloss property from ExportVideo");
65 gloss = _gloss; 67 gloss = _gloss;
  68 + }
  69 +
  70 +
  71 + private void onClickExport()
  72 + {
  73 + PlayerLogger.Log("ExportVideo", "OnClickExport", "Starting Export...");
  74 +
  75 + NoodlePermissionGranter.PermissionRequestCallback = Permitted;
  76 + NoodlePermissionGranter.GrantPermission(NoodlePermissionGranter.NoodleAndroidPermission.WRITE_EXTERNAL_STORAGE);
  77 +
  78 +
66 } 79 }
67 80
68 - /* Function that hides the export button and  
69 - * shows the progress bar while getting video info*/  
70 81
71 - public void onClickExport() 82 + /* RunTime Android Permission being asked*/
  83 + private void Permitted(bool PermissionGranted)
72 { 84 {
  85 + if (PermissionGranted)
  86 + {
  87 + bool accepted = false;
  88 +
  89 + string message = "A geração do vídeo pode levar algum tempo.";
  90 + if (PlayerPrefs.HasKey("exportDialog"))
  91 + {
  92 + accepted = PlayerPrefs.GetString("exportDialog").Equals("accepted");
  93 + }
  94 +
  95 + if (!accepted)
  96 + {
  97 + MobileNativeDialog nativeDialog;
  98 + nativeDialog = new MobileNativeDialog("Exportar", message, "Continuar", "Cancelar");
  99 + nativeDialog.OnComplete = OnExportDialog;
  100 +
  101 + }
  102 + else
  103 + {
  104 + startExport();
  105 + }
  106 +
  107 + }
  108 + else
  109 + {
  110 + screenManager.showPermissionDialog("Para salvar e compartilhar as animações, permita que o Vlibras acesse mídia e arquivos de seu aparelho.", "Exportar Vìdeo");
  111 + // new AndroidToast().showToast("Você precisa dá permissão ao aplicativo.", "LONG");
  112 + }
  113 +
  114 + }
  115 +
  116 + private void OnExportDialog(MNDialogResult result)
  117 + {
  118 + if (result == MNDialogResult.YES)
  119 + {
  120 + PlayerPrefs.SetString("exportDialog", "accepted");
  121 + PlayerPrefs.Save();
  122 + startExport();
  123 +
  124 + }
  125 + else if (result == MNDialogResult.NO)
  126 + {
  127 + PlayerLogger.Log("ExportVideo", "OnExportDialog", "Resetting states to default...");
  128 + screenManager.changeExportStates(ExportLayers.ExportLayer.All, true);
  129 +
  130 + }
  131 +
  132 +
  133 + }
  134 +
  135 + /* Function that hides the export button and
  136 + * shows the progress bar while getting video info*/
  137 + public void startExport()
  138 + {
  139 + new AndroidToast().showToast("Gerando Video...", "SHORT");
  140 + screenManager.changeExportStates(ExportLayers.ExportLayer.Export_Layer, false);
73 141
74 - PlayerLogger.Log("ExportVideo", "OnClickExport", "Starting Export...");  
75 - screenManager.changeExportStates(ExportLayers.ExportLayer.Export_Layer,false);  
76 screenManager.changeExportStates(ExportLayers.ExportLayer.Progress_Layer, true); 142 screenManager.changeExportStates(ExportLayers.ExportLayer.Progress_Layer, true);
77 StartCoroutine("requestVideoInfo"); 143 StartCoroutine("requestVideoInfo");
78 PlayerLogger.Log("ExportVideo", "OnClickExport", "Making request to server."); 144 PlayerLogger.Log("ExportVideo", "OnClickExport", "Making request to server.");
79 145
80 - } 146 + }
  147 +
  148 +
81 149
82 /* Function that gets called by the web request 150 /* Function that gets called by the web request
83 * hiding the progress bar and showing the download 151 * hiding the progress bar and showing the download
84 * button*/ 152 * button*/
85 public void OnFinishGetVideoInfo() 153 public void OnFinishGetVideoInfo()
86 { 154 {
87 - PlayerLogger.Log("ExportVideo","OnFinishGetVideoInfo","Video is ready to be downloaded."); 155 + PlayerLogger.Log("ExportVideo", "OnFinishGetVideoInfo", "Video is ready to be downloaded.");
88 screenManager.changeExportStates(ExportLayers.ExportLayer.Progress_Layer, false); 156 screenManager.changeExportStates(ExportLayers.ExportLayer.Progress_Layer, false);
89 screenManager.changeExportStates(ExportLayers.ExportLayer.Download_Layer, true); 157 screenManager.changeExportStates(ExportLayers.ExportLayer.Download_Layer, true);
90 PlayerLogger.Log("ExportVideo", "OnFinishGetVideoInfo", "Hiding progress loading and showing download button"); 158 PlayerLogger.Log("ExportVideo", "OnFinishGetVideoInfo", "Hiding progress loading and showing download button");
@@ -93,32 +161,33 @@ public class ExportVideo : MonoBehaviour { @@ -93,32 +161,33 @@ public class ExportVideo : MonoBehaviour {
93 161
94 /* Function that asks the user whether downlaod or not 162 /* Function that asks the user whether downlaod or not
95 * the video by presenting a Dialog Box.**/ 163 * the video by presenting a Dialog Box.**/
96 - 164 +
97 public void onDownloadClick() 165 public void onDownloadClick()
98 { 166 {
99 - MobileNativeDialog nativeDialog; 167 + MobileNativeDialog nativeDialog;
100 168
101 - nativeDialog = new MobileNativeDialog(title, message + ((videoSize/1024f)/1024f).ToString("0.00") + " MB.", yesOp, noOp);  
102 - nativeDialog.OnComplete = OnComplete; 169 + nativeDialog = new MobileNativeDialog(title, message + ((videoSize / 1024f) / 1024f).ToString("0.00") + " MB.", yesOp, noOp);
  170 + nativeDialog.OnComplete = OnComplete;
103 171
104 - } 172 + }
105 173
106 /** Delegate function which waits for YES or NO from the MobileDialog 174 /** Delegate function which waits for YES or NO from the MobileDialog
107 * and attach a action to each option**/ 175 * and attach a action to each option**/
108 176
109 public void OnComplete(MNDialogResult result) 177 public void OnComplete(MNDialogResult result)
110 { 178 {
111 - if(result == MNDialogResult.YES) 179 + if (result == MNDialogResult.YES)
112 { 180 {
  181 + new AndroidToast().showToast("Download iniciado.", "SHORT");
113 PlayerLogger.Log("ExportVideo", "OnDownloadClick", "Starting Video Download..."); 182 PlayerLogger.Log("ExportVideo", "OnDownloadClick", "Starting Video Download...");
114 StartCoroutine("videoDownload"); 183 StartCoroutine("videoDownload");
115 screenManager.changeExportStates(ExportLayers.ExportLayer.Download_Layer, false); 184 screenManager.changeExportStates(ExportLayers.ExportLayer.Download_Layer, false);
116 screenManager.changeExportStates(ExportLayers.ExportLayer.Progress_Download_Layer, true); 185 screenManager.changeExportStates(ExportLayers.ExportLayer.Progress_Download_Layer, true);
117 - }else if(result == MNDialogResult.NO) 186 + } else if (result == MNDialogResult.NO)
118 { 187 {
119 PlayerLogger.Log("ExportVideo", "OnDownloadClick", "Resetting states to default..."); 188 PlayerLogger.Log("ExportVideo", "OnDownloadClick", "Resetting states to default...");
120 screenManager.changeExportStates(ExportLayers.ExportLayer.All, true); 189 screenManager.changeExportStates(ExportLayers.ExportLayer.All, true);
121 - 190 +
122 } 191 }
123 } 192 }
124 193
@@ -139,8 +208,8 @@ public class ExportVideo : MonoBehaviour { @@ -139,8 +208,8 @@ public class ExportVideo : MonoBehaviour {
139 { 208 {
140 StopCoroutine("requestVideoInfo"); 209 StopCoroutine("requestVideoInfo");
141 PlayerLogger.Log("ExportVideo", "OnRequestCancel", "User canceled the request, resetting states to default."); 210 PlayerLogger.Log("ExportVideo", "OnRequestCancel", "User canceled the request, resetting states to default.");
142 -  
143 - }else if (videoDownloadRunning) 211 +
  212 + } else if (videoDownloadRunning)
144 { 213 {
145 StopCoroutine("videoDownload"); 214 StopCoroutine("videoDownload");
146 PlayerLogger.Log("ExportVideo", "videoDownload", "User canceled the download, resetting states to default."); 215 PlayerLogger.Log("ExportVideo", "videoDownload", "User canceled the download, resetting states to default.");
@@ -157,29 +226,24 @@ public class ExportVideo : MonoBehaviour { @@ -157,29 +226,24 @@ public class ExportVideo : MonoBehaviour {
157 226
158 public void OnShareVideo() 227 public void OnShareVideo()
159 { 228 {
160 -  
161 - try 229 + if (videoContent != null)
162 { 230 {
163 - if (videoContent != null) 231 + Action errorAction = () =>
164 { 232 {
165 - Action errorAction = () => { screenManager.changeExportStates(ExportLayers.ExportLayer.All, true);  
166 - new AndroidToast().showToast("Erro ao compartilhar mídia."); };  
167 -  
168 - StartCoroutine(MediaShareAndroid.ShareIntent(errorAction));  
169 - }  
170 - else  
171 - {  
172 - new AndroidToast().showToast("Erro ao compartilhar mídia.");  
173 screenManager.changeExportStates(ExportLayers.ExportLayer.All, true); 233 screenManager.changeExportStates(ExportLayers.ExportLayer.All, true);
174 - } 234 + new AndroidToast().showToast("Erro ao compartilhar mídia.", "LONG");
  235 + };
  236 +
  237 + StartCoroutine(MediaShareAndroid.ShareIntent(errorAction));
175 } 238 }
176 - catch (Exception e) 239 +
  240 + else
177 { 241 {
178 - PlayerLogger.Log("ExportVideo", "Share", "Exception thrown: " + e.Message);  
179 - // new AndroidToast().showToast(e.Message);  
180 - new AndroidToast().showToast("É necessário dá permissão ao aplicativo.");  
181 - 242 + new AndroidToast().showToast("Erro ao compartilhar mídia.", "LONG");
  243 + screenManager.changeExportStates(ExportLayers.ExportLayer.All, true);
182 } 244 }
  245 +
  246 +
183 } 247 }
184 248
185 /*Coroutine that makes the video information request*/ 249 /*Coroutine that makes the video information request*/
@@ -216,7 +280,7 @@ public class ExportVideo : MonoBehaviour { @@ -216,7 +280,7 @@ public class ExportVideo : MonoBehaviour {
216 screenManager.changeExportStates(ExportLayers.ExportLayer.All, true); 280 screenManager.changeExportStates(ExportLayers.ExportLayer.All, true);
217 PlayerLogger.Log("ExportVideo", "requestVideoInfo", "(WWW) Unsucessful Answer"); 281 PlayerLogger.Log("ExportVideo", "requestVideoInfo", "(WWW) Unsucessful Answer");
218 GetConnectionStatusError(ExportLayers.ConnectionStatusError.ERROR_CONNECTION_FAILURE); 282 GetConnectionStatusError(ExportLayers.ConnectionStatusError.ERROR_CONNECTION_FAILURE);
219 - 283 +
220 284
221 } 285 }
222 else if (!videoInfoRequest.responseHeaders["STATUS"].Contains("200")) 286 else if (!videoInfoRequest.responseHeaders["STATUS"].Contains("200"))
@@ -224,7 +288,7 @@ public class ExportVideo : MonoBehaviour { @@ -224,7 +288,7 @@ public class ExportVideo : MonoBehaviour {
224 screenManager.changeExportStates(ExportLayers.ExportLayer.All, true); 288 screenManager.changeExportStates(ExportLayers.ExportLayer.All, true);
225 PlayerLogger.Log("ExportVideo", "requestVideoInfo", "Unsuccessful answer (" + videoInfoRequest.responseHeaders["STATUS"] + ")."); 289 PlayerLogger.Log("ExportVideo", "requestVideoInfo", "Unsuccessful answer (" + videoInfoRequest.responseHeaders["STATUS"] + ").");
226 GetConnectionStatusError(ExportLayers.ConnectionStatusError.ERROR_CONNECTION_FAILURE); 290 GetConnectionStatusError(ExportLayers.ConnectionStatusError.ERROR_CONNECTION_FAILURE);
227 - 291 +
228 292
229 } 293 }
230 else if (String.IsNullOrEmpty(videoInfoRequest.text)) 294 else if (String.IsNullOrEmpty(videoInfoRequest.text))
@@ -258,30 +322,32 @@ public class ExportVideo : MonoBehaviour { @@ -258,30 +322,32 @@ public class ExportVideo : MonoBehaviour {
258 } 322 }
259 } 323 }
260 324
  325 +
  326 +
261 /*Coroutine that downloads the video and update the progress download layer*/ 327 /*Coroutine that downloads the video and update the progress download layer*/
262 328
263 private IEnumerator videoDownload() 329 private IEnumerator videoDownload()
264 { 330 {
265 videoDownloadRunning = true; 331 videoDownloadRunning = true;
266 WWW DownloadVideo = new WWW(SERVER_URL + videoId); 332 WWW DownloadVideo = new WWW(SERVER_URL + videoId);
267 - 333 +
268 while (!DownloadVideo.isDone) 334 while (!DownloadVideo.isDone)
269 { 335 {
270 screenManager.updateProgressDownloadSprite(DownloadVideo.progress); 336 screenManager.updateProgressDownloadSprite(DownloadVideo.progress);
271 - 337 +
272 yield return null; 338 yield return null;
273 } 339 }
274 340
275 try 341 try
276 { 342 {
277 343
278 - if(DownloadVideo.error != null) 344 + if (DownloadVideo.error != null)
279 { 345 {
280 GetConnectionStatusError(ExportLayers.ConnectionStatusError.INTERNET_CONNECTION_FAILURE); 346 GetConnectionStatusError(ExportLayers.ConnectionStatusError.INTERNET_CONNECTION_FAILURE);
281 ErrorDownloading(); 347 ErrorDownloading();
282 348
283 } 349 }
284 - else if(DownloadVideo.responseHeaders.Count == 0) 350 + else if (DownloadVideo.responseHeaders.Count == 0)
285 { 351 {
286 GetConnectionStatusError(ExportLayers.ConnectionStatusError.ERROR_CONNECTION_FAILURE); 352 GetConnectionStatusError(ExportLayers.ConnectionStatusError.ERROR_CONNECTION_FAILURE);
287 ErrorDownloading(); 353 ErrorDownloading();
@@ -293,23 +359,23 @@ public class ExportVideo : MonoBehaviour { @@ -293,23 +359,23 @@ public class ExportVideo : MonoBehaviour {
293 ErrorDownloading(); 359 ErrorDownloading();
294 360
295 } 361 }
296 - else if ( DownloadVideo.bytesDownloaded == videoSize) 362 + else if (DownloadVideo.bytesDownloaded == videoSize)
297 { 363 {
298 bytes = DownloadVideo.bytesDownloaded; 364 bytes = DownloadVideo.bytesDownloaded;
299 videoContent = DownloadVideo.bytes; 365 videoContent = DownloadVideo.bytes;
300 - Action callBack = () => { OnDownloadFinished(); new AndroidToast().showToast("Vídeo salvo na Galeria."); }; 366 + Action callBack = () => { OnDownloadFinished(); new AndroidToast().showToast("Vídeo salvo na Galeria.", "SHORT"); };
301 Action errorWriting = () => { screenManager.changeExportStates(ExportLayers.ExportLayer.All, true); }; 367 Action errorWriting = () => { screenManager.changeExportStates(ExportLayers.ExportLayer.All, true); };
302 videoDownloadRunning = false; 368 videoDownloadRunning = false;
303 - StartCoroutine(MediaShareAndroid.WriteOnAndroid(videoContent, bytes, System.DateTime.Now.ToString("dd_MM_yyyy_HH_mm_ss"),callBack,errorWriting));  
304 - 369 + StartCoroutine(MediaShareAndroid.WriteOnAndroid(videoContent, bytes, System.DateTime.Now.ToString("dd_MM_yyyy_HH_mm_ss"), callBack, errorWriting));
  370 +
305 } 371 }
306 else 372 else
307 { 373 {
308 GetConnectionStatusError(ExportLayers.ConnectionStatusError.DOWNLOAD_CONNECTION_FAILURE); 374 GetConnectionStatusError(ExportLayers.ConnectionStatusError.DOWNLOAD_CONNECTION_FAILURE);
309 ErrorDownloading(); 375 ErrorDownloading();
310 } 376 }
311 -  
312 - 377 +
  378 +
313 } 379 }
314 finally 380 finally
315 { 381 {
@@ -326,14 +392,14 @@ public class ExportVideo : MonoBehaviour { @@ -326,14 +392,14 @@ public class ExportVideo : MonoBehaviour {
326 screenManager.changeExportStates(ExportLayers.ExportLayer.OnLockExport, false); 392 screenManager.changeExportStates(ExportLayers.ExportLayer.OnLockExport, false);
327 screenManager.changeExportStates(ExportLayers.ExportLayer.OnLockShare, false); 393 screenManager.changeExportStates(ExportLayers.ExportLayer.OnLockShare, false);
328 } 394 }
329 - 395 +
330 public IEnumerator WaitForResponse(WWW www, Events.RequestSuccess success, Events.RequestError error) 396 public IEnumerator WaitForResponse(WWW www, Events.RequestSuccess success, Events.RequestError error)
331 { 397 {
332 - yield return Methods.WaitForResponse(www, 60*5f, success, error);  
333 - 398 + yield return Methods.WaitForResponse(www, 60 * 5f, success, error);
  399 +
334 } 400 }
335 401
336 - protected IEnumerator WaitForResponse(WWW www) 402 + protected IEnumerator WaitForResponse(WWW www)
337 { 403 {
338 yield return WaitForResponse(www, null, null); 404 yield return WaitForResponse(www, null, null);
339 } 405 }
@@ -344,19 +410,19 @@ public class ExportVideo : MonoBehaviour { @@ -344,19 +410,19 @@ public class ExportVideo : MonoBehaviour {
344 switch (error) 410 switch (error)
345 { 411 {
346 case ExportLayers.ConnectionStatusError.CONNECTION_TIMEOUT_FAILURE: 412 case ExportLayers.ConnectionStatusError.CONNECTION_TIMEOUT_FAILURE:
347 - new AndroidToast().showToast("Erro de conexão. Tente novamente."); 413 + new AndroidToast().showToast("Erro de conexão. Tente novamente.", "LONG");
348 break; 414 break;
349 case ExportLayers.ConnectionStatusError.DOWNLOAD_CONNECTION_FAILURE: 415 case ExportLayers.ConnectionStatusError.DOWNLOAD_CONNECTION_FAILURE:
350 - new AndroidToast().showToast("Erro ao efetuar download, tente novamente."); 416 + new AndroidToast().showToast("Erro ao efetuar download, tente novamente.", "LONG");
351 break; 417 break;
352 case ExportLayers.ConnectionStatusError.INTERNET_CONNECTION_FAILURE: 418 case ExportLayers.ConnectionStatusError.INTERNET_CONNECTION_FAILURE:
353 - new AndroidToast().showToast("Não há acesso à internet. Verifique sua conexão"); 419 + new AndroidToast().showToast("Não há acesso à internet. Verifique sua conexão", "LONG");
354 break; 420 break;
355 case ExportLayers.ConnectionStatusError.ERROR_CONNECTION_FAILURE: 421 case ExportLayers.ConnectionStatusError.ERROR_CONNECTION_FAILURE:
356 - new AndroidToast().showToast("Problema na conexão. Aguarde e tente novamente."); 422 + new AndroidToast().showToast("Problema na conexão. Aguarde e tente novamente.", "LONG");
357 break; 423 break;
358 default: 424 default:
359 - new AndroidToast().showToast("Ocorreu um erro. Estamos trabalhando para solucioná-lo!"); 425 + new AndroidToast().showToast("Ocorreu um erro. Estamos trabalhando para solucioná-lo!", "LONG");
360 break; 426 break;
361 } 427 }
362 428
Assets/Scripts/Export Video/MediaShareAndroid.cs
@@ -50,6 +50,7 @@ public class MediaShareAndroid : MonoBehaviour @@ -50,6 +50,7 @@ public class MediaShareAndroid : MonoBehaviour
50 public IEnumerator WriteOnAndroid(byte[] videoContent, int bytes,string CurrentTime, Action finishWriting, Action errorWriting) 50 public IEnumerator WriteOnAndroid(byte[] videoContent, int bytes,string CurrentTime, Action finishWriting, Action errorWriting)
51 { 51 {
52 #if UNITY_ANDROID 52 #if UNITY_ANDROID
  53 +
53 FilePath = Filen + CurrentTime + ".mp4"; 54 FilePath = Filen + CurrentTime + ".mp4";
54 destination = Path.Combine(AndroidPath, Vlibras); 55 destination = Path.Combine(AndroidPath, Vlibras);
55 56
@@ -77,7 +78,7 @@ public class MediaShareAndroid : MonoBehaviour @@ -77,7 +78,7 @@ public class MediaShareAndroid : MonoBehaviour
77 } 78 }
78 else 79 else
79 { 80 {
80 - new AndroidToast().showToast("Erro ao salvar vídeo."); 81 + new AndroidToast().showToast("Erro ao salvar vídeo.","LONG");
81 errorWriting(); 82 errorWriting();
82 } 83 }
83 84
@@ -87,7 +88,7 @@ public class MediaShareAndroid : MonoBehaviour @@ -87,7 +88,7 @@ public class MediaShareAndroid : MonoBehaviour
87 { 88 {
88 PlayerLogger.Log("MediaShareAndroid", "WriteOnAndroid","Message: " + e.Message); 89 PlayerLogger.Log("MediaShareAndroid", "WriteOnAndroid","Message: " + e.Message);
89 PlayerLogger.Log("MediaShareAndroid", "WriteOnAndroid", "Message: " + e.StackTrace); 90 PlayerLogger.Log("MediaShareAndroid", "WriteOnAndroid", "Message: " + e.StackTrace);
90 - new AndroidToast().showToast("Você precisa dá permissão ao aplicativo"); 91 + new AndroidToast().showToast("Você precisa dá permissão ao aplicativo","LONG");
91 errorWriting(); 92 errorWriting();
92 } 93 }
93 94
@@ -103,9 +104,10 @@ public class MediaShareAndroid : MonoBehaviour @@ -103,9 +104,10 @@ public class MediaShareAndroid : MonoBehaviour
103 /* Calling Android Services to refresh the video path, making available to show in gallery*/ 104 /* Calling Android Services to refresh the video path, making available to show in gallery*/
104 105
105 private void Refresh(string FilePath) 106 private void Refresh(string FilePath)
106 - {  
107 -  
108 - AndroidJavaClass jcUnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); 107 + {
  108 +#if UNITY_ANDROID
  109 +
  110 + AndroidJavaClass jcUnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
109 AndroidJavaObject joActivity = jcUnityPlayer.GetStatic<AndroidJavaObject>("currentActivity"); 111 AndroidJavaObject joActivity = jcUnityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
110 AndroidJavaObject joContext = joActivity.Call<AndroidJavaObject>("getApplicationContext"); 112 AndroidJavaObject joContext = joActivity.Call<AndroidJavaObject>("getApplicationContext");
111 AndroidJavaClass jcMediaScannerConnection = new AndroidJavaClass("android.media.MediaScannerConnection"); 113 AndroidJavaClass jcMediaScannerConnection = new AndroidJavaClass("android.media.MediaScannerConnection");
@@ -113,18 +115,18 @@ public class MediaShareAndroid : MonoBehaviour @@ -113,18 +115,18 @@ public class MediaShareAndroid : MonoBehaviour
113 // AndroidJavaObject joExDir = jcEnvironment.CallStatic<AndroidJavaObject>("getExternalStorageDirectory"); 115 // AndroidJavaObject joExDir = jcEnvironment.CallStatic<AndroidJavaObject>("getExternalStorageDirectory");
114 string path = destination; 116 string path = destination;
115 jcMediaScannerConnection.CallStatic("scanFile", joContext, new string[] { path }, new string[] { "video/mp4" },null ); 117 jcMediaScannerConnection.CallStatic("scanFile", joContext, new string[] { path }, new string[] { "video/mp4" },null );
116 -  
117 -  
118 118
  119 +
  120 +#endif
119 } 121 }
120 122
121 123
122 /* Calling Android Services to create Share Intent*/ 124 /* Calling Android Services to create Share Intent*/
123 125
124 - public IEnumerator ShareIntent(Action errorAction) {  
125 -  
126 -  
127 - if(File.Exists(Path.Combine(destination, FilePath))) 126 + public IEnumerator ShareIntent(Action errorAction) {
  127 +
  128 +#if UNITY_ANDROID
  129 + if (File.Exists(Path.Combine(destination, FilePath)))
128 { 130 {
129 131
130 // block to open the file and share it ------------START 132 // block to open the file and share it ------------START
@@ -153,9 +155,10 @@ public class MediaShareAndroid : MonoBehaviour @@ -153,9 +155,10 @@ public class MediaShareAndroid : MonoBehaviour
153 155
154 yield break; 156 yield break;
155 } 157 }
156 -  
157 158
  159 +#endif
158 } 160 }
  161 +
159 } 162 }
160 163
161 - 164 +
Assets/Scripts/UI/ScreenManager.cs
@@ -22,7 +22,11 @@ public class ScreenManager : MonoBehaviour { @@ -22,7 +22,11 @@ public class ScreenManager : MonoBehaviour {
22 22
23 public GameObject loadingSnippet; 23 public GameObject loadingSnippet;
24 public GameObject connectionErrorDialog; 24 public GameObject connectionErrorDialog;
  25 + public Text connectionErrorTitle;
25 public Text connectionErrorText; 26 public Text connectionErrorText;
  27 + public GameObject permissionDialog;
  28 + public Text permissionTitle;
  29 + public Text permissionText;
26 public GameObject pauseMenu; 30 public GameObject pauseMenu;
27 public GameObject repeatLayer; 31 public GameObject repeatLayer;
28 public GameObject exportContainer; 32 public GameObject exportContainer;
@@ -266,9 +270,17 @@ public class ScreenManager : MonoBehaviour { @@ -266,9 +270,17 @@ public class ScreenManager : MonoBehaviour {
266 this.connectionErrorDialog.SetActive(true); 270 this.connectionErrorDialog.SetActive(true);
267 } 271 }
268 272
  273 + public void showPermissionDialog(string permissionMessage, string permissionTitle)
  274 + {
  275 + this.permissionDialog.SetActive(true);
  276 + this.permissionText.text = permissionMessage;
  277 + this.permissionTitle.text = permissionTitle;
  278 + }
  279 +
269 public void showConnectionErrorDialog(PlayerManager.ERROR_STATUS_MESSAGE msg)//int error_code 280 public void showConnectionErrorDialog(PlayerManager.ERROR_STATUS_MESSAGE msg)//int error_code
270 { 281 {
271 this.connectionErrorDialog.SetActive(true); 282 this.connectionErrorDialog.SetActive(true);
  283 + this.connectionErrorTitle.text = "Conexão falhou";
272 this.connectionErrorText.text = PlayerManager.get_connection_status_message(msg); 284 this.connectionErrorText.text = PlayerManager.get_connection_status_message(msg);
273 } 285 }
274 286