From a095623d23e6d90233fc3d21e905f773b4c12a1b Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Wed, 30 Aug 2017 13:35:38 -0400 Subject: Add debugging for menu (#242) * Add base for menu debugging * Add debug js --- app/src/main/assets/js/menu.min.js | 3 +- app/src/main/assets/js/menu_debug.js | 46 ++++++++++++++++++++++ app/src/main/assets/js/menu_debug.min.js | 34 ++++++++++++++++ .../com/pitchedapps/frost/injectors/JsAssets.kt | 2 +- .../kotlin/com/pitchedapps/frost/settings/Debug.kt | 2 + app/src/main/res/xml/frost_changelog.xml | 2 +- 6 files changed, 86 insertions(+), 3 deletions(-) create mode 100644 app/src/main/assets/js/menu_debug.js create mode 100644 app/src/main/assets/js/menu_debug.min.js diff --git a/app/src/main/assets/js/menu.min.js b/app/src/main/assets/js/menu.min.js index 5b65ac9b..df51c13b 100644 --- a/app/src/main/assets/js/menu.min.js +++ b/app/src/main/assets/js/menu.min.js @@ -17,7 +17,8 @@ var o=document.querySelector(".mSideMenu") for(x.disconnect(),console.log("Found side menu");root.firstChild;)root.removeChild(root.firstChild) ;for(;o.childNodes.length;)console.log("append"), viewport.appendChild(o.childNodes[0]) -;"undefined"!=typeof Frost&&Frost.emit(0),setTimeout(function(){ +;"undefined"!=typeof Frost&&Frost.handleHtml(viewport.outerHTML), +setTimeout(function(){ y.disconnect(),console.log("Unhook styler") },500) } diff --git a/app/src/main/assets/js/menu_debug.js b/app/src/main/assets/js/menu_debug.js new file mode 100644 index 00000000..552dc909 --- /dev/null +++ b/app/src/main/assets/js/menu_debug.js @@ -0,0 +1,46 @@ +//click menu and move contents to main view +if (!window.hasOwnProperty('frost_menu')) { + console.log('Registering frost_menu'); + window.frost_menu = true; + var viewport = document.querySelector('#viewport'); + var root = document.querySelector('#root'); + if (!viewport) console.log('Menu.js: viewport is null'); + if (!root) console.log('Menu.js: root is null'); + var y = new MutationObserver(function(mutations) { + viewport.removeAttribute('style'); + root.removeAttribute('style'); + }); + y.observe(viewport, { + attributes: true + }); + y.observe(root, { + attributes: true + }); + var x = new MutationObserver(function(mutations) { + var menu = document.querySelector('.mSideMenu'); + if (menu !== null) { + x.disconnect(); + console.log('Found side menu'); + while (root.firstChild) + root.removeChild(root.firstChild); + while (menu.childNodes.length) { + console.log('append'); + viewport.appendChild(menu.childNodes[0]); + } + if (typeof Frost !== 'undefined') Frost.handleHtml(viewport.outerHTML); + setTimeout(function() { + y.disconnect(); + console.log('Unhook styler'); + }, 500); + } + }); + var jewel = document.querySelector('#mJewelNav'); + if (!jewel) console.log('Menu.js: jewel is null'); + x.observe(jewel, { + childList: true, + subtree: true + }); + var menuA = document.querySelector('#bookmarks_jewel').querySelector('a'); + if (!menuA) console.log('Menu.js: jewel is null') + menuA.click(); +} diff --git a/app/src/main/assets/js/menu_debug.min.js b/app/src/main/assets/js/menu_debug.min.js new file mode 100644 index 00000000..df51c13b --- /dev/null +++ b/app/src/main/assets/js/menu_debug.min.js @@ -0,0 +1,34 @@ +if(!window.hasOwnProperty("frost_menu")){ +console.log("Registering frost_menu"),window.frost_menu=!0 +;var viewport=document.querySelector("#viewport"),root=document.querySelector("#root") +;viewport||console.log("Menu.js: viewport is null"), +root||console.log("Menu.js: root is null") +;var y=new MutationObserver(function(e){ +viewport.removeAttribute("style"),root.removeAttribute("style") +}) +;y.observe(viewport,{ +attributes:!0 +}),y.observe(root,{ +attributes:!0 +}) +;var x=new MutationObserver(function(e){ +var o=document.querySelector(".mSideMenu") +;if(null!==o){ +for(x.disconnect(),console.log("Found side menu");root.firstChild;)root.removeChild(root.firstChild) +;for(;o.childNodes.length;)console.log("append"), +viewport.appendChild(o.childNodes[0]) +;"undefined"!=typeof Frost&&Frost.handleHtml(viewport.outerHTML), +setTimeout(function(){ +y.disconnect(),console.log("Unhook styler") +},500) +} +}),jewel=document.querySelector("#mJewelNav") +;jewel||console.log("Menu.js: jewel is null"), +x.observe(jewel,{ +childList:!0, +subtree:!0 +}) +;var menuA=document.querySelector("#bookmarks_jewel").querySelector("a") +;menuA||console.log("Menu.js: jewel is null"), +menuA.click() +} \ No newline at end of file diff --git a/app/src/main/kotlin/com/pitchedapps/frost/injectors/JsAssets.kt b/app/src/main/kotlin/com/pitchedapps/frost/injectors/JsAssets.kt index 27b0f92a..b4ce05a5 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/injectors/JsAssets.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/injectors/JsAssets.kt @@ -11,7 +11,7 @@ import java.util.* * The enum name must match the css file name */ enum class JsAssets : InjectorContract { - MENU, CLICK_A, CONTEXT_A, HEADER_BADGES, SEARCH, TEXTAREA_LISTENER, NOTIF_MSG + MENU, MENU_DEBUG, CLICK_A, CONTEXT_A, HEADER_BADGES, SEARCH, TEXTAREA_LISTENER, NOTIF_MSG ; var file = "${name.toLowerCase(Locale.CANADA)}.min.js" diff --git a/app/src/main/kotlin/com/pitchedapps/frost/settings/Debug.kt b/app/src/main/kotlin/com/pitchedapps/frost/settings/Debug.kt index f8dc81d1..3375a444 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/settings/Debug.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/settings/Debug.kt @@ -14,6 +14,7 @@ import com.pitchedapps.frost.facebook.FbItem import com.pitchedapps.frost.facebook.USER_AGENT_BASIC import com.pitchedapps.frost.injectors.InjectorContract import com.pitchedapps.frost.injectors.JsActions +import com.pitchedapps.frost.injectors.JsAssets import com.pitchedapps.frost.utils.L import com.pitchedapps.frost.utils.cleanHtml import com.pitchedapps.frost.utils.materialDialogThemed @@ -49,6 +50,7 @@ fun SettingsActivity.getDebugPrefs(): KPrefAdapterBuilder.() -> Unit = { } private enum class Debugger(val data: FbItem, val injector: InjectorContract?, vararg query: String) { + MENU(FbItem.MENU, JsAssets.MENU_DEBUG, "#viewport"), //todo modify menu js for debugging NOTIFICATIONS(FbItem.NOTIFICATIONS, null, "#notifications_list"), SEARCH(FbItem.SEARCH, JsActions.FETCH_BODY); diff --git a/app/src/main/res/xml/frost_changelog.xml b/app/src/main/res/xml/frost_changelog.xml index a53c1124..4363cf71 100644 --- a/app/src/main/res/xml/frost_changelog.xml +++ b/app/src/main/res/xml/frost_changelog.xml @@ -15,7 +15,7 @@ - + -- cgit v1.2.3