diff options
author | Allan Wang <me@allanwang.ca> | 2017-08-30 13:35:38 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-08-30 13:35:38 -0400 |
commit | a095623d23e6d90233fc3d21e905f773b4c12a1b (patch) | |
tree | 02adb88de4c88d2a03ee4efddc9683616450bf4a /app | |
parent | 270ff7705be5ec0c78f5eae4934779ff4b4c00ee (diff) | |
download | frost-a095623d23e6d90233fc3d21e905f773b4c12a1b.tar.gz frost-a095623d23e6d90233fc3d21e905f773b4c12a1b.tar.bz2 frost-a095623d23e6d90233fc3d21e905f773b4c12a1b.zip |
Add debugging for menu (#242)
* Add base for menu debugging
* Add debug js
Diffstat (limited to 'app')
-rw-r--r-- | app/src/main/assets/js/menu.min.js | 3 | ||||
-rw-r--r-- | app/src/main/assets/js/menu_debug.js | 46 | ||||
-rw-r--r-- | app/src/main/assets/js/menu_debug.min.js | 34 | ||||
-rw-r--r-- | app/src/main/kotlin/com/pitchedapps/frost/injectors/JsAssets.kt | 2 | ||||
-rw-r--r-- | app/src/main/kotlin/com/pitchedapps/frost/settings/Debug.kt | 2 | ||||
-rw-r--r-- | app/src/main/res/xml/frost_changelog.xml | 2 |
6 files changed, 86 insertions, 3 deletions
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 @@ <item text="Fix theme for sharing and new messages" /> <item text="Prevent search bar settings from disabling itself if auto suggestions fail" /> <item text="Fix numerous crashes relating to search bar layouts" /> - <item text="" /> + <item text="Add debugging for menu" /> <item text="" /> <item text="" /> |