private void Initialize() { foreach (XmlNode element in node.ChildNodes) { if (element.Name.Equals("meta-data")) { metaDataList.Add(ManifestMetaData.CreateInstance(node, element)); } else if (element.Name.Equals("grant-uri-permission")) { grantUriPermissionList.Add(ManifestGrantUriPermission.CreateInstance(node, element)); } else if (element.Name.Equals("path-permission")) { pathPermissionList.Add(ManifestPathPermission.CreateInstance(node, element)); } } if (node.HasAttribute("android:name")) { name = node.Attributes["android:name"].Value; } InitializeAuthorities(); enabled = InitializeBoolAttribute("android:enabled", true); exported = InitializeBoolAttribute("android:exported", true); grantUriPermissions = InitializeBoolAttribute("android:grantUriPermissions", false); if (node.HasAttribute("android:icon")) { icon = node.Attributes["android:icon"].Value; } if (node.HasAttribute("android:initOrder")) { initOrder = System.Convert.ToInt32(node.Attributes["android:icon"].Value); } if (node.HasAttribute("android:label")) { label = node.Attributes["android:label"].Value; } multiProcess = InitializeBoolAttribute("android:multiprocess", false); if (node.HasAttribute("android:permission")) { permission = node.Attributes["android:permission"].Value; } if (node.HasAttribute("android:process")) { process = node.Attributes["android:process"].Value; } if (node.HasAttribute("android:readPermission")) { readPermission = node.Attributes["android:readPermission"].Value; } syncable = InitializeBoolAttribute("android:syncable", false); if (node.HasAttribute("android:writePermission")) { writePermission = node.Attributes["android:writePermission"].Value; } }
public override void OnGUI() { bool changed = false; display = EditorGUILayout.Foldout(display, "Provider: " + (!display ? name : "")); EditorGUI.BeginChangeCheck(); if (display) { name = EditorGUILayout.TextField("Name: ", name); changed |= EditorGUI.EndChangeCheck(); BBGuiHelper.BeginIndent(); { #region attributes displayAttributes = EditorGUILayout.Foldout(displayAttributes, "Attributes: "); if (displayAttributes) { EditorGUI.BeginChangeCheck(); BBGuiHelper.BeginIndent(); { for (int i = 0; i < authorities.Count; i++) { EditorGUILayout.BeginHorizontal(); { authorities[i] = EditorGUILayout.TextField(authorities[i]); if (GUILayout.Button("Remove")) { authorities.RemoveAt(i--); } } EditorGUILayout.EndHorizontal(); } enabled = EditorGUILayout.Toggle("Enabled: ", enabled); exported = EditorGUILayout.Toggle("Exported: ", exported); grantUriPermissions = EditorGUILayout.Toggle("Grant URI Permissions: ", grantUriPermissions); icon = EditorGUILayout.TextField("Icon: ", icon); initOrder = EditorGUILayout.IntField("Init Order: ", initOrder); label = EditorGUILayout.TextField("Label: ", label); multiProcess = EditorGUILayout.Toggle("Multiprocess: ", multiProcess); permission = EditorGUILayout.TextField("Permission: ", permission); process = EditorGUILayout.TextField("Process: ", process); readPermission = EditorGUILayout.TextField("Read Permission: ", readPermission); syncable = EditorGUILayout.Toggle("Syncable: ", syncable); writePermission = EditorGUILayout.TextField("Write Permission: ", writePermission); } BBGuiHelper.EndIndent(); changed |= EditorGUI.EndChangeCheck(); } #endregion #region metadata displayMetaData = EditorGUILayout.Foldout(displayMetaData, "Meta-Data: (" + metaDataList.Count + ")"); if (displayMetaData) { for (int i = 0; i < metaDataList.Count; i++) { Undo.RecordObject(metaDataList[i], "Meta-Data"); if (metaDataList[i].ElementEditStatus != EditStatus.REMOVED) { metaDataList[i].OnGUI(); } if (metaDataList[i].ElementEditStatus != EditStatus.NONE) { changed = true; } } BBGuiHelper.EndIndent(); GUILayout.BeginHorizontal(); { EditorGUILayout.Space(); if (GUILayout.Button("New Meta-Data", BBGuiHelper.ButtonWidth())) { metaDataList.Add(ManifestMetaData.CreateInstance(node)); changed = true; } } GUILayout.EndHorizontal(); BBGuiHelper.BeginIndent(); } #endregion #region granturipermission displayGrantUriPermissions = EditorGUILayout.Foldout(displayGrantUriPermissions, "Grant-Uri-Permissions: (" + grantUriPermissionList.Count + ")"); if (displayGrantUriPermissions) { for (int i = 0; i < grantUriPermissionList.Count; i++) { Undo.RecordObject(grantUriPermissionList[i], "Grant-Uri-Permissions"); if (grantUriPermissionList[i].ElementEditStatus != EditStatus.REMOVED) { grantUriPermissionList[i].OnGUI(); } if (grantUriPermissionList[i].ElementEditStatus != EditStatus.NONE) { changed = true; } } BBGuiHelper.EndIndent(); GUILayout.BeginHorizontal(); { EditorGUILayout.Space(); if (GUILayout.Button("New Grant-Uri-Permission", BBGuiHelper.ButtonWidth())) { grantUriPermissionList.Add(ManifestGrantUriPermission.CreateInstance(node)); changed = true; } } GUILayout.EndHorizontal(); BBGuiHelper.BeginIndent(); } #endregion #region pathpermission displayPathPermissions = EditorGUILayout.Foldout(displayPathPermissions, "Path-Permissions: (" + pathPermissionList.Count + ")"); if (displayPathPermissions) { for (int i = 0; i < pathPermissionList.Count; i++) { Undo.RecordObject(pathPermissionList[i], "Path-Permissions"); if (pathPermissionList[i].ElementEditStatus != EditStatus.REMOVED) { pathPermissionList[i].OnGUI(); } if (pathPermissionList[i].ElementEditStatus != EditStatus.NONE) { changed = true; } } BBGuiHelper.EndIndent(); GUILayout.BeginHorizontal(); { EditorGUILayout.Space(); if (GUILayout.Button("New Path-Permission", BBGuiHelper.ButtonWidth())) { pathPermissionList.Add(ManifestPathPermission.CreateInstance(node)); changed = true; } } GUILayout.EndHorizontal(); BBGuiHelper.BeginIndent(); } #endregion } BBGuiHelper.EndIndent(); GUILayout.BeginHorizontal(); { EditorGUILayout.Space(); if (changed) { elementEditStatus = EditStatus.EDITED; } if (GUILayout.Button("Remove Provider", BBGuiHelper.ButtonWidth())) { elementEditStatus = EditStatus.REMOVED; } } GUILayout.EndHorizontal(); } }