protected override void UpdateAttributes(XmlDocument document) { for (int i = 0; i < intentFilterList.Count; i++) { ManifestIntentFilter intentFIlter = intentFilterList[i]; if (intentFIlter.ElementEditStatus == EditStatus.REMOVED) { intentFilterList.RemoveAt(i); i--; } intentFIlter.ApplyChanges(document); } for (int i = 0; i < metaDataList.Count; i++) { ManifestMetaData metaData = metaDataList[i]; if (metaData.ElementEditStatus == EditStatus.REMOVED) { metaDataList.RemoveAt(i); i--; } metaData.ApplyChanges(document); } CreateAndroidAttribute(document, "name", name); UpdateOptionalAttribute(document, "enabled", !enabled, "false"); UpdateOptionalAttribute(document, "exported", !exported, "false"); UpdateOptionalAttribute(document, "icon", !icon.Equals(""), icon); UpdateOptionalAttribute(document, "label", !label.Equals(""), label); UpdateOptionalAttribute(document, "permission", !permission.Equals(""), permission); UpdateOptionalAttribute(document, "process", !process.Equals(""), process); }
//Constructed by editor window public static ManifestIntentFilter CreateInstance() { ManifestIntentFilter intentFilter = ScriptableObject.CreateInstance <ManifestIntentFilter> (); intentFilter.node = null; intentFilter.elementEditStatus = EditStatus.EDITED; return(intentFilter); }
//Constructed from existing entry in AndroidManifest or constructed as child of an Activity public static ManifestIntentFilter CreateInstance(XmlNode parent, XmlNode node = null) { ManifestIntentFilter intentFilter = ScriptableObject.CreateInstance <ManifestIntentFilter> (); intentFilter.parent = (XmlElement)parent; intentFilter.node = (XmlElement)node; intentFilter.elementEditStatus = EditStatus.NONE; if (node != null) { intentFilter.Initialize(); } return(intentFilter); }
protected override void UpdateAttributes(XmlDocument document) { if (node.OwnerDocument != document) { CopyNode(document); } for (int i = 0; i < intentFilterList.Count; i++) { ManifestIntentFilter intentFIlter = intentFilterList[i]; if (intentFIlter.ElementEditStatus == EditStatus.REMOVED) { intentFilterList.RemoveAt(i); i--; } intentFIlter.ApplyChanges(document); } for (int i = 0; i < metaDataList.Count; i++) { ManifestMetaData metaData = metaDataList[i]; if (metaData.ElementEditStatus == EditStatus.REMOVED) { metaDataList.RemoveAt(i); i--; } metaData.ApplyChanges(document); } CreateAndroidAttribute(document, "name", name); UpdateOptionalAttribute(document, "allowTaskReparenting", allowTaskReparenting, "true"); UpdateOptionalAttribute(document, "alwaysRetainTaskState", alwaysRetainTaskState, "true"); UpdateOptionalAttribute(document, "clearTaskOnLaunch", clearTaskOnLaunch, "true"); UpdateOptionalAttribute(document, "configChanges", configChanges != 0, ConfigChangesToString()); UpdateOptionalAttribute(document, "enabled", !enabled, "false"); UpdateOptionalAttribute(document, "excludeFromRecents", excludeFromRecents, "true"); UpdateOptionalAttribute(document, "exported", !exported, "false"); UpdateOptionalAttribute(document, "finishOnTaskLaunch", finishOnTaskLaunch, "true"); UpdateOptionalAttribute(document, "hardwareAccelerated", hardwareAccelerated, "true"); UpdateOptionalAttribute(document, "icon", !icon.Equals(""), icon); UpdateOptionalAttribute(document, "label", !label.Equals(""), label); UpdateOptionalAttribute(document, "launchMode", launchMode != launchModeArray[0], launchMode); UpdateOptionalAttribute(document, "multiprocess", multiprocess, "true"); UpdateOptionalAttribute(document, "noHistory", noHistory, "true"); UpdateOptionalAttribute(document, "permission", !permission.Equals(""), permission); UpdateOptionalAttribute(document, "process", !process.Equals(""), process); UpdateOptionalAttribute(document, "screenOrientation", screenOrientation != screenOrientationArray [0], screenOrientation); UpdateOptionalAttribute(document, "stateNotNeeded", stateNotNeeded, "true"); UpdateOptionalAttribute(document, "taskAffinity", !taskAffinity.Equals(""), taskAffinity); UpdateOptionalAttribute(document, "theme", !theme.Equals(""), theme); UpdateOptionalAttribute(document, "uiOptions", !uiOptions.Equals(uiOptionsArray[0]), uiOptions); UpdateOptionalAttribute(document, "windowSoftInputMode", windowSoftInputMode != 0, WindowSoftInputModeToString()); }
private void Initialize() { foreach (XmlNode element in node.ChildNodes) { if (element.Name.Equals("meta-data")) { metaDataList.Add(ManifestMetaData.CreateInstance(node, element)); } if (element.Name.Equals("intent-filter")) { intentFilterList.Add(ManifestIntentFilter.CreateInstance(node, element)); } } if (node.HasAttribute("android:name")) { name = node.Attributes["android:name"].Value; } enabled = InitializeBoolAttribute("android:enabled", true); exported = InitializeBoolAttribute("android:exported", true); if (node.HasAttribute("android:icon")) { icon = node.Attributes["android:icon"].Value; } isolatedProcess = InitializeBoolAttribute("android:isolatedProcess", false); if (node.HasAttribute("android:label")) { label = node.Attributes["android:label"].Value; } if (node.HasAttribute("android:permission")) { permission = node.Attributes["android:permission"].Value; } if (node.HasAttribute("android:process")) { process = node.Attributes["android:process"].Value; } }
public override void OnGUI() { bool changed = false; display = EditorGUILayout.Foldout(display, "Receiver: " + (!display ? name : "")); if (display) { EditorGUI.BeginChangeCheck(); name = EditorGUILayout.TextField("Name: ", name); changed |= EditorGUI.EndChangeCheck(); BBGuiHelper.BeginIndent(); { #region attributes displayAttributes = EditorGUILayout.Foldout(displayAttributes, "Attributes: "); if (displayAttributes) { EditorGUI.BeginChangeCheck(); BBGuiHelper.BeginIndent(); { enabled = EditorGUILayout.Toggle("Enabled: ", enabled); exported = EditorGUILayout.Toggle("Exported: ", exported); icon = EditorGUILayout.TextField("Icon: ", icon); label = EditorGUILayout.TextField("Label: ", label); permission = EditorGUILayout.TextField("Permission: ", permission); process = EditorGUILayout.TextField("Process: ", process); } BBGuiHelper.EndIndent(); changed |= EditorGUI.EndChangeCheck(); } #endregion #region intentfilter displayIntentFilter = EditorGUILayout.Foldout(displayIntentFilter, "Intent-Filters: (" + intentFilterList.Count + ")"); if (displayIntentFilter) { for (int i = 0; i < intentFilterList.Count; i++) { Undo.RecordObject(intentFilterList[i], "Intent-Filter"); if (intentFilterList[i].ElementEditStatus != EditStatus.REMOVED) { intentFilterList[i].OnGUI(); } if (intentFilterList[i].ElementEditStatus != EditStatus.NONE) { changed = true; } } BBGuiHelper.EndIndent(); GUILayout.BeginHorizontal(); { EditorGUILayout.Space(); if (GUILayout.Button("New Intent-Filter", BBGuiHelper.ButtonWidth())) { intentFilterList.Add(ManifestIntentFilter.CreateInstance(node)); changed = true; } } GUILayout.EndHorizontal(); BBGuiHelper.BeginIndent(); } #endregion #region metadata displayMetaData = EditorGUILayout.Foldout(displayMetaData, "Meta-Data: (" + intentFilterList.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 } BBGuiHelper.EndIndent(); GUILayout.BeginHorizontal(); { EditorGUILayout.Space(); if (changed) { elementEditStatus = EditStatus.EDITED; } if (GUILayout.Button("Remove Receiver", BBGuiHelper.ButtonWidth())) { elementEditStatus = EditStatus.REMOVED; } } GUILayout.EndHorizontal(); } }
private void Initialize() { foreach (XmlNode element in node.ChildNodes) { if (element.Name.Equals("meta-data")) { metaDataList.Add(ManifestMetaData.CreateInstance(node, element)); } if (element.Name.Equals("intent-filter")) { intentFilterList.Add(ManifestIntentFilter.CreateInstance(node, element)); } } if (node.HasAttribute("android:name")) { name = node.Attributes["android:name"].Value; } allowTaskReparenting = InitializeBoolAttribute("android:allowTaskReparenting", false); alwaysRetainTaskState = InitializeBoolAttribute("android:alwaysRetainTaskState", false); clearTaskOnLaunch = InitializeBoolAttribute("android:clearTaskOnLaunch", false); InitializeConfigChanges(); enabled = InitializeBoolAttribute("android:enabled", true); excludeFromRecents = InitializeBoolAttribute("android:excludeFromRecents", false); exported = InitializeBoolAttribute("android:exported", true); finishOnTaskLaunch = InitializeBoolAttribute("android:finishOnTaskLaunch", false); hardwareAccelerated = InitializeBoolAttribute("android:hardwareAccelerated", false); if (node.HasAttribute("android:icon")) { icon = node.Attributes["android:icon"].Value; } if (node.HasAttribute("android:label")) { label = node.Attributes["android:label"].Value; } if (node.HasAttribute("android:launchMode")) { launchMode = node.Attributes["android:launchMode"].Value; } multiprocess = InitializeBoolAttribute("android:multiprocess", false); noHistory = InitializeBoolAttribute("android:noHistory", 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:screenOrientation")) { screenOrientation = node.Attributes["android:screenOrientation"].Value; } stateNotNeeded = InitializeBoolAttribute("android:stateNotNeeded", false); if (node.HasAttribute("android:taskAffinity")) { taskAffinity = node.Attributes["android:taskAffinity"].Value; } if (node.HasAttribute("android:theme")) { theme = node.Attributes["android:theme"].Value; } if (node.HasAttribute("android:uiOptions")) { uiOptions = node.Attributes["android:uiOptions"].Value; } InitializeWindowSoftInputMode(); }
public override void OnGUI() { bool changed = false; display = EditorGUILayout.Foldout(display, "Activity: " + (!display ? name : "")); if (display) { EditorGUI.BeginChangeCheck(); name = EditorGUILayout.TextField("Name: ", name); changed |= EditorGUI.EndChangeCheck(); #region attributes displayAttributes = EditorGUILayout.Foldout(displayAttributes, "Attributes: "); if (displayAttributes) { EditorGUI.BeginChangeCheck(); BBGuiHelper.BeginIndent(); { allowTaskReparenting = EditorGUILayout.Toggle("Allow Task Reparenting: ", allowTaskReparenting); alwaysRetainTaskState = EditorGUILayout.Toggle("Always Retain Task State: ", alwaysRetainTaskState); clearTaskOnLaunch = EditorGUILayout.Toggle("Clear Task On Launch: ", clearTaskOnLaunch); configChanges = EditorGUILayout.MaskField("Config Changes: ", configChanges, configChangesArray); enabled = EditorGUILayout.Toggle("Enabled: ", enabled); excludeFromRecents = EditorGUILayout.Toggle("Exclude From Recents: ", excludeFromRecents); exported = EditorGUILayout.Toggle("Exported: ", exported); hardwareAccelerated = EditorGUILayout.Toggle("Hardware Accelerated: ", hardwareAccelerated); icon = EditorGUILayout.TextField("Icon: ", icon); label = EditorGUILayout.TextField("Label: ", label); launchMode = launchModeArray[EditorGUILayout.Popup("Launch Mode: ", Array.IndexOf(launchModeArray, launchMode), launchModeArray)]; multiprocess = EditorGUILayout.Toggle("Multiprocess: ", multiprocess); noHistory = EditorGUILayout.Toggle("No History: ", noHistory); permission = EditorGUILayout.TextField("Permission: ", permission); process = EditorGUILayout.TextField("Process: ", process); screenOrientation = screenOrientationArray[EditorGUILayout.Popup("Screen Orientation: ", Array.IndexOf(screenOrientationArray, screenOrientation), screenOrientationArray)]; stateNotNeeded = EditorGUILayout.Toggle("State Not Needed", stateNotNeeded); taskAffinity = EditorGUILayout.TextField("Task Affinity: ", taskAffinity); theme = EditorGUILayout.TextField("Theme: ", theme); uiOptions = uiOptionsArray[EditorGUILayout.Popup("UI Options: ", Array.IndexOf(uiOptionsArray, uiOptions), uiOptionsArray)]; windowSoftInputMode = EditorGUILayout.MaskField("Window Soft Input Mode: ", windowSoftInputMode, windowSoftInputModeArray); } BBGuiHelper.EndIndent(); changed |= EditorGUI.EndChangeCheck(); } #endregion #region intentfilter displayIntentFilter = EditorGUILayout.Foldout(displayIntentFilter, "Intent-Filters: (" + intentFilterList.Count + ")"); if (displayIntentFilter) { BBGuiHelper.BeginIndent(); { for (int i = 0; i < intentFilterList.Count; i++) { Undo.RecordObject(intentFilterList[i], "Intent-Filter"); if (intentFilterList[i].ElementEditStatus != EditStatus.REMOVED) { intentFilterList[i].OnGUI(); } if (intentFilterList[i].ElementEditStatus != EditStatus.NONE) { changed = true; } } } BBGuiHelper.EndIndent(); GUILayout.BeginHorizontal(); { EditorGUILayout.Space(); if (GUILayout.Button("New Intent-Filter", BBGuiHelper.ButtonWidth())) { intentFilterList.Add(ManifestIntentFilter.CreateInstance(node)); changed = true; } } GUILayout.EndHorizontal(); } #endregion #region metadata displayMetaData = EditorGUILayout.Foldout(displayMetaData, "Meta-Data: (" + metaDataList.Count + ")"); if (displayMetaData) { BBGuiHelper.BeginIndent(); { 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(); } #endregion GUILayout.BeginHorizontal(); { EditorGUILayout.Space(); if (changed) { elementEditStatus = EditStatus.EDITED; } if (GUILayout.Button("Remove Activity", BBGuiHelper.ButtonWidth())) { elementEditStatus = EditStatus.REMOVED; } } GUILayout.EndHorizontal(); } }