Build Status

I2P-Bote is a plugin for I2P that allows users to send and receive emails while preserving privacy. It does not need a mail server because emails are stored in a distributed hash table. They are automatically encrypted and digitally signed, which ensures no one but the intended recipient can read the email, and third parties cannot forge them.


Planned Features

Build process



The build system is based on Gradle. There are several methods for setting Gradle up:

Gradle will pull dependencies over the clearnet by default. To use Tor, create a gradle.properties file in i2p.android.base containing:


Building the I2P plugin

gradle :webapp:plugin

The plugin will be placed in i2p.i2p-bote/webapp/build/plugin.

Building the standalone WAR

gradle :webapp:war

The WAR will be placed in i2p.i2p-bote/webapp/build/libs.

Running the standalone WAR

Ensure you have an I2P router running locally with an I2CP server port open (on port 7654). Then run:

gradle :webapp:tomcatRunWar

This will build and run the WAR. (Jetty currently does not work.)

The data directory will be placed in i2p.i2p-bote/webapp/i2pbote; logs will be in i2p.i2p-bote/webapp/logs.

Android build process

Additional dependencies:


  1. Download the Android SDK. The simplest method is to download Android Studio.

  2. Create a local.properties file in i2p.i2p-bote/android containing:

  3. If you want to use a local copy of the I2P Android client library, install it in your local Maven repository with:

    cd path/to/i2p.android.base
    ./gradlew client:installArchives

Building from the command line

  1. Create a local.properties file in i2p.i2p-bote containing:

  2. gradle :android:assembleDebug

  3. The APK will be placed in i2p.i2p-bote/android/build/apk.

Building with Android Studio

  1. Import i2p.i2p-bote into Android Studio. (This creates the local.properties file automatically).

  2. Build and run the app (Shift+F10).

Signing release builds

  1. Create a signing.properties file in i2p.i2p-bote containing:

  2. gradle assembleRelease

More information

The links below only work within I2P, i.e., make sure you are running I2P and your browser is using the proxy at localhost:4444.

git repository: ./i2p.i2p-bote

Git Summary

 project  : i2p.i2p-bote
 repo age : vor 12 Jahren
 active   : 551 days
 commits  : 2147
 files    : 766
 authors  : 
0775c4dd 2019-05-16 Merge pull request #119 from i2p/release-0.4.8
9fd4f6cb 2019-05-16 Update versions and history for 0.4.8
edb086cc 2019-05-16 Update translations after string change
7d5b9a62 2019-05-16 Update translation strings after changes
86479e54 2019-05-16 Update I2P-Bote connection error page to match Bote Android
32ae4d0c 2019-05-16 Remove old redundant entries from plugin.config
c835216b 2019-05-16 Update bug reports URL
2b7e6985 2019-05-16 Translation updates
e989db74 2019-05-16 Upgrade to I2P 0.9.40
1c440159 2019-05-16 Upgrade Gradle wrapper to 5.4.1
d5383c05 2019-05-15 Merge pull request #118 from mikalv/master
eb9e88d5 2019-05-14 Release commit for 0.6.1
4f142e67 2019-05-10 Merge pull request #112 from eyedeekay/master
1df6f615 2019-05-09 Merge pull request #115 from i2p/bug-fixes
34801057 2019-04-25 update node list to include my node(idk) and mark kytv's node as inactive
6dc3c49a 2019-04-24 Set log level for i2p.bote.* in Android to DEBUG in BoteService
2e65d25b 2019-04-24 Test against OpenJDK 12
da2e65a4 2019-04-24 Fix NPE when reading the local destination key from the key file
9019f402 2019-04-22 Merge pull request #111 from i2p/i2p-0.9.39
4b1eb5f8 2019-04-22 Upgrade to I2P 0.9.39
18c05f57 2019-04-22 Copy ElGamalAESEngine from the router library
fafab53a 2019-04-21 Merge pull request #110 from i2p/build-system-updates-2
6f610b40 2019-04-21 Update Java 7 build support with changes from i2p.i2p
2451f150 2019-04-21 Upgrade Tomcat to 8.5.40
697f31fb 2019-04-20 Upgrade to supported Gretty plugin
2351462b 2019-04-20 Upgrade Android test runner support libraries
a4ac435a 2019-04-20 Upgrade Android multidex support library
ecf44374 2019-04-20 Upgrade general dependencies
c9178f65 2019-04-20 Upgrade Android Gradle build tools
20dee0c9 2019-04-20 Fix Android dependencies after build system updates
06c16f71 2019-04-19 Merge pull request #109 from mikalv/master
19d9bdf1 2019-03-23 Use same uid as package name
945dd02b 2019-03-23 A fix to make bote connect to the router on newer android api's.
3cee6680 2019-03-23 Translations update
86b6d9d1 2019-03-23 Translations update
9f83d07d 2019-02-16 Merge pull request #107 from i2p/build-system-updates
40a3ec9b 2019-02-16 Install newer gettext in Travis CI
86bec4d2 2019-02-16 Mark message classes from older msgfmt versions as generated output
e71b3c41 2019-02-16 Update Travis CI config to test against more JDKs
d5ef16da 2019-02-16 Fix building and testing with JDK 11
2a64794a 2019-02-16 Set up cross-compilation for JDK 9+
ebe99afe 2019-02-16 Upgrade Gradle wrapper to 5.2.1
9ed3867c 2018-04-09 Merge pull request #101 from i2p/release-0.4.7
ec526ccb 2018-04-09 Update versions and history for 0.4.7
cb2b9801 2018-04-09 Upgrade Tomcat to 8.5.23
dcf6d8d9 2018-04-08 Upgrade I2P dependencies
c0926d00 2018-04-08 Set default store hops to 2
29251700 2018-04-08 Merge pull request #100 from i2p/imap4-fixes
04543193 2018-04-08 Merge pull request #99 from i2p/build-script-fixes
f1facc97 2018-04-07 Don't bitshift uidValidity and modSeq out of range
e9dd6d08 2018-04-07 Use default IMAP namespace for users
4589b7ad 2018-04-07 Remove stray line in build script
e1c721dc 2018-04-07 Migrate from bootClasspath to bootstrapClasspath
5b095b25 2018-04-07 Merge pull request #97 from i2p/james-server-3.0.1
c4bf8771 2018-04-07 Upgrade Gradle wrapper to 4.6
1906bcbc 2018-04-07 Add support for older msgfmt versions to webapps build script
32d634e3 2017-12-07 Migrate to James Server 3.0.1
28bed3c3 2018-04-07 Initialise APIs during construction instead of after tunnel building
93efffae 2017-12-07 Revert more webapp dependencies to use the "compile" configuration
5a9220c4 2017-12-04 Revert several webapp dependencies to use the "compile" configuration
3b0ad4ee 2017-12-04 Define API dependencies of core library
44b0fdf7 2017-12-04 Add Travis CI build script
b9bafe2f 2017-12-04 Upgrade I2P dependencies
11fd617f 2017-12-04 Upgrade BouncyCastle to 1.58
5172b704 2017-12-04 Upgrade Android dependencies
52a5c706 2017-12-04 Upgrade to Gradle 4.1 and Android Gradle Tools 3.0.1
c082a50c 2017-12-04 Use a common I2P dependency version for core and android
766d5ef0 2017-12-04 Fix compilation without bootstrap classpath set
96784b88 2017-08-20 Use new plugins DSL to apply Gretty plugin
f2c152ba 2017-05-07 Tidy up README
d7157423 2017-05-07 Add build tasks and instructions for standalone WAR
95d71804 2017-05-07 Add missing runtime dependency to fat WAR
7363b658 2017-05-07 Build separate thin WAR for use in I2P plugin
287ff459 2017-05-07 Merge Android README into main README, add plugin build instructions
9b275e59 2017-05-07 Add .gitignore
b8b9171c 2017-05-07 Fetch James Server archive during execution phase instead of configuration phase
94301252 2017-05-07 Fetch James Server archive over HTTPS
fbf5b43b 2017-05-07 Enable building the plugin without having the Android SDK
6566ad15 2017-05-03 I2P-Bote 0.4.6
169d2061 2017-05-03 Leave Tomcat JARs out of plugin
3a129836 2017-04-29 Only set i2cp.domainSocket if using I2P Android
02493087 2017-04-08 Add Gradle wrapper
2d920229 2017-04-02 Changes to support Jetty 9
86867416 2017-04-02 Fix project version configuration
f9a40374 2017-04-02 Upgrade I2P dependencies
f741a7f9 2017-04-02 Move old build.xml out of the way
c0baa727 2017-04-02 Update history
720a42ed 2017-04-02 Drop unused libs
155e0bfd 2017-04-02 Remove XPI2P support from the I2P plugin Gradle plugin
dbeaf665 2017-03-27 Generate plugin update files identical to installers (for now)
215120fe 2017-03-27 Upgrade test dependencies
678cf1a5 2017-03-27 Move I2PPlugin application to start of webapp build file
fb1a7dde 2017-03-27 Static functions
e056828e 2017-03-27 More sensible name for plugin key directory
ed37609e 2017-03-26 Update translations
45ed12fe 2017-03-26 Update webapp messages after changes
7cdb3cac 2017-03-26 Update translations
f3866de6 2017-03-26 Update messages path in Transifex config
0234afec 2017-03-26 Migrate message compilation and bundling to Gradle
13798b3b 2017-03-13 Migrate poupdate command to Gradle
beadf291 2017-03-13 Move translation files into webapp
50c23165 2017-03-13 Move translation helpers from core to webapp
2987ec69 2017-03-13 Un-translate theme names
2de7962a 2017-03-13 Extract peer stats translations from core, expose reachability
37ebdf5c 2017-03-12 Connect plugin signing inputs to plugin.zip output
ea9fbb5b 2017-03-12 Remove remaining usages of Util._t() from GeneralHelper
bb99f119 2017-03-12 Bugfix
a70bdee4 2017-03-12 Move invalid address error translation from core to webapp
9fb28d67 2017-03-12 Upgrade support libraries to 25.2.0
6f0cff9c 2017-03-12 Suppress Support version lint
259106a3 2017-03-12 Upgrade to newer maintained version of ViewPagerIndicator
76dfa45f 2017-03-12 Move getHumanReadableSize to JSPHelper
4f506027 2017-03-12 Escape apostrophes in Android strings
32ca9e19 2017-02-19 Move "bad vanity chars" error message out of core
97b7c6a4 2017-02-19 Work around SCrypt pack200 issue
26208dde 2017-02-19 Move BanList strings from core to webapp
fb9aae29 2017-02-19 Move send error translations from core to webapp
e0edf870 2017-02-19 Bugfix
a49360a2 2017-02-19 Subclass PasswordException for specific causes
2b47c1f6 2017-02-19 Move StatusListener strings from core to android
9d1dcabd 2017-02-18 Don't translate crypto names
0b7c9882 2017-02-13 Update translations
597205bd 2017-02-12 Use static string
6b0f6637 2017-02-12 Bugfix: use system default locale
3ab3d2fa 2017-02-12 Update list of Android UI languages
af6abb5b 2017-02-12 New Android translations
1c2e7d88 2017-02-12 Update Android translations
ebde6917 2017-02-12 Merge Transifex config files
1184bcab 2017-02-12 Enable encrypted files to be selected for importing
de9c8f90 2017-02-12 Android address book import/export
ee783dc3 2017-02-12 Extract Android data import/export logic into parent classes
1536ffc6 2017-02-12 Add address book export/import test
23760ee3 2017-02-12 Make the address book exportable
77702141 2017-02-12 Extract import/export file logic from identities into a parent class
9865927b 2017-02-12 Extract AddressBook <-> Properties conversion into separate methods
2f2c67d7 2017-02-12 app:theme -> android:theme (and layout reformatting)
102c62cf 2017-02-12 Remove checks for API >= 10, since minSdkVersion = 10
45242e90 2017-02-12 Fix NPE when adding attachment (ticket #1730)
b9f175f4 2017-02-12 Replace anonymous DialogFragment subclasses with full subclasses
1f2aa72f 2017-02-12 Upgrade Android dependencies
d3b2d338 2017-02-12 Compile against SDK 25
fd492ec0 2017-02-11 Upgrade Android test harness
7a0d7b3a 2017-02-11 Migrate to support library PreferenceFragmentCompat
b9da2b27 2017-02-11 Enable multidex
1b00976f 2017-02-11 Compile against SDK 23
a8c5ae85 2017-02-10 Upgrade Android Gradle build tools
4a5cb919 2017-01-21 Exclude jstl.jar from I2P plugin
0e7e7ed0 2017-01-21 Update Gradle build scripts after prop
d1a2b92b 2017-01-20 propagate from branch 'i2p.i2p-bote' (head c1349d682349dd701b9f0b18624293e7acca9ee3)             to branch 'i2p.i2p-bote.gradle' (head ff5f091c01e0dee5a95632846781536d11ff6324)
31cc63bf 2017-01-20 0.4.5
10f951a0 2017-01-20 New translations
a1c5af22 2017-01-20 Updated translations
2e53c3d5 2017-01-20 Update history
05c91574 2017-01-20 Add a Content Security Policy
f1d790c5 2017-01-20 Escape title in header
75ed1908 2017-01-20 Escape attachment filenames when showing an email
fce00ccc 2017-01-20 Add CSRF checking to GET requests on setPassword.jsp
cd1f3e4b 2017-01-15 Catch IAEs when sorting a Folder (ticket #1931)
23a9a0c0 2017-01-08 Add CSRF checking to GET requests on submitIdentity.jsp
8cfff96e 2017-01-08 Pull in bundle-messages.sh improvements
61fe334d 2016-11-28 0.4.4
4985e073 2016-11-28 Enforce same-origin policy for POST
c1b40076 2016-11-28 Update ignores
a2c98d83 2016-11-28 Update translations
3234f05c 2016-11-27 Update translation strings
dc7eb026 2016-11-27 Updated translations
1e0f5611 2016-11-27 Add missing POST check
8bd02eba 2016-11-27 Show a more helpful screen for CSRF errors
200756a1 2016-11-27 Hook CSRF logging into I2P logs
57d12ca3 2016-11-27 Add version to CSS URLs so browsers refetch after upgrades
90818cf1 2016-11-27 Distinguish error messages from info messages in Material theme
3052824d 2016-11-27 Tweak error message to avoid XSS filter (ticket #1815)
b4b52dff 2016-11-27 Move HungryHobo to "past developers" :(
de720d01 2016-11-27 Added CSRF guards to all forms
694de2e4 2016-11-24 Updated translation strings and translations
435ca2d1 2016-11-24 Add links to source code in FAQ
849fbc26 2016-11-24 Added new translations
37ce1387 2016-11-24 Update history and about
c716b935 2016-11-21 Upgrade JavaMail
e2a9f0b3 2016-11-21 Tweak I2P plugin DSL to reflect plugin layout
1662da85 2016-11-20 Add javax.servlet and javax.servlet.jsp to plugin exclusions
4a2b3a80 2016-11-20 Get the Android app building
ac458948 2016-11-20 Missing file from previous commit
cba49fb0 2016-11-20 Move common local libs into separate subproject
690f22d6 2016-10-25 Set up android subproject
dbd99ab5 2016-10-24 Remove duplicate files
61126ef6 2016-10-24 propagate from branch 'i2p.i2p-bote.android' (head 17ebdec164206fcce5445bd62feb5524a4f4c53a)             to branch 'i2p.i2p-bote.gradle' (head d3b12e514a4f1f218ec8b5dda1f39835a748fc64)
cb5165bd 2016-10-24 Implement I2P plugin build system as a custom Gradle Task
fd56283a 2016-10-24 Stop filter clobbering image files
625c6df6 2016-08-22 Precompile JSPs
0db69bbe 2016-08-22 Exclude test suite runner from Gradle tests to remove duplicates
f3843587 2016-08-22 Add Gradle build scripts
9a51d7c0 2016-08-22 Split source into core (used for Android) and webapp (used for plugin)
89c7648a 2016-08-20 Dynamically load router classes to remove dependency on router.jar
5936667c 2016-08-20 Refactor SeedlessParameters
2c2a7b70 2016-05-29 Use new I2CP domain socket API
09beea30 2016-05-29 Upgrade Android Gradle plugin
7dd85757 2016-05-29 More upstream changes
caf03e2d 2016-05-29 Fixes due to i2p.i2p-bote changes
b73a52f4 2016-05-29 Use new I2CP domain socket API
4b2c54a2 2016-05-08 0.4.3
7e9bbe61 2016-01-28 Updated ignores
f5aed671 2016-01-28 New FAQ translations
4f649b32 2016-01-28 Updated translations
c6d523f9 2016-01-25 Updated history
ae0c0df6 2016-01-25 Temporarily bundle older working Mime4J
9c65660a 2016-01-24 Enable I2CP tunnel options to be configured in i2pbote.config (ticket #1708)
ed1419cd 2016-01-24 Remove unused import
2e0568fa 2016-01-24 Only bind IMAP to the configured address and port (ticket #1680)
701266ca 2016-01-24 Add commons-logging.jar from James to updater and installer
07b920d1 2016-01-24 Bump required I2P version to 0.9.24 and re-enable IMAP
e0366db7 2016-01-24 JavaDoc fix
c5e62dfc 2016-01-23 Fix ECUtils method
ab099ff3 2015-12-11 Click on truncated identity key to see details.
c4588e67 2015-11-19 0.4.2
d1ef0161 2015-11-19 Updated translation strings
ebacda47 2015-11-19 Remove SU3 files with "ant clean"
70cb8a77 2015-11-18 Make contact's text field editable, display it in address book (#1667)
413ca232 2015-11-17 Updated translations
2e7ff079 2015-11-15 Updated translations
3ce9e87c 2015-11-15 AIOOBE fixes
11d679f5 2015-11-15 NPE fix
0835cfa7 2015-11-15 Remove unused imports
035a4b60 2015-11-15 CME fix
5b5aaae5 2015-11-01 Fix Date format string for Java 6 and Android (ticket #1644)
1f6a4075 2015-11-01 Updated translations
428aabe9 2015-11-01 Added kay to contributors list
134c6ffb 2015-11-01 Removed HH's Bote address from FAQ (ticket #1642)
e35616ca 2015-11-01 Updated translations
767611f2 2015-11-01 Fix migrator
92ae32cb 2015-11-01 Use Notifications API to notify user of new emails
732a8685 2015-10-18 Theme fixes, include NotoSans font
61ab5290 2015-10-17 Added reminder
ca88452f 2015-10-17 Copy over code from I2P's CryptoCheck so I don't have to bump min-i2p-version
cb23a492 2015-10-17 Use I2P's test for unlimited crypto
2cf86f5f 2015-10-17 Linkify my name on about page
43196e5f 2015-10-17 Tweaked background color
187cfe77 2015-10-17 Material theme improvements
172bd92a 2015-10-17 Updated translations
245af96a 2015-10-17 Added notification and guide about unlimited strength crypto policy files
5cedc505 2015-10-17 Implement snackbar
0d138b0b 2015-10-06 Material design: tweaked sidebar dimensions and style
0e6de14a 2015-09-28 Fixed JavaDoc generation
1e9a8e0e 2015-09-28 merge of '59904abe9efefe8ad0524f7992af7d78b0a02647'      and '62ca447c6d28866636b9699e1d361af029b8e2fa'
d3cb0ab3 2015-09-28 0.4.1
30beafd3 2015-09-22 Fixed #1661 and #1663. Fix supplied by kay@mail.i2p.
692f8334 2015-09-22 Applied patch fixing a NPE when network and dht aren't present. Patch supplied by kay@mail.i2p in #1662.
40afba40 2015-09-22 Applied replacing _() with _t() from kay@mail.i2p in #1665.
e5fa4706 2015-09-12 Fix loading of user guide and FAQ translations (#1641)
ecdd2ee4 2015-09-12 Added new user guide translation
784a716f 2015-09-12 Updated translations
afdde691 2015-09-02 CME fix
65d9439e 2015-08-23 Add owner to new ticket URL
8d19c4c7 2015-08-21 Fixed CME
8731a728 2015-08-21 0.4
9e1b4213 2015-08-21 Remove build numbers from version
17b4d035 2015-08-20 Update last checked time for manual checks too
d967d50c 2015-08-20 Fix email checking
42770cf0 2015-08-20 Updated ignores
c910e17f 2015-08-20 Fix bug with sending anon emails
d4082421 2015-08-20 Test OutboxProcessor.sendEmail(), proves existence of bug with anon emails
c52429f3 2015-08-20 Add Mockito to unittest deps
aac9df44 2015-08-15 0.3
da40d971 2015-08-15 Temporarily disable IMAP due to class loader issues
e661e430 2015-08-15 Updated ignores
18005cdf 2015-08-15 Updated translations
1a7e8daf 2015-08-15 Fix app icon so it is bundled
771153c4 2015-08-15 Add app icon
f1e750ce 2015-08-15 Change author to me (for feedback)
52e30278 2015-08-15 Bump min I2P version to 0.9.18 (first to include my SU3 plugin cert)
4f1b8151 2015-08-15 Add SU3 update URL
0c4d1dc5 2015-08-15 Changed plugin signer and update URL
c1934b45 2015-08-15 Added missing image
0edd014c 2015-08-15 Deduplicate dependency verification
27e02ce5 2015-08-14 Fix connection checking
9aa14a70 2015-08-14 Only show "Check email" button for identities when connected
219de6e4 2015-08-14 Adjust identities column widths on old themes
d07f790d 2015-08-13 Fix NPE in identity creation by properly saving identity config
8abfc834 2015-08-13 Deduplication
3cbcfaa3 2015-08-13 Add config option for including local deps in update
63b63a9f 2015-08-13 Bugfix
29f5db76 2015-08-13 Extract common packing macro, delete .jar files from plugin (JIC)
90545b70 2015-08-13 Add config option for including remote deps in update
37b64f25 2015-08-12 Fix hash verification
5f7bb2d7 2015-08-08 Verify hashes of remote dependencies
69fc637b 2015-08-08 Refactor remote dependency checking
cb0b0822 2015-08-08 Upgrade to JavaMail 1.5.4, make it a remote dependency
f83f7cd0 2015-08-05 Updated translations
bab92e08 2015-08-05 Upgrade BouncyCastle to 1.52
d1e7eeb7 2015-08-05 Updated translation strings
a5409b0e 2015-08-05 Added new translations
742c6971 2015-08-05 Updated translations
42c6269c 2015-08-05 Improve recipient handling in email composition
03012e53 2015-08-04 Get IMAP STARTTLS working
97825a3d 2015-08-04 Upgrade to 20150627 snapshot of Apache James
dc5d0667 2015-08-03 Get tests to pass
c2bc331b 2015-08-03 Add Email Date header tests
8f29c7d6 2015-08-03 Force loading of BouncyCastly so tests pass
6b530a36 2015-07-31 Add direct link to creating tickets for I2P-Bote
3f60643c 2015-07-23 Updated history
3539b5a1 2015-07-23 Don't move metadata file if we couldn't move email file (#1196)
e37f7050 2015-07-23 Don't assume that email metadata file exists (#1196)
41964867 2015-07-22 Fix NPE (#937)
6dbecc0f 2015-07-22 Unused import
d209c9f9 2015-07-22 Delete malformed packets from disk (#1287)
6e528dae 2015-07-21 Fix CME caused by no synchronization on kBuckets (#1586)
90f9de48 2015-07-21 Updated guide translations
f7b3499e 2015-07-21 Updated translations
7ee9db31 2015-06-21 Updated CHANGELOG
9b01bef9 2015-06-21 0.6
b7969640 2015-06-21 Fixed default warning visibility
65575d31 2015-06-21 Updated translations
e949864c 2015-06-21 Test SetupActivity UI
07031128 2015-06-20 Test IntroActivity UI
6a1f96dd 2015-06-20 Static imports
ebcebb9f 2015-06-20 Use Espresso-Intents to check started Activities
46051582 2015-06-20 Start testing EmailListActivity UI
0b1c9927 2015-06-20 Clean up inbox after tests
9f6e37f2 2015-06-20 Fix Espresso dependencies
088ff3c8 2015-06-20 Upgraded Espresso
626a25b9 2015-06-19 Upgraded libraries
3269866b 2015-06-05 Update identities loaders on changes
5901565d 2015-06-05 Listen to identity updates too
f98990ad 2015-06-05 Added IdentitiesListener
74cd4d71 2015-06-05 Make first identity default by default
d3d92c0d 2015-06-05 Use selected identity as default for new emails
449f2d17 2015-06-05 Require password to access privacy and app protection settings
80e2bb25 2015-06-05 Updated CHANGELOG
51901525 2015-06-05 Fix lock size in drawer
6ff1e4ae 2015-06-05 Make identicon size in drawer a multiple of nine
6f1d6e99 2015-06-05 propagate from branch 'i2p.i2p-bote.android.dev' (head 2a826ee95560ec9a0e9fc61f1bc8534229a9cda9)             to branch 'i2p.i2p-bote.android' (head be56b90da9cf777c5291d91ff6fb18294e6582d0)
47a24f85 2015-06-05 Better app protection icon
4cb93b8c 2015-06-05 Upgrade to Iconics 1.0.2 and MaterialDrawer 3.0.6 to fix bugs
4e25e59d 2015-06-04 Upgraded support libraries
f858f6a9 2015-06-04 New help translations for in
4efdfcc6 2015-06-04 Updated translations
904993ea 2015-06-04 Upgrade to client library v0.7
c6c6a26a 2015-06-04 Drop now-unused drawables
6dc21613 2015-06-04 Move FABs to Iconics
79ebb201 2015-06-04 Fix defStyle handling
87908149 2015-06-04 Move menus to Iconics
bef97cb2 2015-06-03 Use Iconics for intro swipe icon
f8a6640b 2015-06-03 Add padding to settings icons, tweak size
330931a0 2015-06-03 Move Preferences to Iconics
c104dcd3 2015-06-03 Added padding to IconicsDrawables measured from original drawables
cfc751aa 2015-06-02 Add explicit dependency on Android-Iconics
dc3f1520 2015-06-02 Use Android-Iconics for most icons
d0495cfc 2015-06-02 Add fake "locked" profile to unlock app from drawer
f007a044 2015-06-02 Display correct new email count for per-identity views
ef2edee9 2015-06-01 Tweak how identities are displayed in the drawer
bebf8404 2015-06-01 Add "All mail" view
3923d70d 2015-06-01 Use resource IDs directly for drawer folder icons
fc9c4a04 2015-06-01 Remove unnecessary cast
bb9dc8a9 2015-06-01 Enable users to filter folders by identity
e66f3f73 2015-06-01 Move DrawerFolderLoader callbacks into an inner class
0945caf8 2015-06-01 Migrate to com.mikepenz:materialdrawer
13e6b530 2015-06-01 Moved to minSdk 10 and support libs 22.2.0 to use com.mikepenz:materialdrawer
e4e6fc5e 2015-05-29 Updated translations
ef223e09 2015-05-29 Use FAB for new identity action
4016b2d0 2015-05-29 Updated translations after string push
6fbf1458 2015-05-29 Updated CHANGELOG
10abb147 2015-05-29 Icons for preference categories
79151778 2015-05-29 Rename general settings category to network
0811ad12 2015-05-29 Implement screen security, combine with password in app protection category
72693a3d 2015-05-29 Split out privacy settings into separate category
ad40a22b 2015-05-29 Extract I2P router config to advanced settings
8547ae40 2015-05-29 Lint
00110bfa 2015-05-29 Configurable language, part 3
4af2b881 2015-05-29 Configurable language, part 2
335b3f4e 2015-05-29 Configurable language, part 1
28c4b20b 2015-05-29 Nav drawer style fixes
6d6d2cdd 2015-05-29 AppCompat v22.1.*: drawable tinting
43bcda77 2015-05-29 Correct nav drawer styling
3fd0a2b9 2015-05-29 Lint
9235be5d 2015-05-29 Don't add settings twice
7864d628 2015-05-29 Pull reseed certs into Bote so the internal router can reseed
8d097f07 2015-05-28 Updated CHANGELOG
0da3adda 2015-05-28 AppCompat v22.1.*: Material design dialogs
a1de624d 2015-05-28 Deprecations
4199c3de 2015-05-28 ActionBarActivity -> AppCompatActivity
229e495a 2015-05-28 Dropped old layout
eb519d62 2015-05-28 Rebuilt libscrypt.so, included armeabi-v7a
ba745bae 2015-05-28 Layout tweak
51416659 2015-05-28 Bugfix
e54027e5 2015-05-28 Updated translations
972d64db 2015-05-28 Missing file from previous commit
2f2e44c4 2015-05-28 Added Transifex config, renamed id -> in
91c35901 2015-05-28 Migrate settings to support-v4-preferencefragment, split out identities
474a47d0 2015-05-28 Re-enable drawer toggle (accidentally removed during Toolbar migration)
59f26a35 2015-05-27 Upgraded build tools, bumped target SDK
ff838bbc 2015-05-27 Upgraded support libraries
60bc7021 2015-05-27 Prevent NPE
8b98f38d 2015-05-27 Updated TODO with Silent Store checklist (useful reference)
11bd90a1 2015-05-27 Fully clean I2P source
d290665a 2015-03-20 New user guide translation for es
e2e2233b 2015-03-20 User guide fixes (thx strel!)
29190552 2015-03-20 Updated translations
371ae89b 2015-03-19 Preparation for moving StrongTls to i2p.jar: - Removed last of pre-existing code - Moved to net.i2p.util package - Relicensed to public domain - Improved interface
a34da627 2015-03-19 Overhauled StrongTls with 2015-era protocols and ciphers
8ff2c84c 2015-03-16 Discovered that one of the old bootstrapping nodes is kytv, now resurrected
96140a49 2015-03-16 New bootstrap peers (thanks str4d and The_Tin_Hat!)
b3f9ea8a 2015-03-12 Updated TODO
034660d4 2015-03-10 Updated translations
bbda6131 2015-03-10 Formatting changes by Transifex, and some string fixes
297a26cc 2015-03-10 Added user guide and FAQ to Transifex config
c9686ada 2015-03-10 More formatting fixes for Transifex
82d31e48 2015-03-10 Formatting fixes for Transifex
63c17045 2015-03-10 Multi-line Spanish translation
0566e42f 2015-03-10 New translation of FAQ into Spanish (thanks trolly!)
26333ee6 2015-03-02 Upgrade to client library 0.5.1 which includes LogWriter
286ce097 2015-03-02 Necessary LogWriter changes after update to 0.9.18
54379999 2015-03-02 Upgrade Material-ish Progress library to 1.4
3315d6e6 2015-03-02 Updated I2P client library to 0.5
2514e276 2015-03-02 Update SKD build tools and dependencies, enable Java 1.7 features
6b246fb0 2015-02-24 Updated README
c8d6703c 2015-02-24 Update TODO
a21f67d4 2015-02-15 Fixes
d7ae6d51 2015-02-15 FAQ navigation
271eb004 2015-02-15 Android themed wait.gif
c65e3f8f 2015-02-15 UI option for global identity check
dd7f4055 2015-02-15 Prevent potential NPE
9b083624 2015-02-15 Bugfix
0585f211 2015-02-15 Implement checking individual identities
4df989d6 2015-02-14 Don't disable default selection for new identities when only one exists
a76789cf 2015-02-14 Button layout fix
ae55336e 2015-02-14 Updated translations
437c5ddb 2015-02-14 Backend implementation of per-identity relay settings, global check exclusion
63a574f5 2015-02-13 Show which nav item is currently selected
42c3e0d3 2015-02-13 Match nav drawer list item highlight to Material design spec
5d89032b 2015-02-13 Corrections from Material design spec
fc738142 2015-02-07 Moved getBooleanParameter() and getIntParameter() to Util
4e9b0e93 2015-02-06 Extract String constants
8912cfcf 2015-02-05 Include HTML files in WAR
73e22a3d 2015-02-05 Reference ticket numbers in TODO
dfa1dfbd 2015-02-04 Settings headings
eff95792 2015-02-04 Updated translations
bf537783 2015-02-04 String fix
74bde7aa 2015-02-04 HTML5 cleanups
848ec8cb 2015-02-04 Added not-yet-implemented features to TODO
a72bd3fb 2015-02-03 FAQ formatting
87ce7646 2015-02-03 FAQ pagetitle
e2c00350 2015-02-03 Reformatted FAQ
4f9d7177 2015-02-03 List tweaks
f638d8e4 2015-02-03 Limit user guide navigation width
2377acf1 2015-02-03 Reorganized user guide sections
f11af022 2015-02-03 User guide navigation
9ef5a156 2015-02-03 Removed unnecessary installation details, renumbered headings
02bb52dc 2015-02-03 Title fixes
bd9a0bd6 2015-02-03 Consolidated credits
fe7516c2 2015-02-03 Reworked user guide intro
97c567a1 2015-02-03 User guide fixes
62308d05 2015-02-03 Translation string fixes
f4ebc330 2015-02-03 Translation fixes
93cabe4f 2015-02-03 Updated translation strings
52228619 2015-02-03 Proper theme names
9c09c739 2015-02-03 Fixed bundle-messages.sh
8b3770f3 2015-02-03 New translations
cd5d8b0a 2015-02-03 Updated translations
596aa39d 2015-02-03 Updated Transifex config
212ca673 2015-02-03 Updated TODO
98335902 2015-02-03 Move HTML files to subdir in preparation for Transifex
77242920 2015-02-03 Updated French translation of user guide
19a8c09a 2015-02-03 User guide tweaks
2634398e 2015-02-02 Renamed user guide HTML
2fac3e9e 2015-02-02 Tidied up user guide HTML
182bafb5 2015-02-02 Enable HTML files to be themed
d7c673e4 2015-02-02 Charts on network status page
33273675 2015-02-01 Mark new relay peers instead of showing 0% reachability
7b405764 2015-01-30 NPE fix (ticket #1367)
750305fe 2015-01-30 Attachments icon
269f0d07 2015-01-29 Improved info and error message displaying
7aae76ef 2015-01-29 Fixes after XSSFilter
302414a5 2015-01-29 Enable different page title from browser title, more sidenav icons
22732d33 2015-01-28 Missing bcprov changes
b113dd3e 2015-01-28 Font changes
ca0ac056 2015-01-28 Import identities
54ac8425 2015-01-28 Export identities
67e36d83 2015-01-28 Escape XML
48c22945 2015-01-27 HTML5 <time>
e3e694d0 2015-01-27 Enable XSSFilter on all inputs except passwords
06fc60af 2015-01-27 Material tweak for new emails
9cd8bddf 2015-01-27 Bugfix
6c4ab4b1 2015-01-27 NPE fix when attempting to change identity name to blank
31553080 2015-01-26 New theme based on the Material design of the Bote Android app
538a5b2e 2015-01-26 Change addressbook.gif to addressbook.png
dd126df6 2015-01-26 Inputs to buttons
a1edb317 2015-01-26 Remove onclick from header, the inbox is easily accessed from the side nav
edc51ace 2015-01-26 An article around email content
0394b591 2015-01-26 Extra page title for use in new theme
9a5a1613 2015-01-25 CSS tweak
ec3acae5 2015-01-25 Replaced linebreak with margin
7fea6697 2015-01-25 Remove "Public Address Directory" from side nav until it has a link
b7abb03b 2015-01-25 HTML5, preparations for new theme
958a072d 2015-01-24 HTML5 doctype and charset
b9d778f8 2015-01-13 Spelling
2ccbe875 2015-01-13 Updated CHANGELOG
50b36e49 2015-01-13 0.5
4c8a33ec 2015-01-13 Fixed occasional crash
25533c42 2015-01-13 Formatting
1b8340b2 2015-01-13 Fix CAB inserting above Toolbar
19329dad 2015-01-13 Loading and empty views for address book
227e6e97 2015-01-12 Checksum and license updates
0e580b8e 2015-01-12 Moved widgets to i2p.bote.android.widget
1a7302bb 2015-01-12 Loading and empty views for emails list
004987db 2015-01-12 Handle attachments with incorrect MIME types
e7042dc5 2015-01-12 Detect file MIME types
bc6df473 2015-01-12 Ask for plugin SU3 keystore password
04ac90d4 2015-01-11 Prevent NPE on Android if the state gets weird (it has happened)
2c6c43c3 2015-01-11 Updated translations
7e8421c6 2015-01-11 Added ignores
d8d1caaf 2015-01-11 Updated translations
6b8e41ba 2015-01-09 NPE fix
ef51264d 2015-01-09 Missing file
af21384f 2015-01-09 Updated translations
c8ed705f 2015-01-08 Warn about large attachment sizes
9bde6402 2015-01-08 Ensure ContactsCompletionView text is visible on all devices
7873cb40 2015-01-08 New translations for help pages
b6e1242c 2015-01-08 Updated translations
b947f9ba 2015-01-08 Use ripple effect on API 21+
ae8f87c7 2015-01-08 Protect ECUtils class methods
dab92a22 2015-01-08 Help page for identities
72fed007 2015-01-08 Reworked about page for translations
fb58e63f 2015-01-08 Updated changelog
460e8d92 2015-01-08 Updated CHANGELOG
7130eae4 2015-01-07 Help and About pages
fc893264 2015-01-07 Re-add list dividers
57cf36be 2015-01-07 Missing file
4e4c57c3 2015-01-07 Cache whether we have sent an email or not
45e4cba7 2015-01-07 Unused import
2619d88c 2015-01-07 Migrate AuthenticatedListFragments to RecyclerView
7acbb228 2015-01-07 Missing file
ed600b13 2015-01-06 Fixed bug
03926923 2015-01-06 Color comment
1dabe026 2015-01-06 Fixed selection state bug
0d154174 2015-01-06 Nav drawer folder selection styling
0763d2ea 2015-01-05 Migrated folder list to RecyclerView
55025614 2015-01-05 Pull layout into XML
38fc0ade 2015-01-05 View holder pattern
e9d55fb8 2015-01-05 Cleanups
ff1984e3 2015-01-05 Updated translations
16f56f59 2015-01-05 Updated CHANGELOG
e4350f1d 2015-01-05 Bugfix: on legacy devices, Views that are GONE are still clickable
8bb9ceac 2015-01-05 Put identities inside category on legacy devices
1071116b 2015-01-05 Dynamic Preferences for legacy devices
dc844ab1 2015-01-05 Implement legacy identity headers in Setting
7d3cd077 2015-01-04 Use SpongyCastle for crypto
ced8dee1 2015-01-04 No need to stub out UpdateChecker any more
3591d25f 2015-01-04 Migrate i2p.bote.crypto AES and EC to JCA; upgrade to BouncyCastle 1.51
1f1b328f 2015-01-04 Close InputStream in Util.getPartSize()
08748f0c 2015-01-02 Updated translations
15d8bb21 2015-01-02 Updated TODO
b6cdf3aa 2015-01-02 FloatingActionBar 1.5.1
ee9e33c9 2015-01-02 Separate multiple attachments
4bb1cc94 2015-01-02 Removed mistaken string
bc9d0676 2015-01-02 Updated translations
2fb6fdab 2015-01-02 Replace copy image with button, extract strings
4b0e78a3 2015-01-02 New delivered icon, tweaked email listitem layout
93dc161e 2015-01-02 Updated CHANGELOG
a012a0ca 2015-01-02 Wording
b003143a 2015-01-02 Layout tweak
fbcbdd8f 2015-01-01 Updated translations
d041bee1 2015-01-01 Save attachments to Downloads folder
d40dce7d 2015-01-01 Moved copyStream() to BoteHelper
01a50f72 2015-01-01 Missing file from previous commit
cfd62acc 2015-01-01 Stubbed out attachment saving
1d2f728b 2015-01-01 Fixed AttachmentProvider.getType()
c1f2c8f6 2015-01-01 AttachmentProvider.getType() tests
c3c2314e 2015-01-01 Fixed attachment creation in tests
36f104ba 2014-12-31 Start making tests pass
3c81bd0e 2014-12-31 AttachmentProviderTests
a303dcc3 2014-12-30 FloatingActionBar 1.4.0
fdb2a903 2014-12-30 Updated verification hashes
321aba11 2014-12-30 Testing dependencies etc.
3fc665e5 2014-12-30 Layout changes
e021bd3f 2014-12-29 Implemented AttachmentProvider, removed ContentAttachment.getUri()
b05dcd8e 2014-12-29 Prep work for viewing attachments
5ffdf201 2014-12-29 Added missing files
5520a36e 2014-12-28 Padding fix
612419cd 2014-12-28 Add/remove attachments in new email, list attachments in view email
07ad5bdd 2014-12-28 Updated attachment icon on email list items
823491ae 2014-12-28 Pull out Util method for getting size of a Part
68567736 2014-12-28 Correct the Attachment interface
2cc3df7c 2014-12-28 Generalize attachments
cbfd318c 2014-12-27 Move log tag to Constants
d64613c0 2014-12-27 Updated translations
b97fe8f5 2014-12-27 Updated CHANGELOG
e310a3b5 2014-12-27 Add support for Cc: and Bcc:
0deaf2ae 2014-12-25 Updated CHANGELOG
ab767a03 2014-12-25 Selectable email content (API 11+)
5b0d631b 2014-12-23 NPE fix
b4e154e0 2014-12-23 Fixed string
d0377970 2014-12-23 Updated translations
852bad8d 2014-12-23 Moved JSPs to correct location
a1a89dd2 2014-12-22 Updated TODO
51ab2e7a 2014-12-19 Updated CHANGELOG
124fdeb6 2014-12-19 0.4
cdf91568 2014-12-19 Moved release signing into separate buildscript
780171dd 2014-12-19 Upgraded build tools to 21.1.1
36b7ca07 2014-12-19 Upgraded support libraries to 21.0.3
2c8d7209 2014-12-19 Permission to vibrate
45172e41 2014-12-19 Updated translations
d91401ef 2014-12-19 Updated translations
00c6af0c 2014-12-19 Updated TODO
d8785d5c 2014-12-19 New email notification fixes
4f357db8 2014-12-17 Use I2PSocketManagerFactory.createDisconnectedManager() for better connectError
07c9fdfe 2014-12-17 Fix settings menu Intents in debug build
92a22c44 2014-12-17 Consistent titles
88106ab5 2014-12-17 Visually break up emails in ViewPager
014932d0 2014-12-17 Notify users that Bote needs to be connected to check emails
4d7f5bfe 2014-12-17 Proper error page
4124e2e3 2014-12-16 Fixed new email notifications
e8a927e3 2014-12-16 Don't modify UI from email-sending thread
bcfd6193 2014-12-16 New translations for ro
05064a34 2014-12-16 Updated translations
2216f648 2014-12-16 More robust email checking
877b02cc 2014-12-13 Layout fix
4ca77a36 2014-12-13 Updated TODO
80f08c04 2014-12-13 Updated CHANGELOG
f45eae9c 2014-12-13 Updated translations
e52de5d9 2014-12-13 Copy EmailDestinations to clipboard
f151f55a 2014-12-12 Only call connectNow() if status==DELAY; always call when I2P status==ACTIVE
848ecbef 2014-12-10 Updated CHANGELOG
02e00d7f 2014-12-10 Prevent NPE
c38feed1 2014-12-10 Updated translations
dc588fe2 2014-12-10 Updated CHANGELOG
b3350ce3 2014-12-10 Missing file from previous commit
65f08049 2014-12-10 Labels in address book FAM (using FAB library 1.3.0)
9411805e 2014-12-09 Bumped gradle plugin to 1.0.0
6a38ff1d 2014-12-04 Enable debug versions to be installed alongside release versions
2230f9b0 2014-12-04 Fixed NPE
56811ad9 2014-12-04 Updated CHANGELOG
3b428075 2014-12-02 0.3
d917fb55 2014-12-01 Upgrade to client library 0.4, use new helper bind method with new Intents
a3b595b4 2014-12-01 Updated translations
10f0593f 2014-11-30 Updated translations
9dee45cb 2014-11-30 Users don't need to see the local Destination
aee45ce2 2014-11-30 Upgraded support libraries to 21.0.2
39f04b7f 2014-11-30 Tag strings for translation
67563a2a 2014-11-26 Updated TODO
74634706 2014-11-26 Pie charts on network info page
be67702e 2014-11-25 Extract common code for viewing identities and contacts
d9b1aa30 2014-11-25 Use same layout for viewing identities and contacts
07e2067e 2014-11-25 Updated Gradle Witness
1df677da 2014-11-25 Zoom QR code on click
6c10e093 2014-11-25 QR code scanning
28735827 2014-11-25 Icon for scanning QR codes
c8f9671b 2014-11-25 Move add contact action to FAM
872fa2e9 2014-11-25 Don't allow EmailDestination of an existing contact to change
0ba87f00 2014-11-25 NFC: check received message, receive on API 9
743055a1 2014-11-19 Updated translations
35030b1d 2014-11-19 Updated CHANGELOG
00aad9fd 2014-11-18 View identity: Generate and show QR code
93f4caeb 2014-11-18 Divider styles
5c1a9623 2014-11-18 0.3-rc5
a6df6214 2014-11-18 Specify version in build.gradle
f530515e 2014-11-18 New email: If the user has typed anything, confirm when they navigate away
03870e17 2014-11-18 Missing file
d3df8b49 2014-11-18 Better name handling for email replies
8b5b7507 2014-11-18 Helpers to get the name for an EmailDestination
11acd450 2014-11-18 Don't include Anonymous in Reply All
05c65c6a 2014-11-18 Increase identicon density
98f7cad1 2014-11-18 Better handling of identicon backgrounds
4fa16cfd 2014-11-18 View contact: layout changes, removed ShareActionProvider (for now)
be88c7b0 2014-11-18 Layout cleanup
60daaa33 2014-11-18 View identity: layout changes, removed ShareActionProvider (for now)
5ff770bc 2014-11-17 Use assertArrayEquals
4107467c 2014-11-17 Mockery thread synchronization
05def741 2014-11-17 Fix BCC header removal bug
82ac0d59 2014-11-17 Unused imports
10445e10 2014-11-17 junit.framework -> org.junit
5ffdc62e 2014-11-17 Action bar title fixes
ef96c63e 2014-11-17 View email text styles and sizes
7a06c595 2014-11-17 Divider between email header and content
d2d1e956 2014-11-17 Max navigation drawer width
620daab9 2014-11-17 View email layout tweaks
0c20f936 2014-11-16 Show identicon for anonymous sent emails
d82bb575 2014-11-16 More uniform identicons
48db57f1 2014-11-16 Make identicon visible in contact token
adb14287 2014-11-16 Email list item layout fix
8bb939c3 2014-11-15 Material design: text appearance
80a5e0df 2014-11-11 Toolbar for settings
5208cb4d 2014-11-08 SHA256 hash for net.i2p.android.ext:floatingactionbutton:1.1.0
ce4eb711 2014-11-02 Use client library 0.3
a9ac5b6a 2014-11-02 Use mavenLocal() repository instead of a local file repo
a1401e8f 2014-10-30 Upgraded build tools to 21.0.2 (fixes a compile bug)
ff0d4f1d 2014-10-30 Upgraded build tools to 21.0.0 (needed to fix a resource merging bug)
395187ba 2014-10-30 New Gradle Witness build
4a432bf5 2014-10-30 Use our own, backwards-compatible version of the FloatingActionBar library
90f0ecab 2014-10-30 Upgraded gradle wrapper and build tools
e93e2003 2014-10-30 Removed old translations
329e8e92 2014-10-27 Material design: contact chips
10d46edd 2014-10-26 Fixed deprecation
622c9b8d 2014-10-26 FloatingActionBar 1.1.0
60e6b1cd 2014-10-23 Materail design: Floating action button for new email action
6a266bc2 2014-10-22 Material design: Left side nav should open over toolbar
d9e3c179 2014-10-22 Updated TODO
e1550147 2014-10-22 Identicons for EmailDestinations with no associated picture
9ab21181 2014-10-21 Material theme: side nav width, toolbar height
11fbae85 2014-10-21 Change email checker indicator colors
7b4d7de2 2014-10-20 New network status icons
1f074bce 2014-10-20 Changed outbox icon
956469e7 2014-10-20 Material theme: nav drawer icons
5e762d80 2014-10-20 0.3-rc4
0add04fa 2014-10-20 Material theme: text appearance
2230ab25 2014-10-19 Changed accent color
77ebb06e 2014-10-19 Close drawer when opening address book or network status
c70ad189 2014-10-19 Line accidentally removed
0380b5c2 2014-10-19 Material theme: main toolbar
486b06ee 2014-10-19 Material theme: contact list
a2d5d0e8 2014-10-19 Material theme: email list
5818ab15 2014-10-19 Missing line
44bb19b6 2014-10-19 Material theme: folder list
2f55af22 2014-10-19 Material theme: new styles
d7ac0f7a 2014-10-19 Material theme: new icons
e5f9630d 2014-10-19 Upgraded to API 21
2ebf8b71 2014-10-18 Picture styling for identity and contact view pages
fb2e275f 2014-10-16 Updated translations
7b971683 2014-09-30 Use released client library 0.2
8cb3435d 2014-09-29 Updated translations
72ca8e73 2014-09-26 Use new helper method in client library
8556acea 2014-09-26 Plurals fix
1408601e 2014-09-26 Use client library 0.2
d307e60d 2014-09-26 Use the new i2p.i2p-bote directory structure
a968f5c6 2014-09-25 Updated history
d6564680 2014-09-25 Update to techdoc by HungryHobo
ec41d7d8 2014-09-25 Switch to Maven directory structure without losing history
e48e7648 2014-09-25 Different sent date formats for different ages of email
40efa738 2014-09-25 Updated translations
d8741fa6 2014-09-25 Only show incomplete email count in inbox
8a2da003 2014-09-25 Don't create a new fragment when selecting the current folder in nav drawer
b9c4783a 2014-09-25 Placeholder colors for SwipeRefreshLayout
1ab29db2 2014-09-25 Nav drawer design guidelines
cb8502bd 2014-09-25 Plural string fixes
de64f09c 2014-09-25 Plural strings
db855573 2014-09-24 Updated translations
fa7b63e9 2014-09-24 Settings improvements
7a92548f 2014-09-24 Updated TODO
27fcd7c3 2014-09-24 Initial CHANGELOG
2a18db48 2014-09-24 Check email action; only allow checking email from inbox and when authenticated
f20b3f67 2014-09-24 Make empty inbox swipeable
402ab84a 2014-09-23 Switch to android.support.v4.widget.SwipeRefreshLayout
8a29b9dd 2014-09-21 Mark locations of code incompatible with newer I2P Destinations
6c53344f 2014-09-21 A zero-length password is an uncached password
c22ae247 2014-09-19 Updated translations
2219dbc8 2014-09-19 Remove unused string
0c3d2bab 2014-09-19 Password check in edit contact page (because it could be opened by an Intent)
e061f178 2014-09-19 Use AuthenticatedListFragment for AddressBookFragment
768162ae 2014-09-19 Methods that should be private
7d51dc59 2014-09-19 Split out authentication into abstract class
b8086070 2014-09-18 Show keyboard with password dialog
59a6d586 2014-09-18 "Log out" is a better user hint than "Clear password"
e303214a 2014-09-18 Clarify how to log in
b8d33ddd 2014-09-18 New translations for pl
a9176558 2014-09-18 Updated translations
4dd9156e 2014-09-18 Missing lock and unlock icons
b31f503f 2014-09-18 Update folder list on set/clear password (for unread email count)
2768297b 2014-09-18 Add and remove interface for password listeners
f9640c6f 2014-09-18 Better action management
ba2b9bad 2014-09-18 Remove pop-up login request from email list
e4f2b9b9 2014-09-18 "Log in" and "Clear password" actions on email list
0420aa29 2014-08-30 Improved errors
d86ab346 2014-08-30 Fixed NPE
be4e346f 2014-08-28 Updated translation strings
5fc1d706 2014-08-28 Updated translations
eba5b4f4 2014-08-28 Bugfix: initialize list after authentication
e6348ace 2014-08-28 Forward and Reply all
bf439f21 2014-08-28 Hide fingerprints from UI until they are reliable
18de25d7 2014-08-28 Fingerprint field for contacts, not filled yet
8013783b 2014-08-28 Added view contact activity
a9734ae3 2014-08-28 Missing disableForegroundNdefPush()
0e5ae34f 2014-08-28 Show identity fingerprint in current locale if possible
ce74614b 2014-08-28 Don't allow password dialogs to be canceled by the back button
ecd26672 2014-08-28 Authenticate for identity creation
b6e74b74 2014-08-28 Comment fixes
502e9ddf 2014-08-28 Italics for Anonymous senders
d6bc72d9 2014-08-27 Layout tools fix
3240d04e 2014-08-27 Show recipient for emails listed in Outbox and Sent
29025191 2014-08-27 Updated TODO
6c8fbeb3 2014-08-27 Updated TODO
740197e4 2014-08-26 Added TODO
d1db7c14 2014-08-26 View identity: - Show fingerprint (en) - Generate QR code from identity key
a352c138 2014-08-23 0.3-rc3
7d2cc869 2014-08-23 Docstring fix
99d2dc2c 2014-08-23 Disable hidden mode for internal router (participation still disabled)
b22b8eea 2014-08-23 0.3-rc2
24ab394c 2014-08-22 New translations for zh
c9269ca4 2014-08-22 Updated translations
11909ce6 2014-08-21 Use client library 0.1.1
53a540d0 2014-08-20 Compiled libscrypt.so for x86 and mips using NDK r10
f9f4c17c 2014-08-20 Recompiled libscrypt.so with NDK r10 to fix text relocations
d53f5c0a 2014-08-20 0.3-rc1
48134404 2014-08-20 Added comments to translation strings
d0247e7c 2014-08-20 Feature graphic for Google Play
1b569173 2014-08-20 Fixed bug caused by API changes
398e4f6b 2014-08-20 New translations: id, nb, sq
4148bad0 2014-08-20 Missing change
6e632a47 2014-08-20 Don't let a user accidentally exit the setup wizard if they chose to use it
f316933f 2014-08-20 Don't show Share menu for new contacts
208c69fb 2014-08-18 Hide old password field in SetPasswordFragment if none is set
ee926ff2 2014-08-18 More TODO items
6b990f6f 2014-08-18 Request password in onActivityCreated(), not onResume()
46d42210 2014-08-17 Password handling: - Init lists once in onResume (handles passwords entered higher in stack) - Destroy any existing data in UI if cached password is cleared
dcec72a5 2014-08-17 Password restrictions
bafe5293 2014-08-17 Modularize password entry
b8cb30af 2014-08-17 Don't leak incomplete email count outside password
cf4dfad9 2014-08-15 Make it easier to use a local copy/build of the client library
6e4c52b7 2014-08-07 Remove spaces and newlines
cc59ed9a 2014-08-07 Remove possible prefixes
ca839910 2014-08-07 Updated translations
3c0a431f 2014-08-03 Remove UpdateChecker
392ba710 2014-08-03 Another Tomcat 7 fix, see rev. 5e9c9148
e39abcc1 2014-08-02 Use SecureFile instead of Util.makePrivate()
a44af32e 2014-07-26 New translations for ru
16c23e95 2014-07-26 Updated translations
e030e9ed 2014-07-23 0.2.10
1896fccf 2014-07-23 Fix NullPointerExceptions
ca19e9d9 2014-07-23 Use a separate SessionKeyManager instead of the router's
729a4ac9 2014-07-23 Upgrade to 20140722 snapshot of Apache James
ea4f5f50 2014-07-17 I2P Android now using Enum for State
8128d0a0 2014-07-16 jstl.jar is a more reliable test, from source only jarBote will prepare it
a5d9e6a3 2014-07-16 Switch to I2CP over domain sockets for I2P Android
729f59e7 2014-07-16 Support I2CP connections over Unix domain sockets
4172d483 2014-07-16 Use the I2P Android client library
92838407 2014-07-15 Better control of what artifacts are built by what task
d896833a 2014-07-15 Updated TODO
4430b1c8 2014-07-11 Cleaner build script
1d351132 2014-07-10 Updated translations
173bc973 2014-07-10 New translations for fr
b2d3fd96 2014-07-10 String improvement (thx Towatowa441)
f6bebfa5 2014-07-10 Don't abort on lint errors (this is the 0.2 release commit)
b6010798 2014-07-10 Fixed overflowing text on small screens
854b2c67 2014-07-10 0.2
a661f48d 2014-07-10 Made intro_4.svg more Bote-like
73e44135 2014-07-10 Missing checkin
28186b0d 2014-07-10 Updated translations
31628c13 2014-07-10 Reverted mistaken commit
494f36ed 2014-07-10 Updated translations for changed strings
29f4c1bd 2014-07-10 Improved intro text
244a91fb 2014-07-10 Fixes
ef98b16e 2014-07-09 Adding in another intro page
fc991d6a 2014-07-09 Adding in another intro page
b235f36c 2014-07-09 Swap order of intro pages
c38569b4 2014-07-09 Swap order of intro pages
7f2e3322 2014-07-09 Updated TODO
eb774b01 2014-07-09 Exclude x86_64 native binaries from scrypt.jar
6327d1f5 2014-07-09 Fix email selection by clicking picture
0470939c 2014-07-09 ScrollView around intro pages that might overflow text
21dfd34f 2014-07-09 Adapted images from the FSF Email Self-Defense guide for use in intro
bd56715e 2014-07-08 Updated translations
5a84cecc 2014-07-08 Error message has no info (yet), revert to e.toString()
68ad7757 2014-07-08 Extracted more strings
22e27fdf 2014-07-08 Updated translations
d66e2775 2014-07-08 Updated ignores
8158bcec 2014-07-08 Clearer launcher icon, new notification icon
63b34729 2014-07-08 Fixed locale hiding in replies
17fbe74f 2014-07-08 New translations for es
eeeb2140 2014-07-08 Extracted remaining strings
bc9f4d75 2014-07-08 Make Inbox incomplete emails header unselectable
b508c382 2014-07-07 New translations for de
5b480d83 2014-07-07 Updated license info
08c90050 2014-07-07 Use MultiSelectionUtil from Android Samples for CHOICE_MODE_MULTIPLE_MODAL
c05228c2 2014-07-07 Ellipse character
33d35010 2014-07-07 Don't connectNow() on RUNNING, too soon to know that I2CP is ready
4d795e26 2014-07-07 Revert to only showing intro/setup on first run
78b66b55 2014-07-07 Bugfix after net.i2p.data.Base64.decode() errors were cleaned up
399aa163 2014-07-06 Unified layout margins
9a0f5a5e 2014-07-06 Stub out UpdateChecker
cdf01bc9 2014-07-06 Bugfixes, run I2PBote.shutDown() in separate thread
c8212b7d 2014-07-06 Use NetworkStatusListener for nav drawer status info
5cdcae14 2014-07-06 Missing network status change
ce4136a2 2014-07-06 Update service Notification text via NetworkStatusListener
348262e7 2014-07-06 NetworkStatusListener implementation
64be0e52 2014-07-06 Persistent notification while Bote is running
47a2c311 2014-07-06 Support different I2P Android package names
19e58d22 2014-07-06 Improved support for landscape and small screens in intro and setup
21d87a95 2014-07-06 Support different I2P Android package names
869042fb 2014-07-06 Updated TODO
9b45832a 2014-07-06 Pull out hard-coded strings, inform user if importer found no identities
adb29065 2014-07-06 Inform caller if importer found no identities
c04fc244 2014-07-06 Implement encrypted identities export
7eaf913a 2014-07-06 Updated TODO
89fb236b 2014-07-06 Easy Share the EmailDestination of identities and contacts
0b6c96f4 2014-07-05 Implement append strategy for duplicates
4762f848 2014-07-05 Implement identity appending on import
52a717d7 2014-07-05 Import identities from FileDescriptor (no appending possible yet)
5dc25729 2014-07-05 Environment.DIRECTORY_DOCUMENTS is only available in API 19+
9b1f29be 2014-07-05 Import identities UI
9aecce7c 2014-07-05 Fixed reading contact Destination from text file
a8892460 2014-07-04 Export identities UI
24e66a08 2014-07-04 Prepare for export dialogs
044d190c 2014-07-04 Export identities to Documents folder
e9ffb464 2014-07-04 Export identities to file (no encryption possible yet)
382f75f4 2014-07-04 Pulled out Identities <-> Properties conversion into separate methods
dcba9109 2014-07-03 Updated checksum for com.mcxiaoke.viewpagerindicator:library:2.4.1
9c552e0a 2014-07-03 Fixed README
af6ceddb 2014-07-03 Send identity destinations to other devices via NFC
35d103ee 2014-07-03 Send address book contacts between devices via NFC
b61a15b4 2014-07-03 Updated TODO
4a6fc262 2014-07-02 Show number of incomplete emails
697b29d1 2014-07-02 Show number of incomplete emails at top of Inbox
4cd24cd5 2014-07-02 Expose number of incomplete emails
7607e2d1 2014-07-02 Ensure that I2P system vars are set in any Activity that uses I2PBote
4d736205 2014-07-02 Separate message to explain why Bote waits for 3 minutes
8f8fd908 2014-07-02 Move app initialization out of EmailListActivity so it can be used elsewhere
6b11bae3 2014-07-02 Show contact pictures in recipients dropdown
d3ddca0d 2014-07-01 Static verification of remote dependencies using Gradle Witness
7397c045 2014-07-01 Updated android gradle plugin version
1ce9c607 2014-06-29 Updated README
d647f310 2014-06-28 Enable building Bote against I2P source
27c086a2 2014-06-28 Signing instructions
ce8e26c1 2014-06-28 Improved handling of signing keys
2736ba76 2014-06-28 Temporary fix for broken developer preview of Support Library
076f595a 2014-06-28 Fixed jar dependency problems, updated ignores
df7a3593 2014-06-28 README fixes
4bb52983 2014-06-24 Describe how to pull dependencies via Tor
15f3b540 2014-06-23 License info
32ce92d7 2014-06-23 Updated license.txt
a6bb8856 2014-06-20 Parent activity meta-data for 4.0 and below
ec12db7c 2014-06-20 0.1.1
731bde55 2014-06-20 Prevent NPE with FragmentManager not being initialized
b7295e98 2014-06-20 Link to EditIdentityActivity on legacy devices
3fe669a7 2014-06-19 Incremented version after dev release
f457ec3d 2014-06-19 Release signing
b5540e17 2014-06-19 Fixed some warnings
b684aaa5 2014-06-19 Setup finished page, moved setup buttons to bottom of screen
ac61de07 2014-06-19 Fixed string
73acb4b6 2014-06-19 Setup wizard for new users
b30e31fc 2014-06-19 Introduction to Bote for new users
79c3a622 2014-06-19 Committed missing override files for newer APIs
34107e6a 2014-06-19 Fixed ignores
d5864f62 2014-06-19 Added README with build instructions
4f8979d2 2014-06-18 Automatic format changed from Android Studio
ad397605 2014-06-16 Fixed B64 encoding of Bitmaps
5b347e87 2014-06-16 Adjust email content margins
522be915 2014-06-16 Save pictures for identities
96bb3a07 2014-06-16 Enable saving picture for EmailIdentity
5cebc0b2 2014-06-16 Added EmailIdentity.setPictureBase64()
1c0cbff5 2014-06-16 Fixed getPictureForAddress()
aa954b03 2014-06-16 Fixed wrong ImageView
6dcd3094 2014-06-16 Picture layout fixes
947056d3 2014-06-16 Updated to Android Studio 0.6.1
fafabe37 2014-06-14 Added default router.config based on I2P Android
237124df 2014-06-14 Removed Eclipse files
50faef08 2014-06-14 Pull to check email
f97c9691 2014-06-13 Fixed build process
0b689a5a 2014-06-13 Gradle build and settings files, updated ignores
2340a5f2 2014-06-13 Reorganized directories
9691f3d1 2014-06-13 Added gradle wrapper
c84870cc 2014-06-13 Fixed duplicate string name
d8637a3b 2014-06-12 Move "New Identity" action to list item
50e909e8 2014-06-12 Mark email subject input field to prevent newlines
879c5cc5 2014-06-12 Quote subject and content when replying to emails
b2439f73 2014-06-12 Pass full email through when replying
c480103c 2014-06-12 Outbox emails stay marked as unread until sent
f8a69849 2014-06-11 Handle new vanity prefix parameter in I2P-Bote
4e7d57d8 2014-06-11 Implement vanity destinations
5832416b 2014-06-11 Only allow moving emails from trash (for now), never allow move to outbox
1f8b87c4 2014-06-11 Moved from and sent lines to bottom
2e98d952 2014-06-11 Show contact picture in notification for single new email
54990b2a 2014-06-11 Moved sent date to second line (to not truncate subject line)
0ad03ce6 2014-06-11 Fix for new Jetty/Tomcat
c84f1db0 2014-06-11 Updated TODO
3b64f589 2014-06-11 Connect to network immediately for remote router, or if I2P Android is running
5ca77f2d 2014-06-10 Change in i2p.i2p-bote
2082fd08 2014-06-10 Emails are not kept in-memory inside EmailFolder, so store \Recent in metadata
6fd09bcc 2014-06-09 Use NewEmailListener instead of FolderListener
98c56de3 2014-06-09 Added specific listener for newly-received emails
1801e308 2014-06-08 Fixed bug in setFlags()
0f15534e 2014-06-08 Fixed use of \Recent flag
f3185872 2014-06-08 Helper method
850675dc 2014-06-08 Use \Recent flag to only notify user about newly received emails
0763c8cf 2014-06-08 Updated for new FolderListener API
38d58335 2014-06-08 Improved FolderListener, emails added to a folder outside IMAP now get \Recent
6bbd015d 2014-06-08 Store other IMAP flags in-memory (like \Recent)
5e941445 2014-06-06 String clarification
9885860e 2014-06-06 Notify on new emails
ae731edf 2014-06-05 Missing file
f1fb4886 2014-06-05 Bugfix: redeliver Intent to BoteService if killed and then restarted
185ec7ff 2014-06-04 Updated TODO
4f6cbbaf 2014-06-04 Reply action
13583b4b 2014-06-04 Fall back to internal router if I2P Android is pre-0.9.13
f77f273e 2014-06-04 Fixed variable name to match convention
7843f061 2014-06-04 Truncate subject and from lines to not overlap RHS fields
5a088ae9 2014-06-04 Call correct startActivityForResult()
c2a9b520 2014-06-04 Updated TODO
eced9e62 2014-06-04 I2P Android integration
b8e4c719 2014-06-03 Method changes in i2p.i2p-bote
f20ae940 2014-06-03 Add missing file
f7f185a6 2014-06-02 Handle index packets that are bigger than a datagram (fixes "After merging, IndexPacket is too big..." errors)
a47100d1 2014-05-29 Fix NullPointerException on fresh installs
32bd6e45 2014-05-29 Fixes for Tomcat 7 which is more anal about the JSP spec than Jetty or Tomcat 6
69b55a8e 2014-05-29 Refresh options menu when starting or stopping Bote
7d70d7c0 2014-05-29 Bundle internal router, settings to choose internal or remote
f5732d69 2014-05-25 Fixed parameter substitution in strings
ca19b092 2014-05-24 NPE fix for corrupt folder
eb54ff8d 2014-05-23 Show delivery percentage if zero
f228f64b 2014-05-23 Show sending status in ViewEmailFragment
b3131d24 2014-05-23 Show sending status only in outbox; don't allow outbox messages to be moved
b2bd4158 2014-05-23 Use the new flexible email status system
3dede23a 2014-05-23 Reworked email status storage for UI flexibility
9a3f7ba5 2014-05-22 Updated TODO
5a38238e 2014-05-22 Fixed NPE in settings when rotating device
37c754d5 2014-05-22 Option to delete identities
c08b15fc 2014-05-22 Option to delete contacts
95d3bfe0 2014-05-22 Missing resources, removed placeholder text
e540c573 2014-05-21 Show entire email if external
26f96ed7 2014-05-21 TODO bugfix
ccf1f92b 2014-05-20 Highlight address book and network info links in nav drawer when touched
374e1d71 2014-05-20 Require recipients
f4d845bb 2014-05-20 Fixed NPE (that should never occur, but there is an input validation bug)
36b46f65 2014-05-17 Show any connection error on network info page
15d0d0f9 2014-05-17 Updated TODO
341db412 2014-05-17 Show email status image/text using a single TextView, stop content overlapping
2e556727 2014-05-17 Improved sent mail detection, show email_status_text when set
d21d7d3f 2014-05-17 Show attachments and delivery status in email list
717c697f 2014-05-17 Don't open network info page if Bote has not started
9d6b4ce4 2014-05-17 Update network status whenever drawer state changes, not only on swipes
e1905873 2014-05-17 Reverted bad log tweak
0d92ddb6 2014-05-17 Set connectTask to null so getNetworkStatus() returns valid state
52f6405c 2014-05-17 Removed unused import
df9c8416 2014-05-17 Updated TODO
99fb8bf2 2014-05-17 NPE fixes, log tweak
fa22d472 2014-05-17 Whitespace, don't create SSL key store on Android
f7bba816 2014-05-17 Updated TODO
766b93fa 2014-05-17 Simple network info page
9b4ecf30 2014-05-17 Service for starting and stopping Bote
7b393991 2014-05-17 Network status in nav drawer
791a16f3 2014-05-16 More TODO items
3510264c 2014-05-16 Set relevant titles on pages
d8cc7278 2014-05-16 More TODO items
22795c42 2014-05-16 Updated TODO
16ba7f0a 2014-05-16 Show when an email is selected
cfd4107b 2014-05-16 Click on email contact pictures to select them
d3b611d9 2014-05-16 Mark viewed emails as read ("not new")
8278e51f 2014-05-16 Fixed NPE
14658aa9 2014-05-16 Picture fixes
18542be5 2014-05-16 Backend for setting identity and contact pictures
3628c50b 2014-05-15 Moved address book link into nav drawer
139557df 2014-05-15 Default image for contacts and identities with no picture
e58b3bd4 2014-05-15 Correctly handle empty contact pictures
7b2c78cb 2014-05-15 Fixed edit contact button size
1ce3c6d6 2014-05-15 Simplified name
342f11ac 2014-05-15 Fixed string
770b1a85 2014-05-15 Integrated address book into new email recipients field
3d4d8e59 2014-05-15 Added TokenAutoComplete library
34981a99 2014-05-15 Contact edit page
ac3032e7 2014-05-15 Fixed drawable name
0cc2b5fe 2014-05-15 Helper for encoding picture
dd89b919 2014-05-15 Address book list
2dfa656b 2014-05-13 JSSE requires keystore and key passwords to be identical
56aa3f3c 2014-05-13 Generate the SSL cert on-the-fly to prevent MITM
c2e75290 2014-05-13 Reverted mistaken checkin
3387cdd9 2014-05-12 Enable STARTTLS for IMAP and SMTP using selfsigned certificate
c3088c59 2014-05-12 Mark important comments
a149a0bd 2014-05-12 Fixed NPE (ticket #1272)
ee16f441 2014-04-19 i2p.bote -> i2p.bote.android
3ab1f1aa 2014-04-17 Implemented send button action with sender as dummy recipient
7867198f 2014-04-17 Override updateMessageID() on Android to prevent NetworkOnMainThreadException
1f30eef5 2014-04-17 Updated TODO
61ead34a 2014-04-16 Mark emails read/unread, move to folder
a22d1c1f 2014-04-16 Changed LogWriter tag
38293ebc 2014-04-16 Added elementUpdated() to FolderListener, made setNew() throws consistent
f1191b2f 2014-04-15 Email deletion
6f4a0615 2014-04-15 Update FolderListeners when Email is moved
4aa2bd8b 2014-04-14 Update folder list text on folder changes
5ed7cf55 2014-04-14 Include precompiled native scrypt library for ARM5 - big usability speedup
6e00e398 2014-04-14 Upgraded to scrypt 1.4.0
22fa6105 2014-04-14 Updated FAQ and User's Guide
946fa8d6 2014-04-14 Insert addressbook/identity names, @bote, {UNK} into IMAP email headers
5a8d9c6f 2014-04-13 Remove @bote before validating sender and recipient addresses in SMTP
5c53c207 2014-04-13 Updated about.jsp
c8477003 2014-04-13 Create BoteMailboxes once, and remove their FolderListeners when IMAP stops
d9756407 2014-04-13 Refactor to handle recipient headers containing multiple recipients
fe9c6d9d 2014-04-11 Pack new mailapi.jar in update for 0.2.10
ee96adde 2014-04-10 Removed signature from scrypt jar (pack200 interferes)
1f9aa61d 2014-04-10 Upgraded to scrypt 1.4.0
5e559846 2014-04-07 one more typo
bbd24eaa 2014-04-07 fix another missing '/'
4db680f0 2014-04-07 add missing / to paths
79595913 2014-04-04 Previous fix wasn't quite right
b387b77b 2014-03-30 Fixed concurrency problem
dce43d11 2014-03-30 Fixed IMAP UID implementation to conform to RFC 3501
8fec6b28 2014-03-29 Remove @bote properly from SMTP messages
17282cda 2014-03-28 Missing Bean method
16642534 2014-03-28 Fixed password "corruption" (ticket #1239)
654b136c 2014-03-18 Somehow, file duplication has stopped
2b5de795 2014-03-18 Doc tweak
10b9b2e5 2014-03-18 Updated identity file spec
c8e10cd3 2014-03-13 Added TODO
13cc0680 2014-03-13 Tweaked layout
71808a71 2014-03-13 Added view of identity
1c6a654b 2014-03-12 Disable edit fields when saving
703cd94f 2014-03-09 New identity creation
3571adf2 2014-03-09 Another StatusListener
f9d54e10 2014-03-09 Fixed NPE
49332e78 2014-03-09 Implement required API 19 method override
44027e80 2014-03-09 Save and load default key properly
d6984910 2014-03-08 Set default identity for new email correctly
9d821f66 2014-03-08 Update default identity when changed (for writing to file)
f967ead5 2014-03-08 Set default identity option
47067564 2014-03-08 Improved edit identity UI
1fcc80ed 2014-03-08 Improved set password UI
dc98c054 2014-03-08 Fixed <intent> bug (targetPackage is package of application, not class)
ec3fe213 2014-03-08 Added missing menu
02c93ed1 2014-03-08 Added missing icons
54110434 2014-03-08 Fixed settings headers after file moves
7bafb954 2014-03-08 Start of new email activity
3154a692 2014-03-08 Moved config and identities Activities into subpackage
4993d172 2014-03-08 Added edit page for identities
0f0fedef 2014-03-06 Show contact picture in email list and view (if available)
d5e0bd84 2014-03-05 Added list of EmailIdentities to settings
5c45ac2a 2014-03-04 Use preference headers in settings (prep for identity support)
bef847d2 2014-03-04 Moved Servlet-dependent helper methods back to JSPHelper
967a5231 2014-03-04 Missing javadoc @param
7e48a8e4 2014-03-04 Remove router.jar dependency, stub out Seedless use
e4efc71d 2014-03-03 Recover current status of password setting on config change
6be946ae 2014-03-03 Recover enabled state of submit button after config change
e3ad5f95 2014-03-03 Fixed crash if navigated back from SetPasswordActivity
e0af648d 2014-03-03 Make password-setting AsyncTask survive configuration changes (screen rotation)
ccdfdcf9 2014-03-02 Display password set/change progress
c35e9c91 2014-03-02 Enable listening to status of internal operations (for Android UI)
44cbabaa 2014-03-02 Dismiss keyboard when done
cd5d9122 2014-03-02 Use AsyncTask for password checking so UI doesn't hang
55b16d95 2014-03-02 Support for changing passwords
c2d6b8d1 2014-03-01 Added password handling and input
2fccdf3d 2014-03-01 Remove unneeded GSE catching
c0b62e25 2014-03-01 Remove throw (handled in rev 78f6a5bcf158019aceb75a48aebd8d9c20b203ce)
a22e27c0 2014-03-01 Renamed classes
c6f68c5f 2014-03-01 Removed debug line
03270d86 2014-03-01 Stubbed out IMAP and SMTP
936e1e7d 2014-02-28 Updated techdoc.txt for mailapi.jar
592793ea 2014-02-28 Add a setting to enable/disable SMTP
045c8393 2014-02-28 Added I2CP host/port settings
e1513de8 2014-02-28 Added settings
bd9ab1fc 2014-02-28 Updated ignore
14445b49 2014-02-28 Ellipsize content in email list
1685b271 2014-02-28 Enable ActionBar app icon to behave as action to go back
e07c73fa 2014-02-28 Fully display emails
2dc77be4 2014-02-28 Populate ViewPager with Loader
b2470d54 2014-02-28 Factored out common Loader methods
ee0e4204 2014-02-28 Email viewing structure
b88dc979 2014-02-28 Sort emails newest-first
e07a5fa5 2014-02-27 Moved BoteHelper to i2p.bote.util
21ed7bc1 2014-02-27 Added missing file
d658a57e 2014-02-27 Show sent date if set, show new emails with bold subject and from
eb1aecd5 2014-02-27 JavaMail currently doesn't work on Android, use javamail-android instead
167f4752 2014-02-27 FolderAdapter -> FolderListAdapter, highlight selected folder
f1c9ac97 2014-02-27 Updated to mailapi 1.5.1
4b7e2704 2014-02-27 Increase min API to 9
522915f5 2014-02-27 Fixed duplicate fragment on configuration change
bdd24d7e 2014-02-27 Apparently Jasper can't follow inheritance
256884e2 2014-02-27 Pass exceptions through from BoteHelper (like in GeneralHelper)
7f0c026d 2014-02-27 Speed fix: only show new count when there is data to show
09f7681f 2014-02-27 Fixed dependency issues, only compile Bote once
de36d919 2014-02-27 Delete i2pbote.jar in clean
1a6ae22b 2014-02-27 Allow using result of folder.getName() in getMailFolder()
ab4b1df6 2014-02-27 Fixes
dff9b060 2014-02-26 Start of email item design in list, basic styling
89e14312 2014-02-26 Bugfix (crashed on folder not existing)
56078072 2014-02-26 Extend i2p.bote.util.GeneralHelper
adde9736 2014-02-26 Split JSPHelper so common utilities can be used by other UIs (Android)
35ec3c28 2014-02-26 Bugfix, empty folder text, folder name as title, show new message counts
94837b91 2014-02-26 Set files directory
8ec6da00 2014-02-26 Fixed initial folder selection
7e6b5292 2014-02-26 Loader for email list
173d08d7 2014-02-26 Allow FolderListeners to be removed
acb1ace3 2014-02-26 Don't add source files to i2pbote.jar (it duplicates .txt files)
172463c9 2014-02-26 Basic launcher icon for Bote
9ef37472 2014-02-26 Started main interface, nav drawer with list of folders
0aae5a94 2014-02-26 Clarify why classes are deleted from i2p.jar
b530cbe7 2014-02-26 Fixed mistake
dacc5397 2014-02-26 Copied net.i2p.util.* placeholders from i2p.android.base
77b945e3 2014-02-26 Initial commit of Android project structure
ffa7450e 2014-02-26 Reordered list of folders
d9d9c471 2014-02-16 Add README.md for GitHub
d9603084 2014-02-16 Update techdoc.txt
616df8de 2014-02-16 Update translations from Transifex
427e293b 2014-02-16 0.2.9
163f8d58 2014-01-08 Make send button easier to find
43e34eb2 2014-01-01 Added code to mapper for fetching recent messages
c2d1334c 2014-01-01 Unset flags correctly
a05890ea 2013-12-31 Implemented deleting via IMAP
2a744fb1 2013-12-31 RFC 2822: set From: header
ed60728e 2013-12-31 Don't delete libs with "ant clean"
48e69d3c 2013-12-27 Don't break folder list if an email can't be decrypted
df09332e 2013-12-26 Added libs to .jar manifest (so IMAP setting works)
585413fa 2013-12-25 Fixed potential NPE
68c48cb3 2013-05-01 Update to jMock 2.6.0 (v2.5.1 is not available from their website anymore)
ae87a801 2013-05-01 Fix classpath and typos
901b0515 2013-05-01 Implement SMTP
6590e312 2013-04-29 Shorten known email destinations in the folder view
e601b5f4 2013-04-29 Add a setting to enable/disable IMAP
641085ab 2013-04-29 don't try to zip up non-existent images directory (see rev. 1ae37d314f064cfb6c870727775f5b5ccc5ea69e)
5d371f98 2013-04-29 IMAP interface, works with Thunderbird but not Evolution
8fc111fc 2013-04-26 Fix Content-Transfer-Encoding (8bit doesn't allow zeros, CR, or LF)
2dc809c0 2013-04-26 Close streams when done reading
7b0149dc 2013-04-11 by request, adding my i2pbote node's public destination
24509df2 2013-04-02 Delete commented out line
263b6855 2013-04-02 Fix a compiler warning
ae3ac8b5 2013-04-02 Attach file on selection when JS is enabled
7c22899f 2013-04-01 try supressing/fixing a few warnings
3970d6d0 2013-04-01 build fix (don't try to zip up non-existent images directory)
44643011 2013-04-01 Remove unused images
f0622d20 2013-04-01 Move style attributes to CSS
63e260f9 2013-03-31 Show anonymous sender in italics
87ad8db9 2013-03-31 Display of signatures:  * Combine signature column and replied column  * Don't show signature warning for anonymous emails
cc7e0209 2013-03-30 Simplification
1a4c25a3 2013-03-30 Add a null check
79339a02 2013-03-30 Fix a comment
249389a4 2013-03-30 Replace ReentrantLock with synchronized
92a5a998 2013-03-29 Show a wait page when the password is changed
e1a49cf4 2013-03-24 Add a JSP that allows users to check encrypted files
e30cb79c 2013-03-08 0.2.8
49268b21 2013-03-07 Increase #words to 8 and #zero bits to 10
74384e05 2013-03-07 Fix: unneccessary lookup when confirm=true
9bfde0ac 2013-03-07 Fix formatting on editIdentity.jsp
55d5ea60 2013-03-05 Fix NullPointerException when no word list is available for the current language
0e36c3dc 2013-03-05 Fix: Escape characters handled incorrectly when saving and loading
0155e5f5 2013-03-05 Implement mark() and reset()
a2b38336 2013-03-05 Store fingerprint with email identity and show it on editIdentity.jsp
200d9ceb 2013-03-03 Switch address book to a properties-style format; show imported picture and text on editContact.jsp
69fd2431 2013-02-26 Switch identities file to a properties-style format; show published picture and text on editIdentity.jsp
66020b2f 2013-02-14 Add 0.2.7 release notes
34e76ce6 2013-02-12 Add a missing test
79393f0e 2013-02-12 Fix ContactTest when run from Ant
c4cdbb98 2013-02-11 trim() name before publishing or doing a lookup
eda69d1e 2013-02-11 Fix @bote.i2p suffix
1f2c528b 2013-02-11 Sign Contact packets:  * sign on publish  * verify on import  * ignore invalid Contact packets in lookups
6a99b034 2013-02-11 Implement fingerprints for directory entries
17db81ee 2013-02-04 Use native scrypt if available
d50c8431 2013-02-04 Change DEFAULT_PASSWORD_CACHE_DURATION back to 10 (I accidentally changed it to 1 in rev f957174cc94b1ed2a836e94cb71850ed612f2622)
7cbf3644 2013-02-04 Rename DirectoryEntryTest to ContactTest
bd867495 2013-02-02 Add null check
0a0418f8 2013-02-02 Make sure test files and directories are cleaned up
a5832cd1 2013-02-02 Add comment
ccbc2c3e 2013-02-02 Check for existing name before publishing
d5c6c2d0 2013-02-02 Ignore requests to replace existing Contacts
d8a60694 2013-01-27 Don't skip sleep() on exceptions; lower log level
dbaa00d5 2013-01-27 Print number of running threads
844bfcb8 2013-01-27 Implement basic address directory
882a6d20 2013-01-27 merge of '8d66ebeab68f6165dbd977cb2b5a5d52d09eab03'      and 'd27fa448d59dd46241e032896b0788e9057da5e1'
730aff2a 2013-01-26 Updated Norwegian Bokmål translation updates from transifex. (100% translation)
de6d2d60 2013-01-24 Lower max packet size to 10 kBytes
a724a521 2013-01-24 Add an option to change the ping interval
eaaf3c90 2013-01-24 Remove Util.get(Collection, int) and use toArray() instead
a0febacd 2013-01-23 Fix: addresses and identities still available after password cache expires
2f0cb066 2013-01-23 Fix forward URL when context path is something other than /i2pbote
fc898962 2013-01-22 Don't attempt to show number of new emails when a password needs to be entered first (metadata is password protected as of recently)
e9c262c8 2013-01-22 Add package.html files
093e439e 2013-01-22 Fix JavaDoc warnings
bf07f9c6 2013-01-21 merge of '90e5bcb2bddcd45813c9eb3b354026f37152c66e'      and 'a6a21a22bbe0d4a61750abff96d5aaaa23b8df54'
bba9ac40 2013-01-21 Add a command line program for testing datagram reliability
a0457273 2013-01-21 switch javadocs from bob.i2p to i2p-javadocs.i2p
e6a33094 2013-01-21 update oracle package-list URLs
20940f20 2013-01-20 Lower log level
bbc71ad1 2013-01-20 Some refactoring
64917757 2013-01-20 Make delivery checking turn-offable
b966ebbc 2013-01-20 address.tag: replace hover with click-to-expand; share code with editIdentity.jsp
ca7f4124 2013-01-20 Update en and de strings
b24fe466 2013-01-20 Fix ambiguous i18n source string "Sent"
1db3aee0 2013-01-20 merge of '05f071f4da46716c5566db81c177ec3e3ec04852'      and 'de9594e3f85d2d2401af64407c0c54c4e6a61d33'
db5a566e 2013-01-20 Language nb is more precise than no.
f485c684 2013-01-20 DeliveryChecker.java:  * Don't save metadata unless it changed  * Logging  * Code formatting
78013d67 2013-01-20 Wait until connected to DHT
261d05a1 2013-01-20 Prevent "${param.path}" from showing up as a translation string
4a79a28d 2013-01-20 Handle tags that have an attribute but the message key is in the body
844a7a24 2013-01-20 Add help text to editIdentities.jsp
9937ec73 2013-01-19 Remove more mockup elements
54629d8d 2013-01-19 Appearance changes to sendEmail.jsp
15dcd789 2013-01-19 Show whether an email has been replied to
087a4a68 2013-01-17 Remove an extra '<'
7829c44d 2013-01-17 Add a delete button after replying to an email
476d06a5 2013-01-17 German, French, Italian, Polish, Portuguese, and Russian translation updates from transifex
53223be2 2013-01-16 Display an error if no public name entered
691b8ade 2013-01-16 Bump version to 0.2.7; migrate metadata files
7ac255ec 2013-01-16 Encrypt metadata files (as of rev 24af3e..., they contain email destinations and packet keys)
cf84a6ae 2013-01-15 Don't receive packets as streams
15c45ad8 2013-01-15 Remove unused import
10100b81 2013-01-15 Synchronize a method I missed in rev 7db2932b3db6bbf32d4ae937c93eb37e06e9f099
6adef679 2013-01-14 Synchronize CryptoFactory (Ticket #610)
00411877 2013-01-14 Change log level
7dc9f6ca 2013-01-14 Change log level to DEBUG (same as the other background threads)
dcb2b0f9 2013-01-14 Translate page titles
f3967296 2013-01-13 Disable "default" checkbox when there are less than two identities
0aff058a 2013-01-13 Add a note about automatic email checking when a password is set
55f363aa 2013-01-13 Add @Overrides
6fec35ce 2013-01-13 Remove unused methods
42001079 2013-01-13 Don't show private key link when creating a new identity
ab3d23a3 2013-01-13 Fix variable name
3b0c9774 2013-01-13 Remove mockup elements
8b44166b 2013-01-13 Simplify stringification
46ca0add 2013-01-13 Shorten thread name so it doesn't get truncated in the logs
6e967b23 2013-01-13 Fix: Version number not correctly written to file
bc72ebb8 2013-01-13 Implement delivery status feature
e204d01f 2013-01-12 Remove a System.out.println()
4a05868f 2013-01-12 Catch a more specific exception
64009132 2013-01-12 Move remaining third-party code (flexiprovider, lzma, and scrypt) into .jars
d7d3f2f0 2013-01-12 Update to NTRU 1.2; move NTRU into a .jar
f9014d7b 2013-01-07 Fix unit test
a64ece90 2013-01-07 Sort relay peers
e8f16cc8 2013-01-07 Remove an unused method
d7b7355d 2013-01-07 Fix warnings
816cf49b 2013-01-05 Get rid of the I2PBoteThread mechanism and handle thread interruptions correctly
bf2e2224 2013-01-03 More detailed log message
2824c9a7 2013-01-02 Minor comment change
1dbbcd8b 2013-01-02 Fix: themes not found because directory names were localized
d7d6257a 2013-01-02 Add an import for JavaDoc
020ef33b 2013-01-02 Log exceptions
8cfe4c56 2013-01-02 Only send up to 20 peers in a PeerList
e04deb28 2013-01-02 Add info on how to set up Eclipse
fc0837ed 2013-01-02 Fix identities file name; change some wording
3ade1991 2013-01-02 Specify source=1.6 target=1.6 so we can build with Java 7. Suppress ant warning.
7bffe19e 2013-01-02 merge of '9030eb5d24f9d9f0c546f54c8a078749941e28df'      and 'ec0ec8bca6aa7c8d6b314688662891ed0c80aa34'
3ffcf9d8 2012-12-30 Update German translation from Transifex
111b3d8d 2012-12-02 Add a heading and a brief explanation
e177cd45 2012-11-27 Comments
a0ce9017 2012-11-27 Include file size in log
bc1848dd 2012-09-25 Add a few more classes from the upstream bouncycastle jar due to recent changes in I2P.
1f595fc0 2012-08-14 Change "New" button text to "Compose"
22c0b789 2012-08-14 Display last mail check time
967286ae 2012-08-09 New Arabic translation from Transifex
ef357a5f 2012-07-29 Updated German and Spanish translations from tx. Pushing en source files to tx.
9fb05ba4 2012-07-20 Remove a wrong comment
f13743d7 2012-07-20 Make the "error" status text a link that shows a stack trace
549c3968 2012-07-20 Lower log level
a3e8f657 2012-07-20 Show connect button if connecting failed
9cb3409a 2012-07-20 Add KYTV, change HH's role to Main Dev
5e87d6fa 2012-07-19 Lower log level
902db81f 2012-07-19 Disable streaming
3cd0f09a 2012-07-19 More detailed log message
d0204eff 2012-07-19 Scroll down to the plugin section
ec619dd8 2012-07-19 Fix: some threads not terminating on interrupt()
10e3df42 2012-06-06 Spanish translation update from tx
e11f41d7 2012-06-03 merge of '6f90a7d3635c3fece552972c32e378fc5177dd0b'      and '754beaa17f082deb32703c671277a2c0a5ef9ae5'
f7aae2de 2012-06-03 Add Hungarian translation from TX, thanks AdminLMH!
d1e4d1a7 2012-06-03 Apply layout fixes from rev. e3deccd7238bb85c8b21b564b52979e3b3441142 to network.jsp
9435b23a 2012-06-03 Internationalize a string
bdffd2b8 2012-06-03 Apply layout fixes from rev. e3deccd7238bb85c8b21b564b52979e3b3441142 to the vanilla theme
590b9a9e 2012-06-03 Handle individual files
86ec61db 2012-05-24 Fix layout issues in recent versions of Firefox and Chromium
45f60e92 2012-04-20 Add translators
56be74a1 2012-04-19 Dutch updates from Transifex
14376afd 2012-02-23 Translation updates from TX (cs, de, es, pl, & sv)
d2adcd64 2012-01-01 Fixed bug with "Check mail" button. Better presentation for "Compose" button. Some advantages in russian translation
13c19add 2011-12-17 copy theme folder
dad6a579 2011-12-17 Escape & entities
83d585f6 2011-12-17 s/wordwrap/word-wrap/
90ceef45 2011-12-15 Add the ability for users to add their own UI themes
0bf899e2 2011-12-14 Update translation
bbdfc574 2011-12-14 * Add theming support * Add 'vanilla' theme * Remove unused icon files
c3e6a437 2011-12-10 HTML/CSS:  * Move CSS out of JSPs  * Replace layout tables with CSS  * Make pages variable width
dbe44004 2011-11-27 Internationalize strings
bb5d075a 2011-11-27 Replace no-argument JSP functions with bean properties
5d87d5ec 2011-11-26 Put close() in a finally{ }
d24eea36 2011-11-26 Add comment
abd4a559 2011-11-26 Move the two toByteArray methods into the superclass
732b1411 2011-11-26 Fix error message
4455fbb1 2011-11-26 * Move symmetric encryption to AbstractCryptoImplementation * Don't use deprecated methods AESEngine.safeEncrypt() and AESEngine.safeDecrypt()
673d43cd 2011-11-24 Use the global context, don't create a new one
b45a1628 2011-09-23 Updated (ant poupdate) and pushed to tx
b06d07b5 2011-09-23 Add Vietnamese language from Transifex
52ac133f 2011-09-23 Add Italian and Ukrainian from transifex
4a240fbb 2011-09-23 Ran ant poupdate for ar and fr.  These have been pushed to transifex.
252a7f0d 2011-09-23 merge of '6e3866d554a0bce90773691091c5e037aa69cadc'      and '95a0846bd260b60d641a584dceb6ced27aa2e3ce'
1cd51c81 2011-07-20 display tooltips in routerconsole
dda1f5b5 2011-07-20 corrected version in manual to current release
fb5e1fc4 2011-07-08 upd i2p-bote messages_fr.po
0e6a32a0 2011-06-11 Update Arabic po from source and finished translation 100%
d9bc25e1 2011-06-09 translate French strings into Arabic
b124a104 2011-06-02 update .po's
cd21435b 2011-05-02 correction to history.txt
44130323 2011-05-02 typo es
ef339c29 2011-04-30 Fix: Existing derivparams file not found
8ea8e86d 2011-04-30 Correction to translators
0edf2cfb 2011-04-30 Replace b32 url with i2pbote.i2p
a4b284a7 2011-04-25 0.2.6
e1b9eb5b 2011-04-25 When replying to an email sent by a local identity, send to the recipient of the original email by default
f45a1855 2011-04-24 Update techdoc.txt; remove To Do / Ideas section
be545c08 2011-04-24 Don't run migration if already migrated to the latest version
6c10b8ac 2011-04-23 Fix: signature flag (Email.SIGNATURE_VALID_HEADER) not set on emails in the "sent" folder
92ff6b58 2011-04-23 Add FileInfo tool
1f54ed9b 2011-04-23 Change order of parameters in the derivparams file so it matches encrypted files
19452867 2011-04-23 Fix error messages in log: "Request contains a parameter named recipient0, but no parameter named recipientType0."
1fe6c4fc 2011-04-23 Move illegal <description> tags out of i2pbote.tld
57ead77d 2011-04-23 Capitalize static variable
dd3ed141 2011-04-23 Remove empty directories (see rev. 65aabb15c2a5df2959bdd8987b6ef8959fe3a537)
efc2363a 2011-04-23 Translate page title
19a586b1 2011-04-23 Integrate FAQ and user guide
3851faff 2011-04-22 Fix a few things in the German translation, and make it more German
a583a1fc 2011-04-22 Add/fix comments
0464c768 2011-04-22 Wrap (fold) long signatures
2bc05d4d 2011-04-22 Use identities from TestUtil
19970b1d 2011-04-22 Fix: "Check Mail" button brings up an error page if a password is required
035cd346 2011-04-21 Fix: "constant string too long" when compiling tests with Ant (javac)
cb1d5bbf 2011-04-21 Set encoding to ISO-8859-1 when compiling flexiprovider sources
058d09d2 2011-04-21 Pare down flexiprovider some more
14c728c5 2011-04-20 merge of '110cd0892a45b8d875bce780895a137da24510d8'      and 'df7b1ac4e3f00852ae445bab6259fb76bd56c5b6'
7823b38d 2011-04-19 Update russian translation
cb76489c 2011-04-18 Use SHA-512 for ECDSA-521
fb0352cd 2011-04-17 Don't create zero-length packet files
b7fcbb58 2011-04-16 Fix plugin target
80a04a70 2011-04-16 Fix IdentitiesTest
b48534b5 2011-04-16 * Fix: endless JSP forwarding loop when two emails in the same folder have been encrypted with different passwords * Make PasswordException a checked exception * Remove unused method AddressBook.iterator()
a1085909 2011-04-07 ego inflation
dc7777be 2011-04-07 fix about identity creation
0ed58252 2011-04-07 fix about identity creation
660b77c1 2011-04-07 fix about identity creation
1c2fe9a4 2011-04-06 typos
dc2d8397 2011-04-06 ug_fr.html saved as manual_fr.odt
926a06e5 2011-04-06 end (0.2.6)
7de621dc 2011-04-06 end?
35bf2b93 2011-04-06 still wip
307e4e88 2011-04-05 fix Guide
04569977 2011-04-05 still wip
b11bd7b5 2011-04-05 small fixes
4f42050c 2011-04-05 wip
4b95f344 2011-04-05 wip
e10933cc 2011-04-05 typos
db4c3f23 2011-04-05 wip
3ff443fc 2011-04-05 upd
3c302441 2011-04-05 upd
250f12a6 2011-04-05 upd
cc15bff9 2011-04-05 add
9b882810 2011-04-03 testers
72e033e2 2011-04-03 merge of '8bc35fe3851864fad1642e80e73229d6c14d1ba7'      and 'e2e8fcdb307d607cd9d22db33030468d94ec1883'
08f96661 2011-04-03 endend
7bfffe41 2011-04-03 Update to BouncyCastle 1.46 which fixes a bug in ECDSA
1425a641 2011-04-03 merge of '4fc6f4c8c7963990ab7f079b86d96b7b8aeb761d'      and 'fd7b2809cdc6fa75aacb97c2ed09a2df4101f41f'
8ed88d13 2011-04-03 ECDH_ECDSA.java:  * Remove exceptions that are declared but never thrown  * Remove safeEncrypt() TODO, not worth breaking compatibility
a99c08d0 2011-04-03 typos
c1191d80 2011-04-03 translation tweaks es, pt
844f1d37 2011-04-03 translation tweaks es & pt
612753b3 2011-04-03 Fix: message not showing when an identity is deleted
cecccddc 2011-04-03 translation tweak es
17073ed8 2011-04-03 translation tweak es
efe14faa 2011-04-02 Move "delete identity" link to editIdentity.jsp and replace the trash can icon with a "delete" button to make it harder to accidentally delete an identity
08aa68d2 2011-04-02 Suppress echoing of .bat commands during JRE installation, show a wait message instead
2b9b1903 2011-04-02 Undo rev. fcd151e70c681bd38f2677cf4e9be334c7ca4cbe which broke win32installer
87b70ff7 2011-04-02 merge of 'e1744d66f44b6c2f5d1b7d6c2d337c5f2db49687'      and 'fcd151e70c681bd38f2677cf4e9be334c7ca4cbe'
6776b870 2011-04-02 update Swedish translation; thx to hottuna and jaywalk
210ad7f7 2011-04-02 Dutch translation updated
3960e415 2011-04-02 Transifex config
32fc5675 2011-04-02 Add support for Transifex, fixing po errors.
082f553b 2011-04-02 Create i2pbote.jar in ant_build/lib instead of WebContent/WEB-INF/lib
bcb31dca 2011-04-01 merge of 'a887eef6899db3400a21fb2319e61208d91cbb29'      and 'b156a7cf0018eebcf3ca07c4273a7918ef260ce7'
a508fa1a 2011-04-01 update translations from web-based translations for sv and zh
dbf769a8 2011-04-01 end2
f3825f38 2011-04-01 end
4125ada4 2011-03-31 typo
6a425d18 2011-03-31 merge of 'a11d73c48aa593549c58e0caf94c3effd46ad971'      and 'a7d2d9270b5d91a90992345375b12bd392697635'
173c8930 2011-03-31 go on and go2bed
8c6e3bed 2011-03-31 go on
db9a13d5 2011-03-30 go on. Please user have a look...I PM my 2 questions
fa37238e 2011-03-30 update translation es and pt
2f10c2bb 2011-03-30 update FAQ and Manual
437686b1 2011-03-30 redo
53508009 2011-03-30 upd
49ff872b 2011-03-30 go on FAQ_fr
115688de 2011-03-30 begin
346d0cd8 2011-03-28 Fix remaining file deletion issues on Windows (see rev. 10d16759d75f1ee7ddcbe3bbf16a826d21345619)
e51c2956 2011-03-28 Don't report an error if there is no metadata file
15f20984 2011-03-28 Internationalize string
86a50c79 2011-03-27 Update win32installer to work with latest router install.xml, add flexi-gmss-1.7p1.jar
5d44198f 2011-03-27 Update German translation
3ab31b8b 2011-03-27 Don't log stack trace when plugin.config not found
4bbab19d 2011-03-25 If no good relay peers are known, query for peers more often
d532c611 2011-03-24 Replace NtruSign with GMSS which uses smaller public keys and inspires more confidence security-wise
63dc3ea2 2011-03-16 Fix: Identities and address book still available after the Clear Password icon is clicked
82cb40e9 2011-03-16 Check for null values from I2PSession.receiveMessage()
ec0b072f 2011-03-16 Refactor / cleanup: * Reduce visibility of classes and methods * Remove unused methods and commented-out code *
4718424d 2011-03-16 Fix: "Password cleared" message not showing
4300ce67 2011-03-16 Fix NPE in clearPasswordCache.jsp when password is not in cache
c58a8bb5 2011-03-16 Add null checks
55859d66 2011-03-16 Remove unnecessary instance variables
e11e8083 2011-03-16 Update German translation
e5f7e1e7 2011-03-16 Show an icon when the password is in the cache, and uncache the password when the icon is clicked on
6893f5b4 2011-03-14 Remove unused constructor UniqueId(InputStream)
d56ccaf4 2011-03-14 If Seedless not available, continue trying
1110bbe3 2011-03-12 add credits
65290098 2011-03-08 Add an option to show the full email identity (public + private keys)
5fd31475 2011-03-08 
8dd98f27 2011-03-07 Update russian translation
d3388284 2011-03-06 Include encrypt.bat and decrypt.bat in the plugin install (I missed this in rev. 01eb620588f85f0d86184be1fb349a43a83fbcfb)
0e174f87 2011-03-06 
6954e5c7 2011-03-06 Change /passive option to /s
8de6a0ab 2011-03-06 Update JRE download link to 6u24
d7cf8970 2011-03-06 Add launch scripts for the Encrypt and Decrypt tools
596d19d2 2011-03-05 * Add command line programs Encrypt.java and Decrypt.java * EncryptedInputStream: throw a PasswordException if AESEngine.safeDecrypt() returns null
4e44fc20 2011-03-03 merge of '0c43ec8566a97f8ad57f17575db898b259932435'      and '662195feb3df61d6b5a84dea177727d94cedb8b6'
277a535b 2011-03-03 l8tion
1dbd6ebc 2011-03-03 Add Override annotations
bcf86958 2011-03-03 Update comments
6b5bc597 2011-03-03 Update techdoc.txt
17feb49b 2011-03-02 Fix: Cached scrypt params and salt not correctly reused
96255669 2011-02-28 update zh translation adapt gettext script to work under windows: set $LG2 to update/build ONLY with the language you want.
b2a3308c 2011-02-28 Ignore blank lines
89e5a195 2011-02-28 Remove extraneous character from destination key
e4c130f5 2011-02-28 merge of 'c2a5904fdb10cc3d4cbfa195c557c06cf2f65b5e'      and 'e32e7d661f1c0e4ba49afe94f9b2d89acd40e0d5'
899c0f67 2011-02-28 add credits
fc1287a0 2011-02-28 add 安全,分布式电子邮件 and بريد الكتروني الآمن و الغير متمركز
fd3ca21a 2011-02-27 
789f8ddc 2011-02-27 If the forwardUrl parameter is not present in an ib:requirePassword tag, go back to the originating page after password entry
bda40109 2011-02-27 Don't show the "known" and "signature" columns in the sent folder
8c44d389 2011-02-27 Replace PBKDF2 with scrypt
0e2b89df 2011-02-27 Fix: Duplicate identity created if password was not entered beforehand
7c461277 2011-02-27 fix and update .po's, update de,es,pt,fr
d33b8da1 2011-02-19 Fix: PasswordException never thrown when saving/deleting an identity
5d6c30f0 2011-02-19 merge of '4e3d88847518753370c65b8240f9f8a623bb3834'      and '9a74d7db99343b21d83e1fb4d89977feb4b541d2'
7008c265 2011-02-19 Show a wait page if an email identity will take long to generate
b8597014 2011-02-17 Fix anonymous sending of emails
0457bd30 2011-02-17 Refactor:  * Rename package i2p.bote.io to i2p.bote.fileencryption  * Move DHT packets to the DHT package  * Move relay packets to their own package  * Move ExpirationThread to i2p.bote.service  * Rename RelayPacketTest to RelayRequestTest
eb446f87 2011-02-16 Add Arabic translation of the plugin
9df30736 2011-02-14 Show attachment sizes
fcd4fb63 2011-02-14 New CryptoImplementation: NTRUEncrypt1087_NTRUSign349
27713fb7 2011-02-13 Remove unused method
0db3ce50 2011-02-13 Make the default status translatable
0f04c2c5 2011-02-13 Display an error if the attach button is clicked and no file is selected
206be176 2011-02-13 Show the first few characters of the email destination in the "From:" drop-down
2511c5b8 2011-02-13 
4db98b2c 2011-02-13 Fix RelayPacketTest
8d2d3601 2011-02-13 Fix email deletion on Windows
7d7b509e 2011-02-10 initial translation for chinese
124ca1ba 2011-02-05 Inform user when an update is available
e9cd4a9f 2011-02-05 * Send big packets as a stream * Don't rely on InputStream.available() in Util.readBytes()
c627299a 2011-02-05 Fix: All input after first flush() is dropped
e0f183ef 2011-02-02 Comments
89395885 2011-02-01 Fix a NPE
a77309ab 2011-01-31 Change constant scope to private
efd04f32 2011-01-31 Remove unused method getMaxFragmentSize
a12f90d4 2011-01-11 merge of 'a0f3953b8929001edc2b9d59c3bf314040fc4c7b'      and 'fd9b359f0a1eb07fcc4c0c8ec5abe95a0bc073dd'
5919da49 2011-01-11 merge of '62dcd55b7726aedd5624b076d838cbd11787695a'      and 'cb7ee59eaf0eb93c0dcb91a8226591ca01e51342'
2d291f1c 2011-01-02 added credits
e299d2e8 2011-01-01 Quick fixes to Swedish translation.
76551e3d 2011-01-01 Added Swedish translation.
2f134bfb 2010-12-31 add translation to Norwegian
c03c481b 2010-12-31 merge of '9a8a529946e94b430d154a127ca08010f15d66d5'      and 'cc0e869985b06631a79b60bf1060d86cc0e88afd'
7d1fed76 2010-12-29 mods to pt
7148172e 2010-12-22 New unit test: PasswordCacheTest
5c102da3 2010-12-22 * Reset expiration when a password is set * Clear derived key when password is cleared
f3a1c618 2010-12-20 merge of '243e68f714882dc1fe2f79958b31ac862053ba9f'      and 'f9ab92a43553dde223bb24940d32f19a60022b34'
5c221f31 2010-12-20 Add missing copyright notices
7ac42c0e 2010-12-19 translation updates
4da3ee6a 2010-12-19 New Ant task: win32installer
3aecc569 2010-12-19 Restore plugin.config after mismerge
5ea124b7 2010-12-19 Jetty fix
7fb33a0d 2010-12-19 Fix return to folder.jsp after password entry
6d2878db 2010-12-18 * Add jMock .jars to JUnit classpath * Offer to download JUnit and jMock if they're not found
9bee5057 2010-12-17 merge of '0b216d7818b91cf69fdfb88048dfcbfbfce02833'      and 'de95731855e9e7f8a81b42642fd566ac6ee76c08'
bdce2eca 2010-12-17 merge of '561ea16dc8eb82dc348dca962f30e579c8ed3d63'      and 'b1b87fc5a28b9aad267b6c3aeddc1c23377c5ab6'
d3ee66ff 2010-12-17 * Remove unused method toBase32 * Replace instanceof with getClass() in equals()
647efead 2010-12-17 Fix unit tests; jMock now required to run them
09f5d107 2010-12-17 translation update de
d33bc11a 2010-12-16 Contributors update
2d6066ad 2010-12-16 Remove serialVersionUID from non-serializable class
0bdd216e 2010-12-16 Remove an obsolete comment
75336e89 2010-12-16 Fix an import
3870ca53 2010-12-13 plugin.config nl link translation
5aaae853 2010-12-13 plugin.config translation
a64cdca3 2010-12-13 merge of '0039d7fd449038234648a57ff05906383d0ce75d'      and '92c193a4f6709ce5205a43617bcd8a144ae598ca'
99f64adc 2010-12-13 merge of 'b85935006af43967ba763bb53ab75c6f0278c539'      and 'eff65f71bc633578ad72cbcb2d5301f1d1766c30'
05c24ab5 2010-12-13 explicit merge of '93973b70de2d4a41180a7d2f201b684e5ea6d445'               and '451bb8a70baa411c0d401c329b5b60b7c14d09b3'
897d43ff 2010-12-13 Fix a typo
46b9e3a0 2010-12-13 explicit merge of '7ca94be8ef990b10920f144f441a51d239d33c48'               and 'ef38ab9835eb8fec5dbd981f2951d12d5d0d5d0d'
018209be 2010-12-13 Dutch translation by KwukDuck
fe14f97d 2010-12-13 explicit merge of '5c7fd9edde41ff7c26cd2fb28e1a46b96c1f8538'               and '9245efd7b168684236148a7102535f0a009e2c4f'
f2b1d3cc 2010-12-13 Portuguese translation
0600b6e5 2010-12-12 merge of '08eff6bfa6a2b340f314f1de096c771337eb3a3b'      and '1dbb023c5b2674f49708ad83060aed35cdb3a7a1'
aab0b139 2010-12-12 * Don't encrypt meta files * Don't attempt to convert a non-existing directory
872c3869 2010-12-12 Focus the "old password" field
23f57da2 2010-12-12 * Cache file encryption key, reuse salt for performance * EncryptedOutputStream: Cache key, not password; keep a copy of the key until close() is called so the key is not lost when the original is erased by PasswordCache * Prevent password expiration during password change (which can take some time)
7fbd29b7 2010-12-10 File encryption
b8fd5b5c 2010-12-07 Add TO-DO note for HH to do an important fix.
c81f2cb4 2010-12-07 merge of '43b11afe7287401107616e5cff0c1d4773c0e1d3'      and '92344efb7a96786e8ef1e256f754ea8e9666c765'
6c859388 2010-12-04 changes to Spanish translation
087b8ddc 2010-12-04 changes to the manual
0eba059a 2010-11-28 merge of '28760fe7e19dd265a2ede35a51f73e5c07b1a2aa'      and 'db84face38fdd977157aaf02c444b894c7049d84'
7136ab21 2010-11-28 Refactor out Deprecated destFromName calls, fixup nb files
3f867d80 2010-11-20 plugin.config: add russian translation
a8bb3652 2010-11-16 added string to plugin.config and a minor correction
1672d95a 2010-11-11 merge of '2e376f13320c297b93e734b3f39e113752891578'      and 'f2d47e61537a5a2f2077eae200af07ef12114b2e'
c3c83264 2010-11-11 update manual
c1152780 2010-11-11 merge of '6b7cd0a43c55b9a2ae53778a25e6940cfe4fba1f'      and '9245efd7b168684236148a7102535f0a009e2c4f'
a65653b3 2010-11-11 Spanish translation for Bote; fixes sent in by Redzara to French translation
d92f6672 2010-11-04 merge of '37af2db09b85c46e860280cdb70d92bf07810401'      and 'df5454597876a5df6f61e5adb97d30fb57b63d48'
09543982 2010-11-03 minor corrections
50da5ccc 2010-11-03 Fix a NPE
2b71438c 2010-10-29 French translation by albat and mixxy
1b5356e8 2010-10-26 Fix a comment
9c951dc2 2010-10-26 Fix a NPE
117c35cc 2010-10-14 * Sign email before saving to sent folder * Don't hide signature column in folder.jsp. It was a kludge, signing before saving is the right way to do it.
dbd46e2b 2010-10-03 Comments
a2c55a78 2010-10-03 0.2.5
c423b733 2010-10-03 Implement KBucketTest
a031f4da 2010-10-03 Decrease text field width on the "new email" page
7573eed9 2010-10-03 Minor things
1e786386 2010-10-03 Refresh folder list when new mail arrives so the inbox message count is updated
19ea512d 2010-10-03 Fix: Two new recipient fields appear when the "plus" button is clicked after entering text in the existing recipient field
b9155254 2010-10-03 Use base64 for RelayPacketFolder filenames, which is what all other folders do
0ebe7e68 2010-10-02 Update techdoc.txt
48340cb7 2010-10-02 Update manual
02b803fd 2010-10-02 Fix duplicate "Unknown" in the date/time column in folder.jsp
4d306d5f 2010-10-02 Translation update
388843a4 2010-10-02 Implement reading from ByteBuffer and writing to OutputStream
e0352182 2010-10-02 Make the outbox check interval a config setting
ac778534 2010-10-02 Fix display of date/time in showEmail.jsp
ce664ebf 2010-10-02 * Use a non-deprecated variant of ElGamalAESEngine.encrypt() * Do ElGamal/AES in the new methods Util.encrypt() and Util.decrypt() * Use a min padding size of zero when calling ElGamalAESEngine.encrypt()
93041cb1 2010-10-02 Simplifications:  * Get rid of RelayDataPackets, put everything in RelayRequests  * Put a packet ID in all Communication Packets (most of them had it already)  * Combine MalformedCommunicationPacketException and MalformedDataPacketException into MalformedPacketException
d68fd542 2010-09-30 Log deletion of relay packets
a7b4b9ac 2010-09-30 Pad relay packets
20841b7a 2010-09-27 Remove the unused and confusing Email Address field from the Edit Identity page
e7f186b7 2010-09-27 * Write to metadata the time an email is created * Add a "create time" column to the outbox * Make "create time" the default sort column in the outbox
2a2adc66 2010-09-26 Change a few more logging statements I missed in rev. 6c3cec9cf9ac70dadd403a2f2bc10a5be18f1fbd to print peers in base32
99899406 2010-09-26 * Fix NegativeArraySizeException when a two-byte length field in a packet contains a value greater than  Short.MAX_VALUE * Keep packet size below I2PBotePacket.MAX_DATAGRAM_SIZE, take into account relay packet overhead
f71f0e14 2010-09-25 Show a message after saving settings
3c7bd9ac 2010-09-25 Simplify folderLink.tag by using folder.jsp for the outbox; see rev. 7790618d3eba2f460983f87db7ddc1fe1b94053c
14393582 2010-09-25 Take the user back to outbox.jsp after an outbox email is deleted
0895c3c9 2010-09-25 Sort by name and destination, not just name, so different destinations/identities can have the same name
8a6c6c26 2010-09-24 Fix non-ASCII characters in the New Identity / Edit Identity form by changing it to POST (should be POST anyway)
c3883bb0 2010-09-23 Make the "unknown" column a "known" column, show a check mark when an email dest is known
4e5104ff 2010-09-23 Show status for outbox emails
ecf09311 2010-09-23 Reduce default delay to 5..40 minutes per hop
cbd7a8df 2010-09-23 Don't show signature column in "sent" folder
08cd5406 2010-09-23 Sort address book and identities by name
af2f6356 2010-09-22 Update technical documentation
1b481dcf 2010-09-22 Add user manual by mixxy, delete userdoc.txt
6ee50059 2010-09-22 Align Sent Time
b4b94ad3 2010-09-22 Log peer destinations in base32
aa4551fc 2010-09-20 Show local destination and peer destinations in base32
9d77f571 2010-09-20 Add a note about attachment sizes
3115faed 2010-09-20 Fix comments, remove unnecessary braces
4e7b0c11 2010-09-20 Keep trying to send an email if there is an error
c28c9906 2010-09-19 Replication:  * Replicate onto the closest nodes to the packet's DHT key instead of the local destination hash  * When a packet has been re-stored since the last replication, assume it has been stored on all closest nodes and don't replicate it to any peer  * When a delete request is received for a replicated packet, stop replicating that packet and replicate the delete request instead
d3a072c5 2010-09-16 * Don't replicate packets that were recently replicated * Log number of replicated packets
174a94f4 2010-09-16 Fix: ReplicateThread.packetStored() not called when storing in a DeletionAwareDhtFolder
9f6806a7 2010-09-15 Verify hashes of received email packets against the DHT key
809dc90b 2010-09-09 Fix non-ascii characters (switching from Commons FileUpload to JavaMail-based multipart parsing broke them)
c14faf5f 2010-09-07 Lower the LZMA dictionary size, 2^24 causes heap space errors when running as a .war in the router
d9034fee 2010-09-06 Change a few log levels
c30180fc 2010-09-06 Remove newlines from the end of files (just a personal preference)
110a4bd4 2010-09-06 Fix LZMA dictionary size
06106c0b 2010-09-06 Use isProtocolVersionOk() for version checking, see rev. c848aa079ff8d62fac18c1c7782d48befc13b98d
a006e3b6 2010-09-06 Use different texts for the two test emails
d37911e5 2010-09-06 Add a new field containing a Return Chain to the Relay Request format. Only empty return chains are supported for now.
b1286932 2010-09-06 * Talk to peers that use protocol version 4 or higher * Do the version check in one place (I2PBotePacket.isProtocolVersionOk()), not two
85d958a0 2010-09-05 Add Russian translation by suhr
ca1d5e6d 2010-08-25 Update RelayPacketTest to use the new file format introduced in revision bfde50fb7c22410d7859a6914990798c68127bc5
245e50aa 2010-08-22 Count emails with no metadata as new to match the behavior of the EmailMetaData class
4d0d5d24 2010-08-18 Minor things
f1d8554a 2010-08-18 Put a space between name and angle bracket
c76a33fa 2010-08-18 Fix: Extra blank char after the name when clicking "add to address book" in an email
5a3e49c4 2010-08-18 Replace Thread.sleep() with awaitShutdownRequest()
2ad8d2ac 2010-08-18 Fix: Folder view only shows the recipient if it is a local identity
d0c4fd7c 2010-08-18 * Only use the last 20 peer list requests / responses to calculate reachability * Increase RelayPeerManager.UPDATE_INTERVAL to 60 minutes
6b38f0d5 2010-08-17 Comments and other minor things
0105bb36 2010-08-17 Cleanup
35d22a96 2010-08-17 * Fix: EmailPacketFolder.storeAndCreateDeleteRequest() does not correctly handle multiple deletion records in the same DEL_ file * Fix: Delete verification hash contains the same data as the delete auth key. Apply SHA256 so the delete verification hash actually is the hash of the auth key.
2cce8c9a 2010-08-16 Remove option to set the UI language, always use the router console setting. The language option was changing the router console language, so it was kind of pointless.
a525c3d9 2010-08-16 * Rewrite of MultipartFilter: Use javax.mail.internet.MimeMultipart for multipart parsing, get rid of commons-io and commons-fileupload. * Move attachment adding code in SendEmailTag.java to Email.java * Encode attachments in 8bit rather than base64 because base64 negates compression
8f090fd3 2010-08-12 Clean up test folder when finished
c36b24ba 2010-08-12 * Comments, Formatting * Move ProxyRequest.java into the seedless package because it is only used there
9b8fd8e6 2010-08-12 * Store metadata files along with email files * Move the new/old flag to metadata (no more N_ and O_ filename prefixes) * Write the received time to metadata when an email is received * Use the received time as the sort criteria when an email has no sent time
078f0952 2010-08-01 Fix an NPE when trying to connect before Seedless is initialized
83433190 2010-08-01 * Don't set the Date header if it is already there * Slight code simplification
b112ad89 2010-08-01 * Remove KademliaDHTTest (would have been to complicated to implement) * Add KBucketTest (does nothing yet)
73f8295c 2010-08-01 A few little things
c2da6795 2010-08-01 * Make getFilenames() protected * Remove individualPackets() override in DeletionAwareDhtFolder which does nothing
ac46459a 2010-08-01 Send a specific delay time in relay packets, not a min/max range
c663415e 2010-08-01 Add includeSendTime parameter so Email.updateHeaders() doesn't have to call I2PBote.getInstance(). It also has the small benefit of the "include send time" setting being determined at the time the user clicks Send rather than the time the email is sent from the outbox (which doesn't always happen instantly, for example when there is no network connection yet or several emails are queued in the outbox).
68f9360f 2010-08-01 Folder.iterator(): Don't return null if an invalid/unreadable file is encountered, skip it instead
e0436d1e 2010-08-01 * Do not exit background threads on unchecked exceptions * I2PBote.java: put all background threads in a Collection like sponge suggested * Do automatic and user-initiated email checking in one class (EmailChecker) * New interface NetworkStatusSource, used by OutboxProcessor and EmailChecker * Several other changes
a488294b 2010-07-29 Convert tabs to spaces
175345df 2010-07-25 Shut down EmailPacketTask threads when the tasks are finished
78bb4f73 2010-07-24 Fix member field name in comment
29f485f4 2010-07-24 Fix: Reachability of relay peers changes to 100% after startup
b794aaf0 2010-07-24 Remove unused methods
465d509b 2010-07-19 * Autorefresh "inbox" and "sent" folders * Autorefresh outbox if it is not empty
a4b25f0a 2010-07-19 Stop refreshing when the CONNECTED or ERROR status is reached
7feba2f1 2010-07-19 * Don't disable the "new email" button * Refresh the frame until the Check Mail button becomes ungreyed
2e72fb7f 2010-07-18 Don't send email if no recipient, show error message instead
a225fa20 2010-07-18 Fix NPE when sending before connected
f87fe268 2010-07-17 javadoc Ant target, javadoc formatting, documentation
d2b38a3f 2010-07-16 merge of '34a49b587bbb0c309e60a1df7a9a792654e48fd2'      and 'bf83f8762c1d6cfaa71871d32bdc9a3e089058c1'
ef8a143e 2010-07-16 Ant build file:  * Use I2P libs from $I2P/lib instead of the mtn working directory  * More help text  * Check for presence of the I2P env variable  * Add "src" to the "all" target
e33d186e 2010-07-15 When writing a file or creating a directory, set permissions to readable / writable only by owner
0527c1f2 2010-07-14 Fix counting of #lines read
7ee570e3 2010-07-14 * Translate the string for the outbox status "Queued" * Remove an unused method
c7182a27 2010-07-14 Remember the selected sender identity when leaving the "new email" page (via the address book button) and returning.
f972c9e2 2010-07-13 Fix: MultipartFilter drops request parameters that are added via jsp:param in a jsp:forward
29df785a 2010-07-12 merge of '9c9772d22e302d48a4c849c18c8ff3bcb3ff8404'      and 'e09e454db05d06c660ba0e8e2ff5021aa52ec787'
e3448c9b 2010-07-12 Added needed jar files to project.xml for NB 6.5
a3a8c779 2010-07-12 merge of '3e369acec144cfce4278be9456f6b81de0455791'      and 'dc2bcd3d2bdc8b5c7462377da7462d3f5108b3ee'
67dab8aa 2010-07-12 merge of '3e369acec144cfce4278be9456f6b81de0455791'      and 'dc2bcd3d2bdc8b5c7462377da7462d3f5108b3ee'
7c2fc479 2010-07-11 Refactor of Seedless:  * Move the doSeedless* methods out of I2PBote.java into the Seedless* classes  * Move the other Seedless stuff into SeedlessParameters.java  * Don't inject peers into DHT, call a getter on SeedlessScrapePeers instead  * Many little things
0a3a2bed 2010-07-11 Add commons-fileupload-1.2.1.jar and commons-io-1.4.jar to build file
38ab0630 2010-07-11 Change announce to 60 minutes to deal with new inter-server transfer specs. Announces should be done once within 1/5th of it's TTL 72 minutes for bote.
d6be15ca 2010-07-11 * Fix for a bug in the multipart code that broke sending of emails on Jetty * Ditto for non-ASCII chars not being encoded properly
77ec925d 2010-07-07 Post-merge cleanup. This revision diffs cleanly against 14ada4dcae2f555f4b5539305e32f96bafec675e (the last rev before Seedless).
2bd6eac5 2010-07-04 merge of '15679f7110fe5f55407d2d04c63bc18e1d460113'      and '289456e0b294a38c3d0e75d69873d614170f9e58'
50673b63 2010-07-04 Comments
ee578e7b 2010-07-04 Use a SHA256 hash rather than random data for the base32 part of the filename to avoid creating a new copy if a packet is received more than once.
40257346 2010-07-04 * When a relay packet is received, acknowledge receipt to the sender * Resend relay packets until acknowledgement is received
2bbba380 2010-07-03 * Attachment support * Lower the priority of some background tasks
479b28f3 2010-06-30 Fix: Corrupt padding error with ECDH when the input size is a multiple of 16
07a3340f 2010-06-28 Depend on Seedless _first_, then fallback to built-in, as per HH.
69f289b0 2010-06-25 Fix annoying NPE
308330c8 2010-06-25 Success! We now turn off Seedless peer searches and scrapes when network is connected. Announce to random ordered Seedless servers. Thanks to ALL our testers, especially superuser and darrob. Thier feedback was very valuable!
aac785dd 2010-06-25 Specify PROTO_DATAGRAM, PORT_UNSPECIFIED, and PORT_UNSPECIFIED when sending. The default uses PROTO_UNSPECIFIED, which isn't what we wanted.
6bd4cab2 2010-06-25 Muxed depends on gzip == true?
816eb59c 2010-06-25 Compress emails before encrypting them
889a2806 2010-06-25 * Add sponge as a contributor * Replace HungryHobo email address with email destination
a783a0dd 2010-06-24 Salt relay peers like bote does
617122df 2010-06-24 Fix NPE.
e471ddd5 2010-06-24 Added injection to relay peers as well. This possibly isn't the correct intent.
1999eb24 2010-06-24 merge of '7561cf99368e4a244f4b67c350c0c92f7a1afc08'      and 'a74daea914c9a98d3953dbe4e2507b4ad032ae66'
a22eea0f 2010-06-24 -
62a1a85a 2010-06-24 zap comment
00fbabde 2010-06-24 merge of '5ee8d2f16550b6e4181d9123c069dd8e800059de'      and 'f9c92102d1893e1d6e2597ce50dd617256a4aee3'
53a05238 2010-06-24 .
66b970d2 2010-06-24 disapproval of revision '0c7dc27eead74ddbe0d89793014d5c1cf2e35b2f'
2b5ce8cf 2010-06-24 And now we hope it is set correctly. disapproval of revision 'f9c92102d1893e1d6e2597ce50dd617256a4aee3'
408f63bd 2010-06-24 Hopeful fix to the commits that mtn seems to have goofed up on. There is nothing in this patch.
1ce75177 2010-06-24 Change for log debugging.
0df770bc 2010-06-24 Temp fix. See comment KademliaDHT.java ~line 364
120de4af 2010-06-24 Fix stupid bug *embarrassment*
b557973e 2010-06-24 Should work with passworded routerconsole, Don't know if the injector works right. Needs testing, etc. That's the part HH needs to finish if it is incorrect.
6b833622 2010-06-22 Seedless:   Can scrape servers   Can scrape peers   Can announce   Can't work with a passworded router console yet.
99baa56a 2010-06-20 Apply patch by zzz to abort the build if <exec> returns non-zero.
95ac52b7 2010-06-20 Increase expiration times in testCheckExpiration() to fix test failures reported by one user.
e4696b2b 2010-06-18 Add Netbeans 6.5 Project file
00226dfe 2010-06-14 Remove some unnecessary files from the src target
c0ad846a 2010-06-14 
9a022667 2010-06-14 0.2.4
5d5a4bc5 2010-06-14 Fix "Gateway disabled" error with non-gateway emails
2976f10d 2010-06-14 Don't unnecessarily send a IndexPacketDeleteRequest if there is nothing to delete
9ac0fd12 2010-06-14 * Set the X-I2PBote-Sig-Valid header when an email is received * Use the X-I2PBote-Sig-Valid header flag to determine if an email has a valid signature; only verify the signature if no X-I2PBote-Sig-Valid header
4062cfa9 2010-06-13 Restore contents of built-in-peers.txt which I accidentally changed when I moved it to a different package
ff0d6e2f 2010-06-13 * Change console link name * Use a b32 update URL
9461bc1e 2010-06-13 * Don't use protocol v2 peers as relay peers, put them on the ban list * Fix: BucketManager doesn't ban unknown peers if they use the wrong protocol
f06e936e 2010-06-13 Update translations and fix a few strings
f90f6059 2010-06-12 Minor things
f529cd3d 2010-06-12 Gateway (in/outproxy) support
a9a0a520 2010-06-11 Fix sending and displaying of anonymous emails
67a87181 2010-06-11 Start peers out at 0 reachability
24d2f2fd 2010-06-11 Suppress two warnings in the ant "compile" target
c3a3a197 2010-06-11 * Include bcprov-ecc-jdk16-145.jar * Fix path to built-in-peers.txt which has moved * Don't add jstl.jar and standard jar to the war
37643b15 2010-06-11 Use 'outbox', not 'outbox/local' for the outbox dir
defbb684 2010-06-11 Make packet type codes compatible to the older packet version so no exceptions are thrown when v0.2.3 peers and v0.2.4 peers try to talk to each other
744c1c1b 2010-06-11 Fix: Existing IndexPackets get lost when adding a new one to the IndexPacketFolder
88e0f5c0 2010-06-10 More tests
01eb01dc 2010-06-10 Minor
03dac6db 2010-06-10 Shut down replicateThread when Kademlia shuts down
535dd76c 2010-06-10 * Start / stop the RelayPeerManager service on app startup / shutdown * Move RelayPeerManager to i2p.bote.service * Keep reachability statistics on relay peers
e211b104 2010-06-09 Cleanup
8533790a 2010-06-09 Logging tweak
09a271ba 2010-06-09 Fix NPE when sending email before DHT is done bootstrapping
09337fa2 2010-06-09 Minor things
97a93db9 2010-06-09 * Fix: Relaying does not work with more than one relay peer * Add remaining relay-related files
9c9b4b54 2010-06-09 Fix: sentSignal and sentTime were not initialized in one of the CommunicationPacket constructors
9212075b 2010-06-09 Call removePacketListener() even if an exception occurs
0c95890d 2010-06-09 Minor things
13519005 2010-06-09 Implement sending of emails through relays
ff87fa0a 2010-06-09 Remove an unused class
ed1b2bcd 2010-06-05 Start OutboxProcessor and ReplicateThread when Kademlia is finished bootstrapping
6b796c17 2010-06-04 Remove unused constant STALE_THRESHOLD
cdfbd986 2010-06-04 Cleanup
8e471d84 2010-06-04 Add a paragraph about encryption algorithms to noIdentities.jsp
db72661f 2010-06-04 Implement ECC-256
5524b4b5 2010-06-04 Periodically replicate email packets and index packet entries onto other nodes
6488aeac 2010-05-29 Preliminary work for packet replication: Keep a record of (locally) deleted email packets, like it is already the case for index packet entries. Use one common format (the new packet type DeletionInfoPacket) for both packet types so Delete Authorization Keys don't unnecessarily take up space in Index Packets.
91e6daa3 2010-05-28 Some minor stuff
f56c3ca1 2010-05-28 Read the Delete Authorization Key from an UnencryptedEmailPacket, not from a received Index Packet (because it's always zeroes)
8c5b402e 2010-05-28 * Zero out Delete Authorizations before sending a response to an Index Packet retrieve request * When an Index Packet Delete Request is received, compare the hash of the Delete Authorization against the local Delete Verification Hash, not the local Delete Authorization (which is always zeros)
50eb754d 2010-05-27 Add license.txt
ae41a904 2010-05-27 Use the AES implementation that comes with I2P instead of a JCE provider because the Sun JRE makes it a PITA to enable "unlimited strength encryption" in an end user friendly manner. Fortunately, only AES is affected by the crypto restrictions.
892a795c 2010-05-25 Remove an unused method
d2634bd1 2010-05-25 Fix a potential lockup
6a482911 2010-05-25 Minor stuff
35f1320e 2010-05-25 Delete email packets and index packet entries that are more than 100 days old
6a9729f8 2010-05-25 * Add BouncyCastle ECC library (a subset of bcprov-jdk16-145.jar that only contains the ECDH/ECDSA provider) * Add BouncyCastle license
a064857f 2010-05-22 Minor things
3fab712d 2010-05-22 Add null checks
d4542b84 2010-05-22 Add some missing license headers
366fa10c 2010-05-22 Several changes to the packet format:  * Add time stamps in preparation for packet expiration  * Change a few packet type codes  * Support addt'l crypto algorithms, implement elliptic curve encryption  * Fix two design flaws in the packet format:     1) anybody can delete index packet entries of others     2) malicious storage nodes can delete all copies of an email packet before        the recipient receives the packet
050a6dbb 2010-05-10 0.2.3
8bb3313f 2010-05-09 Make the INFO log level more useful
e7575018 2010-05-09 Synchronize on packetListeners when iterating
863b5891 2010-05-09 Name the "sent" folder something different than the "sent" time column because they translate to different German words.
6d581f37 2010-05-09 editIdentity.jsp:   * Remove garbage characters at the top of the page   * Fix the cancel button
8c152f27 2010-05-09 Delete index packet entries (email packet keys) from the DHT even if all requests for the email packet come back negative. This deals with the problem of index packet entries not going away when the email packet does not exist.
07fdac23 2010-05-09 Some comments
e467e623 2010-05-09 Fix constant s-bucket refreshes when there are very few peers.
6e2a14af 2010-05-07 Override toString() for logging
f23db925 2010-05-07 Move the logStatus() call so it doesn't report alpha-1 parallel requests when there are alpha.
93bf69d0 2010-05-07 Increase alpha to 10
cd74c6aa 2010-05-07 Fix a NPE
240a8c12 2010-05-07 Fix a bug that hides some text if the "ellipsis" CSS class is used. The fix is to get rid of ellipsis, which was a hack anyway, but it means no more fade effect when text is cut off.
4888f0dd 2010-05-06 Javascript fix
7c5aa40d 2010-05-06 Increase Kademlia lookup timeout to 5 minutes
d9fb751b 2010-05-06 
a23983f6 2010-05-06 Eliminate duplicate message IDs, they cause msgmerge to fail
561b4244 2010-05-06 Rename activeSince to firstSeen
331f72ef 2010-05-05 
bea47a0c 2010-05-05 Remove some dead code
232e6f72 2010-05-05 Remove the localDestination parameter from the KademliaDHT constructor, read localDestination from the I2PSendQueue instead.
1557694b 2010-05-05 * Handle requests to the local destination directly, not through the network * Fix/add some comments * Rename CheckEmailTask.findEmailPacketKeys() to CheckEmailTask.getEmailPacketKeys(), rename the parameter to dhtPackets * Add some debug output
1824e0dd 2010-05-05 
d6d0756a 2010-05-05 Use a bean property for displaying the local destination hash, no need for a tag.
c08eff08 2010-05-04 Remove an unused method
7664dcbd 2010-05-04 
1e666ca7 2010-05-04 Refresh folder list every 20 seconds when sending, otherwise every 2 minutes
56baffba 2010-05-03 BootstrapTask: unlock bootstrap node before adding to bucket
529b39ef 2010-05-03 Cache message IDs of emails that have been received, and ignore email packets whose message ID is in the cache.
a8267502 2010-05-02 When new email arrives, don't do a page refresh, but go to the inbox URL
cff2752b 2010-05-01 Insert a random number into the request string so others can't see contacts or identities using the CSS history hack
3daa866b 2010-05-01 Strip local address book names before sending an email
e1e1a7a8 2010-05-01 Don't throw a NPE in the call to log.error()
b76288e9 2010-05-01 One more trash folder related commit in addition to rev. ec310a306f43f2b5e51f77640f415bca08e5971d
905f9aa9 2010-04-30 * Implement the trash folder * Move emails to trash instead of deleting them; do delete emails from the trash folder
57a2d2b8 2010-04-29 * Implement the "Sent" folder * After an email has been sent, move it to the "Sent" folder
7d060c49 2010-04-29 Make the folders box an iframe, auto-refresh if outbox contains emails.
e2c83d58 2010-04-28 Add a file I missed in rev. 82ebf22a7ebcec38ddaff619afe27a8e19dc9fcc
f5a73349 2010-04-28 Instead of a random DHT key, use a SHA-256 hash so receivers can verify the integrity of email packets.
f02148e1 2010-04-27 Show any recipient, not a local recipient, in the "To" column in the outbox (usually there are no local recipients in an outgoing email).
e03a6640 2010-04-27 Make the "To:" column sortable
a4c37841 2010-04-27 When sorting a folder by address, sort by displayed address, not by header value.
b44f6701 2010-04-26 Fix duplicate "identity created" message when creating a new identity
a5765a59 2010-04-26 Remove the "new" parameter which does nothing
ae7c0947 2010-04-26 Fix page title
af9e46c9 2010-04-26 Focus the destination field if it is empty; if it is not, focus the name field
eb39dfdb 2010-04-26 Always put a blank recipient field at the end
6b5ad92e 2010-04-26 Rename Field to EmailAttribute
d60f2656 2010-04-25 Escape HTML in the textarea
f36d0f22 2010-04-25 Implement the "remove recipient" button
c796311c 2010-04-25 Replace some JSP code in newEmail.jsp with Java code (it was getting too complex for JSP)
4ee42e9a 2010-04-25 Show the "add to address book" button only for the last address
33ce63db 2010-04-25 * newEmail.jsp: Implement the "add recipient" button * Rename the JSP function getRecipients to getSortedRecipientParams * newEmail.jsp: Remove redundant filtering of recipient* parameters which is already done in getSortedRecipientParams() * sendEmail.jsp: Keep ordering of recipients the same as in the UI
340d6cd8 2010-04-24 Handle single quotes and double quotes in text fields
560f6e49 2010-04-23 
6445dd5d 2010-04-23 Handle whitespace in email destinations
86fe700d 2010-04-22 When displaying an email, show full Email Destinations only on mouse over
d2d4031f 2010-04-21 Update outbox status after every sendToOne call
e598b816 2010-04-21 Handle CC and BCC addresses
7f9f55fb 2010-04-21 Fix title of the outbox page; remove reference to non-existant param.path parameter
a707f283 2010-04-20 After deleting an email, go to the containing folder instead of the inbox.
0f958258 2010-04-20 Save outgoing emails to the outbox and send them in the background
c7640081 2010-04-19 More detailed debug output
dc434925 2010-04-19 * If an email destination in an email is known, always show the name from the address book or the identity * Don't show an add button if sender is a local identity * Several minor things
e87a4efe 2010-04-15 Default to descending sort order for dates, ascending for all other fields
95cfab5e 2010-04-15 Remove an unused constant
ab1ad922 2010-04-15 * New Email page: Add a button which adds a recipient to the address book * Address book: In select mode, show a "return" button instead of the "add" button if the address book is empty. * Rename the HTTP request parameter "search" to "select" * Fix some JSP compile warnings caused by invalid XML in i2pbote.tld
f2afa866 2010-04-15 Some comments
de53a1fb 2010-04-15 Add missing license headers
97f07872 2010-04-11 Say whether the unit tests passed or failed
52f29539 2010-04-11 Show mail folders sorted; clickable column headers for sorting
ade9804a 2010-04-04 Remove unnecessary call to getProperty()
7fb9cb82 2010-04-04 * JspStrings.java is the new jsp2po.sh * Extract strings from <ib:message> tag bodies * Add a few more missing translations * Don't translate "value" parameters in <button> tags * Finish the text in noIdentities.jsp
3d262db2 2010-04-03 Fix high CPU usage bug introduced in rev. 54d0f214f9894b433925bc2d0979c5ea6eb924b6, reported at http://forum.i2p/viewtopic.php?p=23465#23465 (Thanks to the reporter!)
d093f81e 2010-04-01 * Folder.jsp: Add "Unknown Sender" and "Signature" columns * showEmail.jsp: Show whether the signature is valid
1c2af589 2010-03-31 Oops, forgot to add Locales.java in rev. 9b93a31813555d2157e6a815e907bb3f6b5c31fe
daa289be 2010-03-31 Add EmailTest.java
40ad4cd4 2010-03-31 Fix a NPE
d9931f51 2010-03-31 * Sign outgoing emails, verify signatures of incoming emails * Don't make a copy of the email for removing BCC headers, work on the original * Remove unused methods from i2p.bote.Util
78a5d59e 2010-03-29 * Fix: i2pbote-update.xpi2p too big when building the plugin target twice in a row * Add missing files to the src target
c4be1543 2010-03-29 A few minor things
2652d753 2010-03-29 Don't query locked peers
72621a20 2010-03-29 * Add a UI option to include / not include the "sent" time when sending an email * Format the "active since" column on network.jsp according to the locale
960f480d 2010-03-28 Remove extra line in the <textarea>
d8f7d8bf 2010-03-28 * Show "sent" date/time in showEmail.jsp * Format date/time according to locale
4b0fdf69 2010-03-27 * Alternate colors in folder list * Replace tabs with spaces in folder.jsp
739e517c 2010-03-27 Do not translate the directory name in a folder link, only the display name
0af131b0 2010-03-27 * Make language user-configurable * Optionally leave text that is auto-added to an email, such as "Re:", untranslated
b780f79e 2010-03-25 * Move setLastLookupTime() calls from KademliaDHT to BucketManager * More logging changes
6fcaf376 2010-03-25 Synchronize on pendingRequests in packetReceived
9bf0f45a 2010-03-23 
d23ac867 2010-03-23 Add/change log output, add some comments
3195fd1c 2010-03-23 
76fd98c3 2010-03-22 0.2.2
f3bdebea 2010-03-22 Spelling of the plugin display name
d735db12 2010-03-22 Increase max. lock time for unresponsive peers
903c58d7 2010-03-21 Use a solid background for displaying emails
96d51bbc 2010-03-21 Fix: Bootstrap nodes are shown as active since 1970
35050ae5 2010-03-21 Don't create a N_ file if an O_ file exists for the same message ID.
2fa58dc2 2010-03-21 * Rename I2PBoteThread.awaitShutdown() to awaitShutdownRequest(), keep DHT.awaitShutdown() * Write peers to file on shutdown
f3075617 2010-03-21 Abort lookup on shutdown request
d313cd89 2010-03-21 Use BufferedWriter.newline() instead of System.getProperty(line.separator)
13174f71 2010-03-21 Cleanup
668c7c48 2010-03-21 Implement IndexPacketTest
8724648d 2010-03-19 Don't exit until send queue is empty (or the thread is killed)
707aaf0b 2010-03-19 Shut down ExecutorService when done so threads exit
bb055ce5 2010-03-19 Adjust text field widths, now that the CSS doesn't make them all 100% wide
5bf93010 2010-03-19 * Make auto mail checking configurable * Configuration.java:   - Wrap Properties instead of extending it   - Replace tabs with spaces
554b0e25 2010-03-15 Add some missing translations
9a84bb2a 2010-03-15 Put a space after Re:
ce6bcecf 2010-03-15 Increase stack size to 256 kB for mail check threads
d6fd4e97 2010-03-15 PacketQueue:  * Now based on an ArrayList instead of LinkedList  * Any synchronization issues should be gone
5acebd19 2010-03-14 Fix a ConcurrentModificationException
80db993c 2010-03-14 Make saveToFile() parameterless and rename to save()
9d59cd07 2010-03-14 Remove some unused stuff
e86ef430 2010-03-14 German translation
b928c41d 2010-03-14 * Multi-language support * Delete PrintAppVersionTag, replace with a JSPHelper property
1cc96558 2010-03-05 Second bootstrap node
7371f835 2010-03-05 Fix a NPE
e9010555 2010-03-04 Fix: refilling the s-bucket broke BucketManagerTest
ee2f9f74 2010-03-04 Fix a potential IndexOutOfBoundsException
8c1e1660 2010-03-04 * Use locked + unlocked peers for refilling the s-bucket * Fix: refillSiblings() generates duplicate peers
030ec907 2010-03-04 * add missing "}" * replace tabs with spaces
e9bd3ed6 2010-03-03 
e156962b 2010-03-03 0.2.1
aa6b5489 2010-03-03 
1adec9c8 2010-03-03 Shutdown:   * Fix: NPE when stopping plugin before the application has started connecting   * Shut down all threads so the app exits without having to kill the JVM
e21db2b7 2010-03-01 store(): Include local node if not enough peers found, or if local node is closer than one of the peers found
5ff0f419 2010-03-01 * Always query the closest unqueried peer, instead of picking one randomly * Have a list of all (not just S) peers ready at the beginning of the lookup. This fixes the "No storages found" bug (which I think would have gone away in the next release due to the higher S value).
302db498 2010-03-01 
b11459ee 2010-03-01 Fix: An IndexPacketDeleteRequest for an already deleted entry causes a NPE
1ae332a8 2010-03-01 Partial undo of rev. 30c74967ae81dff73f62ecca085cd72a85424ffe: Don't move unresponsive siblings to a k-bucket. I don't know what I was thinking, there is no reason to do that.
653a1626 2010-03-01 Layout fix
cf3d5892 2010-02-28 Re-bootstrap when there are no more active peers
14312726 2010-02-28 Run pack200 on plugin jars
3c0fb794 2010-02-28 Code simplification
5135d07f 2010-02-28 Ant plugin target: get the app version in a platform-independent way Ant src target: get the app version from the source like the plugin target does
c1aa31bd 2010-02-28 
79b2197d 2010-02-26 Option to compile I2P-Bote as an I2P plugin
ec7e057b 2010-02-25 * Fix: ClosestNodesLookupTask returned too early in some cases * Periodical s-bucket refresh * Exponential backoff for unresponsive peers * Lots of minor stuff
d6a69e23 2010-02-19 * when a sibling times out, move it to a k-bucket and refill the s-bucket * don't use unresponsive peers for lookups, but keep them unless there is a replacement peer * remove some unused or redundant code
cc48d566 2010-02-17 * Bucket refresh (periodically refresh a bucket if there hasn't been a DHT lookup for a key within the bucket's range) * New method KBucket.toString() for logging purposes * Fix: bucket prefix was calculated wrong
831d2634 2010-02-16 
7ae9575e 2010-02-16 Use fn:escapeXml for displaying email data
215a9ab1 2010-02-16 Fix junit Ant task
5fac243e 2010-02-16 Ant can use web.xml directly, no need for web-template.xml
6b3c1132 2010-02-15 Some cleaning up and other minor stuff
422eacd5 2010-02-15 
947ad001 2010-02-15 Set character encoding in requests to UTF-8 unless the browser sets an encoding
b91f08fa 2010-02-15 Implement the Address Book feature
2227955e 2010-02-12 Implement the "default identity" feature.
fddefc92 2010-02-11 Fix: Trying to edit an existing identity creates a new one
352df69d 2010-02-11 Fix NPE when navigating to network.jsp right after the 3-minute initial wait
82917aaa 2010-02-10 When replying, don't add a Re: if there is one already
75fbcbae 2010-02-10 
45c0fff6 2010-02-10 Display Kademlia-specific information on network.jsp while still keeping the DHT interface implementation-agnostic
cc846c3a 2010-02-10 * Rename KademliaException to DhtException; in DHT, throw DhtException instead of Exception * Drop Comparable from I2PSendQueue.ScheduledPacket * Remove an unneccessary "throws" * Fix some minor issues found by FindBugs:   - Don't ignore return values of File.mkdir, File.renameTo, etc.   - Close open files even if an exception happens   - Use Integer.valueOf instead of the Integer constructor   - Make some inner classes static   - Remove an unused method from UniqueId   - Make two fields volatile
a131fa66 2010-02-09 90k chars can't fit into 3 email packets anymore due to email encoding, so lower it to 80k chars.
40bd121a 2010-02-09 * Fix: test failed because peers[199] was the same destination as localDestination * Comments
e4d317c7 2010-02-09 Change K and S to real world values. B is still 1 for now.
22a0ef14 2010-02-09 Return K peers in a Kademlia lookup, not S
f26c8116 2010-02-09 Remove an incorrect log message
0a03d906 2010-02-09 New unit test BucketManagerTest
3d778863 2010-02-09 * Several Kademlia bugs fixed (bucket splitting was severely broken) * Use all positive numbers for representing a Hash as a BigInteger * Some refactoring of the Kademlia code, mainly in order to keep buckets sorted by last reception time without having to explicitly store a "last seen" time for each peer.
6df3e8b8 2010-02-09 remove unused variable
39fed9ec 2010-02-09 remove unused import
e2cc37c3 2010-02-09 Catch all exceptions in messageAvailable() and log them before they get caught in I2PSessionImpl which doesn\'t print a stack trace
b17bcbaa 2010-02-09 More detailed log output
8bdb64c3 2010-02-06 * Remove Email.getUniqueID() and Email.setUniqueID(), only use getMessageID()/setMessageID() * call super method in Email.updateHeaders() * Explicitly encode subject line from UTF-8
ff880b25 2010-02-06 * Use UTF-8 in HTTP requests * Instead of an HTTP param, use an EL variable for passing the page title to header.jsp so non-US characters don't get messed up * Fix title on network.jsp
c341d47b 2010-02-05 
8212edca 2010-02-05 * Use JavaMail * Get rid of the FolderElement interface
bdabe0e1 2010-02-04 Add some missing unit tests to AllTests.java
37cbc5cf 2010-02-04 * Get rid of MessageId, use UniqueId instead * Don't use the "Message-Id" header at all. The message Id is already in the   file name (for .mail files) or in the MSID field (for packetized emails).
015af37a 2010-02-03 * Pass the whole Ant classpath to Ant tasks because JSPC seems to need a java compiler for tag files * Partial fix for the junit task (tests still fail, but they compile now) * Print SHA256 sum for the war file * Delete src.zip in the "clean" task
38ad4233 2010-02-02 Rename test/.../kademlia package to test/.../dht for consistency
b64614ea 2010-02-01 Version 0.2
c7277b94 2010-02-01 Remove the cancel button, disable the save button
27e87237 2010-02-01 Put a tag back in that got accidentally deleted in rev. d6d2a84b2ce55918029c8362a8526ed21e254fe6
bdce1fc8 2010-02-01 
cf6a89a7 2010-02-01 Prevent network.jsp from throwing an error when the app has not started connecting yet
e929c8fb 2010-02-01 Show "to" addresses in the inbox and when displaying an email
4e051a81 2010-02-01 Remove unused file
e5385f40 2010-02-01 Reverse sort order, was oldest to newest
146bb6f8 2010-02-01 Auto-check for new mail periodically
3698843c 2010-02-01 Fix the delete button
24fb21ea 2010-01-31 * N_ or O_ prefix in the filename indicates if an email is new (read) or old (unread) * Show new emails in bold, read ones in normal font * Set an email to "old" when the user displays it
44d09a1b 2010-01-31 
64fe831e 2010-01-31 * Move some code out of getElements() into the new method getFilenames() * Add method getNumElements()
0bc9825a 2010-01-31 
4c7f3bd0 2010-01-31 remove redundant interface declaration
be58442e 2010-01-31 Fix: wrong field name in the javascript that focuses the "public name" field on page load
aafcce64 2010-01-30 IncomingPacketHandler:  * Ignore response packets whose id doesn't match the request  * Rename addPeers to updatePeers
24c76dd8 2010-01-30 * Handle invalid packets better * Ban peers that use a protocol version other than 2
38171179 2010-01-30 Remove some unnecessary code
808b8959 2010-01-30 * Print local dest hash on the network status page * List active peers and banned peers separately on the network status page
540b0990 2010-01-30 
f5e3b128 2010-01-30 Remove unused class
0d12ee12 2010-01-29 
d2603259 2010-01-29 * AbstractBucket/KBucket: Replace ConcurrentSkipListSet with ConcurrentHashSet for the peer list and the replacement cache * drop a peer after 3 consecutive non-responses * several minor changes
80c66d7c 2010-01-27 Oops, two more files should have gone into revision 6b0ba3c712564df1061979948a109779470024f8
5785c583 2010-01-27 .
1c52df17 2010-01-27 Fix the stale counter
591c3bff 2010-01-27 .
28f09ac7 2010-01-27 Implement reply button
6a059521 2010-01-27 Remove debug message
7164b7f4 2010-01-25 Fix: Public Name and Description headings were in the wrong order
471e8f4b 2010-01-25 Fix: left angle bracket disappears when inserting line break in the sender field
84eb1ded 2010-01-25 Make textarea one row bigger because some email destinations have more line breaks than others
db3429d0 2010-01-25 * Include sender's Public Name in the "sender" header field * Use a proportional font for the "new email" text box
ed4439ef 2010-01-24 Don't try to read peers.txt if it does not exist.
63b8bf29 2010-01-24 Preserve line breaks in emails when sending and convert them to HTML for displaying emails.
7a09d652 2010-01-24 Fix incorrect logger names
2ebb3899 2010-01-23 Use POST for the "New Email" form
2e509168 2010-01-23 Add license notices
b40e3275 2010-01-23 Fix unnecessary timeouts when doing DHT retrievals
b9534b2a 2010-01-23 PacketQueue: Insert packets with an earliestSendTime>0 in the right place
c0220881 2010-01-23 Always send a response to retrieve requests, even if nothing found.
f5db9e18 2010-01-22 Don't report a peer timeout if the packet hasn't been sent to the peer yet
87cc21dc 2010-01-22 * Show peer info on the network page * Remove some dead code * Major refactoring of the Kademlia code:  - Interface DhtPeer replaces the PeerInfo class  - KademliaPeer extends Destination  - Get rid of BanList, store ban info in KademliaPeer instead  - Use separate classes for k-buckets and s-buckets, both extend AbstractBucket
d0af4512 2010-01-19 Show peer info on network.jsp
39b66e85 2010-01-18 Put peers on the ban list if they use a wrong protocol version (has no effect yet)
b4072d48 2010-01-18 * Implement deletion of email packets from the DHT and deletion of index packet entries * Version 2 of the network protocol
525cd894 2010-01-08 Log dest hash, not dest key in packetReceived
b8dfe7f9 2010-01-08 * Allow the X-Priority header field * Set the "From" field when setting the "Sender" field
289c7810 2010-01-08 .
fb9fb784 2009-12-20 Throw an exception if no peers were found for storing a packet
10e32012 2009-12-20 .
1218c154 2009-12-20 Ver. 0.1.5
a3be2164 2009-12-20 0.1.5
7694ea3e 2009-12-19 Fix: redirect to noIdentities.jsp was broken
c6a12fc3 2009-12-19 support deletion of emails
f50b0a9d 2009-12-19 Fix: DHT packets only got stored on one node because the StoreRequests all had the same packet Id.
e9554c79 2009-12-19 Doing a findOne for index packets didn't seem such a good idea after all because it might return an incomplete version of the index packet when there is a more complete version stored on another peer. So I'm reverting back to findAll.
424e0dfb 2009-12-19 support deletion of emails
fec90524 2009-12-19 new
cc85ef3d 2009-12-19 .
35fbaa37 2009-12-19 Add disabled button style
ee941ea7 2009-12-19 Move some app status related code to getStatus.jsp so it can be shared with other JSPs
2005a2db 2009-12-19 Disable the Network Status link until the I2P session is ready
31cd0b9b 2009-12-19 Disable two buttons and one link until I2P session is ready
e8fc716b 2009-12-19 new file
bb33c8dc 2009-12-19 remove all unimplemented HTML links
ff88ec13 2009-12-19 don't say "connected" until done bootstrapping
62f18501 2009-12-19 Remove some dead code; in the find method, return the local result immediately if only one result was asked for
0e4a732c 2009-12-19 .
7d4b9d05 2009-12-19 Just use the first index packet received, don't wait for all peers to respond
b3d883f7 2009-12-19 fix: distance can't be negative; add JavaDoc
7c51fd68 2009-12-19 Set max bucket size to k for k-buckets, and s for the s-bucket
02e28eb5 2009-12-19 .
737237c8 2009-12-19 synchronize the list of responses received; more log output; log dest hash, not the full dest key; use the correct key type when removing a mapping from pendingRequests
3d343e79 2009-12-19 Fix: toByteArray wrote all 387 bytes of an I2P destination instead of just the two public keys
278f612a 2009-12-19 rename FindCloseNodesPacketTest to FindClosePeersPacketTest; add PeerListTest
b858cccb 2009-12-19 .
6d535e66 2009-12-19 New file PeerListTest.java
af193ec0 2009-12-19 rename FindCloseNodesPacketTest to FindClosePeersPacketTest
e5d84be0 2009-12-18 Implement equals and hashCode
e330c4bf 2009-12-18 log destination hash, not the complete dest key
b5191bc6 2009-12-17 add the src target which makes a src.zip file
9dc72d2c 2009-12-17 .
19758eab 2009-12-17 add createRandomHash()
fb2726b0 2009-12-17 Move all network and threading code out of BucketManager into KademliaDHT; don't add self to buckets; use a peer for bootstrapping if it initiated communication; fix the refresh(KBucket) method which didn't do a closest nodes lookup; other, minor changes
11438e36 2009-12-17 Move all network and threading code out of BucketManager into KademliaDHT; don't add self to buckets; make BucketManager iterable; other, minor changes
b03534c3 2009-12-17 Only log the dest hash, not the multi-line output of Destination.toString(); get rid of an unnecessary if
f6ac9b91 2009-12-17 Check for expired packets once a day, not every time when checking for new packets
ed765834 2009-12-13 0.1.4
459075ca 2009-12-13 Release 0.1.4; Do the 3-minute wait in the background and support skipping the wait time.
47da9495 2009-12-13 New tag "connect"; new JSP function getNetworkStatus
b51733ff 2009-12-13 New JSP function getNetworkStatus()
df463fd6 2009-12-13 New method isConnected()
d50d9a53 2009-12-13 Modify statusbox class for revised statusFrame.jsp
3b7b748e 2009-12-13 Fix jstllib path; don't add JSPs to war (thanks zzz)
d77b61e9 2009-12-13 Link to network.jsp
fbba5d46 2009-12-13 Add JSTL for displaying local I2P destination, commented out for now.
0fc434b6 2009-12-13 Remove unused welcome-file entries
57be6871 2009-12-13 New file
9880a543 2009-12-12 0.1.3
08629cb7 2009-12-12 Remove unused code; other minor changes
4fe2c5c0 2009-12-12 Fix: high cpu usage when sending or receiving; use sendQueue.send instead of sendQueue.sendAndWait so requests can be sent in parallel.
f9ee3ae6 2009-12-12 Set DHT key in the merge constructor (fixes a NPE)
ab26312a 2009-12-12 
a1687cb5 2009-12-12 bump to ver. 0.1.3; wait 3 minutes before connecting after startup; set tunnel names to "I2P-Bote"; minor changes like renaming of variables
76d6008d 2009-12-12 Fix: inboxFlag was never set, which caused the "Check Mail" button not to show new emails. See also buttonFrame.jsp, rev. 1c93f3214bbc0b5ee1ef772caccf576644fe3cbd vs ed79eab91430b185d5b710b0fe8ef3afc8567cb0
05e93e53 2009-12-12 Fix: "Check Mail" button didn't show new emails, user had to reload inbox
1509a65b 2009-12-12 checkMail.jsp no longer needed since buttonFrame.jsp does all the mail checking
ab6a498f 2009-12-12 add failonerror="true" to javac tasks; change all /opt/... paths to ../i2p/...
bf50d504 2009-12-07 
06e82ddc 2009-12-07 Add method getLocalDestination
8f12c1c2 2009-12-07 Add method getLocalDestination, bump app version to 0.1.2
d3a36835 2009-12-07 Add jstl.jar and standard.jar to the .war file; don't falsely assume those files are in the I2P lib directory
8370a8e5 2009-12-07 Add JSTL function getLocalDestination
5dd6a820 2009-12-06 Bump version to bugfix release 0.1.1
6621ecff 2009-12-06 Fix: error message when clicking on an email in the inbox
8d0ff2d1 2009-12-06 add
bd7cebbc 2009-12-06 
6d0591f7 2009-12-06 remove unused method createNewSession
e7afcb4c 2009-12-06 add version info, don't gzip packets
b4319e6b 2009-12-06 
ccc7af27 2009-12-06 don't include ant jars in the war file.
2cd09228 2009-12-06 Break sender addresses into several lines; vertically align row headings
8aaf29d2 2009-12-06 Add the "Help" box
4f9997b6 2009-12-06 Fix: sender wasn't displayed; truncate sender addresses and subjects that are too long.
84e7c2f2 2009-12-06 Use a textarea to display email destinations so there are no line breaks which cause problems with copying+pasting.
dd956758 2009-12-06 Add printVersion and printWithLineBreaks tags
5e20b1f1 2009-12-06 
dee5039c 2009-12-06 
ea62f230 2009-12-06 
27c47a26 2009-12-06 
a91ed281 2009-12-06 Create a new SessionKeyManager for the application, don't use the global one.
4a54ce04 2009-12-05 Move some classes into different packages.
26cc66e4 2009-12-05 Include a bootstrap peer file in the code; log number of peers read from file
46911638 2009-12-05 
c6754b39 2009-12-05 Precompile JSPs for Jetty
ebdc6001 2009-12-05 Unused
2a335b14 2009-12-02 Add Ant build file
56360314 2009-12-01 
c170045c 2009-12-01 New method setSender; replaced some ByteArrayOutputStream.write calls with PrintWriter.print
be627197 2009-12-01 New method addEmailPacket, returns true if assemble was called
a508f088 2009-12-01 Move code related to checking for new mail to I2PBote.java: checkForMail(), isCheckingForMail(), newMailReceived()
72778c15 2009-12-01 Add maxConcurIdCheckMail config parameter
98e9df58 2009-12-01 Return a boolean that indicates whether new mail was added to the inbox
bf8c3344 2009-12-01 Display email
6adbc864 2009-12-01 Show network status on the UI
8b8dd65f 2009-12-01 Show network status on the UI
3aa90566 2009-12-01 improve layout; add the "inboxFlag" div which is read in buttonFrame.jsp
65db42bb 2009-12-01 When new mail arrives, and if the inbox is being shown in the browser, reload the page
d493de15 2009-12-01 new function newMailReceived()
bf43f6dd 2009-11-29 New property "sender"; set subject on the email
bce3f8b5 2009-11-29 New method getEmail
8b56db97 2009-11-29 Use new class MessageId for message Ids; initialize more header fields; remove two lines which had no effect
ae0d4e52 2009-11-29 New method getEmail; replace UniqueId with MessageId for message Ids
0d516a26 2009-11-29 pass sender param to sendEmail
5bb6213e 2009-11-29 New file showEmail.jsp
55da0e20 2009-11-29 
4baed6dd 2009-11-29 New class MessageId
30483919 2009-11-29 Replace copy constructor with clone method
4299d03a 2009-11-29 
b6266b79 2009-11-29 New tag getEmail; add new property "sender" to the sendEmail tag
e639a013 2009-11-27 
39f00933 2009-11-27 Rename addResponsePacket to addResponse, and change its parameter to DataPacket (was I2PBotePacket).
45d9072c 2009-11-27 When calling PacketBatch.addResponse, don't pass the whole ResponsePacket to a batch, only its payload.
3b9fee47 2009-11-27 Rename the generic parameter T to PacketType; limit the add method to subclasses of PacketType
2bca6609 2009-11-27 
cb9b21b2 2009-11-27 Add "subject" text field to interface; add support for the "Date" header field to Email.java; display static text if subject/sender/date is missing.
8578d2d6 2009-11-27 Fix: CheckEmailTask was passing encrypted packets to the incomplete folder.
762d59b3 2009-11-26 Move common code in its own method
8aadbc42 2009-11-26 Add toString()
e3e9f4b7 2009-11-26 Commented out unneeded PacketListener code in the find(Hash, Class, boolean) method, will delete it in the near future.
3106d1cc 2009-11-26 Remove extraneous call to outputStream.write in toByteArray
ccd760a6 2009-11-26 Fixed several bugs in the Email(byte[]) constructor; fixed the writeTo methods.
ca3bb5a7 2009-11-26 
54ce58f1 2009-11-26 Initialize sentSignal in constructor instead of lazy init
c18405a1 2009-11-26 Make packetQueue a subclass of LinkedList (was ConcurrentSkipListSet), update runningBatches and the send CountdownLatch on the batch when a new PacketBatch is submitted; add more log output.
a6bb8a0d 2009-11-26 
374077a3 2009-11-26 Include fragment index in packet filename; when storing an email packet, only write the content field.
1f0a12a8 2009-11-26 
78eebdec 2009-11-26 Log exceptions thrown in ExecutorService tasks; add a null check
7633c989 2009-11-26 
ec2dbaea 2009-11-26 
27d1f3fb 2009-11-26 
d0a448ec 2009-11-26 Vertically center favicon; rename StorageRequestTest.java to StoreRequestTest.java
1aa2bab0 2009-11-22 Check in initial revision. Contains a rudimentary Kademlia implementation, a rudimentary web frontend, implementations for some packet types, and a few unit tests. Implemented functionality: Email Identity management, composing a text email and storing it in Kademlia. Partially implemented: Retrieving new emails from Kademlia.
86d4a430 2009-11-22 Add license file, using the GPL for now. Add license file. Using the GPL for now.```

## Files

.gitignore .mtn-ignore .travis.yml .tx/config README.md TODO android/CHANGELOG android/TODO android/art/bote-feature.svg android/art/ic_launcher_master.svg android/art/ic_notif_master.svg android/art/ic_notif_premaster.svg android/art/icons/ic_scan_qr_code_24px.svg android/art/intro_1.svg android/art/intro_3.svg android/art/intro_4.svg android/build.gradle android/libs/additionnal.jar android/libs/tokenautocomplete.jar android/proguard-rules.pro android/src/androidTest/java/i2p/bote/android/EmailListActivityTest.java android/src/androidTest/java/i2p/bote/android/intro/IntroActivityTest.java android/src/androidTest/java/i2p/bote/android/intro/SetupActivityTest.java android/src/androidTest/java/i2p/bote/android/provider/AttachmentProviderTests.java android/src/debug/res/values/strings.xml android/src/main/AndroidManifest.xml android/src/main/java/i2p/bote/android/AndroidPeerStatsRenderer.java android/src/main/java/i2p/bote/android/BoteActivityBase.java android/src/main/java/i2p/bote/android/Constants.java android/src/main/java/i2p/bote/android/EmailListActivity.java android/src/main/java/i2p/bote/android/EmailListAdapter.java android/src/main/java/i2p/bote/android/EmailListFragment.java android/src/main/java/i2p/bote/android/HelpAboutFragment.java android/src/main/java/i2p/bote/android/HelpActivity.java android/src/main/java/i2p/bote/android/HelpHtmlFragment.java android/src/main/java/i2p/bote/android/InitActivities.java android/src/main/java/i2p/bote/android/NetworkInfoActivity.java android/src/main/java/i2p/bote/android/NetworkInfoFragment.java android/src/main/java/i2p/bote/android/NewEmailActivity.java android/src/main/java/i2p/bote/android/NewEmailFragment.java android/src/main/java/i2p/bote/android/ViewEmailActivity.java android/src/main/java/i2p/bote/android/ViewEmailFragment.java android/src/main/java/i2p/bote/android/addressbook/AddressBookActivity.java android/src/main/java/i2p/bote/android/addressbook/AddressBookFragment.java android/src/main/java/i2p/bote/android/addressbook/AddressBookShipActivity.java android/src/main/java/i2p/bote/android/addressbook/AddressBookShipFragment.java android/src/main/java/i2p/bote/android/addressbook/ContactAdapter.java android/src/main/java/i2p/bote/android/addressbook/EditContactActivity.java android/src/main/java/i2p/bote/android/addressbook/EditContactFragment.java android/src/main/java/i2p/bote/android/addressbook/ViewContactActivity.java android/src/main/java/i2p/bote/android/addressbook/ViewContactFragment.java android/src/main/java/i2p/bote/android/config/AdvancedPreferenceFragment.java android/src/main/java/i2p/bote/android/config/AppProtectionPreferenceFragment.java android/src/main/java/i2p/bote/android/config/AppearancePreferenceFragment.java android/src/main/java/i2p/bote/android/config/NetworkPreferenceFragment.java android/src/main/java/i2p/bote/android/config/PrivacyPreferenceFragment.java android/src/main/java/i2p/bote/android/config/SetPasswordActivity.java android/src/main/java/i2p/bote/android/config/SetPasswordFragment.java android/src/main/java/i2p/bote/android/config/SettingsActivity.java android/src/main/java/i2p/bote/android/config/util/CustomPreferenceFragment.java android/src/main/java/i2p/bote/android/config/util/IconicsPreference.java android/src/main/java/i2p/bote/android/config/util/IntEditTextPreference.java android/src/main/java/i2p/bote/android/config/util/IntEditTextPreferenceDialog.java android/src/main/java/i2p/bote/android/config/util/SummaryEditTextPreference.java android/src/main/java/i2p/bote/android/identities/EditIdentityActivity.java android/src/main/java/i2p/bote/android/identities/EditIdentityFragment.java android/src/main/java/i2p/bote/android/identities/IdentityAdapter.java android/src/main/java/i2p/bote/android/identities/IdentityListActivity.java android/src/main/java/i2p/bote/android/identities/IdentityListFragment.java android/src/main/java/i2p/bote/android/identities/IdentityShipActivity.java android/src/main/java/i2p/bote/android/identities/IdentityShipFragment.java android/src/main/java/i2p/bote/android/identities/ViewIdentityActivity.java android/src/main/java/i2p/bote/android/identities/ViewIdentityFragment.java android/src/main/java/i2p/bote/android/intro/IntroActivity.java android/src/main/java/i2p/bote/android/intro/SetupActivity.java android/src/main/java/i2p/bote/android/provider/AttachmentProvider.java android/src/main/java/i2p/bote/android/service/BoteService.java android/src/main/java/i2p/bote/android/service/Init.java android/src/main/java/i2p/bote/android/util/AuthenticatedFragment.java android/src/main/java/i2p/bote/android/util/BetterAsyncTaskLoader.java android/src/main/java/i2p/bote/android/util/BoteHelper.java android/src/main/java/i2p/bote/android/util/ContentAttachment.java android/src/main/java/i2p/bote/android/util/DataShipActivity.java android/src/main/java/i2p/bote/android/util/DataShipFragment.java android/src/main/java/i2p/bote/android/util/DeleteAddressDialogFragment.java android/src/main/java/i2p/bote/android/util/EditPictureFragment.java android/src/main/java/i2p/bote/android/util/LocaleManager.java android/src/main/java/i2p/bote/android/util/MoveToDialogFragment.java android/src/main/java/i2p/bote/android/util/MultiSelectionUtil.java android/src/main/java/i2p/bote/android/util/Person.java android/src/main/java/i2p/bote/android/util/QrCodeUtils.java android/src/main/java/i2p/bote/android/util/RobustAsyncTask.java android/src/main/java/i2p/bote/android/util/TaskFragment.java android/src/main/java/i2p/bote/android/util/ViewAddressFragment.java android/src/main/java/i2p/bote/android/widget/ContactsCompletionView.java android/src/main/java/i2p/bote/android/widget/DividerItemDecoration.java android/src/main/java/i2p/bote/android/widget/IconicsFloatingActionButton.java android/src/main/java/i2p/bote/android/widget/LoadingRecyclerView.java android/src/main/java/i2p/bote/android/widget/MultiSwipeRefreshLayout.java android/src/main/java/im/delight/android/identicons/Identicon.java android/src/main/java/im/delight/android/identicons/IdenticonBase.java android/src/main/jniLibs/armeabi-v7a/libscrypt.so android/src/main/jniLibs/armeabi/libscrypt.so android/src/main/jniLibs/mips/libscrypt.so android/src/main/jniLibs/x86/libscrypt.so android/src/main/res/drawable-hdpi/ic_contact_picture.png android/src/main/res/drawable-hdpi/ic_launcher.png android/src/main/res/drawable-hdpi/ic_navigation_accept.png android/src/main/res/drawable-hdpi/ic_notif.png android/src/main/res/drawable-hdpi/ic_scan_qr_code_white_24dp.png android/src/main/res/drawable-hdpi/intro_1.png android/src/main/res/drawable-hdpi/intro_3.png android/src/main/res/drawable-hdpi/intro_4.png android/src/main/res/drawable-mdpi/ic_contact_picture.png android/src/main/res/drawable-mdpi/ic_launcher.png android/src/main/res/drawable-mdpi/ic_navigation_accept.png android/src/main/res/drawable-mdpi/ic_notif.png android/src/main/res/drawable-mdpi/ic_scan_qr_code_white_24dp.png android/src/main/res/drawable-mdpi/intro_1.png android/src/main/res/drawable-mdpi/intro_3.png android/src/main/res/drawable-mdpi/intro_4.png android/src/main/res/drawable-v21/listitem_background.xml android/src/main/res/drawable-v21/listitem_background_selector.xml android/src/main/res/drawable-xhdpi/ic_contact_picture.png android/src/main/res/drawable-xhdpi/ic_launcher.png android/src/main/res/drawable-xhdpi/ic_navigation_accept.png android/src/main/res/drawable-xhdpi/ic_notif.png android/src/main/res/drawable-xhdpi/ic_scan_qr_code_white_24dp.png android/src/main/res/drawable-xhdpi/intro_1.png android/src/main/res/drawable-xhdpi/intro_3.png android/src/main/res/drawable-xhdpi/intro_4.png android/src/main/res/drawable-xxhdpi/ic_scan_qr_code_white_24dp.png android/src/main/res/drawable/attachment_background.xml android/src/main/res/drawable/drawer_header_background.xml android/src/main/res/drawable/fab_label_background.xml android/src/main/res/drawable/listitem_background_selector.xml android/src/main/res/drawable/picture_background.xml android/src/main/res/drawable/token_background.xml android/src/main/res/layout-land/fragment_intro_0.xml android/src/main/res/layout-land/fragment_intro_1.xml android/src/main/res/layout-land/fragment_intro_2.xml android/src/main/res/layout-land/fragment_intro_3.xml android/src/main/res/layout-land/fragment_intro_4.xml android/src/main/res/layout-land/fragment_intro_5.xml android/src/main/res/layout/activity_data_ship.xml android/src/main/res/layout/activity_edit_identity.xml android/src/main/res/layout/activity_help.xml android/src/main/res/layout/activity_intro.xml android/src/main/res/layout/activity_main.xml android/src/main/res/layout/activity_set_password.xml android/src/main/res/layout/activity_settings.xml android/src/main/res/layout/activity_toolbar.xml android/src/main/res/layout/activity_view_email.xml android/src/main/res/layout/contact_token.xml android/src/main/res/layout/dialog_password.xml android/src/main/res/layout/dialog_status.xml android/src/main/res/layout/fragment_authenticated.xml android/src/main/res/layout/fragment_edit_contact.xml android/src/main/res/layout/fragment_edit_identity.xml android/src/main/res/layout/fragment_export_data.xml android/src/main/res/layout/fragment_help_about.xml android/src/main/res/layout/fragment_import_data.xml android/src/main/res/layout/fragment_intro_0.xml android/src/main/res/layout/fragment_intro_1.xml android/src/main/res/layout/fragment_intro_2.xml android/src/main/res/layout/fragment_intro_3.xml android/src/main/res/layout/fragment_intro_4.xml android/src/main/res/layout/fragment_intro_5.xml android/src/main/res/layout/fragment_list_contacts.xml android/src/main/res/layout/fragment_list_emails.xml android/src/main/res/layout/fragment_list_emails_with_refresh.xml android/src/main/res/layout/fragment_list_identities.xml android/src/main/res/layout/fragment_network_error.xml android/src/main/res/layout/fragment_network_info.xml android/src/main/res/layout/fragment_new_email.xml android/src/main/res/layout/fragment_set_password.xml android/src/main/res/layout/fragment_setup_create_identity.xml android/src/main/res/layout/fragment_setup_finished.xml android/src/main/res/layout/fragment_setup_set_password.xml android/src/main/res/layout/fragment_view_address.xml android/src/main/res/layout/fragment_view_email.xml android/src/main/res/layout/listitem_attachment.xml android/src/main/res/layout/listitem_attachment_warning.xml android/src/main/res/layout/listitem_contact.xml android/src/main/res/layout/listitem_email.xml android/src/main/res/layout/listitem_empty.xml android/src/main/res/layout/listitem_folder.xml android/src/main/res/layout/listitem_folder_with_icon.xml android/src/main/res/layout/listitem_identity.xml android/src/main/res/layout/listitem_incomplete.xml android/src/main/res/layout/listitem_text.xml android/src/main/res/menu/address_book.xml android/src/main/res/menu/attachment.xml android/src/main/res/menu/authenticated_fragment.xml android/src/main/res/menu/edit_contact.xml android/src/main/res/menu/edit_identity.xml android/src/main/res/menu/email_list.xml android/src/main/res/menu/email_list_context.xml android/src/main/res/menu/identity_list.xml android/src/main/res/menu/main.xml android/src/main/res/menu/new_email.xml android/src/main/res/menu/set_password.xml android/src/main/res/menu/view_address.xml android/src/main/res/menu/view_email.xml android/src/main/res/raw-ar/help_identities.html android/src/main/res/raw-ar/help_start.html android/src/main/res/raw-az/help_identities.html android/src/main/res/raw-az/help_start.html android/src/main/res/raw-de/help_identities.html android/src/main/res/raw-de/help_start.html android/src/main/res/raw-el/help_start.html android/src/main/res/raw-es/help_identities.html android/src/main/res/raw-es/help_start.html android/src/main/res/raw-fi/help_identities.html android/src/main/res/raw-fi/help_start.html android/src/main/res/raw-fr/help_identities.html android/src/main/res/raw-fr/help_start.html android/src/main/res/raw-gl/help_identities.html android/src/main/res/raw-gl/help_start.html android/src/main/res/raw-in/help_identities.html android/src/main/res/raw-in/help_start.html android/src/main/res/raw-it/help_identities.html android/src/main/res/raw-it/help_start.html android/src/main/res/raw-ko/help_identities.html android/src/main/res/raw-ko/help_start.html android/src/main/res/raw-nb/help_identities.html android/src/main/res/raw-nb/help_start.html android/src/main/res/raw-nl/help_identities.html android/src/main/res/raw-nl/help_start.html android/src/main/res/raw-pl/help_identities.html android/src/main/res/raw-pl/help_start.html android/src/main/res/raw-pt/help_identities.html android/src/main/res/raw-pt/help_start.html android/src/main/res/raw-ro/help_identities.html android/src/main/res/raw-ro/help_start.html android/src/main/res/raw-ru/help_identities.html android/src/main/res/raw-ru/help_start.html android/src/main/res/raw-sq/help_start.html android/src/main/res/raw-sv/help_identities.html android/src/main/res/raw-sv/help_start.html android/src/main/res/raw-tr/help_identities.html android/src/main/res/raw-tr/help_start.html android/src/main/res/raw-uk/help_identities.html android/src/main/res/raw-uk/help_start.html android/src/main/res/raw-zh/help_identities.html android/src/main/res/raw-zh/help_start.html android/src/main/res/raw/help_about_libraries.html android/src/main/res/raw/help_changelog.html android/src/main/res/raw/help_identities.html android/src/main/res/raw/help_start.html android/src/main/res/raw/router_config android/src/main/res/values-ar/strings.xml android/src/main/res/values-az/strings.xml android/src/main/res/values-de/strings.xml android/src/main/res/values-es/strings.xml android/src/main/res/values-fi/strings.xml android/src/main/res/values-fr/strings.xml android/src/main/res/values-in/strings.xml android/src/main/res/values-it/strings.xml android/src/main/res/values-ko/strings.xml android/src/main/res/values-land/dimens.xml android/src/main/res/values-nb/strings.xml android/src/main/res/values-nl/strings.xml android/src/main/res/values-pl/strings.xml android/src/main/res/values-pt/strings.xml android/src/main/res/values-ro/strings.xml android/src/main/res/values-ru/strings.xml android/src/main/res/values-sq/strings.xml android/src/main/res/values-sv/strings.xml android/src/main/res/values-sw600dp/dimens.xml android/src/main/res/values-sw720dp-land/dimens.xml android/src/main/res/values-tr/strings.xml android/src/main/res/values-v11/dimens.xml android/src/main/res/values-v14/styles.xml android/src/main/res/values-v21/styles.xml android/src/main/res/values-w820dp/dimens.xml android/src/main/res/values-zh/strings.xml android/src/main/res/values/arrays.xml android/src/main/res/values/attrs.xml android/src/main/res/values/colors.xml android/src/main/res/values/dimens.xml android/src/main/res/values/refs.xml android/src/main/res/values/strings.xml android/src/main/res/values/styles.xml android/src/main/res/xml/settings.xml android/src/main/res/xml/settings_advanced.xml android/src/main/res/xml/settings_app_protection.xml android/src/main/res/xml/settings_appearance.xml android/src/main/res/xml/settings_network.xml android/src/main/res/xml/settings_privacy.xml build.gradle core/build.gradle core/src/main/java/i2p/bote/Configuration.java core/src/main/java/i2p/bote/ElGamalAESEngine.java core/src/main/java/i2p/bote/I2PBote.java core/src/main/java/i2p/bote/MailSender.java core/src/main/java/i2p/bote/UniqueId.java core/src/main/java/i2p/bote/Util.java core/src/main/java/i2p/bote/addressbook/AddressBook.java core/src/main/java/i2p/bote/addressbook/package.html core/src/main/java/i2p/bote/crypto/AbstractCryptoImplementation.java core/src/main/java/i2p/bote/crypto/CryptoFactory.java core/src/main/java/i2p/bote/crypto/CryptoImplementation.java core/src/main/java/i2p/bote/crypto/ECDH256_ECDSA256.java core/src/main/java/i2p/bote/crypto/ECDH521_ECDSA521.java core/src/main/java/i2p/bote/crypto/ECDH_ECDSA.java core/src/main/java/i2p/bote/crypto/ECUtils.java core/src/main/java/i2p/bote/crypto/ElGamal2048_DSA1024.java core/src/main/java/i2p/bote/crypto/KeyUpdateHandler.java core/src/main/java/i2p/bote/crypto/NTRUEncrypt1087_GMSS512.java core/src/main/java/i2p/bote/crypto/PrivateKeyPair.java core/src/main/java/i2p/bote/crypto/PublicKeyPair.java core/src/main/java/i2p/bote/crypto/package.html core/src/main/java/i2p/bote/crypto/wordlist/WordListAnchor.java core/src/main/java/i2p/bote/crypto/wordlist/package.html core/src/main/java/i2p/bote/debug/DebugSupport.java core/src/main/java/i2p/bote/email/AddressDisplayFilter.java core/src/main/java/i2p/bote/email/Attachment.java core/src/main/java/i2p/bote/email/Email.java core/src/main/java/i2p/bote/email/EmailAttribute.java core/src/main/java/i2p/bote/email/EmailDestination.java core/src/main/java/i2p/bote/email/EmailIdentity.java core/src/main/java/i2p/bote/email/EmailMetadata.java core/src/main/java/i2p/bote/email/FileAttachment.java core/src/main/java/i2p/bote/email/Fingerprint.java core/src/main/java/i2p/bote/email/Identities.java core/src/main/java/i2p/bote/email/IdentitiesListener.java core/src/main/java/i2p/bote/email/IllegalDestinationParametersException.java core/src/main/java/i2p/bote/email/NoIdentityForSenderException.java core/src/main/java/i2p/bote/email/package.html core/src/main/java/i2p/bote/fileencryption/Decrypt.java core/src/main/java/i2p/bote/fileencryption/DerivedKey.java core/src/main/java/i2p/bote/fileencryption/Encrypt.java core/src/main/java/i2p/bote/fileencryption/EncryptedInputStream.java core/src/main/java/i2p/bote/fileencryption/EncryptedOutputStream.java core/src/main/java/i2p/bote/fileencryption/FileEncryptionConstants.java core/src/main/java/i2p/bote/fileencryption/FileEncryptionUtil.java core/src/main/java/i2p/bote/fileencryption/FileInfo.java core/src/main/java/i2p/bote/fileencryption/PasswordCache.java core/src/main/java/i2p/bote/fileencryption/PasswordCacheListener.java core/src/main/java/i2p/bote/fileencryption/PasswordException.java core/src/main/java/i2p/bote/fileencryption/PasswordHolder.java core/src/main/java/i2p/bote/fileencryption/PasswordIncorrectException.java core/src/main/java/i2p/bote/fileencryption/PasswordMismatchException.java core/src/main/java/i2p/bote/fileencryption/PasswordVerifier.java core/src/main/java/i2p/bote/fileencryption/SCryptParameters.java core/src/main/java/i2p/bote/fileencryption/package.html core/src/main/java/i2p/bote/folder/DeletionAwareDhtFolder.java core/src/main/java/i2p/bote/folder/DhtPacketFolder.java core/src/main/java/i2p/bote/folder/DirectoryEntryFolder.java core/src/main/java/i2p/bote/folder/EmailFolder.java core/src/main/java/i2p/bote/folder/EmailFolderManager.java core/src/main/java/i2p/bote/folder/EmailPacketFolder.java core/src/main/java/i2p/bote/folder/ExpirationListener.java core/src/main/java/i2p/bote/folder/Folder.java core/src/main/java/i2p/bote/folder/FolderIterator.java core/src/main/java/i2p/bote/folder/FolderListener.java core/src/main/java/i2p/bote/folder/IncompleteEmailFolder.java core/src/main/java/i2p/bote/folder/IndexPacketFolder.java core/src/main/java/i2p/bote/folder/MessageIdCache.java core/src/main/java/i2p/bote/folder/NewEmailListener.java core/src/main/java/i2p/bote/folder/Outbox.java core/src/main/java/i2p/bote/folder/PacketFolder.java core/src/main/java/i2p/bote/folder/RelayPacketFolder.java core/src/main/java/i2p/bote/folder/TrashFolder.java core/src/main/java/i2p/bote/folder/package.html core/src/main/java/i2p/bote/migration/MigrateTo026.java core/src/main/java/i2p/bote/migration/MigrateTo027.java core/src/main/java/i2p/bote/migration/MigrateTo028.java core/src/main/java/i2p/bote/migration/Migrator.java core/src/main/java/i2p/bote/migration/package.html core/src/main/java/i2p/bote/network/BanList.java core/src/main/java/i2p/bote/network/BanReason.java core/src/main/java/i2p/bote/network/BannedPeer.java core/src/main/java/i2p/bote/network/CheckEmailTask.java core/src/main/java/i2p/bote/network/DHT.java core/src/main/java/i2p/bote/network/DhtException.java core/src/main/java/i2p/bote/network/DhtPeerSource.java core/src/main/java/i2p/bote/network/DhtPeerStats.java core/src/main/java/i2p/bote/network/DhtPeerStatsRenderer.java core/src/main/java/i2p/bote/network/DhtPeerStatsRow.java core/src/main/java/i2p/bote/network/DhtResults.java core/src/main/java/i2p/bote/network/DhtStorageHandler.java core/src/main/java/i2p/bote/network/EmailAddressResolver.java core/src/main/java/i2p/bote/network/I2PPacketDispatcher.java core/src/main/java/i2p/bote/network/I2PSendQueue.java core/src/main/java/i2p/bote/network/NetworkStatus.java core/src/main/java/i2p/bote/network/NetworkStatusListener.java core/src/main/java/i2p/bote/network/NetworkStatusSource.java core/src/main/java/i2p/bote/network/PacketBatch.java core/src/main/java/i2p/bote/network/PacketBatchItem.java core/src/main/java/i2p/bote/network/PacketListener.java core/src/main/java/i2p/bote/network/PeerFileAnchor.java core/src/main/java/i2p/bote/network/Ping.java core/src/main/java/i2p/bote/network/RelayPacketHandler.java core/src/main/java/i2p/bote/network/RelayPeer.java core/src/main/java/i2p/bote/network/kademlia/AbstractBucket.java core/src/main/java/i2p/bote/network/kademlia/BucketManager.java core/src/main/java/i2p/bote/network/kademlia/ClosestNodesLookupTask.java core/src/main/java/i2p/bote/network/kademlia/KBucket.java core/src/main/java/i2p/bote/network/kademlia/KademliaConstants.java core/src/main/java/i2p/bote/network/kademlia/KademliaDHT.java core/src/main/java/i2p/bote/network/kademlia/KademliaPeer.java core/src/main/java/i2p/bote/network/kademlia/KademliaPeerStats.java core/src/main/java/i2p/bote/network/kademlia/KademliaUtil.java core/src/main/java/i2p/bote/network/kademlia/PeerDistanceComparator.java core/src/main/java/i2p/bote/network/kademlia/ReplicateThread.java core/src/main/java/i2p/bote/network/kademlia/SBucket.java core/src/main/java/i2p/bote/network/kademlia/package.html core/src/main/java/i2p/bote/network/package.html core/src/main/java/i2p/bote/package.html core/src/main/java/i2p/bote/packet/CommunicationPacket.java core/src/main/java/i2p/bote/packet/DataPacket.java core/src/main/java/i2p/bote/packet/EmptyResponse.java core/src/main/java/i2p/bote/packet/I2PBotePacket.java core/src/main/java/i2p/bote/packet/MalformedCommunicationPacket.java core/src/main/java/i2p/bote/packet/MalformedDataPacket.java core/src/main/java/i2p/bote/packet/MalformedPacketException.java core/src/main/java/i2p/bote/packet/PeerList.java core/src/main/java/i2p/bote/packet/ResponsePacket.java core/src/main/java/i2p/bote/packet/Splittable.java core/src/main/java/i2p/bote/packet/StatusCode.java core/src/main/java/i2p/bote/packet/TypeCode.java core/src/main/java/i2p/bote/packet/dht/Contact.java core/src/main/java/i2p/bote/packet/dht/DeleteRequest.java core/src/main/java/i2p/bote/packet/dht/DeletionInfoPacket.java core/src/main/java/i2p/bote/packet/dht/DeletionQuery.java core/src/main/java/i2p/bote/packet/dht/DeletionRecord.java core/src/main/java/i2p/bote/packet/dht/DhtStorablePacket.java core/src/main/java/i2p/bote/packet/dht/EmailPacketDeleteRequest.java core/src/main/java/i2p/bote/packet/dht/EncryptedEmailPacket.java core/src/main/java/i2p/bote/packet/dht/FindClosePeersPacket.java core/src/main/java/i2p/bote/packet/dht/IndexPacket.java core/src/main/java/i2p/bote/packet/dht/IndexPacketDeleteRequest.java core/src/main/java/i2p/bote/packet/dht/IndexPacketEntry.java core/src/main/java/i2p/bote/packet/dht/RetrieveRequest.java core/src/main/java/i2p/bote/packet/dht/StoreRequest.java core/src/main/java/i2p/bote/packet/dht/UnencryptedEmailPacket.java core/src/main/java/i2p/bote/packet/dht/package.html core/src/main/java/i2p/bote/packet/package.html core/src/main/java/i2p/bote/packet/relay/PeerListRequest.java core/src/main/java/i2p/bote/packet/relay/RelayRequest.java core/src/main/java/i2p/bote/packet/relay/ReturnChain.java core/src/main/java/i2p/bote/packet/relay/package.html core/src/main/java/i2p/bote/service/ApiService.java core/src/main/java/i2p/bote/service/DeliveryChecker.java core/src/main/java/i2p/bote/service/EmailChecker.java core/src/main/java/i2p/bote/service/ExpirationThread.java core/src/main/java/i2p/bote/service/OutboxListener.java core/src/main/java/i2p/bote/service/OutboxProcessor.java core/src/main/java/i2p/bote/service/POP3Service.java core/src/main/java/i2p/bote/service/RelayPacketSender.java core/src/main/java/i2p/bote/service/RelayPeerManager.java core/src/main/java/i2p/bote/service/package.html core/src/main/java/i2p/bote/status/ChangeIdentityStatus.java core/src/main/java/i2p/bote/status/ChangePasswordStatus.java core/src/main/java/i2p/bote/status/StatusListener.java core/src/main/java/i2p/bote/util/ExportableData.java core/src/main/java/i2p/bote/util/GeneralHelper.java core/src/main/java/i2p/bote/util/SortedProperties.java core/src/main/java/net/i2p/util/StrongTls.java core/src/main/resources/i2p/bote/crypto/wordlist/words_de.txt core/src/main/resources/i2p/bote/crypto/wordlist/words_en.txt core/src/main/resources/i2p/bote/network/built-in-peers.txt core/src/main/scripts/decrypt.bat core/src/main/scripts/decrypt.sh core/src/main/scripts/encrypt.bat core/src/main/scripts/encrypt.sh core/src/main/scripts/fileinfo.bat core/src/main/scripts/fileinfo.sh core/src/test/java/i2p/bote/AllTests.java core/src/test/java/i2p/bote/TestUtil.java core/src/test/java/i2p/bote/addressbook/AddressBookTest.java core/src/test/java/i2p/bote/crypto/CryptoImplementationTest.java core/src/test/java/i2p/bote/email/EmailIdentityTest.java core/src/test/java/i2p/bote/email/EmailMetadataTest.java core/src/test/java/i2p/bote/email/EmailTest.java core/src/test/java/i2p/bote/email/IdentitiesTest.java core/src/test/java/i2p/bote/fileencryption/EncryptedStreamTest.java core/src/test/java/i2p/bote/fileencryption/FileEncryptionTestUtil.java core/src/test/java/i2p/bote/fileencryption/FileEncryptionUtilTest.java core/src/test/java/i2p/bote/fileencryption/PasswordCacheTest.java core/src/test/java/i2p/bote/folder/DirectoryEntryFolderTest.java core/src/test/java/i2p/bote/folder/EmailFolderTest.java core/src/test/java/i2p/bote/folder/EmailPacketFolderTest.java core/src/test/java/i2p/bote/folder/FolderTest.java core/src/test/java/i2p/bote/folder/IncompleteEmailFolderTest.java core/src/test/java/i2p/bote/folder/IndexPacketFolderTest.java core/src/test/java/i2p/bote/folder/RelayPacketFolderTest.java core/src/test/java/i2p/bote/network/kademlia/BucketManagerTest.java core/src/test/java/i2p/bote/network/kademlia/KBucketTest.java core/src/test/java/i2p/bote/network/kademlia/KademliaTestUtil.java core/src/test/java/i2p/bote/packet/I2PBotePacketTest.java core/src/test/java/i2p/bote/packet/PeerListTest.java core/src/test/java/i2p/bote/packet/ResponsePacketTest.java core/src/test/java/i2p/bote/packet/dht/ContactTest.java core/src/test/java/i2p/bote/packet/dht/DeletionQueryTest.java core/src/test/java/i2p/bote/packet/dht/EmailPacketDeleteRequestTest.java core/src/test/java/i2p/bote/packet/dht/EncryptedEmailPacketTest.java core/src/test/java/i2p/bote/packet/dht/FindClosePeersPacketTest.java core/src/test/java/i2p/bote/packet/dht/IndexPacketDeleteRequestTest.java core/src/test/java/i2p/bote/packet/dht/IndexPacketTest.java core/src/test/java/i2p/bote/packet/dht/StoreRequestTest.java core/src/test/java/i2p/bote/packet/dht/UnencryptedEmailPacketTest.java core/src/test/java/i2p/bote/packet/relay/RelayRequestTest.java core/src/test/java/i2p/bote/packet/relay/ReturnChainTest.java core/src/test/java/i2p/bote/service/OutboxProcessorTest.java core/src/test/resources/i2p/bote/packet/dht/Struwwelpeter.jpg crypto/build.gradle crypto/libs/flexi-gmss-1.7p1.jar crypto/libs/ntruenc-1.2.jar doc/manual.odt doc/manual_fr.odt doc/techdoc.txt gradle.properties gradle/i2p-make-plugin.gradle gradle/signing.gradle gradle/wrapper/gradle-wrapper.jar gradle/wrapper/gradle-wrapper.properties gradlew gradlew.bat history.txt license.txt licenses/BouncyCastle.txt licenses/GPLv3.txt licenses/LICENSE-Apache2.0.txt nbproject/project.xml settings.gradle webapp/build.gradle webapp/src/main/i2p/plugin.config webapp/src/main/java/i2p/bote/imap/BoteMailbox.java webapp/src/main/java/i2p/bote/imap/BoteMailboxId.java webapp/src/main/java/i2p/bote/imap/BoteMessage.java webapp/src/main/java/i2p/bote/imap/BoteMessageId.java webapp/src/main/java/i2p/bote/imap/ImapService.java webapp/src/main/java/i2p/bote/imap/MapperFactory.java webapp/src/main/java/i2p/bote/service/ApiServiceImpl.java webapp/src/main/java/i2p/bote/service/seedless/ProxyRequest.java webapp/src/main/java/i2p/bote/service/seedless/SeedlessAnnounce.java webapp/src/main/java/i2p/bote/service/seedless/SeedlessInitializer.java webapp/src/main/java/i2p/bote/service/seedless/SeedlessParameters.java webapp/src/main/java/i2p/bote/service/seedless/SeedlessRequestPeers.java webapp/src/main/java/i2p/bote/service/seedless/SeedlessScrapePeers.java webapp/src/main/java/i2p/bote/service/seedless/SeedlessScrapeServers.java webapp/src/main/java/i2p/bote/service/seedless/package.html webapp/src/main/java/i2p/bote/smtp/SmtpService.java webapp/src/main/java/i2p/bote/web/AttachmentTag.java webapp/src/main/java/i2p/bote/web/CSPApplier.java webapp/src/main/java/i2p/bote/web/CSRFCheckTag.java webapp/src/main/java/i2p/bote/web/CSRFLogger.java webapp/src/main/java/i2p/bote/web/CharsetFilter.java webapp/src/main/java/i2p/bote/web/CheckMailTag.java webapp/src/main/java/i2p/bote/web/ClearPasswordCacheTag.java webapp/src/main/java/i2p/bote/web/ConnectTag.java webapp/src/main/java/i2p/bote/web/ExportIdentities.java webapp/src/main/java/i2p/bote/web/FormatPlainTextTag.java webapp/src/main/java/i2p/bote/web/ImportIdentitiesTag.java webapp/src/main/java/i2p/bote/web/JSPHelper.java webapp/src/main/java/i2p/bote/web/MessageTag.java webapp/src/main/java/i2p/bote/web/MultipartFilter.java webapp/src/main/java/i2p/bote/web/ParamTag.java webapp/src/main/java/i2p/bote/web/PeerInfoTag.java webapp/src/main/java/i2p/bote/web/PrintExceptionTag.java webapp/src/main/java/i2p/bote/web/PublishDestinationTag.java webapp/src/main/java/i2p/bote/web/QuoteTag.java webapp/src/main/java/i2p/bote/web/RecipientTag.java webapp/src/main/java/i2p/bote/web/RequirePasswordTag.java webapp/src/main/java/i2p/bote/web/SameOriginFilter.java webapp/src/main/java/i2p/bote/web/SaveConfigurationTag.java webapp/src/main/java/i2p/bote/web/SaveIdentitiesTag.java webapp/src/main/java/i2p/bote/web/SendEmailTag.java webapp/src/main/java/i2p/bote/web/ServiceInitializer.java webapp/src/main/java/i2p/bote/web/SetEmailReadTag.java webapp/src/main/java/i2p/bote/web/SetEmailRepliedTag.java webapp/src/main/java/i2p/bote/web/SetPasswordTag.java webapp/src/main/java/i2p/bote/web/ShowAttachment.java webapp/src/main/java/i2p/bote/web/ShowAttachmentsTag.java webapp/src/main/java/i2p/bote/web/ThemeFilter.java webapp/src/main/java/i2p/bote/web/ThemeServlet.java webapp/src/main/java/i2p/bote/web/WaitForPasswordChangeTag.java webapp/src/main/java/i2p/bote/web/WebappPeerStatsRenderer.java webapp/src/main/java/i2p/bote/web/WebappUtil.java webapp/src/main/java/i2p/bote/web/package.html webapp/src/main/locale/messages_ar.po webapp/src/main/locale/messages_az.po webapp/src/main/locale/messages_cs.po webapp/src/main/locale/messages_de.po webapp/src/main/locale/messages_en.po webapp/src/main/locale/messages_es.po webapp/src/main/locale/messages_fi.po webapp/src/main/locale/messages_fr.po webapp/src/main/locale/messages_hu.po webapp/src/main/locale/messages_id.po webapp/src/main/locale/messages_it.po webapp/src/main/locale/messages_ja.po webapp/src/main/locale/messages_ko.po webapp/src/main/locale/messages_nb.po webapp/src/main/locale/messages_nl.po webapp/src/main/locale/messages_pl.po webapp/src/main/locale/messages_pt.po webapp/src/main/locale/messages_pt_BR.po webapp/src/main/locale/messages_ro.po webapp/src/main/locale/messages_ru.po webapp/src/main/locale/messages_sk.po webapp/src/main/locale/messages_sq.po webapp/src/main/locale/messages_sv.po webapp/src/main/locale/messages_tr.po webapp/src/main/locale/messages_uk.po webapp/src/main/locale/messages_vi.po webapp/src/main/locale/messages_zh.po webapp/src/main/webapp/META-INF/MANIFEST.MF webapp/src/main/webapp/META-INF/mime.types webapp/src/main/webapp/WEB-INF/classes/Owasp.CsrfGuard.properties webapp/src/main/webapp/WEB-INF/classes/javax/annotation/concurrent/GuardedBy.class webapp/src/main/webapp/WEB-INF/tags/address.tag webapp/src/main/webapp/WEB-INF/tags/copyParams.tag webapp/src/main/webapp/WEB-INF/tags/expandable.tag webapp/src/main/webapp/WEB-INF/tags/folderLink.tag webapp/src/main/webapp/WEB-INF/tags/printDate.tag webapp/src/main/webapp/WEB-INF/tags/printWithLineBreaks.tag webapp/src/main/webapp/WEB-INF/tlds/i2pbote.tld webapp/src/main/webapp/WEB-INF/web.xml webapp/src/main/webapp/about.jsp webapp/src/main/webapp/addressBook.jsp webapp/src/main/webapp/buttonFrame.jsp webapp/src/main/webapp/checkMail.jsp webapp/src/main/webapp/clearPasswordCache.jsp webapp/src/main/webapp/connect.jsp webapp/src/main/webapp/connectError.jsp webapp/src/main/webapp/csrfError.jsp webapp/src/main/webapp/debug.jsp webapp/src/main/webapp/deleteContact.jsp webapp/src/main/webapp/deleteEmail.jsp webapp/src/main/webapp/deleteIdentity.jsp webapp/src/main/webapp/editContact.jsp webapp/src/main/webapp/editIdentity.jsp webapp/src/main/webapp/exportIdentities.jsp webapp/src/main/webapp/faq.jsp webapp/src/main/webapp/folder.jsp webapp/src/main/webapp/folders.jsp webapp/src/main/webapp/footer.jsp webapp/src/main/webapp/getStatus.jsp webapp/src/main/webapp/header.jsp webapp/src/main/webapp/html/FAQ.html webapp/src/main/webapp/html/FAQ_de.html webapp/src/main/webapp/html/FAQ_es.html webapp/src/main/webapp/html/FAQ_fr.html webapp/src/main/webapp/html/FAQ_in.html webapp/src/main/webapp/html/FAQ_ru.html webapp/src/main/webapp/html/FAQ_sv.html webapp/src/main/webapp/html/userGuide.html webapp/src/main/webapp/html/userGuide_de.html webapp/src/main/webapp/html/userGuide_es.html webapp/src/main/webapp/html/userGuide_fr.html webapp/src/main/webapp/html/userGuide_in.html webapp/src/main/webapp/html/userGuide_sv.html webapp/src/main/webapp/identities.jsp webapp/src/main/webapp/identitiesHelp.jsp webapp/src/main/webapp/importContact.jsp webapp/src/main/webapp/importIdentities.jsp webapp/src/main/webapp/index.html webapp/src/main/webapp/index.jsp webapp/src/main/webapp/network.jsp webapp/src/main/webapp/newEmail.jsp webapp/src/main/webapp/noIdentities.jsp webapp/src/main/webapp/outbox.jsp webapp/src/main/webapp/password.jsp webapp/src/main/webapp/publishDestination.jsp webapp/src/main/webapp/saveIdentities.jsp webapp/src/main/webapp/sendEmail.jsp webapp/src/main/webapp/setPassword.jsp webapp/src/main/webapp/settings.jsp webapp/src/main/webapp/showEmail.jsp webapp/src/main/webapp/showFullIdentity.jsp webapp/src/main/webapp/showHtml.jsp webapp/src/main/webapp/statusFrame.jsp webapp/src/main/webapp/submitIdentity.jsp webapp/src/main/webapp/themes/lblue/i2pbote.css webapp/src/main/webapp/themes/lblue/images/addressbook.png webapp/src/main/webapp/themes/lblue/images/attachment.png webapp/src/main/webapp/themes/lblue/images/background-alt.png webapp/src/main/webapp/themes/lblue/images/background.png webapp/src/main/webapp/themes/lblue/images/clear_password.png webapp/src/main/webapp/themes/lblue/images/connect_error.png webapp/src/main/webapp/themes/lblue/images/connected.png webapp/src/main/webapp/themes/lblue/images/connecting.png webapp/src/main/webapp/themes/lblue/images/default.png webapp/src/main/webapp/themes/lblue/images/delay.png webapp/src/main/webapp/themes/lblue/images/delete.png webapp/src/main/webapp/themes/lblue/images/favicon.png webapp/src/main/webapp/themes/lblue/images/folder.png webapp/src/main/webapp/themes/lblue/images/not_started.png webapp/src/main/webapp/themes/lblue/images/wait.gif webapp/src/main/webapp/themes/lblue/images/warning.png webapp/src/main/webapp/themes/material/fonts/NotoSans-Bold.ttf webapp/src/main/webapp/themes/material/fonts/NotoSans-BoldItalic.ttf webapp/src/main/webapp/themes/material/fonts/NotoSans-Italic.ttf webapp/src/main/webapp/themes/material/fonts/NotoSans-Regular.ttf webapp/src/main/webapp/themes/material/fonts/Roboto-Black.ttf webapp/src/main/webapp/themes/material/fonts/Roboto-BlackItalic.ttf webapp/src/main/webapp/themes/material/fonts/Roboto-Bold.ttf webapp/src/main/webapp/themes/material/fonts/Roboto-BoldItalic.ttf webapp/src/main/webapp/themes/material/fonts/Roboto-Italic.ttf webapp/src/main/webapp/themes/material/fonts/Roboto-Light.ttf webapp/src/main/webapp/themes/material/fonts/Roboto-LightItalic.ttf webapp/src/main/webapp/themes/material/fonts/Roboto-Medium.ttf webapp/src/main/webapp/themes/material/fonts/Roboto-MediumItalic.ttf webapp/src/main/webapp/themes/material/fonts/Roboto-Regular.ttf webapp/src/main/webapp/themes/material/fonts/Roboto-Thin.ttf webapp/src/main/webapp/themes/material/fonts/Roboto-ThinItalic.ttf webapp/src/main/webapp/themes/material/i2pbote.css webapp/src/main/webapp/themes/material/icon.png webapp/src/main/webapp/themes/material/images/addressbook.png webapp/src/main/webapp/themes/material/images/attachment.png webapp/src/main/webapp/themes/material/images/clear_password.png webapp/src/main/webapp/themes/material/images/compose.png webapp/src/main/webapp/themes/material/images/connect_error.png webapp/src/main/webapp/themes/material/images/connected.png webapp/src/main/webapp/themes/material/images/connecting.png webapp/src/main/webapp/themes/material/images/default.png webapp/src/main/webapp/themes/material/images/delay.png webapp/src/main/webapp/themes/material/images/delete.png webapp/src/main/webapp/themes/material/images/favicon.png webapp/src/main/webapp/themes/material/images/folder.png webapp/src/main/webapp/themes/material/images/identities.png webapp/src/main/webapp/themes/material/images/inbox.png webapp/src/main/webapp/themes/material/images/not_started.png webapp/src/main/webapp/themes/material/images/outbox.png webapp/src/main/webapp/themes/material/images/refresh.png webapp/src/main/webapp/themes/material/images/send_white.png webapp/src/main/webapp/themes/material/images/sent.png webapp/src/main/webapp/themes/material/images/settings.png webapp/src/main/webapp/themes/material/images/wait.gif webapp/src/main/webapp/themes/material/images/warning.png webapp/src/main/webapp/themes/material/noto.css webapp/src/main/webapp/themes/material/roboto.css webapp/src/main/webapp/themes/vanilla/i2pbote.css webapp/src/main/webapp/themes/vanilla/images/addressbook.png webapp/src/main/webapp/themes/vanilla/images/attachment.png webapp/src/main/webapp/themes/vanilla/images/background-alt.png webapp/src/main/webapp/themes/vanilla/images/background.png webapp/src/main/webapp/themes/vanilla/images/bling.png webapp/src/main/webapp/themes/vanilla/images/clear_password.png webapp/src/main/webapp/themes/vanilla/images/connect_error.png webapp/src/main/webapp/themes/vanilla/images/connected.png webapp/src/main/webapp/themes/vanilla/images/connecting.png webapp/src/main/webapp/themes/vanilla/images/default.png webapp/src/main/webapp/themes/vanilla/images/delay.png webapp/src/main/webapp/themes/vanilla/images/delete.png webapp/src/main/webapp/themes/vanilla/images/favicon.png webapp/src/main/webapp/themes/vanilla/images/folder.png webapp/src/main/webapp/themes/vanilla/images/graytile.png webapp/src/main/webapp/themes/vanilla/images/not_started.png webapp/src/main/webapp/themes/vanilla/images/wait.gif webapp/src/main/webapp/themes/vanilla/images/warning.png webapp/src/main/webapp/userGuide.jsp webapp/src/poupdate/java/i2p/bote/ant/JspStrings.java webapp/src/poupdate/java/i2p/bote/ant/PrintAppVersion.java webapp/src/poupdate/java/i2p/bote/ant/SearchAndInsert.java webapp/src/poupdate/scripts/bundle-messages.sh win32installer/build.xml.old win32installer/config.txt win32installer/i2pbote_pack.txt win32installer/jreinstall.bat win32installer/launcher.ini win32installer/packspanel.txt

## Branches

## Tags

i2pbote-0.3 i2pbote-0.4 i2pbote_0_1 i2pbote_0_1_1 i2pbote_0_1_2 i2pbote_0_1_3 i2pbote_0_1_4 i2pbote_0_1_5 i2pbote_0_2 i2pbote_0_2_1 i2pbote_0_2_10 i2pbote_0_2_2 i2pbote_0_2_3 i2pbote_0_2_4 i2pbote_0_2_5 i2pbote_0_2_6 i2pbote_0_2_7 i2pbote_0_2_8 i2pbote_0_2_9 v0.4.1 v0.4.2 v0.4.3 v0.4.4 v0.4.5 v0.4.6 v0.4.7

## Remotes

origin https://github.com/i2p/i2p.i2p-bote (fetch) origin https://github.com/i2p/i2p.i2p-bote (push) ```