Compare commits

...

21 Commits
1.3.0 ... 1.4.0

Author SHA1 Message Date
89cff0c444 Version 1.4.0 2024-03-07 20:47:18 -05:00
ff19ea685b more CI 2024-03-07 16:14:20 -05:00
e5f6f335ee more CI 2024-03-07 15:53:21 -05:00
bcfbf90be2 more CI 2024-03-07 15:25:21 -05:00
63922c3880 more CI 2024-03-07 15:23:06 -05:00
35570a119d more CI 2024-03-07 15:02:33 -05:00
b877b6141d sleep longer for releases 2024-03-07 14:44:52 -05:00
62f23d360d sleep longer for releases 2024-03-07 14:32:53 -05:00
c78614fea5 sleep longer for releases 2024-03-07 14:30:06 -05:00
44cc27b968 sleep for releases 2024-03-07 14:24:24 -05:00
274748d08b Add checksums to release body 2024-03-07 14:18:19 -05:00
b4840b7355 Add checksums to release body 2024-03-07 14:11:37 -05:00
6072b8552e skip unpacking artifacts, only checkout changelog 2024-03-07 13:48:05 -05:00
7c0070cd15 skip unpacking artifacts, only checkout changelog 2024-03-07 13:43:09 -05:00
8083c6c652 skip unpacking artifacts, only checkout changelog 2024-03-07 13:40:26 -05:00
d9d13fac70 check out repo prior to release 2024-03-07 13:33:50 -05:00
75049fa08e fix plugin build 2024-03-07 13:25:50 -05:00
113caaa922 Attempt release upload in CI 2024-03-07 13:19:19 -05:00
bf1b923750 redownload artifacts from ant.yml in release release.yml 2024-03-07 13:12:50 -05:00
286122d492 see about doing releases in CI 2024-03-07 12:52:19 -05:00
9ebc0eae81 page generation update for: 2024-03-07 11:35:28.227799872 -0500 EST m=+44.700656834 2024-03-07 11:35:28 -05:00
16 changed files with 194 additions and 43 deletions

View File

@ -40,42 +40,42 @@ jobs:
- name: Upload Firefox Profile Strict - name: Upload Firefox Profile Strict
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: i2p.firefox.base.profile-${{ github.sha }}.zip name: i2p.firefox.base.profile.zip
path: ./src/i2p.firefox.base.profile.zip path: ./src/i2p.firefox.base.profile.zip
- name: Upload Firefox Profile Usability - name: Upload Firefox Profile Usability
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: i2p.firefox.usability.profile-${{ github.sha }}.zip name: i2p.firefox.usability.profile.zip
path: ./src/i2p.firefox.usability.profile.zip path: ./src/i2p.firefox.usability.profile.zip
- name: Upload Chromium Profile Strict - name: Upload Chromium Profile Strict
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: i2p.chromium.base.profile-${{ github.sha }}.zip name: i2p.chromium.base.profile.zip
path: ./src/i2p.chromium.base.profile.zip path: ./src/i2p.chromium.base.profile.zip
- name: Upload Chromium Profile Usability - name: Upload Chromium Profile Usability
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: i2p.chromium.usability.profile-${{ github.sha }}.zip name: i2p.chromium.usability.profile.zip
path: ./src/i2p.chromium.usability.profile.zip path: ./src/i2p.chromium.usability.profile.zip
- name: Upload i2pfirefox.jar - name: Upload i2pfirefox.jar
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: i2pfirefox-${{ github.sha }}.jar name: i2pfirefox.jar
path: ./src/build/i2pfirefox.jar path: ./src/build/i2pfirefox.jar
- name: Upload i2pfirefox-plugin.jar - name: Upload i2pfirefox-plugin.jar
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: i2pfirefox-plugin-${{ github.sha }}.jar name: i2pfirefox-plugin.jar
path: ./src/build/i2pfirefox-plugin.jar path: ./src/build/i2pfirefox-plugin.jar
- name: Upload i2pbrowser.tar.gz - name: Upload i2pbrowser.tar.gz
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: i2pbrowser-${{ github.sha }}.tar.gz name: i2pbrowser.tar.gz
path: ./i2pbrowser.tar.gz path: ./i2pbrowser.tar.gz
- name: Upload i2pbrowser.deb - name: Upload i2pbrowser.deb
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: i2pbrowser_${{ github.sha }}_amd64.deb name: i2pbrowser_amd64.deb
path: ./i2pbrowser_1.0.0_amd64.deb path: ./i2pbrowser_1.0.0_amd64.deb
- name: build plugin with Ant - name: build plugin with Ant
run: | run: |
@ -84,7 +84,7 @@ jobs:
- name: Upload i2pfirefox.zip (unsigned plugin) - name: Upload i2pfirefox.zip (unsigned plugin)
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: i2pfirefox-${{ github.sha }}.zip name: i2pfirefox.zip
path: ./plugin.zip path: ./plugin.zip
@ -132,7 +132,7 @@ jobs:
- name: Upload i2pbrowser.rpm - name: Upload i2pbrowser.rpm
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: i2pbrowser-${{ github.sha }}.x86_64.rpm name: i2pbrowser.x86_64.rpm
path: ./i2pbrowser-1.0.0-1.x86_64.rpm path: ./i2pbrowser-1.0.0-1.x86_64.rpm
@ -171,7 +171,7 @@ jobs:
- name: Upload Firefox Profile EXE Installer - name: Upload Firefox Profile EXE Installer
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: i2pbrowser-1.0.0-${{ github.sha }}.exe name: i2pbrowser-1.0.0.exe
path: ./i2pbrowser-1.0.0.exe path: ./i2pbrowser-1.0.0.exe
- name: build msi with Ant - name: build msi with Ant
run: | run: |
@ -180,7 +180,7 @@ jobs:
- name: Upload Firefox Profile MSI Installer - name: Upload Firefox Profile MSI Installer
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: i2pbrowser-1.0.0-${{ github.sha }}.msi name: i2pbrowser-1.0.0.msi
path: ./i2pbrowser-1.0.0.msi path: ./i2pbrowser-1.0.0.msi
- name: build portable zip with Ant - name: build portable zip with Ant
run: | run: |
@ -189,7 +189,7 @@ jobs:
- name: Upload Firefox Profile Portable Zip - name: Upload Firefox Profile Portable Zip
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: i2pbrowser-portable-${{ github.sha }}.zip name: i2pbrowser-portable.zip
path: ./i2pbrowser-portable.zip path: ./i2pbrowser-portable.zip
buildmac: buildmac:
@ -227,7 +227,7 @@ jobs:
- name: Upload Firefox Profile DMG Installer - name: Upload Firefox Profile DMG Installer
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: i2pbrowser-1.0.0-${{ github.sha }}.dmg name: i2pbrowser-1.0.0.dmg
path: ./i2pbrowser-1.0.0.dmg path: ./i2pbrowser-1.0.0.dmg
- name: build pkg with Ant - name: build pkg with Ant
run: | run: |
@ -236,5 +236,5 @@ jobs:
- name: Upload Firefox Profile PKG Installer - name: Upload Firefox Profile PKG Installer
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: i2pbrowser-1.0.0-${{ github.sha }}.pkg name: i2pbrowser-1.0.0.pkg
path: ./i2pbrowser-1.0.0.pkg path: ./i2pbrowser-1.0.0.pkg

74
.github/workflows/release.yml vendored Normal file
View File

@ -0,0 +1,74 @@
name: Release
#on: [push]
on:
push:
# Sequence of patterns matched against refs/tags
tags:
- '*.*.*' # Release 1.2.3
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
with:
sparse-checkout: |
CHANGES.md
sparse-checkout-cone-mode: false
- name: sleep 15 minutes
run: |
echo "sleeping 15 minutes to wait for artifacts"
sleep 1m
echo "sleeping 14 minutes to wait for artifacts"
sleep 1m
echo "sleeping 13 minutes to wait for artifacts"
sleep 1m
echo "sleeping 12 minutes to wait for artifacts"
sleep 1m
echo "sleeping 11 minutes to wait for artifacts"
sleep 1m
echo "sleeping 10 minutes to wait for artifacts"
sleep 1m
echo "sleeping 9 minutes to wait for artifacts"
sleep 1m
echo "sleeping 8 minutes to wait for artifacts"
sleep 1m
echo "sleeping 7 minutes to wait for artifacts"
sleep 1m
echo "sleeping 6 minutes to wait for artifacts"
sleep 1m
echo "sleeping 5 minutes to wait for artifacts"
sleep 1m
echo "sleeping 4 minutes to wait for artifacts"
sleep 1m
echo "sleeping 3 minutes to wait for artifacts"
sleep 1m
echo "sleeping 2 minutes to wait for artifacts"
sleep 1m
echo "sleeping 1 minutes to wait for artifacts"
sleep 1m
- name: Download artifacts
id: download-artifact
uses: dawidd6/action-download-artifact@v3
with:
skip_unpack: true
workflow: ant.yml
if_no_artifact_found: fail
# remove .zip file extension
- run: for f in *.zip; do mv "$f" "${f%.zip}"; done
- run: echo "" | tee -a CHANGES.md
- run: echo "## Checksums" | tee -a CHANGES.md
- run: echo "" | tee -a CHANGES.md
- run: echo '```' | tee -a CHANGES.md
- run: sha256sum * | tee -a CHANGES.md
- run: echo '```' | tee -a CHANGES.md
- run: echo "" | tee -a CHANGES.md
- name: Upload artifacts
uses: ncipollo/release-action@v1
with:
artifacts: "*"
bodyFile: "CHANGES.md"

View File

@ -146,6 +146,23 @@
<a id="returnhome" href="/"> <a id="returnhome" href="/">
/ /
</a> </a>
<h2>
Thu, March 7
</h2>
<ul>
<li>
re-implement Plugin functions with Destop GUI API.
</li>
<li>
Fix several NPE&rsquo;s
</li>
<li>
Delete redundant code
</li>
<li>
CI/CD improvements, packaging improvements
</li>
</ul>
<h2> <h2>
Tue, January 17 Tue, January 17
</h2> </h2>

View File

@ -55,7 +55,7 @@ For platform specific instructions, see
```sh ```sh
mkdir ~/tmp-i2pfirefox && cd ~/tmp-i2pfirefox mkdir ~/tmp-i2pfirefox && cd ~/tmp-i2pfirefox
wget https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/1.2.0/i2pfirefox.zip wget https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/1.3.0/i2pfirefox.zip
unzip i2pfirefox.zip unzip i2pfirefox.zip
./i2pfirefox.cmd ./i2pfirefox.cmd

View File

@ -153,14 +153,14 @@
Firefox Firefox
</h2> </h2>
<pre><code class="language-md">i2p-in-private-browsing <pre><code class="language-md">i2p-in-private-browsing
1.50 1.48
https://addons.mozilla.org/firefox/downloads/file/4213716/i2p_in_private_browsing-1.50.xpi https://addons.mozilla.org/firefox/downloads/file/4123613/i2p_in_private_browsing-1.48.xpi
noscript noscript
11.4.29 11.4.29
https://addons.mozilla.org/firefox/downloads/file/4206186/noscript-11.4.29.xpi https://addons.mozilla.org/firefox/downloads/file/4206186/noscript-11.4.29.xpi
localcdn-fork-of-decentraleyes localcdn-fork-of-decentraleyes
2.6.60 2.6.64
https://addons.mozilla.org/firefox/downloads/file/4208268/localcdn_fork_of_decentraleyes-2.6.60.xpi https://addons.mozilla.org/firefox/downloads/file/4243456/localcdn_fork_of_decentraleyes-2.6.64.xpi
onion-in-container-browsing onion-in-container-browsing
0.82 0.82
https://addons.mozilla.org/firefox/downloads/file/3904685/onion_in_container_browsing-0.82.xpi https://addons.mozilla.org/firefox/downloads/file/3904685/onion_in_container_browsing-0.82.xpi
@ -168,8 +168,8 @@ javascript-restrictor
0.17 0.17
https://addons.mozilla.org/firefox/downloads/file/4190089/javascript_restrictor-0.17.xpi https://addons.mozilla.org/firefox/downloads/file/4190089/javascript_restrictor-0.17.xpi
ublock-origin ublock-origin
1.54.0 1.56.0
https://addons.mozilla.org/firefox/downloads/file/4198829/ublock_origin-1.54.0.xpi https://addons.mozilla.org/firefox/downloads/file/4237670/ublock_origin-1.56.0.xpi
</code></pre> </code></pre>
<h2> <h2>
Chromium Chromium
@ -181,10 +181,10 @@ NoScript
11.4.18 11.4.18
https://clients2.google.com/service/update2/crx https://clients2.google.com/service/update2/crx
LocalCDN LocalCDN
2.6.60 2.6.64
https://clients2.google.com/service/update2/crx https://clients2.google.com/service/update2/crx
uBlock Origin uBlock Origin
1.54.0 1.56.0
https://clients2.google.com/service/update2/crx https://clients2.google.com/service/update2/crx
__MSG_extensionName__ __MSG_extensionName__
0.17 0.17

View File

@ -328,7 +328,7 @@ Linux(because the top command will be run and the script will exit).\n\nBoth det
<target name="buildNum"> <target name="buildNum">
<buildnumber file="scripts/build.number" /> <buildnumber file="scripts/build.number" />
<property name="release.number" value="1.2.0" /> <property name="release.number" value="1.3.0" />
<exec executable="echo" osfamily="unix"> <exec executable="echo" osfamily="unix">
<arg value="${release.number}-${build.number}" /> <arg value="${release.number}-${build.number}" />
</exec> </exec>

View File

@ -3,4 +3,4 @@ export GITHUB_USER=eyedeekay
export GITHUB_REPO=i2p.plugins.firefox export GITHUB_REPO=i2p.plugins.firefox
export GITHUB_NAME="Updates extensions, plugin support temporarily removed(Stay on the old version)" export GITHUB_NAME="Updates extensions, plugin support temporarily removed(Stay on the old version)"
export GITHUB_DESCRIPTION=$(cat CHANGES.md VERSION.md) export GITHUB_DESCRIPTION=$(cat CHANGES.md VERSION.md)
export GITHUB_TAG=1.3.0 export GITHUB_TAG=1.4.0

View File

@ -166,7 +166,7 @@
</code> </code>
</h4> </h4>
<pre><code class="language-sh">mkdir ~/tmp-i2pbrowser &amp;&amp; cd ~/tmp-i2pbrowser <pre><code class="language-sh">mkdir ~/tmp-i2pbrowser &amp;&amp; cd ~/tmp-i2pbrowser
wget https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/1.2.0/i2pbrowser.tar.gz wget https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/1.3.0/i2pbrowser.tar.gz
tar xvzf i2pbrowser.tar.gz &amp;&amp; cd i2pbrowser tar xvzf i2pbrowser.tar.gz &amp;&amp; cd i2pbrowser
## THIS STEP IS OPTIONAL but it will force the system to use Tor Browser from within the i2pbrowser directory. ## THIS STEP IS OPTIONAL but it will force the system to use Tor Browser from within the i2pbrowser directory.
# This probably offers better security than vanilla Firefox. # This probably offers better security than vanilla Firefox.

View File

@ -7,7 +7,7 @@ Linux. These packages are for the **`amd64`** architecture.
```sh ```sh
mkdir ~/tmp-i2pbrowser && cd ~/tmp-i2pbrowser mkdir ~/tmp-i2pbrowser && cd ~/tmp-i2pbrowser
wget https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/1.2.0/i2pbrowser.tar.gz wget https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/1.3.0/i2pbrowser.tar.gz
tar xvzf i2pbrowser.tar.gz && cd i2pbrowser tar xvzf i2pbrowser.tar.gz && cd i2pbrowser
## THIS STEP IS OPTIONAL but it will force the system to use Tor Browser from within the i2pbrowser directory. ## THIS STEP IS OPTIONAL but it will force the system to use Tor Browser from within the i2pbrowser directory.
# This probably offers better security than vanilla Firefox. # This probably offers better security than vanilla Firefox.

View File

@ -159,7 +159,7 @@
file with any Java greater than Java 8. file with any Java greater than Java 8.
</p> </p>
<pre><code class="language-sh">mkdir ~/tmp-i2pfirefox &amp;&amp; cd ~/tmp-i2pfirefox <pre><code class="language-sh">mkdir ~/tmp-i2pfirefox &amp;&amp; cd ~/tmp-i2pfirefox
wget https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/1.2.0/i2pfirefox.zip wget https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/1.3.0/i2pfirefox.zip
unzip i2pfirefox.zip unzip i2pfirefox.zip
./cmd/i2pfirefox.cmd ./cmd/i2pfirefox.cmd

View File

@ -7,7 +7,7 @@ packages. You can use the `.jar` file with any Java greater than Java 8.
```sh ```sh
mkdir ~/tmp-i2pfirefox && cd ~/tmp-i2pfirefox mkdir ~/tmp-i2pfirefox && cd ~/tmp-i2pfirefox
wget https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/1.2.0/i2pfirefox.zip wget https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/1.3.0/i2pfirefox.zip
unzip i2pfirefox.zip unzip i2pfirefox.zip
./cmd/i2pfirefox.cmd ./cmd/i2pfirefox.cmd

Binary file not shown.

View File

@ -305,7 +305,7 @@
and a non-bundled Java and a non-bundled Java
</h4> </h4>
<pre><code class="language-sh">mkdir ~/tmp-i2pfirefox &amp;&amp; cd ~/tmp-i2pfirefox <pre><code class="language-sh">mkdir ~/tmp-i2pfirefox &amp;&amp; cd ~/tmp-i2pfirefox
wget https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/1.2.0/i2pfirefox.zip wget https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/1.3.0/i2pfirefox.zip
unzip i2pfirefox.zip unzip i2pfirefox.zip
./i2pfirefox.cmd ./i2pfirefox.cmd

View File

@ -12,4 +12,4 @@ READMELINE=`grep 'i2p.plugins.firefox/releases/download' docs/OSX.md | grep i2pf
sed -i "s|${READMELINE}|wget https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/${GITHUB_TAG}/i2pfirefox.zip|g" docs/OSX.md sed -i "s|${READMELINE}|wget https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/${GITHUB_TAG}/i2pfirefox.zip|g" docs/OSX.md
sed -i "s|${NUMLINE}| <property name=\"release.number\" value=\"$GITHUB_TAG\" />|g" build.xml sed -i "s|${NUMLINE}| <property name=\"release.number\" value=\"$GITHUB_TAG\" />|g" build.xml
edgar && git push --all edgar && git push --all
ant distclean versionMd jar plugin torrent freeZip jpackage debian fedora tarball ant distclean versionMd jar plugin torrent freeZip jpackage debian tarball

View File

@ -1,3 +1,3 @@
#Build Number for ANT. Do not edit! #Build Number for ANT. Do not edit!
#Thu Mar 07 11:01:16 EST 2024 #Thu Mar 07 15:18:16 EST 2024
build.number=699 build.number=709

View File

@ -42,7 +42,12 @@ public class I2PBrowserPlugin extends I2PBrowser implements ClientApp {
private static final String PROP_DTG_ENABLED = "desktopgui.enabled"; private static final String PROP_DTG_ENABLED = "desktopgui.enabled";
private final File pluginDir; private final File pluginDir;
private final File profileDir; private final File profileDir;
private MenuHandle lmh; private MenuHandle lmhs;
private MenuHandle lmhf;
/**
* @since 1.4.0
* @return
*/
public I2PBrowserPlugin() { public I2PBrowserPlugin() {
_context = new I2PAppContext(); _context = new I2PAppContext();
_mgr = null; _mgr = null;
@ -51,6 +56,10 @@ public class I2PBrowserPlugin extends I2PBrowser implements ClientApp {
pluginDir = new File(_context.getAppDir(), "plugins/i2pfirefox/"); pluginDir = new File(_context.getAppDir(), "plugins/i2pfirefox/");
profileDir = new File(pluginDir, "profile/"); profileDir = new File(pluginDir, "profile/");
} }
/**
* @since 1.4.0
* @return
*/
public I2PBrowserPlugin(I2PAppContext ctx, ClientAppManager mgr, public I2PBrowserPlugin(I2PAppContext ctx, ClientAppManager mgr,
String args[]) { String args[]) {
_context = ctx; _context = ctx;
@ -60,9 +69,26 @@ public class I2PBrowserPlugin extends I2PBrowser implements ClientApp {
pluginDir = new File(_context.getAppDir(), "plugins/i2pfirefox/"); pluginDir = new File(_context.getAppDir(), "plugins/i2pfirefox/");
profileDir = new File(pluginDir, "profile/"); profileDir = new File(pluginDir, "profile/");
} }
/**
* @since 1.4.0
* @return
*/
public String getDisplayName() { return "I2P Browser"; } public String getDisplayName() { return "I2P Browser"; }
/**
* @since 1.4.0
* @return
*/
public String getName() { return "I2P Browser"; } public String getName() { return "I2P Browser"; }
/**
* @since 1.4.0
* @return
*/
public ClientAppState getState() { return ClientAppState.STOPPED; } public ClientAppState getState() { return ClientAppState.STOPPED; }
/**
* @since 1.4.0
* @return
*/
public void shutdown(String[] args) { public void shutdown(String[] args) {
if (!isSystrayEnabled()) { if (!isSystrayEnabled()) {
_log.info("I2P Browser tray manager not supported"); _log.info("I2P Browser tray manager not supported");
@ -74,11 +100,16 @@ public class I2PBrowserPlugin extends I2PBrowser implements ClientApp {
} catch (InterruptedException ie) { } catch (InterruptedException ie) {
} }
if (dtg != null) { if (dtg != null) {
dtg.removeMenu(lmh); dtg.removeMenu(lmhs);
dtg.removeMenu(lmhf);
} }
} }
changeState(ClientAppState.STOPPED); changeState(ClientAppState.STOPPED);
} }
/**
* @since 1.4.0
* @return
*/
public void startup() { public void startup() {
changeState(ClientAppState.STOPPED); changeState(ClientAppState.STOPPED);
if (!isSystrayEnabled()) { if (!isSystrayEnabled()) {
@ -101,9 +132,14 @@ public class I2PBrowserPlugin extends I2PBrowser implements ClientApp {
} }
if (dtg != null) { if (dtg != null) {
_log.info("I2P Browser integrating with I2P tray manager"); _log.info("I2P Browser integrating with I2P tray manager");
lmh = dtg.addMenu("Launch I2P Browser", new Starter(dtg)); lmhs =
dtg.showMenu(lmh); dtg.addMenu("Launch I2P Browser (Safe Mode)", new Starter(dtg));
dtg.enableMenu(lmh); dtg.showMenu(lmhs);
dtg.enableMenu(lmhs);
lmhf = dtg.addMenu("Launch I2P Browser (Flexible Mode)",
new FlexStarter(dtg));
dtg.showMenu(lmhf);
dtg.enableMenu(lmhf);
} else { } else {
_log.info("I2P Browser tray manager not found"); _log.info("I2P Browser tray manager not found");
} }
@ -117,6 +153,10 @@ public class I2PBrowserPlugin extends I2PBrowser implements ClientApp {
} }
// Copied directly from I2PSnark-standalone // Copied directly from I2PSnark-standalone
/**
* @since 1.4.0
* @return
*/
private MenuService startTrayApp() { private MenuService startTrayApp() {
try { try {
if (isSystrayEnabled()) { if (isSystrayEnabled()) {
@ -136,6 +176,10 @@ public class I2PBrowserPlugin extends I2PBrowser implements ClientApp {
// whether to launchFirefox the tray app Our environment should basically // whether to launchFirefox the tray app Our environment should basically
// never be headless, that doesn't make any sense, but something tells me I // never be headless, that doesn't make any sense, but something tells me I
// should leave that check in. // should leave that check in.
/**
* @since 1.4.0
* @return
*/
private boolean isSystrayEnabled() { private boolean isSystrayEnabled() {
if (GraphicsEnvironment.isHeadless()) if (GraphicsEnvironment.isHeadless())
return false; return false;
@ -152,8 +196,10 @@ public class I2PBrowserPlugin extends I2PBrowser implements ClientApp {
} }
/** /**
* Callback when Start I2PBrowser is clicked in systray * Callback when Start I2PBrowser is clicked in systray
* @since 0.9.61 *
* @since 1.4.0
* @return
*/ */
public class Starter implements MenuCallback { public class Starter implements MenuCallback {
private final MenuService _ms; private final MenuService _ms;
@ -174,11 +220,21 @@ public class I2PBrowserPlugin extends I2PBrowser implements ClientApp {
} }
} }
public class StarterThread implements Runnable { /**
public void run() { * @since 1.4.0
* @return
*/
public class FlexStarter implements MenuCallback {
private final MenuService _ms;
public FlexStarter(MenuService ms) { _ms = ms; }
public void clicked(MenuHandle menu) {
// Thread t = new I2PAppThread(new StarterThread(),
//"I2PBrowser-Launcher start", true);
// t.start();
_log.info("I2P Browser starting up"); _log.info("I2P Browser starting up");
try { try {
I2PBrowser i2pBrowser = new I2PBrowser(profileDir.getAbsolutePath()); I2PBrowser i2pBrowser = new I2PBrowser(profileDir.getAbsolutePath());
i2pBrowser.usability = true;
String[] args = {"http://proxy.i2p"}; String[] args = {"http://proxy.i2p"};
i2pBrowser.launchFirefox(0, args); i2pBrowser.launchFirefox(0, args);
} catch (Exception e) { } catch (Exception e) {
@ -188,6 +244,10 @@ public class I2PBrowserPlugin extends I2PBrowser implements ClientApp {
} }
} }
/**
* @since 1.4.0
* @return
*/
private synchronized void changeState(ClientAppState state) { private synchronized void changeState(ClientAppState state) {
if (_mgr != null) if (_mgr != null)
_mgr.notify(this, state, null, null); _mgr.notify(this, state, null, null);