Repository files navigation

Android Extensions Sample

This sample contains:

  • A User Control definition.
  • An External Object definition.
  • An Android Library project of a Genexus Module that implements the two previously defined extensions.
  • An Genexus Library definition which declares the Android Library which implements the User Control and External Object in Android and its corresponding Genexus Module name.
  • An app that lets you try out both extensions.

Requirements

  • Genexus 15 (Upgrade 3 or later)
  • JDK
  • Android SDK

For more details see Android Requirements for Genexus 15.

Instructions

Deploy the Genexus Android Module to Genexus

  • Set the following environment variables:
    • GENEXUS_HOME to your Genexus installation directory.
    • ANDROID_HOME to your Android SDK directory.
  • Run the command gradlew uploadArchives from the SampleModule directory.

Import the User Control definition to Genexus

  • Copy the BasicUserControl directory to %GENEXUS_HOME%\UserControls.
  • Run genexus.exe /install.

Import the Genexus Library definition to Genexus

  • Copy the SampleLibrary directory to %GENEXUS_HOME%\Libraries.

Import the External Object definition to Genexus

  • Open Genexus.
  • Import the BasicExternalObject definition from BasicExternalObject\BasicExternalObject.xpz.

Import the sample app (optional).

To try out the BasicUserControl and BasicExternalObject samples you may wish to import the sample app from SampleApp\BasicSample.xpz.

Further reading

User Controls

External Objects

License

This project is licensed under the MIT License. See the LICENSE file for more details.

About

This repository contains extensions samples for the Android generator.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Android Extensions Sample

This sample contains:

  • A User Control definition.
  • An External Object definition.
  • An Android Library project of a Genexus Module that implements the two previously defined extensions.
  • An Genexus Library definition which declares the Android Library which implements the User Control and External Object in Android and its corresponding Genexus Module name.
  • An app that lets you try out both extensions.

Requirements

  • Genexus 15 (Upgrade 3 or later)
  • JDK
  • Android SDK

For more details see Android Requirements for Genexus 15.

Instructions

Deploy the Genexus Android Module to Genexus

  • Set the following environment variables:
    • GENEXUS_HOME to your Genexus installation directory.
    • ANDROID_HOME to your Android SDK directory.
  • Run the command gradlew uploadArchives from the SampleModule directory.

Import the User Control definition to Genexus

  • Copy the BasicUserControl directory to %GENEXUS_HOME%\UserControls.
  • Run genexus.exe /install.

Import the Genexus Library definition to Genexus

  • Copy the SampleLibrary directory to %GENEXUS_HOME%\Libraries.

Import the External Object definition to Genexus

  • Open Genexus.
  • Import the BasicExternalObject definition from BasicExternalObject\BasicExternalObject.xpz.

Import the sample app (optional).

To try out the BasicUserControl and BasicExternalObject samples you may wish to import the sample app from SampleApp\BasicSample.xpz.

Further reading

User Controls

External Objects

License

This project is licensed under the MIT License. See the LICENSE file for more details.

About

This repository contains extensions samples for the Android generator.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Android Extensions Sample

This sample contains:

  • A User Control definition.
  • An External Object definition.
  • An Android Library project of a Genexus Module that implements the two previously defined extensions.
  • An Genexus Library definition which declares the Android Library which implements the User Control and External Object in Android and its corresponding Genexus Module name.
  • An app that lets you try out both extensions.

Requirements

  • Genexus 15 (Upgrade 3 or later)
  • JDK
  • Android SDK

For more details see Android Requirements for Genexus 15.

Instructions

Deploy the Genexus Android Module to Genexus

  • Set the following environment variables:
    • GENEXUS_HOME to your Genexus installation directory.
    • ANDROID_HOME to your Android SDK directory.
  • Run the command gradlew uploadArchives from the SampleModule directory.

Import the User Control definition to Genexus

  • Copy the BasicUserControl directory to %GENEXUS_HOME%\UserControls.
  • Run genexus.exe /install.

Import the Genexus Library definition to Genexus

  • Copy the SampleLibrary directory to %GENEXUS_HOME%\Libraries.

Import the External Object definition to Genexus

  • Open Genexus.
  • Import the BasicExternalObject definition from BasicExternalObject\BasicExternalObject.xpz.

Import the sample app (optional).

To try out the BasicUserControl and BasicExternalObject samples you may wish to import the sample app from SampleApp\BasicSample.xpz.

Further reading

User Controls

External Objects

License

This project is licensed under the MIT License. See the LICENSE file for more details.

About

This repository contains extensions samples for the Android generator.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Android Extensions Sample

This sample contains:

  • A User Control definition.
  • An External Object definition.
  • An Android Library project of a Genexus Module that implements the two previously defined extensions.
  • An Genexus Library definition which declares the Android Library which implements the User Control and External Object in Android and its corresponding Genexus Module name.
  • An app that lets you try out both extensions.

Requirements

  • Genexus 15 (Upgrade 3 or later)
  • JDK
  • Android SDK

For more details see Android Requirements for Genexus 15.

Instructions

Deploy the Genexus Android Module to Genexus

  • Set the following environment variables:
    • GENEXUS_HOME to your Genexus installation directory.
    • ANDROID_HOME to your Android SDK directory.
  • Run the command gradlew uploadArchives from the SampleModule directory.

Import the User Control definition to Genexus

  • Copy the BasicUserControl directory to %GENEXUS_HOME%\UserControls.
  • Run genexus.exe /install.

Import the Genexus Library definition to Genexus

  • Copy the SampleLibrary directory to %GENEXUS_HOME%\Libraries.

Import the External Object definition to Genexus

  • Open Genexus.
  • Import the BasicExternalObject definition from BasicExternalObject\BasicExternalObject.xpz.

Import the sample app (optional).

To try out the BasicUserControl and BasicExternalObject samples you may wish to import the sample app from SampleApp\BasicSample.xpz.

Further reading

User Controls

External Objects

License

This project is licensed under the MIT License. See the LICENSE file for more details.

About

This repository contains extensions samples for the Android generator.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Android Extensions Sample

This sample contains:

  • A User Control definition.
  • An External Object definition.
  • An Android Library project of a Genexus Module that implements the two previously defined extensions.
  • An Genexus Library definition which declares the Android Library which implements the User Control and External Object in Android and its corresponding Genexus Module name.
  • An app that lets you try out both extensions.

Requirements

  • Genexus 15 (Upgrade 3 or later)
  • JDK
  • Android SDK

For more details see Android Requirements for Genexus 15.

Instructions

Deploy the Genexus Android Module to Genexus

  • Set the following environment variables:
    • GENEXUS_HOME to your Genexus installation directory.
    • ANDROID_HOME to your Android SDK directory.
  • Run the command gradlew uploadArchives from the SampleModule directory.

Import the User Control definition to Genexus

  • Copy the BasicUserControl directory to %GENEXUS_HOME%\UserControls.
  • Run genexus.exe /install.

Import the Genexus Library definition to Genexus

  • Copy the SampleLibrary directory to %GENEXUS_HOME%\Libraries.

Import the External Object definition to Genexus

  • Open Genexus.
  • Import the BasicExternalObject definition from BasicExternalObject\BasicExternalObject.xpz.

Import the sample app (optional).

To try out the BasicUserControl and BasicExternalObject samples you may wish to import the sample app from SampleApp\BasicSample.xpz.

Further reading

User Controls

External Objects

License

This project is licensed under the MIT License. See the LICENSE file for more details.

About

This repository contains extensions samples for the Android generator.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Android Extensions Sample

This sample contains:

  • A User Control definition.
  • An External Object definition.
  • An Android Library project of a Genexus Module that implements the two previously defined extensions.
  • An Genexus Library definition which declares the Android Library which implements the User Control and External Object in Android and its corresponding Genexus Module name.
  • An app that lets you try out both extensions.

Requirements

  • Genexus 15 (Upgrade 3 or later)
  • JDK
  • Android SDK

For more details see Android Requirements for Genexus 15.

Instructions

Deploy the Genexus Android Module to Genexus

  • Set the following environment variables:
    • GENEXUS_HOME to your Genexus installation directory.
    • ANDROID_HOME to your Android SDK directory.
  • Run the command gradlew uploadArchives from the SampleModule directory.

Import the User Control definition to Genexus

  • Copy the BasicUserControl directory to %GENEXUS_HOME%\UserControls.
  • Run genexus.exe /install.

Import the Genexus Library definition to Genexus

  • Copy the SampleLibrary directory to %GENEXUS_HOME%\Libraries.

Import the External Object definition to Genexus

  • Open Genexus.
  • Import the BasicExternalObject definition from BasicExternalObject\BasicExternalObject.xpz.

Import the sample app (optional).

To try out the BasicUserControl and BasicExternalObject samples you may wish to import the sample app from SampleApp\BasicSample.xpz.

Further reading

User Controls

External Objects

License

This project is licensed under the MIT License. See the LICENSE file for more details.

About

This repository contains extensions samples for the Android generator.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Android Extensions Sample

This sample contains:

  • A User Control definition.
  • An External Object definition.
  • An Android Library project of a Genexus Module that implements the two previously defined extensions.
  • An Genexus Library definition which declares the Android Library which implements the User Control and External Object in Android and its corresponding Genexus Module name.
  • An app that lets you try out both extensions.

Requirements

  • Genexus 15 (Upgrade 3 or later)
  • JDK
  • Android SDK

For more details see Android Requirements for Genexus 15.

Instructions

Deploy the Genexus Android Module to Genexus

  • Set the following environment variables:
    • GENEXUS_HOME to your Genexus installation directory.
    • ANDROID_HOME to your Android SDK directory.
  • Run the command gradlew uploadArchives from the SampleModule directory.

Import the User Control definition to Genexus

  • Copy the BasicUserControl directory to %GENEXUS_HOME%\UserControls.
  • Run genexus.exe /install.

Import the Genexus Library definition to Genexus

  • Copy the SampleLibrary directory to %GENEXUS_HOME%\Libraries.

Import the External Object definition to Genexus

  • Open Genexus.
  • Import the BasicExternalObject definition from BasicExternalObject\BasicExternalObject.xpz.

Import the sample app (optional).

To try out the BasicUserControl and BasicExternalObject samples you may wish to import the sample app from SampleApp\BasicSample.xpz.

Further reading

User Controls

External Objects

License

This project is licensed under the MIT License. See the LICENSE file for more details.

About

This repository contains extensions samples for the Android generator.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Android Extensions Sample

This sample contains:

  • A User Control definition.
  • An External Object definition.
  • An Android Library project of a Genexus Module that implements the two previously defined extensions.
  • An Genexus Library definition which declares the Android Library which implements the User Control and External Object in Android and its corresponding Genexus Module name.
  • An app that lets you try out both extensions.

Requirements

  • Genexus 15 (Upgrade 3 or later)
  • JDK
  • Android SDK

For more details see Android Requirements for Genexus 15.

Instructions

Deploy the Genexus Android Module to Genexus

  • Set the following environment variables:
    • GENEXUS_HOME to your Genexus installation directory.
    • ANDROID_HOME to your Android SDK directory.
  • Run the command gradlew uploadArchives from the SampleModule directory.

Import the User Control definition to Genexus

  • Copy the BasicUserControl directory to %GENEXUS_HOME%\UserControls.
  • Run genexus.exe /install.

Import the Genexus Library definition to Genexus

  • Copy the SampleLibrary directory to %GENEXUS_HOME%\Libraries.

Import the External Object definition to Genexus

  • Open Genexus.
  • Import the BasicExternalObject definition from BasicExternalObject\BasicExternalObject.xpz.

Import the sample app (optional).

To try out the BasicUserControl and BasicExternalObject samples you may wish to import the sample app from SampleApp\BasicSample.xpz.

Further reading

User Controls

External Objects

License

This project is licensed under the MIT License. See the LICENSE file for more details.

About

This repository contains extensions samples for the Android generator.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages