Commit debee6bb89f6bd28326a65ed5c65a5c36746409f
1 parent
5e630b48
Exists in
master
and in
3 other branches
Finish RunTime Permission
Showing
12 changed files
with
1062 additions
and
167 deletions
Show diff stats
Assets/Plugins/Android/AndroidManifest.xml
| ... | ... | @@ -8,8 +8,7 @@ |
| 8 | 8 | <uses-permission android:name="android.permission.INTERNET" /> |
| 9 | 9 | <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> |
| 10 | 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 | 12 | <application |
| 14 | 13 | android:icon="@drawable/app_icon" |
| 15 | 14 | android:label="@string/app_name" |
| ... | ... | @@ -25,5 +24,7 @@ |
| 25 | 24 | </intent-filter> |
| 26 | 25 | <meta-data android:name="unityplayer.UnityActivity" android:value="true" /> |
| 27 | 26 | </activity> |
| 27 | + <meta-data android:name="unityplayer.SkipPermissionsDialog" android:value="true" /> | |
| 28 | + | |
| 28 | 29 | </application> |
| 29 | 30 | </manifest> |
| 30 | 31 | \ No newline at end of file | ... | ... |
No preview for this file type
| ... | ... | @@ -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
Assets/Plugins/Android/file_paths.xml.meta
Assets/Scenes/Main.unity
| ... | ... | @@ -2972,6 +2972,148 @@ CanvasRenderer: |
| 2972 | 2972 | m_PrefabParentObject: {fileID: 0} |
| 2973 | 2973 | m_PrefabInternal: {fileID: 0} |
| 2974 | 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 | 3117 | --- !u!1 &486636721 |
| 2976 | 3118 | GameObject: |
| 2977 | 3119 | m_ObjectHideFlags: 0 |
| ... | ... | @@ -3450,53 +3592,53 @@ Animation: |
| 3450 | 3592 | m_GameObject: {fileID: 535548070} |
| 3451 | 3593 | m_Enabled: 1 |
| 3452 | 3594 | serializedVersion: 3 |
| 3453 | - m_Animation: {fileID: 7400000, guid: d7ed17c702b9a5f429a0d0f911deb512, type: 2} | |
| 3595 | + m_Animation: {fileID: 7400000, guid: 365e5f41595503c48915848d883fabfe, type: 2} | |
| 3454 | 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 | 3642 | m_WrapMode: 0 |
| 3501 | 3643 | m_PlayAutomatically: 1 |
| 3502 | 3644 | m_AnimatePhysics: 0 |
| ... | ... | @@ -5665,15 +5807,15 @@ RectTransform: |
| 5665 | 5807 | m_GameObject: {fileID: 860133481} |
| 5666 | 5808 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} |
| 5667 | 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 | 5811 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
| 5670 | 5812 | m_Children: [] |
| 5671 | 5813 | m_Father: {fileID: 581668677} |
| 5672 | 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 | 5819 | m_Pivot: {x: 1, y: 0} |
| 5678 | 5820 | --- !u!114 &860133483 |
| 5679 | 5821 | MonoBehaviour: |
| ... | ... | @@ -6069,15 +6211,15 @@ RectTransform: |
| 6069 | 6211 | m_GameObject: {fileID: 926124761} |
| 6070 | 6212 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} |
| 6071 | 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 | 6215 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
| 6074 | 6216 | m_Children: [] |
| 6075 | 6217 | m_Father: {fileID: 160532052} |
| 6076 | 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 | 6223 | m_Pivot: {x: 1, y: 0} |
| 6082 | 6224 | --- !u!114 &926124763 |
| 6083 | 6225 | MonoBehaviour: |
| ... | ... | @@ -7333,7 +7475,7 @@ GameObject: |
| 7333 | 7475 | m_Icon: {fileID: 0} |
| 7334 | 7476 | m_NavMeshLayer: 0 |
| 7335 | 7477 | m_StaticEditorFlags: 0 |
| 7336 | - m_IsActive: 1 | |
| 7478 | + m_IsActive: 0 | |
| 7337 | 7479 | --- !u!224 &1059619783 |
| 7338 | 7480 | RectTransform: |
| 7339 | 7481 | m_ObjectHideFlags: 0 |
| ... | ... | @@ -7915,6 +8057,76 @@ CanvasRenderer: |
| 7915 | 8057 | m_PrefabParentObject: {fileID: 0} |
| 7916 | 8058 | m_PrefabInternal: {fileID: 0} |
| 7917 | 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 | 8130 | --- !u!1 &1152273569 |
| 7919 | 8131 | GameObject: |
| 7920 | 8132 | m_ObjectHideFlags: 0 |
| ... | ... | @@ -8294,50 +8506,128 @@ CanvasRenderer: |
| 8294 | 8506 | type: 2} |
| 8295 | 8507 | m_PrefabInternal: {fileID: 0} |
| 8296 | 8508 | m_GameObject: {fileID: 1164416485} |
| 8297 | ---- !u!1 &1173561060 | |
| 8509 | +--- !u!1 &1169914713 | |
| 8298 | 8510 | GameObject: |
| 8299 | 8511 | m_ObjectHideFlags: 0 |
| 8300 | - m_PrefabParentObject: {fileID: 137576, guid: 5ccb0ba277304a14b9bb8d4e34161675, type: 2} | |
| 8512 | + m_PrefabParentObject: {fileID: 106982, guid: 5ccb0ba277304a14b9bb8d4e34161675, type: 2} | |
| 8301 | 8513 | m_PrefabInternal: {fileID: 0} |
| 8302 | 8514 | serializedVersion: 4 |
| 8303 | 8515 | m_Component: |
| 8304 | - - 224: {fileID: 1173561061} | |
| 8516 | + - 224: {fileID: 1169914714} | |
| 8517 | + - 222: {fileID: 1169914716} | |
| 8518 | + - 114: {fileID: 1169914715} | |
| 8305 | 8519 | m_Layer: 5 |
| 8306 | - m_Name: LOGO | |
| 8520 | + m_Name: message | |
| 8307 | 8521 | m_TagString: Untagged |
| 8308 | 8522 | m_Icon: {fileID: 0} |
| 8309 | 8523 | m_NavMeshLayer: 0 |
| 8310 | 8524 | m_StaticEditorFlags: 0 |
| 8311 | 8525 | m_IsActive: 1 |
| 8312 | ---- !u!224 &1173561061 | |
| 8526 | +--- !u!224 &1169914714 | |
| 8313 | 8527 | RectTransform: |
| 8314 | 8528 | m_ObjectHideFlags: 0 |
| 8315 | - m_PrefabParentObject: {fileID: 22427224, guid: 5ccb0ba277304a14b9bb8d4e34161675, | |
| 8529 | + m_PrefabParentObject: {fileID: 22431032, guid: 5ccb0ba277304a14b9bb8d4e34161675, | |
| 8316 | 8530 | type: 2} |
| 8317 | 8531 | m_PrefabInternal: {fileID: 0} |
| 8318 | - m_GameObject: {fileID: 1173561060} | |
| 8532 | + m_GameObject: {fileID: 1169914713} | |
| 8319 | 8533 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
| 8320 | 8534 | m_LocalPosition: {x: 0, y: 0, z: 0} |
| 8321 | 8535 | m_LocalScale: {x: 1, y: 1, z: 1} |
| 8322 | 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 | 8542 | m_AnchoredPosition: {x: 0, y: 0} |
| 8331 | 8543 | m_SizeDelta: {x: 0, y: 0} |
| 8332 | 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 | 8588 | GameObject: |
| 8335 | 8589 | m_ObjectHideFlags: 0 |
| 8336 | - m_PrefabParentObject: {fileID: 114728, guid: 5ccb0ba277304a14b9bb8d4e34161675, type: 2} | |
| 8590 | + m_PrefabParentObject: {fileID: 137576, guid: 5ccb0ba277304a14b9bb8d4e34161675, type: 2} | |
| 8337 | 8591 | m_PrefabInternal: {fileID: 0} |
| 8338 | 8592 | serializedVersion: 4 |
| 8339 | 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 | 8631 | - 222: {fileID: 1175405164} |
| 8342 | 8632 | - 114: {fileID: 1175405163} |
| 8343 | 8633 | - 114: {fileID: 1175405162} |
| ... | ... | @@ -9507,6 +9797,69 @@ CanvasRenderer: |
| 9507 | 9797 | type: 2} |
| 9508 | 9798 | m_PrefabInternal: {fileID: 0} |
| 9509 | 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 | 9863 | --- !u!1 &1315164543 |
| 9511 | 9864 | GameObject: |
| 9512 | 9865 | m_ObjectHideFlags: 0 |
| ... | ... | @@ -9831,7 +10184,7 @@ RectTransform: |
| 9831 | 10184 | m_AnchorMin: {x: 1, y: 0} |
| 9832 | 10185 | m_AnchorMax: {x: 1, y: 1} |
| 9833 | 10186 | m_AnchoredPosition: {x: 0, y: 0} |
| 9834 | - m_SizeDelta: {x: 0, y: 0} | |
| 10187 | + m_SizeDelta: {x: 41.42856, y: 0} | |
| 9835 | 10188 | m_Pivot: {x: 1, y: 0} |
| 9836 | 10189 | --- !u!114 &1371075866 |
| 9837 | 10190 | MonoBehaviour: |
| ... | ... | @@ -9881,6 +10234,92 @@ CanvasRenderer: |
| 9881 | 10234 | type: 2} |
| 9882 | 10235 | m_PrefabInternal: {fileID: 0} |
| 9883 | 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 | 10323 | --- !u!1 &1382683268 |
| 9885 | 10324 | GameObject: |
| 9886 | 10325 | m_ObjectHideFlags: 0 |
| ... | ... | @@ -10503,6 +10942,83 @@ CanvasRenderer: |
| 10503 | 10942 | m_PrefabParentObject: {fileID: 0} |
| 10504 | 10943 | m_PrefabInternal: {fileID: 0} |
| 10505 | 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 | 11022 | --- !u!1 &1431182273 |
| 10507 | 11023 | GameObject: |
| 10508 | 11024 | m_ObjectHideFlags: 0 |
| ... | ... | @@ -11198,6 +11714,83 @@ RectTransform: |
| 11198 | 11714 | m_AnchoredPosition: {x: 3, y: 0} |
| 11199 | 11715 | m_SizeDelta: {x: -26, y: 0} |
| 11200 | 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 | 11794 | --- !u!1 &1494144143 |
| 11202 | 11795 | GameObject: |
| 11203 | 11796 | m_ObjectHideFlags: 0 |
| ... | ... | @@ -12042,6 +12635,7 @@ RectTransform: |
| 12042 | 12635 | - {fileID: 861767965} |
| 12043 | 12636 | - {fileID: 1530408465} |
| 12044 | 12637 | - {fileID: 848083143} |
| 12638 | + - {fileID: 2003336563} | |
| 12045 | 12639 | m_Father: {fileID: 1414104007} |
| 12046 | 12640 | m_RootOrder: 2 |
| 12047 | 12641 | m_AnchorMin: {x: 0, y: 0} |
| ... | ... | @@ -14496,6 +15090,75 @@ CanvasRenderer: |
| 14496 | 15090 | m_PrefabParentObject: {fileID: 0} |
| 14497 | 15091 | m_PrefabInternal: {fileID: 0} |
| 14498 | 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 | 15162 | --- !u!1 &2010584309 |
| 14500 | 15163 | GameObject: |
| 14501 | 15164 | m_ObjectHideFlags: 0 |
| ... | ... | @@ -16137,7 +16800,11 @@ MonoBehaviour: |
| 16137 | 16800 | infoButtonImage: {fileID: 2079280005} |
| 16138 | 16801 | loadingSnippet: {fileID: 1265043069} |
| 16139 | 16802 | connectionErrorDialog: {fileID: 848083142} |
| 16803 | + connectionErrorTitle: {fileID: 142212436} | |
| 16140 | 16804 | connectionErrorText: {fileID: 163763091} |
| 16805 | + permissionDialog: {fileID: 2003336562} | |
| 16806 | + permissionTitle: {fileID: 1424875930} | |
| 16807 | + permissionText: {fileID: 1169914715} | |
| 16141 | 16808 | pauseMenu: {fileID: 1024302431} |
| 16142 | 16809 | repeatLayer: {fileID: 861767964} |
| 16143 | 16810 | exportContainer: {fileID: 1530408464} | ... | ... |
| ... | ... | @@ -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 | 123 | \ No newline at end of file | ... | ... |
| ... | ... | @@ -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 | 24 | AndroidJavaClass UnityPlayer; |
| 25 | 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 | 31 | UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); |
| 31 | 32 | currentActivity = UnityPlayer.GetStatic<AndroidJavaObject>("currentActivity"); |
| ... | ... | @@ -33,9 +34,10 @@ public class AndroidToast |
| 33 | 34 | |
| 34 | 35 | AndroidJavaClass Toast = new AndroidJavaClass("android.widget.Toast"); |
| 35 | 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 | 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 | 27 | |
| 28 | 28 | |
| 29 | 29 | public class ExportVideo : MonoBehaviour { |
| 30 | - | |
| 30 | + | |
| 31 | 31 | |
| 32 | 32 | public ScreenManager screenManager; |
| 33 | 33 | public MediaShareAndroid MediaShareAndroid; |
| 34 | 34 | |
| 35 | 35 | private const string SERVER_URL = "http://150.165.205.57/video/"; |
| 36 | 36 | |
| 37 | - | |
| 37 | + | |
| 38 | 38 | private static string gloss = "Gloss"; |
| 39 | - | |
| 39 | + | |
| 40 | 40 | |
| 41 | 41 | /* Strings related to the Android Dialog*/ |
| 42 | 42 | private string title = "Download"; |
| ... | ... | @@ -48,14 +48,16 @@ public class ExportVideo : MonoBehaviour { |
| 48 | 48 | |
| 49 | 49 | private int videoSize = 0; |
| 50 | 50 | private int bytes = 0; |
| 51 | - private string videoId = ""; | |
| 51 | + private string videoId = ""; | |
| 52 | 52 | private byte[] videoContent = null; |
| 53 | 53 | |
| 54 | - /*Coroutine flags */ | |
| 54 | + /*Coroutine flags */ | |
| 55 | 55 | |
| 56 | 56 | private bool videoRequestRunning = false; |
| 57 | 57 | private bool videoDownloadRunning = false; |
| 58 | - | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 59 | 61 | |
| 60 | 62 | /*Getting called by PlayerManager, setting the gloss property*/ |
| 61 | 63 | |
| ... | ... | @@ -63,28 +65,94 @@ public class ExportVideo : MonoBehaviour { |
| 63 | 65 | { |
| 64 | 66 | PlayerLogger.Log("ExportVideo", "SetGloss", "Setting current gloss to gloss property from ExportVideo"); |
| 65 | 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 | 142 | screenManager.changeExportStates(ExportLayers.ExportLayer.Progress_Layer, true); |
| 77 | 143 | StartCoroutine("requestVideoInfo"); |
| 78 | 144 | PlayerLogger.Log("ExportVideo", "OnClickExport", "Making request to server."); |
| 79 | 145 | |
| 80 | - } | |
| 146 | + } | |
| 147 | + | |
| 148 | + | |
| 81 | 149 | |
| 82 | 150 | /* Function that gets called by the web request |
| 83 | 151 | * hiding the progress bar and showing the download |
| 84 | 152 | * button*/ |
| 85 | 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 | 156 | screenManager.changeExportStates(ExportLayers.ExportLayer.Progress_Layer, false); |
| 89 | 157 | screenManager.changeExportStates(ExportLayers.ExportLayer.Download_Layer, true); |
| 90 | 158 | PlayerLogger.Log("ExportVideo", "OnFinishGetVideoInfo", "Hiding progress loading and showing download button"); |
| ... | ... | @@ -93,32 +161,33 @@ public class ExportVideo : MonoBehaviour { |
| 93 | 161 | |
| 94 | 162 | /* Function that asks the user whether downlaod or not |
| 95 | 163 | * the video by presenting a Dialog Box.**/ |
| 96 | - | |
| 164 | + | |
| 97 | 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 | 174 | /** Delegate function which waits for YES or NO from the MobileDialog |
| 107 | 175 | * and attach a action to each option**/ |
| 108 | 176 | |
| 109 | 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 | 182 | PlayerLogger.Log("ExportVideo", "OnDownloadClick", "Starting Video Download..."); |
| 114 | 183 | StartCoroutine("videoDownload"); |
| 115 | 184 | screenManager.changeExportStates(ExportLayers.ExportLayer.Download_Layer, false); |
| 116 | 185 | screenManager.changeExportStates(ExportLayers.ExportLayer.Progress_Download_Layer, true); |
| 117 | - }else if(result == MNDialogResult.NO) | |
| 186 | + } else if (result == MNDialogResult.NO) | |
| 118 | 187 | { |
| 119 | 188 | PlayerLogger.Log("ExportVideo", "OnDownloadClick", "Resetting states to default..."); |
| 120 | 189 | screenManager.changeExportStates(ExportLayers.ExportLayer.All, true); |
| 121 | - | |
| 190 | + | |
| 122 | 191 | } |
| 123 | 192 | } |
| 124 | 193 | |
| ... | ... | @@ -139,8 +208,8 @@ public class ExportVideo : MonoBehaviour { |
| 139 | 208 | { |
| 140 | 209 | StopCoroutine("requestVideoInfo"); |
| 141 | 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 | 214 | StopCoroutine("videoDownload"); |
| 146 | 215 | PlayerLogger.Log("ExportVideo", "videoDownload", "User canceled the download, resetting states to default."); |
| ... | ... | @@ -157,29 +226,24 @@ public class ExportVideo : MonoBehaviour { |
| 157 | 226 | |
| 158 | 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 | 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 | 249 | /*Coroutine that makes the video information request*/ |
| ... | ... | @@ -216,7 +280,7 @@ public class ExportVideo : MonoBehaviour { |
| 216 | 280 | screenManager.changeExportStates(ExportLayers.ExportLayer.All, true); |
| 217 | 281 | PlayerLogger.Log("ExportVideo", "requestVideoInfo", "(WWW) Unsucessful Answer"); |
| 218 | 282 | GetConnectionStatusError(ExportLayers.ConnectionStatusError.ERROR_CONNECTION_FAILURE); |
| 219 | - | |
| 283 | + | |
| 220 | 284 | |
| 221 | 285 | } |
| 222 | 286 | else if (!videoInfoRequest.responseHeaders["STATUS"].Contains("200")) |
| ... | ... | @@ -224,7 +288,7 @@ public class ExportVideo : MonoBehaviour { |
| 224 | 288 | screenManager.changeExportStates(ExportLayers.ExportLayer.All, true); |
| 225 | 289 | PlayerLogger.Log("ExportVideo", "requestVideoInfo", "Unsuccessful answer (" + videoInfoRequest.responseHeaders["STATUS"] + ")."); |
| 226 | 290 | GetConnectionStatusError(ExportLayers.ConnectionStatusError.ERROR_CONNECTION_FAILURE); |
| 227 | - | |
| 291 | + | |
| 228 | 292 | |
| 229 | 293 | } |
| 230 | 294 | else if (String.IsNullOrEmpty(videoInfoRequest.text)) |
| ... | ... | @@ -258,30 +322,32 @@ public class ExportVideo : MonoBehaviour { |
| 258 | 322 | } |
| 259 | 323 | } |
| 260 | 324 | |
| 325 | + | |
| 326 | + | |
| 261 | 327 | /*Coroutine that downloads the video and update the progress download layer*/ |
| 262 | 328 | |
| 263 | 329 | private IEnumerator videoDownload() |
| 264 | 330 | { |
| 265 | 331 | videoDownloadRunning = true; |
| 266 | 332 | WWW DownloadVideo = new WWW(SERVER_URL + videoId); |
| 267 | - | |
| 333 | + | |
| 268 | 334 | while (!DownloadVideo.isDone) |
| 269 | 335 | { |
| 270 | 336 | screenManager.updateProgressDownloadSprite(DownloadVideo.progress); |
| 271 | - | |
| 337 | + | |
| 272 | 338 | yield return null; |
| 273 | 339 | } |
| 274 | 340 | |
| 275 | 341 | try |
| 276 | 342 | { |
| 277 | 343 | |
| 278 | - if(DownloadVideo.error != null) | |
| 344 | + if (DownloadVideo.error != null) | |
| 279 | 345 | { |
| 280 | 346 | GetConnectionStatusError(ExportLayers.ConnectionStatusError.INTERNET_CONNECTION_FAILURE); |
| 281 | 347 | ErrorDownloading(); |
| 282 | 348 | |
| 283 | 349 | } |
| 284 | - else if(DownloadVideo.responseHeaders.Count == 0) | |
| 350 | + else if (DownloadVideo.responseHeaders.Count == 0) | |
| 285 | 351 | { |
| 286 | 352 | GetConnectionStatusError(ExportLayers.ConnectionStatusError.ERROR_CONNECTION_FAILURE); |
| 287 | 353 | ErrorDownloading(); |
| ... | ... | @@ -293,23 +359,23 @@ public class ExportVideo : MonoBehaviour { |
| 293 | 359 | ErrorDownloading(); |
| 294 | 360 | |
| 295 | 361 | } |
| 296 | - else if ( DownloadVideo.bytesDownloaded == videoSize) | |
| 362 | + else if (DownloadVideo.bytesDownloaded == videoSize) | |
| 297 | 363 | { |
| 298 | 364 | bytes = DownloadVideo.bytesDownloaded; |
| 299 | 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 | 367 | Action errorWriting = () => { screenManager.changeExportStates(ExportLayers.ExportLayer.All, true); }; |
| 302 | 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 | 372 | else |
| 307 | 373 | { |
| 308 | 374 | GetConnectionStatusError(ExportLayers.ConnectionStatusError.DOWNLOAD_CONNECTION_FAILURE); |
| 309 | 375 | ErrorDownloading(); |
| 310 | 376 | } |
| 311 | - | |
| 312 | - | |
| 377 | + | |
| 378 | + | |
| 313 | 379 | } |
| 314 | 380 | finally |
| 315 | 381 | { |
| ... | ... | @@ -326,14 +392,14 @@ public class ExportVideo : MonoBehaviour { |
| 326 | 392 | screenManager.changeExportStates(ExportLayers.ExportLayer.OnLockExport, false); |
| 327 | 393 | screenManager.changeExportStates(ExportLayers.ExportLayer.OnLockShare, false); |
| 328 | 394 | } |
| 329 | - | |
| 395 | + | |
| 330 | 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 | 404 | yield return WaitForResponse(www, null, null); |
| 339 | 405 | } |
| ... | ... | @@ -344,19 +410,19 @@ public class ExportVideo : MonoBehaviour { |
| 344 | 410 | switch (error) |
| 345 | 411 | { |
| 346 | 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 | 414 | break; |
| 349 | 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 | 417 | break; |
| 352 | 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 | 420 | break; |
| 355 | 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 | 423 | break; |
| 358 | 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 | 426 | break; |
| 361 | 427 | } |
| 362 | 428 | ... | ... |
Assets/Scripts/Export Video/MediaShareAndroid.cs
| ... | ... | @@ -50,6 +50,7 @@ public class MediaShareAndroid : MonoBehaviour |
| 50 | 50 | public IEnumerator WriteOnAndroid(byte[] videoContent, int bytes,string CurrentTime, Action finishWriting, Action errorWriting) |
| 51 | 51 | { |
| 52 | 52 | #if UNITY_ANDROID |
| 53 | + | |
| 53 | 54 | FilePath = Filen + CurrentTime + ".mp4"; |
| 54 | 55 | destination = Path.Combine(AndroidPath, Vlibras); |
| 55 | 56 | |
| ... | ... | @@ -77,7 +78,7 @@ public class MediaShareAndroid : MonoBehaviour |
| 77 | 78 | } |
| 78 | 79 | else |
| 79 | 80 | { |
| 80 | - new AndroidToast().showToast("Erro ao salvar vídeo."); | |
| 81 | + new AndroidToast().showToast("Erro ao salvar vídeo.","LONG"); | |
| 81 | 82 | errorWriting(); |
| 82 | 83 | } |
| 83 | 84 | |
| ... | ... | @@ -87,7 +88,7 @@ public class MediaShareAndroid : MonoBehaviour |
| 87 | 88 | { |
| 88 | 89 | PlayerLogger.Log("MediaShareAndroid", "WriteOnAndroid","Message: " + e.Message); |
| 89 | 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 | 92 | errorWriting(); |
| 92 | 93 | } |
| 93 | 94 | |
| ... | ... | @@ -103,9 +104,10 @@ public class MediaShareAndroid : MonoBehaviour |
| 103 | 104 | /* Calling Android Services to refresh the video path, making available to show in gallery*/ |
| 104 | 105 | |
| 105 | 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 | 111 | AndroidJavaObject joActivity = jcUnityPlayer.GetStatic<AndroidJavaObject>("currentActivity"); |
| 110 | 112 | AndroidJavaObject joContext = joActivity.Call<AndroidJavaObject>("getApplicationContext"); |
| 111 | 113 | AndroidJavaClass jcMediaScannerConnection = new AndroidJavaClass("android.media.MediaScannerConnection"); |
| ... | ... | @@ -113,18 +115,18 @@ public class MediaShareAndroid : MonoBehaviour |
| 113 | 115 | // AndroidJavaObject joExDir = jcEnvironment.CallStatic<AndroidJavaObject>("getExternalStorageDirectory"); |
| 114 | 116 | string path = destination; |
| 115 | 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 | 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 | 132 | // block to open the file and share it ------------START |
| ... | ... | @@ -153,9 +155,10 @@ public class MediaShareAndroid : MonoBehaviour |
| 153 | 155 | |
| 154 | 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 | 22 | |
| 23 | 23 | public GameObject loadingSnippet; |
| 24 | 24 | public GameObject connectionErrorDialog; |
| 25 | + public Text connectionErrorTitle; | |
| 25 | 26 | public Text connectionErrorText; |
| 27 | + public GameObject permissionDialog; | |
| 28 | + public Text permissionTitle; | |
| 29 | + public Text permissionText; | |
| 26 | 30 | public GameObject pauseMenu; |
| 27 | 31 | public GameObject repeatLayer; |
| 28 | 32 | public GameObject exportContainer; |
| ... | ... | @@ -266,9 +270,17 @@ public class ScreenManager : MonoBehaviour { |
| 266 | 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 | 280 | public void showConnectionErrorDialog(PlayerManager.ERROR_STATUS_MESSAGE msg)//int error_code |
| 270 | 281 | { |
| 271 | 282 | this.connectionErrorDialog.SetActive(true); |
| 283 | + this.connectionErrorTitle.text = "Conexão falhou"; | |
| 272 | 284 | this.connectionErrorText.text = PlayerManager.get_connection_status_message(msg); |
| 273 | 285 | } |
| 274 | 286 | ... | ... |